@colijnit/corecomponents_v12 12.2.25 → 12.2.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1276) hide show
  1. package/README.md +9 -12
  2. package/bundles/colijnit-corecomponents_v12.umd.js +14050 -0
  3. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -0
  4. package/colijnit-corecomponents_v12.d.ts +43 -0
  5. package/colijnit-corecomponents_v12.metadata.json +1 -0
  6. package/esm2015/colijnit-corecomponents_v12.js +44 -0
  7. package/esm2015/lib/components/article-tile/article-tile.component.js +80 -0
  8. package/esm2015/lib/components/article-tile/article-tile.module.js +35 -0
  9. package/esm2015/lib/components/base/base-input.component.js +834 -0
  10. package/esm2015/lib/components/base/base.module.js +22 -0
  11. package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +103 -0
  12. package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +21 -0
  13. package/esm2015/lib/components/base/dialog-base.component.js +6 -0
  14. package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +25 -0
  15. package/esm2015/lib/components/button/button.component.js +79 -0
  16. package/esm2015/lib/components/button/button.module.js +19 -0
  17. package/esm2015/lib/components/calendar/calendar-template.component.js +342 -0
  18. package/esm2015/lib/components/calendar/calendar.component.js +45 -0
  19. package/esm2015/lib/components/calendar/calendar.module.js +28 -0
  20. package/esm2015/lib/components/card/card.component.js +72 -0
  21. package/esm2015/lib/components/card/card.module.js +35 -0
  22. package/esm2015/lib/components/carousel/carousel.component.js +130 -0
  23. package/esm2015/lib/components/carousel/carousel.module.js +32 -0
  24. package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +315 -0
  25. package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +19 -0
  26. package/esm2015/lib/components/carousel-3d/carouselItem.js +54 -0
  27. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +87 -0
  28. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +19 -0
  29. package/esm2015/lib/components/co-dialog/co-dialog.component.js +113 -0
  30. package/esm2015/lib/components/co-dialog/co-dialog.module.js +19 -0
  31. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +51 -0
  32. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +17 -0
  33. package/esm2015/lib/components/collapsible/collapsible.component.js +92 -0
  34. package/esm2015/lib/components/collapsible/collapsible.module.js +19 -0
  35. package/esm2015/lib/components/color-picker/color-picker.component.js +41 -0
  36. package/esm2015/lib/components/color-picker/color-picker.module.js +21 -0
  37. package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +79 -0
  38. package/esm2015/lib/components/core-dialog/core-dialog.module.js +39 -0
  39. package/esm2015/lib/components/core-dialog/core-dialog.service.js +67 -0
  40. package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +93 -0
  41. package/esm2015/lib/components/double-calendar/double-calendar.component.js +80 -0
  42. package/esm2015/lib/components/double-calendar/double-calendar.module.js +25 -0
  43. package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +13 -0
  44. package/esm2015/lib/components/filter-item/filter-item.component.js +646 -0
  45. package/esm2015/lib/components/filter-item/filter-item.module.js +43 -0
  46. package/esm2015/lib/components/filter-item/filter-viewmodel.js +11 -0
  47. package/esm2015/lib/components/form/form.component.js +184 -0
  48. package/esm2015/lib/components/form/form.module.js +23 -0
  49. package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +57 -0
  50. package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +23 -0
  51. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +28 -0
  52. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +19 -0
  53. package/esm2015/lib/components/icon/icon-cache.service.js +52 -0
  54. package/esm2015/lib/components/icon/icon.component.js +48 -0
  55. package/esm2015/lib/components/icon/icon.module.js +25 -0
  56. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +64 -0
  57. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +23 -0
  58. package/esm2015/lib/components/image/image.component.js +42 -0
  59. package/esm2015/lib/components/image/image.module.js +14 -0
  60. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +79 -0
  61. package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +19 -0
  62. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +91 -0
  63. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +26 -0
  64. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +134 -0
  65. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +27 -0
  66. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +314 -0
  67. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +23 -0
  68. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +84 -0
  69. package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +19 -0
  70. package/esm2015/lib/components/input-scanner/bar-code-scanner.js +23 -0
  71. package/esm2015/lib/components/input-scanner/input-scanner.component.js +72 -0
  72. package/esm2015/lib/components/input-scanner/input-scanner.module.js +21 -0
  73. package/esm2015/lib/components/input-scanner/scanner.service.js +28 -0
  74. package/esm2015/lib/components/input-search/input-search.component.js +83 -0
  75. package/esm2015/lib/components/input-search/input-search.module.js +21 -0
  76. package/esm2015/lib/components/input-text/input-text.component.js +239 -0
  77. package/esm2015/lib/components/input-text/input-text.module.js +33 -0
  78. package/esm2015/lib/components/input-textarea/input-textarea.component.js +78 -0
  79. package/esm2015/lib/components/input-textarea/input-textarea.module.js +27 -0
  80. package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +7 -0
  81. package/esm2015/lib/components/level-indicator/level-indicator.component.js +36 -0
  82. package/esm2015/lib/components/level-indicator/level-indicator.module.js +15 -0
  83. package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +112 -0
  84. package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +242 -0
  85. package/esm2015/lib/components/list-of-values/list-of-values.component.js +233 -0
  86. package/esm2015/lib/components/list-of-values/list-of-values.module.js +38 -0
  87. package/esm2015/lib/components/loader/loader.component.js +84 -0
  88. package/esm2015/lib/components/loader/loader.module.js +19 -0
  89. package/esm2015/lib/components/pagination/paginate.pipe.js +99 -0
  90. package/esm2015/lib/components/pagination/pagination-instance.js +2 -0
  91. package/esm2015/lib/components/pagination/pagination.component.js +126 -0
  92. package/esm2015/lib/components/pagination/pagination.module.js +28 -0
  93. package/esm2015/lib/components/pagination/pagination.service.js +88 -0
  94. package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +151 -0
  95. package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +19 -0
  96. package/esm2015/lib/components/popup/const/popup-window-token.js +3 -0
  97. package/esm2015/lib/components/popup/interface/popup-button.js +8 -0
  98. package/esm2015/lib/components/popup/interface/popup-close-event.js +2 -0
  99. package/esm2015/lib/components/popup/interface/popup-settings.js +42 -0
  100. package/esm2015/lib/components/popup/interface/popup.js +2 -0
  101. package/esm2015/lib/components/popup/model/popup-button-globals.js +11 -0
  102. package/esm2015/lib/components/popup/model/popup-window.js +38 -0
  103. package/esm2015/lib/components/popup/popup-buttons.component.js +53 -0
  104. package/esm2015/lib/components/popup/popup-message-display.component.js +47 -0
  105. package/esm2015/lib/components/popup/popup-window-shell.component.js +159 -0
  106. package/esm2015/lib/components/popup/popup.module.js +49 -0
  107. package/esm2015/lib/components/popup/service/popup-shower.service.js +90 -0
  108. package/esm2015/lib/components/popup/service/prompt.service.js +127 -0
  109. package/esm2015/lib/components/popup/text-input-popup.component.js +36 -0
  110. package/esm2015/lib/components/responsive-text/responsive-text.component.js +24 -0
  111. package/esm2015/lib/components/responsive-text/responsive-text.module.js +19 -0
  112. package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +164 -0
  113. package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +172 -0
  114. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +111 -0
  115. package/esm2015/lib/components/simple-grid/simple-grid.component.js +465 -0
  116. package/esm2015/lib/components/simple-grid/simple-grid.module.js +41 -0
  117. package/esm2015/lib/components/tile/tile.component.js +73 -0
  118. package/esm2015/lib/components/tile/tile.module.js +23 -0
  119. package/esm2015/lib/components/tile-select/tile-select.component.js +36 -0
  120. package/esm2015/lib/components/tile-select/tile-select.module.js +21 -0
  121. package/esm2015/lib/components/tooltip/tooltip.component.js +77 -0
  122. package/esm2015/lib/components/tooltip/tooltip.module.js +19 -0
  123. package/esm2015/lib/components/validation-error/validation-error.component.js +38 -0
  124. package/esm2015/lib/components/validation-error/validation-error.module.js +25 -0
  125. package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +11 -0
  126. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +61 -0
  127. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +21 -0
  128. package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +4 -0
  129. package/esm2015/lib/core/constant/java-max-int.js +2 -0
  130. package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +45 -0
  131. package/esm2015/lib/core/decorator/input-boolean.decorator.js +34 -0
  132. package/esm2015/lib/core/enum/co-direction.js +9 -0
  133. package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +7 -0
  134. package/esm2015/lib/core/enum/co-document-type.enum.js +11 -0
  135. package/esm2015/lib/core/enum/co-orientation.js +17 -0
  136. package/esm2015/lib/core/enum/core-components-icon.enum.js +300 -0
  137. package/esm2015/lib/core/enum/file-type-internal.enum.js +17 -0
  138. package/esm2015/lib/core/enum/file-type.enum.js +11 -0
  139. package/esm2015/lib/core/enum/filterItem-mode.enum.js +43 -0
  140. package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +8 -0
  141. package/esm2015/lib/core/enum/keyboard-code.enum.js +74 -0
  142. package/esm2015/lib/core/enum/keyboard-key.enum.js +76 -0
  143. package/esm2015/lib/core/enum/object-right-type.enum.js +7 -0
  144. package/esm2015/lib/core/enum/popup-button-type.enum.js +12 -0
  145. package/esm2015/lib/core/enum/popup-type.enum.js +11 -0
  146. package/esm2015/lib/core/enum/table-name.enum.js +81 -0
  147. package/esm2015/lib/core/function/any-nill.function.js +6 -0
  148. package/esm2015/lib/core/function/is-nill.function.js +5 -0
  149. package/esm2015/lib/core/function/none-nill.function.js +17 -0
  150. package/esm2015/lib/core/function/not-nill.function.js +5 -0
  151. package/esm2015/lib/core/model/bounds-constrained-number-value.js +171 -0
  152. package/esm2015/lib/core/model/check-precision-and-scale-result.js +2 -0
  153. package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +2 -0
  154. package/esm2015/lib/core/model/co-document-right.bo.js +3 -0
  155. package/esm2015/lib/core/model/co-document.bo.js +121 -0
  156. package/esm2015/lib/core/model/core-components-icon-svg.js +299 -0
  157. package/esm2015/lib/core/model/element-position.js +10 -0
  158. package/esm2015/lib/core/model/event/string-prompt-result-event.js +8 -0
  159. package/esm2015/lib/core/service/form-input-user-change-listener.service.js +25 -0
  160. package/esm2015/lib/core/service/form-master.service.js +102 -0
  161. package/esm2015/lib/core/service/ng-zone-wrapper.service.js +20 -0
  162. package/esm2015/lib/core/utils/array-utils.js +264 -0
  163. package/esm2015/lib/core/utils/browser-utils.js +100 -0
  164. package/esm2015/lib/core/utils/direction-enum-utils.js +14 -0
  165. package/esm2015/lib/core/utils/event-utils.js +53 -0
  166. package/esm2015/lib/core/utils/file-utils.js +267 -0
  167. package/esm2015/lib/core/utils/number-utils.js +309 -0
  168. package/esm2015/lib/core/utils/object-utils.js +186 -0
  169. package/esm2015/lib/core/utils/string-utils.js +94 -0
  170. package/esm2015/lib/core/validator/email.validator.js +6 -0
  171. package/esm2015/lib/core/validator/equal.validator.js +11 -0
  172. package/esm2015/lib/core/validator/max-string-length.validator.js +10 -0
  173. package/esm2015/lib/core/validator/password.validator.js +31 -0
  174. package/esm2015/lib/core/validator/precision-scale.validator.js +11 -0
  175. package/esm2015/lib/core/validator/required.validator.js +5 -0
  176. package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +57 -0
  177. package/esm2015/lib/directives/clickoutside/click-outside.directive.js +71 -0
  178. package/esm2015/lib/directives/clickoutside/clickoutside.module.js +19 -0
  179. package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +53 -0
  180. package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +15 -0
  181. package/esm2015/lib/directives/overlay/overlay-parent.directive.js +19 -0
  182. package/esm2015/lib/directives/overlay/overlay.directive.js +161 -0
  183. package/esm2015/lib/directives/overlay/overlay.module.js +18 -0
  184. package/esm2015/lib/directives/ripple/ripple-ref.js +26 -0
  185. package/esm2015/lib/directives/ripple/ripple-renderer.js +160 -0
  186. package/esm2015/lib/directives/ripple/ripple.directive.js +80 -0
  187. package/esm2015/lib/directives/ripple/ripple.module.js +24 -0
  188. package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +108 -0
  189. package/esm2015/lib/directives/ripple/scrollable.directive.js +40 -0
  190. package/esm2015/lib/directives/ripple/viewport-ruler.service.js +73 -0
  191. package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +158 -0
  192. package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +19 -0
  193. package/esm2015/lib/directives/stopclick/stop-click.directive.js +38 -0
  194. package/esm2015/lib/directives/stopclick/stop-click.module.js +15 -0
  195. package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +68 -0
  196. package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +15 -0
  197. package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +19 -0
  198. package/esm2015/lib/directives/tooltip/tooltip.directive.js +78 -0
  199. package/esm2015/lib/interfaces/dialog-response.interface.js +2 -0
  200. package/esm2015/lib/interfaces/scanner-input.interface.js +2 -0
  201. package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +4 -0
  202. package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +2 -0
  203. package/esm2015/lib/model/enum/app-button-type.enum.js +11 -0
  204. package/esm2015/lib/model/enum/app-popup-type.enum.js +8 -0
  205. package/esm2015/lib/pipes/append.pipe.js +17 -0
  206. package/esm2015/lib/pipes/append.pipe.module.js +15 -0
  207. package/esm2015/lib/pipes/filter.pipe.js +16 -0
  208. package/esm2015/lib/pipes/filter.pipe.module.js +15 -0
  209. package/esm2015/lib/pipes/prepend.pipe.js +17 -0
  210. package/esm2015/lib/pipes/prepend.pipe.module.js +15 -0
  211. package/esm2015/lib/pipes/price-display-pipe.module.js +15 -0
  212. package/esm2015/lib/pipes/price-display.pipe.js +20 -0
  213. package/esm2015/lib/service/base-module-screen-config.service.js +205 -0
  214. package/esm2015/lib/service/base-module.service.js +42 -0
  215. package/esm2015/lib/service/color-sequence.service.js +23 -0
  216. package/esm2015/lib/service/overlay.service.js +73 -0
  217. package/esm2015/lib/translation/core-components-translation.module.js +29 -0
  218. package/esm2015/lib/translation/core-components-translation.service.js +17 -0
  219. package/esm2015/lib/translation/core-dictionary.service.js +29 -0
  220. package/esm2015/lib/translation/core-localize.pipe.js +26 -0
  221. package/esm2015/public-api.js +130 -0
  222. package/fesm2015/colijnit-corecomponents_v12.js +13391 -0
  223. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -0
  224. package/lib/components/article-tile/article-tile.component.d.ts +22 -0
  225. package/lib/components/article-tile/article-tile.module.d.ts +2 -0
  226. package/lib/components/base/base-input.component.d.ts +182 -0
  227. package/lib/components/base/base.module.d.ts +2 -0
  228. package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +21 -0
  229. package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +2 -0
  230. package/lib/components/base/dialog-base.component.d.ts +4 -0
  231. package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +15 -0
  232. package/lib/components/button/button.component.d.ts +29 -0
  233. package/lib/components/button/button.module.d.ts +2 -0
  234. package/lib/components/calendar/calendar-template.component.d.ts +60 -0
  235. package/lib/components/calendar/calendar.component.d.ts +13 -0
  236. package/lib/components/calendar/calendar.module.d.ts +2 -0
  237. package/lib/components/card/card.component.d.ts +23 -0
  238. package/lib/components/card/card.module.d.ts +2 -0
  239. package/lib/components/carousel/carousel.component.d.ts +23 -0
  240. package/lib/components/carousel/carousel.module.d.ts +6 -0
  241. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
  242. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
  243. package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
  244. package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +17 -0
  245. package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +2 -0
  246. package/lib/components/co-dialog/co-dialog.component.d.ts +23 -0
  247. package/lib/components/co-dialog/co-dialog.module.d.ts +2 -0
  248. package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +9 -0
  249. package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +2 -0
  250. package/lib/components/collapsible/collapsible.component.d.ts +22 -0
  251. package/lib/components/collapsible/collapsible.module.d.ts +2 -0
  252. package/lib/components/color-picker/color-picker.component.d.ts +6 -0
  253. package/lib/components/color-picker/color-picker.module.d.ts +2 -0
  254. package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +20 -0
  255. package/lib/components/core-dialog/core-dialog.module.d.ts +4 -0
  256. package/lib/components/core-dialog/core-dialog.service.d.ts +15 -0
  257. package/lib/components/core-dialog/core-dynamic-component.service.d.ts +12 -0
  258. package/lib/components/double-calendar/double-calendar.component.d.ts +18 -0
  259. package/lib/components/double-calendar/double-calendar.module.d.ts +2 -0
  260. package/lib/components/filter-item/filter-item-viewmodel.d.ts +9 -0
  261. package/lib/components/filter-item/filter-item.component.d.ts +80 -0
  262. package/lib/components/filter-item/filter-item.module.d.ts +2 -0
  263. package/lib/components/filter-item/filter-viewmodel.d.ts +8 -0
  264. package/lib/components/form/form.component.d.ts +39 -0
  265. package/lib/components/form/form.module.d.ts +2 -0
  266. package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +19 -0
  267. package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +2 -0
  268. package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +8 -0
  269. package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +2 -0
  270. package/lib/components/icon/icon-cache.service.d.ts +20 -0
  271. package/lib/components/icon/icon.component.d.ts +17 -0
  272. package/lib/components/icon/icon.module.d.ts +2 -0
  273. package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +21 -0
  274. package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +2 -0
  275. package/lib/components/image/image.component.d.ts +20 -0
  276. package/lib/components/image/image.module.d.ts +2 -0
  277. package/lib/components/input-checkbox/input-checkbox.component.d.ts +24 -0
  278. package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -0
  279. package/lib/components/input-date-picker/input-date-picker.component.d.ts +12 -0
  280. package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -0
  281. package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +20 -0
  282. package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +2 -0
  283. package/lib/components/input-number-picker/input-number-picker.component.d.ts +73 -0
  284. package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -0
  285. package/lib/components/input-radio-button/input-radio-button.component.d.ts +19 -0
  286. package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -0
  287. package/lib/components/input-scanner/bar-code-scanner.d.ts +7 -0
  288. package/lib/components/input-scanner/input-scanner.component.d.ts +24 -0
  289. package/lib/components/input-scanner/input-scanner.module.d.ts +2 -0
  290. package/lib/components/input-scanner/scanner.service.d.ts +11 -0
  291. package/lib/components/input-search/input-search.component.d.ts +20 -0
  292. package/lib/components/input-search/input-search.module.d.ts +2 -0
  293. package/lib/components/input-text/input-text.component.d.ts +65 -0
  294. package/lib/components/input-text/input-text.module.d.ts +2 -0
  295. package/lib/components/input-textarea/input-textarea.component.d.ts +19 -0
  296. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
  297. package/lib/components/level-indicator/level-indicator-level.enum.d.ts +5 -0
  298. package/lib/components/level-indicator/level-indicator.component.d.ts +10 -0
  299. package/lib/components/level-indicator/level-indicator.module.d.ts +2 -0
  300. package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +25 -0
  301. package/lib/components/list-of-values/list-of-values-popup.component.d.ts +47 -0
  302. package/lib/components/list-of-values/list-of-values.component.d.ts +37 -0
  303. package/lib/components/list-of-values/list-of-values.module.d.ts +2 -0
  304. package/lib/components/loader/loader.component.d.ts +3 -0
  305. package/lib/components/loader/loader.module.d.ts +2 -0
  306. package/lib/components/pagination/paginate.pipe.d.ts +15 -0
  307. package/lib/components/pagination/pagination-instance.d.ts +14 -0
  308. package/lib/components/pagination/pagination.component.d.ts +38 -0
  309. package/lib/components/pagination/pagination.module.d.ts +2 -0
  310. package/lib/components/pagination/pagination.service.d.ts +24 -0
  311. package/lib/components/pagination-bar/pagination-bar.component.d.ts +33 -0
  312. package/lib/components/pagination-bar/pagination-bar.module.d.ts +2 -0
  313. package/lib/components/popup/const/popup-window-token.d.ts +3 -0
  314. package/lib/components/popup/interface/popup-button.d.ts +8 -0
  315. package/lib/components/popup/interface/popup-close-event.d.ts +5 -0
  316. package/lib/components/popup/interface/popup-settings.d.ts +21 -0
  317. package/lib/components/popup/interface/popup.d.ts +9 -0
  318. package/lib/components/popup/model/popup-button-globals.d.ts +9 -0
  319. package/lib/components/popup/model/popup-window.d.ts +21 -0
  320. package/lib/components/popup/popup-buttons.component.d.ts +13 -0
  321. package/lib/components/popup/popup-message-display.component.d.ts +12 -0
  322. package/lib/components/popup/popup-window-shell.component.d.ts +42 -0
  323. package/lib/components/popup/popup.module.d.ts +4 -0
  324. package/lib/components/popup/service/popup-shower.service.d.ts +17 -0
  325. package/lib/components/popup/service/prompt.service.d.ts +17 -0
  326. package/lib/components/popup/text-input-popup.component.d.ts +12 -0
  327. package/lib/components/responsive-text/responsive-text.component.d.ts +4 -0
  328. package/lib/components/responsive-text/responsive-text.module.d.ts +2 -0
  329. package/lib/components/simple-grid/base-simple-grid.component.d.ts +52 -0
  330. package/lib/components/simple-grid/simple-grid-cell.component.d.ts +30 -0
  331. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +42 -0
  332. package/lib/components/simple-grid/simple-grid.component.d.ts +64 -0
  333. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
  334. package/lib/components/tile/tile.component.d.ts +16 -0
  335. package/lib/components/tile/tile.module.d.ts +2 -0
  336. package/lib/components/tile-select/tile-select.component.d.ts +8 -0
  337. package/lib/components/tile-select/tile-select.module.d.ts +2 -0
  338. package/lib/components/tooltip/tooltip.component.d.ts +18 -0
  339. package/lib/components/tooltip/tooltip.module.d.ts +2 -0
  340. package/lib/components/validation-error/validation-error.component.d.ts +12 -0
  341. package/lib/components/validation-error/validation-error.module.d.ts +2 -0
  342. package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +8 -0
  343. package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +17 -0
  344. package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +2 -0
  345. package/lib/core/constant/default-upper-bound-for-range-components.d.ts +2 -0
  346. package/lib/core/constant/java-max-int.d.ts +1 -0
  347. package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -0
  348. package/lib/core/decorator/input-boolean.decorator.d.ts +8 -0
  349. package/lib/core/enum/co-direction.d.ts +6 -0
  350. package/lib/core/enum/co-document-image-display-kind.enum.d.ts +5 -0
  351. package/lib/core/enum/co-document-type.enum.d.ts +5 -0
  352. package/lib/core/enum/co-orientation.d.ts +6 -0
  353. package/lib/core/enum/core-components-icon.enum.d.ts +298 -0
  354. package/lib/core/enum/file-type-internal.enum.d.ts +15 -0
  355. package/lib/core/enum/file-type.enum.d.ts +5 -0
  356. package/lib/core/enum/filterItem-mode.enum.d.ts +15 -0
  357. package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -0
  358. package/lib/core/enum/keyboard-code.enum.d.ts +71 -0
  359. package/lib/core/enum/keyboard-key.enum.d.ts +70 -0
  360. package/lib/core/enum/object-right-type.enum.d.ts +5 -0
  361. package/lib/core/enum/popup-button-type.enum.d.ts +9 -0
  362. package/lib/core/enum/popup-type.enum.d.ts +9 -0
  363. package/lib/core/enum/table-name.enum.d.ts +79 -0
  364. package/lib/core/function/any-nill.function.d.ts +1 -0
  365. package/lib/core/function/is-nill.function.d.ts +1 -0
  366. package/lib/core/function/none-nill.function.d.ts +1 -0
  367. package/lib/core/function/not-nill.function.d.ts +1 -0
  368. package/lib/core/model/bounds-constrained-number-value.d.ts +46 -0
  369. package/lib/core/model/check-precision-and-scale-result.d.ts +4 -0
  370. package/lib/core/model/check-within-stepped-bounds-result.d.ts +8 -0
  371. package/lib/core/model/co-document-right.bo.d.ts +6 -0
  372. package/lib/core/model/co-document.bo.d.ts +61 -0
  373. package/lib/core/model/core-components-icon-svg.d.ts +4 -0
  374. package/lib/core/model/element-position.d.ts +7 -0
  375. package/lib/core/model/event/string-prompt-result-event.d.ts +6 -0
  376. package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -0
  377. package/lib/core/service/form-master.service.d.ts +26 -0
  378. package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -0
  379. package/lib/core/utils/array-utils.d.ts +85 -0
  380. package/lib/core/utils/browser-utils.d.ts +15 -0
  381. package/lib/core/utils/direction-enum-utils.d.ts +5 -0
  382. package/lib/core/utils/event-utils.d.ts +12 -0
  383. package/lib/core/utils/file-utils.d.ts +29 -0
  384. package/lib/core/utils/number-utils.d.ts +89 -0
  385. package/lib/core/utils/object-utils.d.ts +31 -0
  386. package/lib/core/utils/string-utils.d.ts +25 -0
  387. package/lib/core/validator/email.validator.d.ts +2 -0
  388. package/lib/core/validator/equal.validator.d.ts +2 -0
  389. package/lib/core/validator/max-string-length.validator.d.ts +2 -0
  390. package/lib/core/validator/password.validator.d.ts +3 -0
  391. package/lib/core/validator/precision-scale.validator.d.ts +2 -0
  392. package/lib/core/validator/required.validator.d.ts +2 -0
  393. package/lib/directives/clickoutside/click-outside-master.service.d.ts +15 -0
  394. package/lib/directives/clickoutside/click-outside.directive.d.ts +18 -0
  395. package/lib/directives/clickoutside/clickoutside.module.d.ts +2 -0
  396. package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +14 -0
  397. package/lib/directives/observe-visibility/observe-visibility.module.d.ts +2 -0
  398. package/lib/directives/overlay/overlay-parent.directive.d.ts +6 -0
  399. package/lib/directives/overlay/overlay.directive.d.ts +25 -0
  400. package/lib/directives/overlay/overlay.module.d.ts +2 -0
  401. package/lib/directives/ripple/ripple-ref.d.ts +21 -0
  402. package/lib/directives/ripple/ripple-renderer.d.ts +56 -0
  403. package/lib/directives/ripple/ripple.directive.d.ts +56 -0
  404. package/lib/directives/ripple/ripple.module.d.ts +2 -0
  405. package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -0
  406. package/lib/directives/ripple/scrollable.directive.d.ts +20 -0
  407. package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -0
  408. package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +32 -0
  409. package/lib/directives/screen-configuration/screen-configuration.module.d.ts +2 -0
  410. package/lib/directives/stopclick/stop-click.directive.d.ts +10 -0
  411. package/lib/directives/stopclick/stop-click.module.d.ts +2 -0
  412. package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +13 -0
  413. package/lib/directives/template-wrapper/template-wrapper.module.d.ts +2 -0
  414. package/lib/directives/tooltip/tooltip-directive.module.d.ts +2 -0
  415. package/lib/directives/tooltip/tooltip.directive.d.ts +20 -0
  416. package/lib/interfaces/dialog-response.interface.d.ts +6 -0
  417. package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +3 -0
  418. package/lib/interfaces/screen-config-adapter.component.interface.d.ts +10 -0
  419. package/lib/model/enum/app-button-type.enum.d.ts +9 -0
  420. package/lib/model/enum/app-popup-type.enum.d.ts +6 -0
  421. package/lib/pipes/append.pipe.d.ts +4 -0
  422. package/lib/pipes/append.pipe.module.d.ts +2 -0
  423. package/lib/pipes/filter.pipe.d.ts +4 -0
  424. package/lib/pipes/filter.pipe.module.d.ts +2 -0
  425. package/lib/pipes/prepend.pipe.d.ts +4 -0
  426. package/lib/pipes/prepend.pipe.module.d.ts +2 -0
  427. package/lib/pipes/price-display-pipe.module.d.ts +2 -0
  428. package/lib/pipes/price-display.pipe.d.ts +4 -0
  429. package/lib/service/base-module-screen-config.service.d.ts +47 -0
  430. package/lib/service/base-module.service.d.ts +22 -0
  431. package/lib/service/color-sequence.service.d.ts +4 -0
  432. package/lib/service/overlay.service.d.ts +13 -0
  433. package/lib/translation/core-components-translation.module.d.ts +4 -0
  434. package/lib/translation/core-components-translation.service.d.ts +6 -0
  435. package/lib/translation/core-dictionary.service.d.ts +12 -0
  436. package/lib/translation/core-localize.pipe.d.ts +7 -0
  437. package/package.json +22 -43
  438. package/public-api.d.ts +126 -0
  439. package/.browserslistrc +0 -17
  440. package/.editorconfig +0 -16
  441. package/.idea/CoreComponents_v12.iml +0 -12
  442. package/.idea/misc.xml +0 -9
  443. package/.idea/modules.xml +0 -8
  444. package/.idea/vcs.xml +0 -6
  445. package/CoreComponents_v12.iml +0 -12
  446. package/angular.json +0 -149
  447. package/dist/corecomponentstest/favicon.ico +0 -0
  448. package/dist/corecomponentstest/index.html +0 -13
  449. package/dist/corecomponentstest/main.js +0 -24187
  450. package/dist/corecomponentstest/main.js.map +0 -1
  451. package/dist/corecomponentstest/polyfills.js +0 -2891
  452. package/dist/corecomponentstest/polyfills.js.map +0 -1
  453. package/dist/corecomponentstest/runtime.js +0 -161
  454. package/dist/corecomponentstest/runtime.js.map +0 -1
  455. package/dist/corecomponentstest/styles.css +0 -2926
  456. package/dist/corecomponentstest/styles.css.map +0 -1
  457. package/dist/corecomponentstest/vendor.js +0 -118790
  458. package/dist/corecomponentstest/vendor.js.map +0 -1
  459. package/karma.conf.js +0 -44
  460. package/move-assets.js +0 -14
  461. package/projects/corecomponents/README.md +0 -24
  462. package/projects/corecomponents/karma.conf.js +0 -44
  463. package/projects/corecomponents/ng-package.json +0 -10
  464. package/projects/corecomponents/package-lock.json +0 -13
  465. package/projects/corecomponents/package.json +0 -19
  466. package/projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts +0 -95
  467. package/projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts +0 -34
  468. package/projects/corecomponents/src/lib/components/base/base-input.component.ts +0 -988
  469. package/projects/corecomponents/src/lib/components/base/base.module.ts +0 -22
  470. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.component.ts +0 -120
  471. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.module.ts +0 -19
  472. package/projects/corecomponents/src/lib/components/base/dialog-base.component.ts +0 -8
  473. package/projects/corecomponents/src/lib/components/base-input-date-picker/base-input-date-picker.directive.ts +0 -32
  474. package/projects/corecomponents/src/lib/components/base-input-time/base-input-time-directive.ts +0 -31
  475. package/projects/corecomponents/src/lib/components/button/button.component.ts +0 -117
  476. package/projects/corecomponents/src/lib/components/button/button.module.ts +0 -18
  477. package/projects/corecomponents/src/lib/components/calendar/calendar-template.component.ts +0 -392
  478. package/projects/corecomponents/src/lib/components/calendar/calendar.component.ts +0 -54
  479. package/projects/corecomponents/src/lib/components/calendar/calendar.module.ts +0 -26
  480. package/projects/corecomponents/src/lib/components/card/card.component.ts +0 -94
  481. package/projects/corecomponents/src/lib/components/card/card.module.ts +0 -34
  482. package/projects/corecomponents/src/lib/components/carousel/carousel.component.ts +0 -128
  483. package/projects/corecomponents/src/lib/components/carousel/carousel.module.ts +0 -28
  484. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts +0 -392
  485. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts +0 -17
  486. package/projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts +0 -77
  487. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.component.ts +0 -99
  488. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.module.ts +0 -18
  489. package/projects/corecomponents/src/lib/components/co-dialog/animation.ts +0 -2
  490. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts +0 -130
  491. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts +0 -17
  492. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.component.ts +0 -50
  493. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.module.ts +0 -15
  494. package/projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts +0 -114
  495. package/projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts +0 -17
  496. package/projects/corecomponents/src/lib/components/color-picker/color-picker.component.ts +0 -40
  497. package/projects/corecomponents/src/lib/components/color-picker/color-picker.module.ts +0 -19
  498. package/projects/corecomponents/src/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.ts +0 -86
  499. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.module.ts +0 -37
  500. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.service.ts +0 -61
  501. package/projects/corecomponents/src/lib/components/core-dialog/core-dynamic-component.service.ts +0 -101
  502. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.component.ts +0 -102
  503. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.module.ts +0 -23
  504. package/projects/corecomponents/src/lib/components/filter-item/filter-item-viewmodel.ts +0 -20
  505. package/projects/corecomponents/src/lib/components/filter-item/filter-item.component.ts +0 -715
  506. package/projects/corecomponents/src/lib/components/filter-item/filter-item.module.ts +0 -42
  507. package/projects/corecomponents/src/lib/components/filter-item/filter-viewmodel.ts +0 -11
  508. package/projects/corecomponents/src/lib/components/form/form.component.ts +0 -211
  509. package/projects/corecomponents/src/lib/components/form/form.module.ts +0 -22
  510. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.component.ts +0 -62
  511. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.module.ts +0 -21
  512. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.component.ts +0 -28
  513. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.module.ts +0 -17
  514. package/projects/corecomponents/src/lib/components/icon/icon-cache.service.ts +0 -57
  515. package/projects/corecomponents/src/lib/components/icon/icon.component.ts +0 -54
  516. package/projects/corecomponents/src/lib/components/icon/icon.module.ts +0 -24
  517. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.component.ts +0 -75
  518. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.module.ts +0 -21
  519. package/projects/corecomponents/src/lib/components/image/image.component.ts +0 -51
  520. package/projects/corecomponents/src/lib/components/image/image.module.ts +0 -12
  521. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts +0 -85
  522. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts +0 -17
  523. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts +0 -103
  524. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts +0 -24
  525. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.component.ts +0 -155
  526. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.module.ts +0 -25
  527. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts +0 -378
  528. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts +0 -20
  529. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts +0 -86
  530. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts +0 -17
  531. package/projects/corecomponents/src/lib/components/input-scanner/bar-code-scanner.ts +0 -25
  532. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.component.ts +0 -89
  533. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.module.ts +0 -19
  534. package/projects/corecomponents/src/lib/components/input-scanner/scanner.service.ts +0 -28
  535. package/projects/corecomponents/src/lib/components/input-search/input-search.component.ts +0 -85
  536. package/projects/corecomponents/src/lib/components/input-search/input-search.module.ts +0 -20
  537. package/projects/corecomponents/src/lib/components/input-text/input-text.component.ts +0 -294
  538. package/projects/corecomponents/src/lib/components/input-text/input-text.module.ts +0 -31
  539. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts +0 -81
  540. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts +0 -25
  541. package/projects/corecomponents/src/lib/components/input-time/input-time.component.ts +0 -72
  542. package/projects/corecomponents/src/lib/components/input-time/input-time.module.ts +0 -22
  543. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator-level.enum.ts +0 -5
  544. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts +0 -42
  545. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts +0 -13
  546. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-multiselect-popup.component.ts +0 -132
  547. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-popup.component.ts +0 -281
  548. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.component.ts +0 -257
  549. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.module.ts +0 -35
  550. package/projects/corecomponents/src/lib/components/loader/loader.component.ts +0 -82
  551. package/projects/corecomponents/src/lib/components/loader/loader.module.ts +0 -17
  552. package/projects/corecomponents/src/lib/components/pagination/paginate.pipe.ts +0 -116
  553. package/projects/corecomponents/src/lib/components/pagination/pagination-instance.ts +0 -18
  554. package/projects/corecomponents/src/lib/components/pagination/pagination.component.ts +0 -160
  555. package/projects/corecomponents/src/lib/components/pagination/pagination.module.ts +0 -26
  556. package/projects/corecomponents/src/lib/components/pagination/pagination.service.ts +0 -99
  557. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.component.ts +0 -178
  558. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.module.ts +0 -17
  559. package/projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts +0 -4
  560. package/projects/corecomponents/src/lib/components/popup/interface/popup-button.ts +0 -14
  561. package/projects/corecomponents/src/lib/components/popup/interface/popup-close-event.ts +0 -8
  562. package/projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts +0 -70
  563. package/projects/corecomponents/src/lib/components/popup/interface/popup.ts +0 -17
  564. package/projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts +0 -11
  565. package/projects/corecomponents/src/lib/components/popup/model/popup-window.ts +0 -51
  566. package/projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts +0 -61
  567. package/projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts +0 -49
  568. package/projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts +0 -222
  569. package/projects/corecomponents/src/lib/components/popup/popup.module.ts +0 -48
  570. package/projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts +0 -98
  571. package/projects/corecomponents/src/lib/components/popup/service/prompt.service.ts +0 -127
  572. package/projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts +0 -36
  573. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.component.ts +0 -24
  574. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.module.ts +0 -17
  575. package/projects/corecomponents/src/lib/components/simple-grid/base-simple-grid.component.ts +0 -194
  576. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-cell.component.ts +0 -192
  577. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts +0 -143
  578. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts +0 -489
  579. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts +0 -38
  580. package/projects/corecomponents/src/lib/components/tile/tile.component.ts +0 -71
  581. package/projects/corecomponents/src/lib/components/tile/tile.module.ts +0 -21
  582. package/projects/corecomponents/src/lib/components/tile-select/tile-select.component.ts +0 -36
  583. package/projects/corecomponents/src/lib/components/tile-select/tile-select.module.ts +0 -19
  584. package/projects/corecomponents/src/lib/components/tooltip/tooltip.component.ts +0 -96
  585. package/projects/corecomponents/src/lib/components/tooltip/tooltip.module.ts +0 -17
  586. package/projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts +0 -45
  587. package/projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts +0 -24
  588. package/projects/corecomponents/src/lib/components/view-mode-buttons/content-view-mode.enum.ts +0 -9
  589. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.component.ts +0 -63
  590. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.module.ts +0 -19
  591. package/projects/corecomponents/src/lib/core/abstract/collection-based-component.ts +0 -488
  592. package/projects/corecomponents/src/lib/core/config/device-environment.ts +0 -26
  593. package/projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts +0 -4
  594. package/projects/corecomponents/src/lib/core/constant/java-max-int.ts +0 -1
  595. package/projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts +0 -46
  596. package/projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts +0 -35
  597. package/projects/corecomponents/src/lib/core/enum/co-direction.ts +0 -7
  598. package/projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts +0 -5
  599. package/projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts +0 -9
  600. package/projects/corecomponents/src/lib/core/enum/co-orientation.ts +0 -18
  601. package/projects/corecomponents/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +0 -10
  602. package/projects/corecomponents/src/lib/core/enum/color-sequence-name.enum.ts +0 -5
  603. package/projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts +0 -299
  604. package/projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts +0 -15
  605. package/projects/corecomponents/src/lib/core/enum/file-type.enum.ts +0 -9
  606. package/projects/corecomponents/src/lib/core/enum/filterItem-mode.enum.ts +0 -57
  607. package/projects/corecomponents/src/lib/core/enum/float-label-type.enum.ts +0 -5
  608. package/projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts +0 -6
  609. package/projects/corecomponents/src/lib/core/enum/input-text-type.enum.ts +0 -4
  610. package/projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts +0 -72
  611. package/projects/corecomponents/src/lib/core/enum/keyboard-key.enum.ts +0 -78
  612. package/projects/corecomponents/src/lib/core/enum/logical-operator-type.enum.ts +0 -5
  613. package/projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts +0 -5
  614. package/projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts +0 -10
  615. package/projects/corecomponents/src/lib/core/enum/popup-type.enum.ts +0 -9
  616. package/projects/corecomponents/src/lib/core/enum/schedule-view.enum.ts +0 -14
  617. package/projects/corecomponents/src/lib/core/enum/search-data-type.ts +0 -4
  618. package/projects/corecomponents/src/lib/core/enum/search-property-state.ts +0 -5
  619. package/projects/corecomponents/src/lib/core/enum/sort-data-type.ts +0 -6
  620. package/projects/corecomponents/src/lib/core/enum/sort-direction.ts +0 -9
  621. package/projects/corecomponents/src/lib/core/enum/table-name.enum.ts +0 -79
  622. package/projects/corecomponents/src/lib/core/enum/value-comparison-type.ts +0 -11
  623. package/projects/corecomponents/src/lib/core/function/any-nill.function.ts +0 -6
  624. package/projects/corecomponents/src/lib/core/function/is-nill.function.ts +0 -4
  625. package/projects/corecomponents/src/lib/core/function/none-nill.function.ts +0 -16
  626. package/projects/corecomponents/src/lib/core/function/not-nill.function.ts +0 -4
  627. package/projects/corecomponents/src/lib/core/interface/search-property.ts +0 -15
  628. package/projects/corecomponents/src/lib/core/interface/sort-property.ts +0 -16
  629. package/projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts +0 -222
  630. package/projects/corecomponents/src/lib/core/model/check-precision-and-scale-result.ts +0 -5
  631. package/projects/corecomponents/src/lib/core/model/check-within-stepped-bounds-result.ts +0 -8
  632. package/projects/corecomponents/src/lib/core/model/co-document-right.bo.ts +0 -9
  633. package/projects/corecomponents/src/lib/core/model/co-document.bo.ts +0 -193
  634. package/projects/corecomponents/src/lib/core/model/color-sequence.ts +0 -39
  635. package/projects/corecomponents/src/lib/core/model/color.ts +0 -29
  636. package/projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts +0 -299
  637. package/projects/corecomponents/src/lib/core/model/element-position.ts +0 -14
  638. package/projects/corecomponents/src/lib/core/model/event/number-prompt-result-event.ts +0 -10
  639. package/projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts +0 -10
  640. package/projects/corecomponents/src/lib/core/model/numerical-range.ts +0 -19
  641. package/projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts +0 -31
  642. package/projects/corecomponents/src/lib/core/service/form-master.service.ts +0 -119
  643. package/projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts +0 -15
  644. package/projects/corecomponents/src/lib/core/utils/array-utils.spec.ts +0 -588
  645. package/projects/corecomponents/src/lib/core/utils/array-utils.ts +0 -301
  646. package/projects/corecomponents/src/lib/core/utils/browser-utils.ts +0 -123
  647. package/projects/corecomponents/src/lib/core/utils/business-object-utils.ts +0 -42
  648. package/projects/corecomponents/src/lib/core/utils/css-utils.ts +0 -276
  649. package/projects/corecomponents/src/lib/core/utils/direction-enum-utils.ts +0 -15
  650. package/projects/corecomponents/src/lib/core/utils/element-ref.utils.ts +0 -12
  651. package/projects/corecomponents/src/lib/core/utils/event-utils.ts +0 -61
  652. package/projects/corecomponents/src/lib/core/utils/file-utils.ts +0 -291
  653. package/projects/corecomponents/src/lib/core/utils/number-utils.spec.ts +0 -657
  654. package/projects/corecomponents/src/lib/core/utils/number-utils.ts +0 -350
  655. package/projects/corecomponents/src/lib/core/utils/object-utils.ts +0 -205
  656. package/projects/corecomponents/src/lib/core/utils/parameter-value-conversion-utils.ts +0 -116
  657. package/projects/corecomponents/src/lib/core/utils/search-utils.ts +0 -121
  658. package/projects/corecomponents/src/lib/core/utils/sort-utils.ts +0 -108
  659. package/projects/corecomponents/src/lib/core/utils/string-utils.ts +0 -100
  660. package/projects/corecomponents/src/lib/core/validator/email.validator.ts +0 -10
  661. package/projects/corecomponents/src/lib/core/validator/equal.validator.ts +0 -14
  662. package/projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts +0 -11
  663. package/projects/corecomponents/src/lib/core/validator/password.validator.ts +0 -35
  664. package/projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts +0 -14
  665. package/projects/corecomponents/src/lib/core/validator/required.validator.ts +0 -9
  666. package/projects/corecomponents/src/lib/directives/align-with/align-with.directive.ts +0 -158
  667. package/projects/corecomponents/src/lib/directives/align-with/align-with.module.ts +0 -13
  668. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside-master.service.ts +0 -64
  669. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside.directive.ts +0 -72
  670. package/projects/corecomponents/src/lib/directives/clickoutside/clickoutside.module.ts +0 -17
  671. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.directive.ts +0 -55
  672. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.module.ts +0 -13
  673. package/projects/corecomponents/src/lib/directives/overlay/overlay-parent.directive.ts +0 -20
  674. package/projects/corecomponents/src/lib/directives/overlay/overlay.directive.ts +0 -170
  675. package/projects/corecomponents/src/lib/directives/overlay/overlay.module.ts +0 -16
  676. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.directive.ts +0 -42
  677. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.module.ts +0 -13
  678. package/projects/corecomponents/src/lib/directives/resize/resize-detect.directive.ts +0 -54
  679. package/projects/corecomponents/src/lib/directives/resize/resize-detect.module.ts +0 -13
  680. package/projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts +0 -28
  681. package/projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts +0 -217
  682. package/projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts +0 -116
  683. package/projects/corecomponents/src/lib/directives/ripple/ripple.module.ts +0 -24
  684. package/projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts +0 -129
  685. package/projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts +0 -37
  686. package/projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts +0 -84
  687. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.directive.ts +0 -170
  688. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.module.ts +0 -16
  689. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts +0 -35
  690. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts +0 -14
  691. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.directive.ts +0 -71
  692. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.module.ts +0 -13
  693. package/projects/corecomponents/src/lib/directives/tooltip/tooltip-directive.module.ts +0 -17
  694. package/projects/corecomponents/src/lib/directives/tooltip/tooltip.directive.ts +0 -94
  695. package/projects/corecomponents/src/lib/interfaces/dialog-response.interface.ts +0 -7
  696. package/projects/corecomponents/src/lib/interfaces/lov-options.component.interface.ts +0 -4
  697. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter-component-interface-name.ts +0 -6
  698. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter.component.interface.ts +0 -10
  699. package/projects/corecomponents/src/lib/model/data-item.ts +0 -9
  700. package/projects/corecomponents/src/lib/model/enum/app-button-type.enum.ts +0 -9
  701. package/projects/corecomponents/src/lib/model/enum/app-popup-type.enum.ts +0 -6
  702. package/projects/corecomponents/src/lib/model/enum/currency-code.enum.ts +0 -7
  703. package/projects/corecomponents/src/lib/model/enum/language-code.enum.ts +0 -8
  704. package/projects/corecomponents/src/lib/model/map/currencies.map.ts +0 -6
  705. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.component.ts +0 -115
  706. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.css +0 -34
  707. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-manager.service.ts +0 -414
  708. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop.module.ts +0 -20
  709. package/projects/corecomponents/src/lib/modules/drag-drop/draggable.directive.ts +0 -70
  710. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drag-event.ts +0 -5
  711. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drop-event.ts +0 -9
  712. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +0 -7
  713. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container.ts +0 -9
  714. package/projects/corecomponents/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +0 -5
  715. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.module.ts +0 -14
  716. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.service.ts +0 -36
  717. package/projects/corecomponents/src/lib/modules/pagination/paginate.pipe.ts +0 -116
  718. package/projects/corecomponents/src/lib/modules/pagination/pagination-instance.ts +0 -18
  719. package/projects/corecomponents/src/lib/modules/pagination/pagination.component.ts +0 -229
  720. package/projects/corecomponents/src/lib/modules/pagination/pagination.module.ts +0 -25
  721. package/projects/corecomponents/src/lib/modules/pagination/pagination.service.ts +0 -98
  722. package/projects/corecomponents/src/lib/pipes/append.pipe.module.ts +0 -13
  723. package/projects/corecomponents/src/lib/pipes/append.pipe.ts +0 -17
  724. package/projects/corecomponents/src/lib/pipes/co-currency-pipe.module.ts +0 -13
  725. package/projects/corecomponents/src/lib/pipes/co-currency.pipe.ts +0 -45
  726. package/projects/corecomponents/src/lib/pipes/emun-keys.pipe.ts +0 -20
  727. package/projects/corecomponents/src/lib/pipes/enum-keys-pipe.module.ts +0 -13
  728. package/projects/corecomponents/src/lib/pipes/file-type-image-pipe.module.ts +0 -13
  729. package/projects/corecomponents/src/lib/pipes/file-type-image.pipe.ts +0 -45
  730. package/projects/corecomponents/src/lib/pipes/filter.pipe.module.ts +0 -13
  731. package/projects/corecomponents/src/lib/pipes/filter.pipe.ts +0 -14
  732. package/projects/corecomponents/src/lib/pipes/master-pipe.module.ts +0 -13
  733. package/projects/corecomponents/src/lib/pipes/master.pipe.ts +0 -71
  734. package/projects/corecomponents/src/lib/pipes/prepend.pipe.module.ts +0 -13
  735. package/projects/corecomponents/src/lib/pipes/prepend.pipe.ts +0 -17
  736. package/projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts +0 -14
  737. package/projects/corecomponents/src/lib/pipes/price-display.pipe.ts +0 -20
  738. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.module.ts +0 -13
  739. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.ts +0 -14
  740. package/projects/corecomponents/src/lib/pipes/ucfirst-pipe.module.ts +0 -13
  741. package/projects/corecomponents/src/lib/pipes/ucfirst.pipe.ts +0 -14
  742. package/projects/corecomponents/src/lib/service/base-module-screen-config.service.ts +0 -241
  743. package/projects/corecomponents/src/lib/service/base-module.service.ts +0 -50
  744. package/projects/corecomponents/src/lib/service/color-sequence.service.ts +0 -20
  745. package/projects/corecomponents/src/lib/service/overlay.service.ts +0 -81
  746. package/projects/corecomponents/src/lib/translation/core-components-translation.module.ts +0 -27
  747. package/projects/corecomponents/src/lib/translation/core-components-translation.service.ts +0 -15
  748. package/projects/corecomponents/src/lib/translation/core-dictionary.service.ts +0 -27
  749. package/projects/corecomponents/src/lib/translation/core-localize.pipe.ts +0 -21
  750. package/projects/corecomponents/src/public-api.ts +0 -137
  751. package/projects/corecomponents/src/res/icons/Barcode.svg +0 -1
  752. package/projects/corecomponents/src/res/icons/CashRegister.svg +0 -1
  753. package/projects/corecomponents/src/res/icons/CirclePlusSkinny.svg +0 -1
  754. package/projects/corecomponents/src/res/icons/CrossSkinny.svg +0 -1
  755. package/projects/corecomponents/src/res/icons/FolderArrow.svg +0 -1
  756. package/projects/corecomponents/src/res/icons/Home.svg +0 -1
  757. package/projects/corecomponents/src/res/icons/POS.svg +0 -1
  758. package/projects/corecomponents/src/res/icons/Shop.svg +0 -1
  759. package/projects/corecomponents/src/res/icons/SinglePerson.svg +0 -1
  760. package/projects/corecomponents/src/res/icons/Star.svg +0 -1
  761. package/projects/corecomponents/src/res/icons/TrashBin.svg +0 -1
  762. package/projects/corecomponents/src/res/icons/account.svg +0 -1
  763. package/projects/corecomponents/src/res/icons/account_round_open.svg +0 -1
  764. package/projects/corecomponents/src/res/icons/activities.svg +0 -1
  765. package/projects/corecomponents/src/res/icons/add_to_cart_drop.svg +0 -1
  766. package/projects/corecomponents/src/res/icons/arrow_down.svg +0 -1
  767. package/projects/corecomponents/src/res/icons/arrow_fat_left.svg +0 -1
  768. package/projects/corecomponents/src/res/icons/arrow_fat_right.svg +0 -1
  769. package/projects/corecomponents/src/res/icons/arrow_left.svg +0 -4
  770. package/projects/corecomponents/src/res/icons/arrow_left_round_open.svg +0 -1
  771. package/projects/corecomponents/src/res/icons/arrow_point_down.svg +0 -6
  772. package/projects/corecomponents/src/res/icons/arrow_point_left.svg +0 -8
  773. package/projects/corecomponents/src/res/icons/arrow_point_right.svg +0 -8
  774. package/projects/corecomponents/src/res/icons/arrow_point_up.svg +0 -8
  775. package/projects/corecomponents/src/res/icons/arrow_right_round_open.svg +0 -1
  776. package/projects/corecomponents/src/res/icons/arrow_scroll_down.svg +0 -6
  777. package/projects/corecomponents/src/res/icons/arrow_scroll_left.svg +0 -22
  778. package/projects/corecomponents/src/res/icons/arrow_scroll_right.svg +0 -22
  779. package/projects/corecomponents/src/res/icons/arrow_scroll_up.svg +0 -6
  780. package/projects/corecomponents/src/res/icons/arrow_up.svg +0 -3
  781. package/projects/corecomponents/src/res/icons/article.svg +0 -1
  782. package/projects/corecomponents/src/res/icons/article_with_fold.svg +0 -1
  783. package/projects/corecomponents/src/res/icons/asterisk_small.svg +0 -1
  784. package/projects/corecomponents/src/res/icons/attachments.svg +0 -1
  785. package/projects/corecomponents/src/res/icons/back_to_top.svg +0 -1
  786. package/projects/corecomponents/src/res/icons/big_mac.svg +0 -6
  787. package/projects/corecomponents/src/res/icons/boxes.svg +0 -1
  788. package/projects/corecomponents/src/res/icons/brush.svg +0 -1
  789. package/projects/corecomponents/src/res/icons/brush_round_open.svg +0 -1
  790. package/projects/corecomponents/src/res/icons/building_columns.svg +0 -1
  791. package/projects/corecomponents/src/res/icons/businessrules.svg +0 -1
  792. package/projects/corecomponents/src/res/icons/calendar.svg +0 -1
  793. package/projects/corecomponents/src/res/icons/calendar_day.svg +0 -37
  794. package/projects/corecomponents/src/res/icons/calendar_day_regular.svg +0 -1
  795. package/projects/corecomponents/src/res/icons/calendar_empty.svg +0 -16
  796. package/projects/corecomponents/src/res/icons/calendar_range.svg +0 -1
  797. package/projects/corecomponents/src/res/icons/calendar_round_open.svg +0 -16
  798. package/projects/corecomponents/src/res/icons/camera.svg +0 -1
  799. package/projects/corecomponents/src/res/icons/cancel.svg +0 -1
  800. package/projects/corecomponents/src/res/icons/cancel_round_filled.svg +0 -1
  801. package/projects/corecomponents/src/res/icons/cancel_round_open.svg +0 -1
  802. package/projects/corecomponents/src/res/icons/cart.svg +0 -1
  803. package/projects/corecomponents/src/res/icons/cart_open.svg +0 -8
  804. package/projects/corecomponents/src/res/icons/case_manager.svg +0 -1
  805. package/projects/corecomponents/src/res/icons/cash_register_simple.svg +0 -1
  806. package/projects/corecomponents/src/res/icons/change_location.svg +0 -1
  807. package/projects/corecomponents/src/res/icons/check.svg +0 -1
  808. package/projects/corecomponents/src/res/icons/check_duotone.svg +0 -1
  809. package/projects/corecomponents/src/res/icons/check_round.svg +0 -1
  810. package/projects/corecomponents/src/res/icons/check_round_open.svg +0 -10
  811. package/projects/corecomponents/src/res/icons/check_simple.svg +0 -3
  812. package/projects/corecomponents/src/res/icons/check_thin.svg +0 -1
  813. package/projects/corecomponents/src/res/icons/chevron_down_regular.svg +0 -1
  814. package/projects/corecomponents/src/res/icons/chevron_up_regular.svg +0 -1
  815. package/projects/corecomponents/src/res/icons/client.svg +0 -1
  816. package/projects/corecomponents/src/res/icons/clock.svg +0 -1
  817. package/projects/corecomponents/src/res/icons/clockArrow.svg +0 -1
  818. package/projects/corecomponents/src/res/icons/cogWheelPlus.svg +0 -1
  819. package/projects/corecomponents/src/res/icons/cogWheels.svg +0 -1
  820. package/projects/corecomponents/src/res/icons/column_options.svg +0 -18
  821. package/projects/corecomponents/src/res/icons/company.svg +0 -1
  822. package/projects/corecomponents/src/res/icons/company_flat.svg +0 -4
  823. package/projects/corecomponents/src/res/icons/configurable.svg +0 -1
  824. package/projects/corecomponents/src/res/icons/consultant.svg +0 -1
  825. package/projects/corecomponents/src/res/icons/copy.svg +0 -1
  826. package/projects/corecomponents/src/res/icons/crosshair_1.svg +0 -1
  827. package/projects/corecomponents/src/res/icons/dashboard.svg +0 -1
  828. package/projects/corecomponents/src/res/icons/delivery_method.svg +0 -32
  829. package/projects/corecomponents/src/res/icons/delivery_status_uncheck.svg +0 -9
  830. package/projects/corecomponents/src/res/icons/delivery_truck.svg +0 -1
  831. package/projects/corecomponents/src/res/icons/detail_record.svg +0 -1
  832. package/projects/corecomponents/src/res/icons/detail_view.svg +0 -1
  833. package/projects/corecomponents/src/res/icons/dictionary.svg +0 -1
  834. package/projects/corecomponents/src/res/icons/documentWrench.svg +0 -1
  835. package/projects/corecomponents/src/res/icons/documents.svg +0 -1
  836. package/projects/corecomponents/src/res/icons/dollar.svg +0 -1
  837. package/projects/corecomponents/src/res/icons/download.svg +0 -1
  838. package/projects/corecomponents/src/res/icons/dropdown.svg +0 -4
  839. package/projects/corecomponents/src/res/icons/dropzone.svg +0 -1
  840. package/projects/corecomponents/src/res/icons/edit_pencil.svg +0 -1
  841. package/projects/corecomponents/src/res/icons/edit_pencil_circle.svg +0 -1
  842. package/projects/corecomponents/src/res/icons/edit_pencil_round.svg +0 -11
  843. package/projects/corecomponents/src/res/icons/edit_pencil_simple.svg +0 -16
  844. package/projects/corecomponents/src/res/icons/email.svg +0 -1
  845. package/projects/corecomponents/src/res/icons/email_round_open.svg +0 -6
  846. package/projects/corecomponents/src/res/icons/employee.svg +0 -1
  847. package/projects/corecomponents/src/res/icons/employee_two.svg +0 -1
  848. package/projects/corecomponents/src/res/icons/employer.svg +0 -1
  849. package/projects/corecomponents/src/res/icons/employment.svg +0 -1
  850. package/projects/corecomponents/src/res/icons/employment_end.svg +0 -7
  851. package/projects/corecomponents/src/res/icons/equal.svg +0 -1
  852. package/projects/corecomponents/src/res/icons/euro.svg +0 -1
  853. package/projects/corecomponents/src/res/icons/exclamation.svg +0 -1
  854. package/projects/corecomponents/src/res/icons/exclamation_round_open.svg +0 -1
  855. package/projects/corecomponents/src/res/icons/eye_circle.svg +0 -1
  856. package/projects/corecomponents/src/res/icons/eye_circle_large.svg +0 -1
  857. package/projects/corecomponents/src/res/icons/eye_round_filled.svg +0 -11
  858. package/projects/corecomponents/src/res/icons/factory.svg +0 -1
  859. package/projects/corecomponents/src/res/icons/fasttrack.svg +0 -1
  860. package/projects/corecomponents/src/res/icons/filter.svg +0 -1
  861. package/projects/corecomponents/src/res/icons/finish.svg +0 -1
  862. package/projects/corecomponents/src/res/icons/fixed_option_value_tree.svg +0 -1
  863. package/projects/corecomponents/src/res/icons/fixed_tree_option_value.svg +0 -1
  864. package/projects/corecomponents/src/res/icons/floppy_disk_solid.svg +0 -1
  865. package/projects/corecomponents/src/res/icons/folder_arrow_in.svg +0 -8
  866. package/projects/corecomponents/src/res/icons/formula.svg +0 -1
  867. package/projects/corecomponents/src/res/icons/fullscreen.svg +0 -6
  868. package/projects/corecomponents/src/res/icons/gear_double.svg +0 -21
  869. package/projects/corecomponents/src/res/icons/global_search.svg +0 -45
  870. package/projects/corecomponents/src/res/icons/globe.svg +0 -1
  871. package/projects/corecomponents/src/res/icons/greater_than.svg +0 -1
  872. package/projects/corecomponents/src/res/icons/groupby.svg +0 -1
  873. package/projects/corecomponents/src/res/icons/hamburger.svg +0 -1
  874. package/projects/corecomponents/src/res/icons/hand_pointer.svg +0 -1
  875. package/projects/corecomponents/src/res/icons/hbarchart.svg +0 -6
  876. package/projects/corecomponents/src/res/icons/home_circle.svg +0 -9
  877. package/projects/corecomponents/src/res/icons/home_open.svg +0 -7
  878. package/projects/corecomponents/src/res/icons/home_round_open.svg +0 -11
  879. package/projects/corecomponents/src/res/icons/hourglass.svg +0 -1
  880. package/projects/corecomponents/src/res/icons/icon_3d.svg +0 -1
  881. package/projects/corecomponents/src/res/icons/id.svg +0 -1
  882. package/projects/corecomponents/src/res/icons/image.svg +0 -1
  883. package/projects/corecomponents/src/res/icons/incoming_storage.svg +0 -1
  884. package/projects/corecomponents/src/res/icons/information.svg +0 -1
  885. package/projects/corecomponents/src/res/icons/information_round_open.svg +0 -6
  886. package/projects/corecomponents/src/res/icons/input_multiplechoice.svg +0 -1
  887. package/projects/corecomponents/src/res/icons/input_text.svg +0 -1
  888. package/projects/corecomponents/src/res/icons/input_textarea.svg +0 -1
  889. package/projects/corecomponents/src/res/icons/inventory.svg +0 -1
  890. package/projects/corecomponents/src/res/icons/invoice.svg +0 -20
  891. package/projects/corecomponents/src/res/icons/ione_logo.svg +0 -1
  892. package/projects/corecomponents/src/res/icons/ione_logo_fat.svg +0 -1
  893. package/projects/corecomponents/src/res/icons/ione_status_next.svg +0 -43
  894. package/projects/corecomponents/src/res/icons/ione_workflow.svg +0 -62
  895. package/projects/corecomponents/src/res/icons/keyboard.svg +0 -1
  896. package/projects/corecomponents/src/res/icons/keychain.svg +0 -1
  897. package/projects/corecomponents/src/res/icons/label.svg +0 -5
  898. package/projects/corecomponents/src/res/icons/label_round_open.svg +0 -6
  899. package/projects/corecomponents/src/res/icons/landmark_flag.svg +0 -1
  900. package/projects/corecomponents/src/res/icons/library.svg +0 -21
  901. package/projects/corecomponents/src/res/icons/linechart.svg +0 -1
  902. package/projects/corecomponents/src/res/icons/link_circle.svg +0 -1
  903. package/projects/corecomponents/src/res/icons/linked_products.svg +0 -1
  904. package/projects/corecomponents/src/res/icons/list_view.svg +0 -8
  905. package/projects/corecomponents/src/res/icons/location.svg +0 -1
  906. package/projects/corecomponents/src/res/icons/lock.svg +0 -1
  907. package/projects/corecomponents/src/res/icons/lock_round_open.svg +0 -8
  908. package/projects/corecomponents/src/res/icons/logo.svg +0 -1
  909. package/projects/corecomponents/src/res/icons/logout.svg +0 -1
  910. package/projects/corecomponents/src/res/icons/magic_wand.svg +0 -1
  911. package/projects/corecomponents/src/res/icons/magnifier.svg +0 -5
  912. package/projects/corecomponents/src/res/icons/manager.svg +0 -12
  913. package/projects/corecomponents/src/res/icons/mask.svg +0 -1
  914. package/projects/corecomponents/src/res/icons/master_detail.svg +0 -1
  915. package/projects/corecomponents/src/res/icons/material_circle_large.svg +0 -1
  916. package/projects/corecomponents/src/res/icons/medal_bronze.svg +0 -23
  917. package/projects/corecomponents/src/res/icons/medal_gold.svg +0 -23
  918. package/projects/corecomponents/src/res/icons/medal_silver.svg +0 -23
  919. package/projects/corecomponents/src/res/icons/medical_officer.svg +0 -14
  920. package/projects/corecomponents/src/res/icons/microphone.svg +0 -1
  921. package/projects/corecomponents/src/res/icons/minus_round_open.svg +0 -1
  922. package/projects/corecomponents/src/res/icons/minus_simple.svg +0 -1
  923. package/projects/corecomponents/src/res/icons/mobile.svg +0 -1
  924. package/projects/corecomponents/src/res/icons/multi_select_check.svg +0 -10
  925. package/projects/corecomponents/src/res/icons/new_task.svg +0 -1
  926. package/projects/corecomponents/src/res/icons/not_equal.svg +0 -4
  927. package/projects/corecomponents/src/res/icons/note.svg +0 -1
  928. package/projects/corecomponents/src/res/icons/note_bordered.svg +0 -1
  929. package/projects/corecomponents/src/res/icons/notification.svg +0 -1
  930. package/projects/corecomponents/src/res/icons/option.svg +0 -1
  931. package/projects/corecomponents/src/res/icons/optionset.svg +0 -1
  932. package/projects/corecomponents/src/res/icons/order.svg +0 -1
  933. package/projects/corecomponents/src/res/icons/orderpicking.svg +0 -1
  934. package/projects/corecomponents/src/res/icons/outgoing_storage.svg +0 -1
  935. package/projects/corecomponents/src/res/icons/over_booking.svg +0 -1
  936. package/projects/corecomponents/src/res/icons/pause_circle.svg +0 -12
  937. package/projects/corecomponents/src/res/icons/pen_to_square_solid.svg +0 -1
  938. package/projects/corecomponents/src/res/icons/pencil_round_open.svg +0 -10
  939. package/projects/corecomponents/src/res/icons/phone.svg +0 -1
  940. package/projects/corecomponents/src/res/icons/phone_round_open.svg +0 -10
  941. package/projects/corecomponents/src/res/icons/piechart.svg +0 -24
  942. package/projects/corecomponents/src/res/icons/pin.svg +0 -9
  943. package/projects/corecomponents/src/res/icons/pin_round_open.svg +0 -11
  944. package/projects/corecomponents/src/res/icons/play_circle.svg +0 -1
  945. package/projects/corecomponents/src/res/icons/plus_round.svg +0 -9
  946. package/projects/corecomponents/src/res/icons/plus_round_open.svg +0 -1
  947. package/projects/corecomponents/src/res/icons/plus_simple.svg +0 -1
  948. package/projects/corecomponents/src/res/icons/plus_skinny.svg +0 -8
  949. package/projects/corecomponents/src/res/icons/plus_solid.svg +0 -1
  950. package/projects/corecomponents/src/res/icons/plus_stars.svg +0 -1
  951. package/projects/corecomponents/src/res/icons/pointer.svg +0 -7
  952. package/projects/corecomponents/src/res/icons/pointer_3d.svg +0 -8
  953. package/projects/corecomponents/src/res/icons/pointer_filled.svg +0 -6
  954. package/projects/corecomponents/src/res/icons/positioning.svg +0 -1
  955. package/projects/corecomponents/src/res/icons/pregnancy.svg +0 -18
  956. package/projects/corecomponents/src/res/icons/preset.svg +0 -1
  957. package/projects/corecomponents/src/res/icons/print.svg +0 -1
  958. package/projects/corecomponents/src/res/icons/product_properties.svg +0 -1
  959. package/projects/corecomponents/src/res/icons/purchase.svg +0 -15
  960. package/projects/corecomponents/src/res/icons/qrcode.svg +0 -59
  961. package/projects/corecomponents/src/res/icons/question.svg +0 -1
  962. package/projects/corecomponents/src/res/icons/radio_uncheck.svg +0 -1
  963. package/projects/corecomponents/src/res/icons/range.svg +0 -1
  964. package/projects/corecomponents/src/res/icons/range_select.svg +0 -1
  965. package/projects/corecomponents/src/res/icons/rectangles.svg +0 -15
  966. package/projects/corecomponents/src/res/icons/refresh.svg +0 -1
  967. package/projects/corecomponents/src/res/icons/relations.svg +0 -20
  968. package/projects/corecomponents/src/res/icons/remark.svg +0 -1
  969. package/projects/corecomponents/src/res/icons/remark_round_open.svg +0 -6
  970. package/projects/corecomponents/src/res/icons/report_in_type.svg +0 -1
  971. package/projects/corecomponents/src/res/icons/resize.svg +0 -3
  972. package/projects/corecomponents/src/res/icons/resize_down.svg +0 -1
  973. package/projects/corecomponents/src/res/icons/resize_up.svg +0 -1
  974. package/projects/corecomponents/src/res/icons/return_goods.svg +0 -4
  975. package/projects/corecomponents/src/res/icons/returns.svg +0 -1
  976. package/projects/corecomponents/src/res/icons/rotate_left_solid.svg +0 -1
  977. package/projects/corecomponents/src/res/icons/save_disk.svg +0 -15
  978. package/projects/corecomponents/src/res/icons/save_skinny.svg +0 -3
  979. package/projects/corecomponents/src/res/icons/scale_balanced.svg +0 -1
  980. package/projects/corecomponents/src/res/icons/scanner.svg +0 -1
  981. package/projects/corecomponents/src/res/icons/search_round_open.svg +0 -9
  982. package/projects/corecomponents/src/res/icons/sections.svg +0 -1
  983. package/projects/corecomponents/src/res/icons/select_all_round.svg +0 -5
  984. package/projects/corecomponents/src/res/icons/services.svg +0 -1
  985. package/projects/corecomponents/src/res/icons/settings.svg +0 -20
  986. package/projects/corecomponents/src/res/icons/shopping_cart.svg +0 -1
  987. package/projects/corecomponents/src/res/icons/shopping_cart_nr.svg +0 -1
  988. package/projects/corecomponents/src/res/icons/shortcut.svg +0 -1
  989. package/projects/corecomponents/src/res/icons/skills.svg +0 -1
  990. package/projects/corecomponents/src/res/icons/slide_in.svg +0 -1
  991. package/projects/corecomponents/src/res/icons/slider_panel.svg +0 -7
  992. package/projects/corecomponents/src/res/icons/small_tiles.svg +0 -1
  993. package/projects/corecomponents/src/res/icons/smaller_than.svg +0 -1
  994. package/projects/corecomponents/src/res/icons/sort_asc.svg +0 -1
  995. package/projects/corecomponents/src/res/icons/sort_desc.svg +0 -1
  996. package/projects/corecomponents/src/res/icons/star_round_open.svg +0 -6
  997. package/projects/corecomponents/src/res/icons/status_active.svg +0 -1
  998. package/projects/corecomponents/src/res/icons/status_adoption.svg +0 -1
  999. package/projects/corecomponents/src/res/icons/status_fostercare.svg +0 -1
  1000. package/projects/corecomponents/src/res/icons/status_ill.svg +0 -10
  1001. package/projects/corecomponents/src/res/icons/status_leave.svg +0 -1
  1002. package/projects/corecomponents/src/res/icons/status_pregnancy.svg +0 -10
  1003. package/projects/corecomponents/src/res/icons/stock.svg +0 -1
  1004. package/projects/corecomponents/src/res/icons/stock_management.svg +0 -25
  1005. package/projects/corecomponents/src/res/icons/storage.svg +0 -1
  1006. package/projects/corecomponents/src/res/icons/supervisor.svg +0 -1
  1007. package/projects/corecomponents/src/res/icons/supplier.svg +0 -18
  1008. package/projects/corecomponents/src/res/icons/surgery.svg +0 -35
  1009. package/projects/corecomponents/src/res/icons/tablechart.svg +0 -15
  1010. package/projects/corecomponents/src/res/icons/tag.svg +0 -1
  1011. package/projects/corecomponents/src/res/icons/talk_too_much.svg +0 -7
  1012. package/projects/corecomponents/src/res/icons/target.svg +0 -1
  1013. package/projects/corecomponents/src/res/icons/task.svg +0 -1
  1014. package/projects/corecomponents/src/res/icons/thick_lines.svg +0 -1
  1015. package/projects/corecomponents/src/res/icons/thin_lines.svg +0 -1
  1016. package/projects/corecomponents/src/res/icons/three_sixty_view.svg +0 -1
  1017. package/projects/corecomponents/src/res/icons/thumb_bronze.svg +0 -29
  1018. package/projects/corecomponents/src/res/icons/thumb_gold.svg +0 -29
  1019. package/projects/corecomponents/src/res/icons/thumb_silver.svg +0 -29
  1020. package/projects/corecomponents/src/res/icons/timeline.svg +0 -1
  1021. package/projects/corecomponents/src/res/icons/transaction_detail.svg +0 -19
  1022. package/projects/corecomponents/src/res/icons/transactions.svg +0 -12
  1023. package/projects/corecomponents/src/res/icons/trash_can_solid.svg +0 -1
  1024. package/projects/corecomponents/src/res/icons/triangle_down.svg +0 -1
  1025. package/projects/corecomponents/src/res/icons/triangle_large.svg +0 -5
  1026. package/projects/corecomponents/src/res/icons/triangle_left.svg +0 -1
  1027. package/projects/corecomponents/src/res/icons/triangle_right.svg +0 -1
  1028. package/projects/corecomponents/src/res/icons/triangle_up.svg +0 -1
  1029. package/projects/corecomponents/src/res/icons/truck.svg +0 -1
  1030. package/projects/corecomponents/src/res/icons/truck_calendar.svg +0 -15
  1031. package/projects/corecomponents/src/res/icons/undo_round_open.svg +0 -1
  1032. package/projects/corecomponents/src/res/icons/user.svg +0 -9
  1033. package/projects/corecomponents/src/res/icons/variants.svg +0 -1
  1034. package/projects/corecomponents/src/res/icons/vbarchart.svg +0 -6
  1035. package/projects/corecomponents/src/res/icons/view.svg +0 -1
  1036. package/projects/corecomponents/src/res/icons/warehouse.svg +0 -1
  1037. package/projects/corecomponents/src/res/icons/watermark.svg +0 -10
  1038. package/projects/corecomponents/src/res/icons/website.svg +0 -1
  1039. package/projects/corecomponents/src/res/icons/wizard.svg +0 -18
  1040. package/projects/corecomponents/src/res/icons/wms.svg +0 -24
  1041. package/projects/corecomponents/src/res/icons/work_in_progress.svg +0 -10
  1042. package/projects/corecomponents/src/res/icons/work_in_progress_round_open.svg +0 -9
  1043. package/projects/corecomponents/src/res/icons/wrench.svg +0 -4
  1044. package/projects/corecomponents/src/res/icons/x_axis.svg +0 -5
  1045. package/projects/corecomponents/src/res/icons/y_axis.svg +0 -5
  1046. package/projects/corecomponents/src/test.ts +0 -28
  1047. package/projects/corecomponents/tsconfig.lib.json +0 -20
  1048. package/projects/corecomponents/tsconfig.lib.prod.json +0 -16
  1049. package/projects/corecomponents/tsconfig.spec.json +0 -17
  1050. package/scripts/export.bat +0 -9
  1051. package/scripts/merge-icons.js +0 -39
  1052. package/scripts/publish.bat +0 -6
  1053. package/src/app/app.component.scss +0 -36
  1054. package/src/app/app.component.spec.ts +0 -31
  1055. package/src/app/app.component.ts +0 -559
  1056. package/src/app/app.module.ts +0 -145
  1057. package/src/app/components/button-showcase.component.ts +0 -82
  1058. package/src/app/components/carousel-3d-showcase.component.ts +0 -70
  1059. package/src/app/components/checkbox-showcase.component.ts +0 -56
  1060. package/src/app/components/co-dialog-showcase.component.ts +0 -189
  1061. package/src/app/components/co-simple-grid-test.component.ts +0 -146
  1062. package/src/app/components/filter-item-showcase.component.ts +0 -178
  1063. package/src/app/components/forms-showcase.component.ts +0 -703
  1064. package/src/app/components/icon-showcase.component.ts +0 -72
  1065. package/src/app/components/input-checkbox-showcase.component.ts +0 -87
  1066. package/src/app/components/input-date-picker-showcase.component.ts +0 -90
  1067. package/src/app/components/input-number-picker-showcase.component.ts +0 -125
  1068. package/src/app/components/input-radio-button-showcase.component.ts +0 -87
  1069. package/src/app/components/input-scanner-showcase.component.ts +0 -35
  1070. package/src/app/components/input-text-showcase.component.ts +0 -200
  1071. package/src/app/components/input-time-showcase.component.ts +0 -104
  1072. package/src/app/components/number-picker-showcase.component.ts +0 -17
  1073. package/src/app/components/simple-grid-showcase.component.ts +0 -60
  1074. package/src/app/model/data-item.ts +0 -9
  1075. package/src/app/model/enum/currency-code.enum.ts +0 -7
  1076. package/src/app/model/enum/language-code.enum.ts +0 -8
  1077. package/src/app/model/map/currencies.map.ts +0 -6
  1078. package/src/app/service/showcase-data.service.ts +0 -1110
  1079. package/src/assets/.gitkeep +0 -0
  1080. package/src/environments/environment.prod.ts +0 -3
  1081. package/src/environments/environment.ts +0 -16
  1082. package/src/favicon.ico +0 -0
  1083. package/src/index.html +0 -13
  1084. package/src/main.ts +0 -12
  1085. package/src/polyfills.ts +0 -65
  1086. package/src/styles.scss +0 -56
  1087. package/src/test.ts +0 -27
  1088. package/tsconfig.app.json +0 -15
  1089. package/tsconfig.json +0 -37
  1090. package/tsconfig.spec.json +0 -18
  1091. /package/{projects/corecomponents/src/lib → lib}/components/article-tile/article-tile.component.scss +0 -0
  1092. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_layout.scss +0 -0
  1093. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_material-definition.scss +0 -0
  1094. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_theme.scss +0 -0
  1095. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/material.scss +0 -0
  1096. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_co-ripple.scss +0 -0
  1097. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_layout.scss +0 -0
  1098. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_material-definition.scss +0 -0
  1099. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_theme.scss +0 -0
  1100. /package/{projects/corecomponents/src/lib → lib}/components/button/style/material.scss +0 -0
  1101. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_layout.scss +0 -0
  1102. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_material-definition.scss +0 -0
  1103. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_theme.scss +0 -0
  1104. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/material.scss +0 -0
  1105. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_layout.scss +0 -0
  1106. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_material-definition.scss +0 -0
  1107. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_theme.scss +0 -0
  1108. /package/{projects/corecomponents/src/lib → lib}/components/card/style/material.scss +0 -0
  1109. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_layout.scss +0 -0
  1110. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_material-definition.scss +0 -0
  1111. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_theme.scss +0 -0
  1112. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/material.scss +0 -0
  1113. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_layout.scss +0 -0
  1114. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_material-definition.scss +0 -0
  1115. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_theme.scss +0 -0
  1116. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/material.scss +0 -0
  1117. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_layout.scss +0 -0
  1118. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_material-definition.scss +0 -0
  1119. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_theme.scss +0 -0
  1120. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/material.scss +0 -0
  1121. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_layout.scss +0 -0
  1122. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_material-definition.scss +0 -0
  1123. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_theme.scss +0 -0
  1124. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/material.scss +0 -0
  1125. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_layout.scss +0 -0
  1126. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_material-definition.scss +0 -0
  1127. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_theme.scss +0 -0
  1128. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/material.scss +0 -0
  1129. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_layout.scss +0 -0
  1130. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_material-definition.scss +0 -0
  1131. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_theme.scss +0 -0
  1132. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/material.scss +0 -0
  1133. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_layout.scss +0 -0
  1134. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_material-definition.scss +0 -0
  1135. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_theme.scss +0 -0
  1136. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/material.scss +0 -0
  1137. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_layout.scss +0 -0
  1138. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_material-definition.scss +0 -0
  1139. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_theme.scss +0 -0
  1140. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/material.scss +0 -0
  1141. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_layout.scss +0 -0
  1142. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_material-definition.scss +0 -0
  1143. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_theme.scss +0 -0
  1144. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/material.scss +0 -0
  1145. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_layout.scss +0 -0
  1146. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_material-definition.scss +0 -0
  1147. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_theme.scss +0 -0
  1148. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/material.scss +0 -0
  1149. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_layout.scss +0 -0
  1150. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_material-definition.scss +0 -0
  1151. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_theme.scss +0 -0
  1152. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/material.scss +0 -0
  1153. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_layout.scss +0 -0
  1154. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_material-definition.scss +0 -0
  1155. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_theme.scss +0 -0
  1156. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/material.scss +0 -0
  1157. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_layout.scss +0 -0
  1158. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_material-definition.scss +0 -0
  1159. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_theme.scss +0 -0
  1160. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/material.scss +0 -0
  1161. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_layout.scss +0 -0
  1162. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_material-definition.scss +0 -0
  1163. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_theme.scss +0 -0
  1164. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/material.scss +0 -0
  1165. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_layout.scss +0 -0
  1166. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_material-definition.scss +0 -0
  1167. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_theme.scss +0 -0
  1168. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/material.scss +0 -0
  1169. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_layout.scss +0 -0
  1170. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_material-definition.scss +0 -0
  1171. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_theme.scss +0 -0
  1172. /package/{projects/corecomponents/src/lib → lib}/components/image/style/material.scss +0 -0
  1173. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_layout.scss +0 -0
  1174. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_material-definition.scss +0 -0
  1175. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_theme.scss +0 -0
  1176. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/material.scss +0 -0
  1177. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_layout.scss +0 -0
  1178. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_material-definition.scss +0 -0
  1179. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_theme.scss +0 -0
  1180. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/material.scss +0 -0
  1181. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_layout.scss +0 -0
  1182. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_material-definition.scss +0 -0
  1183. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_theme.scss +0 -0
  1184. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/material.scss +0 -0
  1185. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_layout.scss +0 -0
  1186. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_material-definition.scss +0 -0
  1187. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_theme.scss +0 -0
  1188. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/material.scss +0 -0
  1189. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_layout.scss +0 -0
  1190. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_material-definition.scss +0 -0
  1191. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_theme.scss +0 -0
  1192. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/material.scss +0 -0
  1193. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_layout.scss +0 -0
  1194. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_material-definition.scss +0 -0
  1195. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_theme.scss +0 -0
  1196. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/material.scss +0 -0
  1197. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_layout.scss +0 -0
  1198. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_material-definition.scss +0 -0
  1199. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_theme.scss +0 -0
  1200. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/material.scss +0 -0
  1201. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_layout.scss +0 -0
  1202. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_material-definition.scss +0 -0
  1203. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_theme.scss +0 -0
  1204. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/material.scss +0 -0
  1205. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_layout.scss +0 -0
  1206. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_material-definition.scss +0 -0
  1207. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_theme.scss +0 -0
  1208. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/material.scss +0 -0
  1209. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_layout.scss +0 -0
  1210. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_material-definition.scss +0 -0
  1211. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_theme.scss +0 -0
  1212. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/material.scss +0 -0
  1213. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_layout.scss +0 -0
  1214. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_material-definition.scss +0 -0
  1215. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_theme.scss +0 -0
  1216. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/material.scss +0 -0
  1217. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_layout.scss +0 -0
  1218. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_material-definition.scss +0 -0
  1219. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_theme.scss +0 -0
  1220. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/material.scss +0 -0
  1221. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_layout.scss +0 -0
  1222. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_material-definition.scss +0 -0
  1223. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_theme.scss +0 -0
  1224. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/material.scss +0 -0
  1225. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_layout.scss +0 -0
  1226. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_material-definition.scss +0 -0
  1227. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_theme.scss +0 -0
  1228. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/material.scss +0 -0
  1229. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-buttons.component.scss +0 -0
  1230. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-window-shell.component.scss +0 -0
  1231. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_layout.scss +0 -0
  1232. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_material-definition.scss +0 -0
  1233. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_theme.scss +0 -0
  1234. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/material.scss +0 -0
  1235. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_layout.scss +0 -0
  1236. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_material-definition.scss +0 -0
  1237. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_theme.scss +0 -0
  1238. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/material.scss +0 -0
  1239. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_layout.scss +0 -0
  1240. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_material-definition.scss +0 -0
  1241. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_theme.scss +0 -0
  1242. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/material.scss +0 -0
  1243. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_layout.scss +0 -0
  1244. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_material-definition.scss +0 -0
  1245. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_theme.scss +0 -0
  1246. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/material.scss +0 -0
  1247. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_layout.scss +0 -0
  1248. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_material-definition.scss +0 -0
  1249. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_theme.scss +0 -0
  1250. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/material.scss +0 -0
  1251. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_layout.scss +0 -0
  1252. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_material-definition.scss +0 -0
  1253. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_theme.scss +0 -0
  1254. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/material.scss +0 -0
  1255. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_layout.scss +0 -0
  1256. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_material-definition.scss +0 -0
  1257. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_theme.scss +0 -0
  1258. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/material.scss +0 -0
  1259. /package/{projects/corecomponents/src/lib/interfaces/scanner-input.interface.ts → lib/interfaces/scanner-input.interface.d.ts} +0 -0
  1260. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_layout.scss +0 -0
  1261. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_material-definition.scss +0 -0
  1262. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_theme.scss +0 -0
  1263. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/material.scss +0 -0
  1264. /package/{projects/corecomponents/src/lib → lib}/style/_input.mixins.scss +0 -0
  1265. /package/{projects/corecomponents/src/lib → lib}/style/_mixin.scss +0 -0
  1266. /package/{projects/corecomponents/src/lib → lib}/style/_variables.scss +0 -0
  1267. /package/{projects/corecomponents/src/lib → lib}/style/corecomponents-globals.scss +0 -0
  1268. /package/{projects/corecomponents/src/lib → lib}/style/material2/_core.scss +0 -0
  1269. /package/{projects/corecomponents/src/lib → lib}/style/material2/_material2-scss-barrel.scss +0 -0
  1270. /package/{projects/corecomponents/src/lib → lib}/style/material2/ripple/_co-ripple.scss +0 -0
  1271. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_elevation.scss +0 -0
  1272. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_list-common.scss +0 -0
  1273. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_variables.scss +0 -0
  1274. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_palette.scss +0 -0
  1275. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_theming.scss +0 -0
  1276. /package/{projects/corecomponents/src/lib → lib}/style/material2/typography/_typography.scss +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colijnit-corecomponents_v12.js","sources":["../../../projects/corecomponents/src/lib/core/function/is-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/not-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/none-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/any-nill.function.ts","../../../projects/corecomponents/src/lib/core/utils/object-utils.ts","../../../projects/corecomponents/src/lib/core/utils/number-utils.ts","../../../projects/corecomponents/src/lib/core/utils/array-utils.ts","../../../projects/corecomponents/src/lib/core/utils/string-utils.ts","../../../projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts","../../../projects/corecomponents/src/lib/core/validator/required.validator.ts","../../../projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts","../../../projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts","../../../projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts","../../../projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts","../../../projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts","../../../projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts","../../../projects/corecomponents/src/lib/components/icon/icon-cache.service.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts","../../../projects/corecomponents/src/lib/service/overlay.service.ts","../../../projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.component.ts","../../../projects/corecomponents/src/lib/components/base/base-input.component.ts","../../../projects/corecomponents/src/lib/components/icon/icon.component.ts","../../../projects/corecomponents/src/lib/components/icon/icon.module.ts","../../../projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.module.ts","../../../projects/corecomponents/src/lib/core/utils/event-utils.ts","../../../projects/corecomponents/src/lib/interfaces/screen-config-adapter-component-interface-name.ts","../../../projects/corecomponents/src/lib/components/button/button.component.ts","../../../projects/corecomponents/src/lib/components/button/button.module.ts","../../../projects/corecomponents/src/lib/components/image/image.component.ts","../../../projects/corecomponents/src/lib/components/image/image.module.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts","../../../projects/corecomponents/src/lib/pipes/price-display.pipe.ts","../../../projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts","../../../projects/corecomponents/src/lib/components/tile/tile.component.ts","../../../projects/corecomponents/src/lib/components/tile/tile.module.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts","../../../projects/corecomponents/src/lib/components/card/card.component.ts","../../../projects/corecomponents/src/lib/components/card/card.module.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts","../../../projects/corecomponents/src/lib/components/carousel/carousel.component.ts","../../../projects/corecomponents/src/lib/components/carousel/carousel.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.module.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts","../../../projects/corecomponents/src/lib/core/model/element-position.ts","../../../projects/corecomponents/src/lib/core/service/form-master.service.ts","../../../projects/corecomponents/src/lib/components/form/form.component.ts","../../../projects/corecomponents/src/lib/components/form/form.module.ts","../../../projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.component.ts","../../../projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.module.ts","../../../projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.component.ts","../../../projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.module.ts","../../../projects/corecomponents/src/lib/core/enum/co-direction.ts","../../../projects/corecomponents/src/lib/core/enum/co-orientation.ts","../../../projects/corecomponents/src/lib/core/utils/direction-enum-utils.ts","../../../projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.component.ts","../../../projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.module.ts","../../../projects/corecomponents/src/lib/core/enum/filterItem-mode.enum.ts","../../../projects/corecomponents/src/lib/components/base/base.module.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts","../../../projects/corecomponents/src/lib/components/base-input-date-picker/base-input-date-picker.directive.ts","../../../projects/corecomponents/src/lib/components/calendar/calendar.component.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts","../../../projects/corecomponents/src/lib/directives/overlay/overlay-parent.directive.ts","../../../projects/corecomponents/src/lib/directives/overlay/overlay.directive.ts","../../../projects/corecomponents/src/lib/directives/overlay/overlay.module.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.component.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.module.ts","../../../projects/corecomponents/src/lib/translation/core-dictionary.service.ts","../../../projects/corecomponents/src/lib/translation/core-components-translation.service.ts","../../../projects/corecomponents/src/lib/translation/core-localize.pipe.ts","../../../projects/corecomponents/src/lib/translation/core-components-translation.module.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts","../../../projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.module.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.module.ts","../../../projects/corecomponents/src/lib/core/enum/keyboard-key.enum.ts","../../../projects/corecomponents/src/lib/directives/clickoutside/click-outside-master.service.ts","../../../projects/corecomponents/src/lib/directives/clickoutside/click-outside.directive.ts","../../../projects/corecomponents/src/lib/directives/clickoutside/clickoutside.module.ts","../../../projects/corecomponents/src/lib/components/calendar/calendar-template.component.ts","../../../projects/corecomponents/src/lib/components/calendar/calendar.module.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts","../../../projects/corecomponents/src/lib/components/double-calendar/double-calendar.component.ts","../../../projects/corecomponents/src/lib/components/double-calendar/double-calendar.module.ts","../../../projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.component.ts","../../../projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.module.ts","../../../projects/corecomponents/src/lib/core/constant/java-max-int.ts","../../../projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts","../../../projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts","../../../projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts","../../../projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts","../../../projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts","../../../projects/corecomponents/src/lib/components/input-search/input-search.component.ts","../../../projects/corecomponents/src/lib/components/input-search/input-search.module.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts","../../../projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts","../../../projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts","../../../projects/corecomponents/src/lib/core/enum/file-type.enum.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts","../../../projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts","../../../projects/corecomponents/src/lib/core/model/co-document.bo.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts","../../../projects/corecomponents/src/lib/core/utils/file-utils.ts","../../../projects/corecomponents/src/lib/core/utils/browser-utils.ts","../../../projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-button.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts","../../../projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-window.ts","../../../projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts","../../../projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts","../../../projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts","../../../projects/corecomponents/src/lib/components/popup/service/prompt.service.ts","../../../projects/corecomponents/src/lib/components/popup/popup.module.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts","../../../projects/corecomponents/src/lib/components/simple-grid/base-simple-grid.component.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts","../../../projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.component.ts","../../../projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.module.ts","../../../projects/corecomponents/src/lib/components/pagination/paginate.pipe.ts","../../../projects/corecomponents/src/lib/components/pagination/pagination.service.ts","../../../projects/corecomponents/src/lib/components/pagination/pagination.component.ts","../../../projects/corecomponents/src/lib/components/pagination/pagination.module.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid-cell.component.ts","../../../projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.directive.ts","../../../projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.module.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts","../../../projects/corecomponents/src/lib/components/view-mode-buttons/content-view-mode.enum.ts","../../../projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.component.ts","../../../projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.module.ts","../../../projects/corecomponents/src/lib/components/list-of-values/list-of-values-popup.component.ts","../../../projects/corecomponents/src/lib/components/list-of-values/list-of-values.component.ts","../../../projects/corecomponents/src/lib/components/list-of-values/list-of-values-multiselect-popup.component.ts","../../../projects/corecomponents/src/lib/components/list-of-values/list-of-values.module.ts","../../../projects/corecomponents/src/lib/components/responsive-text/responsive-text.component.ts","../../../projects/corecomponents/src/lib/components/responsive-text/responsive-text.module.ts","../../../projects/corecomponents/src/lib/components/color-picker/color-picker.component.ts","../../../projects/corecomponents/src/lib/components/color-picker/color-picker.module.ts","../../../projects/corecomponents/src/lib/components/core-dialog/core-dynamic-component.service.ts","../../../projects/corecomponents/src/lib/model/enum/app-popup-type.enum.ts","../../../projects/corecomponents/src/lib/model/enum/app-button-type.enum.ts","../../../projects/corecomponents/src/lib/components/base/dialog-base.component.ts","../../../projects/corecomponents/src/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/corecomponents/src/lib/components/core-dialog/core-dialog.service.ts","../../../projects/corecomponents/src/lib/components/core-dialog/core-dialog.module.ts","../../../projects/corecomponents/src/lib/components/filter-item/filter-item.component.ts","../../../projects/corecomponents/src/lib/pipes/prepend.pipe.ts","../../../projects/corecomponents/src/lib/pipes/prepend.pipe.module.ts","../../../projects/corecomponents/src/lib/components/filter-item/filter-item.module.ts","../../../projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.component.ts","../../../projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.module.ts","../../../projects/corecomponents/src/lib/components/filter-item/filter-item-viewmodel.ts","../../../projects/corecomponents/src/lib/components/filter-item/filter-viewmodel.ts","../../../projects/corecomponents/src/lib/components/input-scanner/bar-code-scanner.ts","../../../projects/corecomponents/src/lib/components/input-scanner/scanner.service.ts","../../../projects/corecomponents/src/lib/components/input-scanner/input-scanner.component.ts","../../../projects/corecomponents/src/lib/components/input-scanner/input-scanner.module.ts","../../../projects/corecomponents/src/lib/components/loader/loader.component.ts","../../../projects/corecomponents/src/lib/components/loader/loader.module.ts","../../../projects/corecomponents/src/lib/components/tile-select/tile-select.component.ts","../../../projects/corecomponents/src/lib/components/tile-select/tile-select.module.ts","../../../projects/corecomponents/src/lib/pipes/filter.pipe.ts","../../../projects/corecomponents/src/lib/pipes/filter.pipe.module.ts","../../../projects/corecomponents/src/lib/core/validator/equal.validator.ts","../../../projects/corecomponents/src/lib/core/validator/password.validator.ts","../../../projects/corecomponents/src/lib/core/validator/email.validator.ts","../../../projects/corecomponents/src/lib/components/tooltip/tooltip.component.ts","../../../projects/corecomponents/src/lib/directives/tooltip/tooltip.directive.ts","../../../projects/corecomponents/src/lib/components/tooltip/tooltip.module.ts","../../../projects/corecomponents/src/lib/directives/tooltip/tooltip-directive.module.ts","../../../projects/corecomponents/src/lib/service/base-module-screen-config.service.ts","../../../projects/corecomponents/src/lib/service/base-module.service.ts","../../../projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.directive.ts","../../../projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.module.ts","../../../projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.directive.ts","../../../projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.module.ts","../../../projects/corecomponents/src/lib/service/color-sequence.service.ts","../../../projects/corecomponents/src/public-api.ts","../../../projects/corecomponents/src/colijnit-corecomponents_v12.ts"],"sourcesContent":["// @returns true iff given value equals null or equals undefined\r\nexport function isNill(value: any): boolean {\r\n return value === null || value === undefined;\r\n}","// @returns true iff given value does not equals null and does not equal undefined\r\nexport function notNill(value: any): boolean {\r\n return value !== null && value !== undefined;\r\n}","import {isNill} from \"./is-nill.function\";\r\n\r\n// @returns true iff for all items it holds that they do not equal null and not equal undefined. If at least one is null or undefined, this\r\n// function returns false.\r\nexport function noneNill(...values: any[]): boolean {\r\n if (values) {\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}","import {noneNill} from \"./none-nill.function\";\r\n\r\n// @returns true iff at least one of given values equals null or undefined.\r\nexport function anyNill(...values: any[]): boolean {\r\n return !noneNill(values);\r\n}","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\n\r\n// Static utility function holder related to objects.\r\nexport class ObjectUtils {\r\n\r\n /**\r\n * Returns whether all given values exist: for all values it holds that they are not null nor undefined. Short-circuit check.\r\n * @param values Rest parameters with all objects to check existence for.\r\n * @returns True if ALL given values are not null nor undefined, otherwise false (if at least one value was null or undefined)\r\n */\r\n public static AllExist(...values: any[]): boolean {\r\n let allExist: boolean = true;\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n allExist = false;\r\n break;\r\n }\r\n }\r\n return allExist;\r\n }\r\n\r\n // Returns a shallow clone of the given original object. The clone is a SIMPLE OBJECT with the same properties as the original.\r\n public static GetShallowClone(originalObject: any, objectClass?: any): any {\r\n let clonedObject: any = undefined;\r\n\r\n if (objectClass) {\r\n clonedObject = new objectClass();\r\n } else {\r\n clonedObject = {};\r\n }\r\n\r\n ObjectUtils.ForOwnProperty(originalObject, (value: any, key: string) => {\r\n clonedObject[key] = value;\r\n });\r\n\r\n return clonedObject;\r\n }\r\n\r\n /**\r\n * Copies all properties from object 'from' to object 'to'. Overwrites properties on object 'to' if property already exists.\r\n * Does not copy functions, only properties.\r\n * @param from The source object from which to copy all properties of to the 'to' object.\r\n * @param to The object to which the properties of the 'from' object will be copied.\r\n * @param [allowUndefined = true] wether the 'to' object may be assigned null or undefined values to any of its properties.\r\n */\r\n public static CopyPropertiesFrom<T>(from: Object, to: T, allowUndefined: boolean = true): T {\r\n if (!to) {\r\n to = {} as T;\r\n }\r\n if (!from) {\r\n return to;\r\n }\r\n ObjectUtils.ForOwnProperty(from, (value: any, key: string) => {\r\n if (allowUndefined || notNill(value)) {\r\n to[key] = value;\r\n }\r\n });\r\n return to;\r\n }\r\n\r\n /**\r\n * Returns the display value of the given property on the given object, as a string (== the string representation of the property value).\r\n * Does not return null or undefined, but returns the given defaultValue instead.\r\n */\r\n public static GetDisplayValueOfPropertyOn(object: Object, property: string, defaultValue: string = \"\"): string {\r\n if (!object || !property) {\r\n return defaultValue;\r\n }\r\n\r\n let returnValue: string = defaultValue;\r\n let propertyValue: any = object[property];\r\n if (propertyValue) {\r\n returnValue = propertyValue.toString();\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n // Performs given callback function for each own property of given plain object. Also works on string enums.\r\n public static ForOwnProperty(plainObject: any, callback: (propVal: any, key: string) => any): void {\r\n if (ObjectUtils.IsPlainObject(plainObject)) {\r\n for (let key in plainObject) {\r\n if (plainObject.hasOwnProperty(key) && typeof plainObject[key] !== 'function') {\r\n let response: boolean = callback(plainObject[key], key);\r\n if (response === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Returns whether given object is an existing, plain object. That is, it defined, its type if 'object' and it is NOT an array or func.\r\n public static IsPlainObject(object: any): boolean {\r\n return object !== null && !Array.isArray(object) && typeof object !== 'function' && typeof object === 'object';\r\n }\r\n\r\n public static DeepEquals(actual: any, expected: any): boolean {\r\n if (actual === expected) {\r\n return true;\r\n } else if (actual instanceof Date && expected instanceof Date) {\r\n return actual.getTime() === expected.getTime();\r\n } else if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\r\n return actual === expected;\r\n } else {\r\n return this._objEquiv(actual, expected);\r\n }\r\n }\r\n\r\n private static _objEquiv(a: any, b: any): boolean {\r\n let i: number, key: string;\r\n if (isNill(a) || isNill(b)) {\r\n return false;\r\n }\r\n\r\n if (a.prototype !== b.prototype) {\r\n return false;\r\n }\r\n\r\n if (this._isArguments(a)) {\r\n if (!this._isArguments(b)) {\r\n return false;\r\n }\r\n a = Array.prototype.slice.call(a);\r\n b = Array.prototype.slice.call(b);\r\n return this.DeepEquals(a, b);\r\n }\r\n if (this._isBuffer(a)) {\r\n if (!this._isBuffer(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n let ka: string[];\r\n let kb: string[];\r\n try {\r\n ka = Object.keys(a);\r\n kb = Object.keys(b);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (ka.length !== kb.length) {\r\n return false;\r\n }\r\n\r\n ka.sort();\r\n kb.sort();\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n if (ka[i] !== kb[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n key = ka[i];\r\n if (!this.DeepEquals(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return typeof a === typeof b;\r\n }\r\n\r\n private static _isBuffer(x: any): boolean {\r\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\r\n return false;\r\n }\r\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\r\n return false;\r\n }\r\n return !(x.length > 0 && typeof x[0] !== 'number');\r\n }\r\n\r\n private static _isArguments(x: any): boolean {\r\n let supportsArgsClass: boolean = this._supportsArgumentsClass();\r\n return supportsArgsClass ? this._isArgumentsWhenArgsClassSupported(x) : this._isArgumentsWhenArgsClassNotSupported(x);\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassNotSupported(object: any): boolean {\r\n return object &&\r\n typeof object === 'object' &&\r\n typeof object.length === 'number' &&\r\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\r\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\r\n false;\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassSupported(object: any): boolean {\r\n return Object.prototype.toString.call(object) === '[object Arguments]';\r\n }\r\n\r\n private static _supportsArgumentsClass(): boolean {\r\n return Object.prototype.toString.call(arguments) === '[object Arguments]';\r\n }\r\n}\r\n","import {anyNill} from \"../function/any-nill.function\";\r\nimport {ArrayUtils} from \"./array-utils\";\r\nimport {CheckWithinSteppedBoundsResult} from \"../model/check-within-stepped-bounds-result\";\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport { ObjectUtils } from './object-utils';\r\nimport { CheckPrecisionAndScaleResult } from '../model/check-precision-and-scale-result';\r\n\r\n// @dynamic\r\nexport class NumberUtils {\r\n // @returns The inclusive max value\r\n public static PrecisionScaleToMaxValue(precision: number, scale: number): number {\r\n const oneStep: number = this.DecimalsToStepIncrement(scale);\r\n const maxExclusive: number = Math.pow(10, precision - scale);\r\n return maxExclusive - oneStep;\r\n }\r\n\r\n // Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.\r\n public static ParseInt(arg: any): number {\r\n if (isNill(arg) || Array.isArray(arg)) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(arg, 10);\r\n }\r\n\r\n public static DecimalsToStepIncrement(numberOfDecimals: number): number {\r\n return Math.pow(10, -1 * numberOfDecimals);\r\n }\r\n\r\n // Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.\r\n public static ParseNumberOrDefault(arg: any, defaultValue: number = 0): number {\r\n if (Array.isArray(arg)) {\r\n return defaultValue;\r\n }\r\n\r\n if (!NumberUtils.IsNumber(arg)) {\r\n arg = parseFloat(arg);\r\n arg = isNaN(arg) ? defaultValue : arg;\r\n }\r\n return arg;\r\n }\r\n\r\n // Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.\r\n public static ParseNumberInputOrDefault(numberInput: any, defaultValue: number = 0): number {\r\n return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);\r\n }\r\n\r\n public static IsParsableNumberInput(numberInput: any): boolean {\r\n return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));\r\n }\r\n\r\n // Returns whether the type of given argument is 'number'.\r\n public static IsNumber(arg: any): boolean {\r\n return typeof arg === 'number';\r\n }\r\n\r\n // Returns whether the value is parasable as a number.\r\n public static IsParsableNumber(arg: any): boolean {\r\n if (Array.isArray(arg)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(arg));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @param The number of decimals, or the precision, the parsed return float should have\r\n * @returns NaN if not possible, else the parsed float value\r\n */\r\n public static ParseFloat(arg: any, decimalPrecision: number = 2): number {\r\n if (anyNill(arg, decimalPrecision) || Array.isArray(arg)) {\r\n return NaN;\r\n }\r\n\r\n if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {\r\n decimalPrecision = 2;\r\n // toFixed() can only handle up until 20\r\n } else if (decimalPrecision > 20) {\r\n decimalPrecision = 20;\r\n }\r\n\r\n return parseFloat(parseFloat(arg).toFixed(decimalPrecision));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @returns The argument as a float with its original decimal precision intact\r\n */\r\n public static ParseFloatKeepPrecision(arg: any): number {\r\n let decimalPrecision: number = this.GetDecimalPlaces(arg);\r\n return this.ParseFloat(arg, decimalPrecision);\r\n }\r\n\r\n public static ParseFloatNumberInputKeepPrecision(arg: any): number {\r\n let correctedInputStr: string = NumberUtils._NumberInputToNumberStr(arg);\r\n let decimalPrecision: number = this.GetDecimalPlaces(correctedInputStr);\r\n return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that\r\n * nr = min + N * step with N integer or 0.\r\n * @param originalNr Find closest answer to this number\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns The closest OK number for bounds.\r\n */\r\n public static GetNearestNumberWithinSteppedBounds(originalNr: number, min: number, max: number, stepSize: number = 1): number {\r\n if (originalNr < min) {\r\n return min;\r\n } else if (originalNr > max) {\r\n return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);\r\n }\r\n\r\n let boundsCheck: CheckWithinSteppedBoundsResult = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);\r\n if (boundsCheck.isOk) {\r\n return originalNr;\r\n }\r\n\r\n let answer: number = undefined;\r\n\r\n let remainder: number = boundsCheck.remainder;\r\n if (remainder) {\r\n // round up or down?\r\n if ((remainder / stepSize) < 0.5) {\r\n // round down, but not below min\r\n answer = (originalNr - remainder >= min ? originalNr - remainder : min);\r\n } else {\r\n // round up, but not above max\r\n answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :\r\n NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));\r\n }\r\n } else {\r\n // is this real life, why wasn't our stepped bounds check OK?\r\n answer = originalNr;\r\n }\r\n\r\n // 'correct' float errors\r\n answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));\r\n return answer;\r\n }\r\n\r\n // Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.\r\n public static GetDecimalPlaces(arg: any, maxAnswer: number = 1000): number {\r\n let match: RegExpMatchArray = ('' + arg).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n let answer: number = Math.max(0,\r\n // number of digits right of decimal point.\r\n (match[1] ? match[1].length : 0)\r\n // adjust for scientific notation\r\n - (match[2] ? +match[2] : 0));\r\n\r\n if (answer > maxAnswer) {\r\n answer = maxAnswer;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.\r\n public static IsInteger(arg: any): boolean {\r\n if (isNaN(arg) || Array.isArray(arg)) {\r\n return false;\r\n }\r\n let argAsFloat: number = parseFloat(arg);\r\n return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'\r\n }\r\n\r\n /**\r\n * Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.\r\n * I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg\r\n * IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.\r\n */\r\n public static IsStringNumber(arg: string): boolean {\r\n if (!NumberUtils.IsParsableNumber(arg)) {\r\n return false;\r\n } else {\r\n return arg.toString().length === parseFloat(arg).toString().length;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.\r\n * Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.\r\n */\r\n public static RandomInt(lowerBoundInt: number, upperBoundInt: number): number {\r\n if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {\r\n return NaN;\r\n }\r\n\r\n lowerBoundInt = Math.trunc(lowerBoundInt);\r\n upperBoundInt = Math.trunc(upperBoundInt);\r\n\r\n if (lowerBoundInt === upperBoundInt) {\r\n return lowerBoundInt;\r\n }\r\n\r\n const delta: number = upperBoundInt - lowerBoundInt;\r\n return (Math.round(Math.random() * delta) + lowerBoundInt);\r\n }\r\n\r\n /**\r\n * Returns the true maximum allowed value for the given \"stepped bounds\": min, stepSize and max, for which it holds that each allowed\r\n * value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.\r\n * @param min\r\n * @param max\r\n * @param stepSize\r\n */\r\n public static GetTrueSteppedBoundsMax(min: number, max: number, stepSize: number = 1): number {\r\n // solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X\r\n let maxSteps: number = Math.floor((max - min) / stepSize);\r\n // 'correct' float errors\r\n return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));\r\n }\r\n\r\n // Returns the string representation of given number. If it's not a number, returns the empty string.\r\n public static ToString(nr: number): string {\r\n if (!NumberUtils.IsNaN(nr)) {\r\n return \"\" + nr;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n // Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number').\r\n public static IsNaN(arg: any): boolean {\r\n return isNaN(arg) || !NumberUtils.IsNumber(arg);\r\n }\r\n\r\n /**\r\n * Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,\r\n * with N integer or 0.\r\n * @param nrToCheck Number to check whether it's within the given bounds\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.\r\n */\r\n public static CheckWithinSteppedBounds(\r\n nrToCheck: number,\r\n min: number,\r\n max: number,\r\n stepSize: number = 1\r\n ): CheckWithinSteppedBoundsResult {\r\n if (nrToCheck < min || nrToCheck > max) {\r\n return {isOk: false, remainder: undefined};\r\n }\r\n\r\n // we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)\r\n let remainder: number = (nrToCheck - min) % stepSize;\r\n // correct float for largest precision amongst input numbers\r\n remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));\r\n return {isOk: (remainder === 0), remainder: remainder};\r\n }\r\n\r\n // Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.\r\n public static AddThousandsCommasTo(value: any): string {\r\n if (isNill(value)) {\r\n return \"\";\r\n }\r\n\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n // Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.\r\n public static GetNearestNumberWithinBounds(originalNr: number, min: number, max: number): number {\r\n let answer: number = originalNr;\r\n\r\n if (originalNr < min) {\r\n answer = min;\r\n } else if (originalNr > max) {\r\n answer = max;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.\r\n * This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the\r\n * precision and scale of the number in the db declaration.\r\n *\r\n * I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.\r\n *\r\n * @param nrToCheck\r\n * @param precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'\r\n * @param [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003\r\n * @returns Whether given nrToCheck is ok for given precision and scale, and if not, the\r\n * nearest number that IS ok for those constraints.\r\n */\r\n public static CheckPrecisionAndScale(nrToCheck: number, precision: number, scale: number = 0): CheckPrecisionAndScaleResult {\r\n // let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision\r\n if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {\r\n return {isOk: true, nearestOkNr: NaN};\r\n }\r\n // no number can have 0 or less than 0 significant digits, in our universe\r\n if (precision < 1 || precision - scale < 1) {\r\n return {isOk: false, nearestOkNr: NaN};\r\n }\r\n // begin check\r\n const isNegative: boolean = (nrToCheck < 0);\r\n const nrParts: string[] = nrToCheck.toString().split(\".\");\r\n // remove minus sign if negative\r\n if (isNegative) {\r\n nrParts[0] = nrParts[0].slice(1);\r\n }\r\n const numCountBeforeDot: number = nrParts[0].length;\r\n const allowedNumCountBeforeDot: number = precision - scale;\r\n if (numCountBeforeDot <= allowedNumCountBeforeDot) {\r\n return {isOk: true, nearestOkNr: nrToCheck};\r\n } else {\r\n // cut a part from the \"before decimal number\" so that the number is not too big anymore\r\n const numCountToRemove: number = numCountBeforeDot - allowedNumCountBeforeDot;\r\n // remove the right-most numbers before the decimal dot\r\n nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);\r\n // add minus sign again if it was negative\r\n if (isNegative) {\r\n nrParts[0] = \"-\" + nrParts[0];\r\n }\r\n // build and return composite number again\r\n let nearestOkNr: number;\r\n if (nrParts[1]) {\r\n nearestOkNr = Number(nrParts[0] + \".\" + nrParts[1]);\r\n } else {\r\n nearestOkNr = Number(nrParts[0]);\r\n }\r\n return {isOk: false, nearestOkNr: nearestOkNr};\r\n }\r\n }\r\n\r\n private static _GetLargestDecimalPrecisionOf(...args: number[]): number {\r\n return ArrayUtils.GetMaxCalculatedValue(args, (arg: number) => {\r\n return NumberUtils.GetDecimalPlaces(arg);\r\n });\r\n }\r\n\r\n // Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.\r\n private static _NumberInputToNumberStr(numberInput: string): string {\r\n return (numberInput + '').replace(',', '.');\r\n }\r\n}\r\n","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\nimport {StringUtils} from \"./string-utils\";\r\nimport {NumberUtils} from \"./number-utils\";\r\nimport {ObjectUtils} from \"./object-utils\";\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Inserts given element into given array, on given index number.\r\n *\r\n * @param index The index position for the element to insert, use negatives to count from the arrays end\r\n * @param element The element to insert\r\n * @param array The array to insert the element into\r\n * @returns True if and only if given element is succesfully inserted into given array.\r\n */\r\n public static InsertElement<T>(index: number, element: T, array: T[]): boolean {\r\n if (!Array.isArray(array) || Math.abs(index) > array.length || isNill(index)) {\r\n // cannot insert something into nothing, and cannot insert an element into a non-array (via this contract that is), and\r\n // we will not insert anything beyond the arrays limits (but we can append to the start or end)\r\n return false;\r\n }\r\n\r\n const lenBefore: number = array.length;\r\n array.splice(index, 0, element);\r\n return (array.length === lenBefore + 1);\r\n }\r\n\r\n /**\r\n * Removes given element from given array. Doesn't just set it to null like JavaScripts standard 'delete' keyword, but truly removes the\r\n * element using splice(). Also works on associative arrays.\r\n *\r\n * @param element The element to remove.\r\n * @param array The array to remove the element from.\r\n * @returns True iff given element was truly successfully removed from given array.\r\n */\r\n public static RemoveElement<T>(element: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n let index: number = array.indexOf(element);\r\n return ArrayUtils.RemoveElementAtIndex(index, array);\r\n }\r\n\r\n /**\r\n * Returns a true shallow clone of given array plus all its items. Its first-level members are object-shallow-cloned (optionally with a\r\n * strongly typed constructor),\r\n * or just as plain object (see param arrayItemsClass).\r\n * @param arrayGiven\r\n * @param arrayItemsClass If provided, the cloned array's first-level items will be strongly typed to / constructed as this class. Otherwise\r\n * it'll be a plain object.\r\n * @returns a true shallow clone of given array plus all its items\r\n */\r\n public static ShallowCloneArrayAndItsItem<T>(arrayGiven: T[], arrayItemsClass?: any): T[] {\r\n let arrayClone: T[] = [];\r\n\r\n if (arrayGiven) {\r\n for (let i: number = 0, len: number = arrayGiven.length; i < len; i++) {\r\n arrayClone.push(ObjectUtils.GetShallowClone(arrayGiven[i], arrayItemsClass));\r\n }\r\n } else {\r\n return [];\r\n }\r\n\r\n return arrayClone;\r\n }\r\n\r\n /**\r\n * Moves given element to given toIndex in given array. Returns whether the element was really moved, thus changing the given array.\r\n */\r\n public static MoveElement<T>(element: T, toIndex: number, array: T[]): boolean {\r\n if (!Array.isArray(array) || isNill(toIndex)) {\r\n return false;\r\n }\r\n\r\n let fromIndex: number = array.indexOf(element);\r\n let toIndexCorrected: number = NumberUtils.GetNearestNumberWithinBounds(toIndex, 0, array.length - 1);\r\n if (fromIndex === -1 || array[toIndexCorrected] === element) {\r\n // element did not exist in given array, or already existed on given toIndex\r\n return false;\r\n }\r\n array.splice(toIndexCorrected, 0, array.splice(fromIndex, 1)[0]);\r\n return true;\r\n }\r\n\r\n /**\r\n * Returns max value from all resulting values from applying given itemValueFunction to all items of given array.\r\n * @param array\r\n * @param itemValueFunction The function aplied to each array item that gives it a numerical value. The max num val found is returned.\r\n */\r\n public static GetMaxCalculatedValue<T>(array: T[], itemValueFunction: (item: T) => number): number {\r\n if (!array || !itemValueFunction) {\r\n return NaN;\r\n }\r\n\r\n let max: number = undefined;\r\n\r\n let len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n let valueCur: number = itemValueFunction.call(this);\r\n if (valueCur > max) {\r\n max = valueCur;\r\n }\r\n }\r\n\r\n return max;\r\n }\r\n\r\n // Checks if given array is defined, and is an array, and has length > 0, and, optionally checks that the first element is of type given clazz.\r\n public static IsArrayWithElements<T>(arrayToCheck: T[], clazz?: any): boolean {\r\n if (isNill(arrayToCheck)) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(arrayToCheck) && arrayToCheck.length > 0) {\r\n if (clazz) {\r\n return arrayToCheck[0] instanceof clazz;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Removes all elements from given array for which given filter function holds true. Returns true if at least one removed, else false.\r\n public static RemoveElementsByFilter(array: any[], filterFunction: (item: any) => boolean): boolean {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !filterFunction) {\r\n return false;\r\n }\r\n\r\n let atLeastOneRemoved: boolean = false;\r\n\r\n let len: number = array.length;\r\n for (let i: number = len - 1; i >= 0; i--) {\r\n let item: any = array[i];\r\n if (filterFunction.call(this, item) === true) {\r\n array.splice(i, 1);\r\n atLeastOneRemoved = true;\r\n }\r\n }\r\n\r\n return atLeastOneRemoved;\r\n }\r\n\r\n // Replaces the elementOut with given elementIn.\r\n public static ReplaceElement<T>(elementIn: T, elementOut: T, array: T[]): void {\r\n if (!array || !Array.isArray(array)) {\r\n return;\r\n }\r\n\r\n const indexOut: number = array.indexOf(elementOut);\r\n if (indexOut > -1) {\r\n ArrayUtils.InsertElement(indexOut, elementIn, array);\r\n ArrayUtils.RemoveElement(elementOut, array);\r\n }\r\n }\r\n\r\n // Swaps the elements in given array with each other. Returns whether a real swap was made. From and To elements have to exist in array.\r\n public static SwapElements<T>(elementOne: T, elementTwo: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n const elOneIdx: number = array.indexOf(elementTwo);\r\n const elTwoIdx: number = array.indexOf(elementOne);\r\n if (elOneIdx === -1 || elTwoIdx === -1) {\r\n return false;\r\n }\r\n\r\n array[elOneIdx] = array.splice(elTwoIdx, 1, array[elOneIdx])[0];\r\n return true;\r\n }\r\n\r\n // Inserts or removes given toggle element into given elements array; inserts if not yet exists, and removes if already exists.\r\n public static ToggleElement<T>(toggle: T, elements: T[]): void {\r\n elements.indexOf(toggle) > -1 ? ArrayUtils.RemoveElement(toggle, elements) : elements.push(toggle);\r\n }\r\n\r\n // Returns the number of elements from given array for which given whereFunction holds true.\r\n public static CountWhere<T>(array: T[], whereFunction: (item: T) => boolean): number {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !whereFunction) {\r\n return 0;\r\n }\r\n\r\n let count: number = 0;\r\n\r\n const len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n if (whereFunction.call(this, array[i])) {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Returns whether at least one element in given array could be found by given finder function.\r\n *\r\n * @param array\r\n * @param finder A finder function that takes an element of the array and returns a boolean that represents\r\n * the 'found status' for that element; whether it should have been found or not.\r\n */\r\n public static ContainsAnElementFoundBy<T>(array: T[], finder: (element: T) => boolean): boolean {\r\n if (!array || !finder) {\r\n return false;\r\n }\r\n\r\n return notNill(ArrayUtils.Find<T>(array, finder));\r\n }\r\n\r\n /**\r\n * Cross-browser Array.find() function. Returns the first item in given array for which the foundBy function returns true. Returns\r\n * undefined when none was found.\r\n *\r\n * Example usage:\r\n * let foundItem: BusinessObject = ArrayUtils.Find<BusinessObject>(modelArray, (modelItem: BusinessObject) => <br>\r\n * (return modelItem.getId() === '1')\r\n * * });\r\n *\r\n * @param array The array with items to search in.\r\n * @param foundBy The finder function applied on each items of the array, when that returns true, the item is considered found.\r\n */\r\n public static Find<T>(array: T[], foundBy: (item: T) => boolean): T {\r\n if (!array || !foundBy) {\r\n return undefined;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n let itemCur: T = array[i];\r\n if (foundBy(itemCur)) {\r\n return itemCur;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sorts all items in the given array alphabetically (A-to-Z) according to the values of their given property.\r\n * @param theArray\r\n * @param propertyName = undefined] When not defined, assumes an array of STRINGS is given, instead of array of OBJECTS.\r\n * @param [reverseOrder = false] Set to true to sort from Z-to-A instead\r\n */\r\n public static SortAlphabetically<T>(theArray: T[], propertyName: string = undefined, reverseOrder: boolean = false): void {\r\n if (!theArray || !Array.isArray(theArray)) {\r\n return;\r\n }\r\n\r\n let switcher: number = reverseOrder ? -1 : 1;\r\n let stringSort: boolean = StringUtils.IsStringWithLength(propertyName);\r\n theArray.sort((itemOne: T, itemTwo: T) => {\r\n let valOne: any = stringSort ? itemOne[propertyName] : itemOne;\r\n let valTwo: any = stringSort ? itemTwo[propertyName] : itemTwo;\r\n return (valOne > valTwo ? 1 : (valOne < valTwo ? -1 : 0)) * switcher;\r\n });\r\n }\r\n\r\n public static PushIfNotExist(item: any, array: any[]): boolean {\r\n if (!array) {\r\n return false;\r\n }\r\n\r\n if (array.indexOf(item) === -1) {\r\n array.push(item);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Removes element at given index from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really\r\n * removes the element using splice().\r\n *\r\n * @param index\r\n * @param array\r\n * @returns True if and only if the element on given index is succesfully removed from given array.\r\n */\r\n public static RemoveElementAtIndex(index: number, array: any[]): boolean {\r\n if (NumberUtils.IsNaN(index) || index < 0 || !Array.isArray(array) || array.length === 0) {\r\n return false;\r\n }\r\n\r\n if (index in array) {\r\n array.splice(index, 1);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Returns true if and only if given array includes given item. Checked by ===.\r\n public static Includes(array: any[], item: any): boolean {\r\n if (Array.isArray(array)) {\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n if (array[i] === item) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\n","import {notNill} from \"../function/not-nill.function\";\r\nimport { ArrayUtils } from './array-utils';\r\n\r\n// @dynamic\r\nexport class StringUtils {\r\n // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.\r\n public static ParseString(arg: any, defaultValue: string = ''): string {\r\n if (!StringUtils.IsString(arg)) {\r\n if (arg && typeof arg.toString === 'function') {\r\n arg = arg.toString();\r\n } else {\r\n arg = defaultValue;\r\n }\r\n }\r\n return arg;\r\n }\r\n\r\n public static AsLowerCaseIfString(str: any): any {\r\n if (StringUtils.IsString(str)) {\r\n return str.toLowerCase();\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n /**\r\n * Example usage:\r\n * str = 'File is to large to upload. Maximum file size is {0} Mb'\r\n * format = [FileUtils.MaxUploadSizeInMb]\r\n * output = File is to large to upload. Maximum file size is 3 Mb\r\n *\r\n * str = '{0} is way better than {1}'\r\n * format = ['Angular2','Angular1']\r\n * output = Angular2 is way better than Angular1\r\n *\r\n * @param str The string that contains {0} and {1} etc, for replacement by given format data\r\n * @param format The format replacement data\r\n */\r\n public static Format(str: string, format: any[]): string {\r\n let args: any = Array.prototype.slice.call(format);\r\n return str.replace(/{(\\d+)}/g, function (match: any, number: any): string {\r\n return typeof args[number] !== 'undefined' ? (args[number] !== null ? args[number] : \"\") : \"\";\r\n });\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: any): boolean {\r\n return notNill(str) && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns a new string string with N amount of characters removed from the end of it.\r\n public static RemoveLastChars(str: string, amount: number): string {\r\n if (str) {\r\n return str.slice(0, -1 * amount);\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n public static StringToStringArray(str: string): string[] {\r\n if (!str) {\r\n return [];\r\n }\r\n\r\n const strArray: string[] = str.split(\" \");\r\n ArrayUtils.RemoveElementsByFilter(strArray, (txt: string) => {\r\n return !txt || txt === \"\";\r\n });\r\n return strArray;\r\n }\r\n\r\n public static CloneStringArray(strArray: string[]): string[] {\r\n const clone: string[] = [];\r\n if (strArray) {\r\n for (let i: number = 0, len: number = strArray.length; i < len; i++) {\r\n clone.push(strArray[i]);\r\n }\r\n }\r\n return clone;\r\n }\r\n\r\n public static ToStringOrDefault(arg: any, defaultReturnVal: string = \"\"): string {\r\n if (notNill(arg) && arg.toString) {\r\n return arg.toString();\r\n } else {\r\n return defaultReturnVal;\r\n }\r\n }\r\n\r\n public static CreateGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c: string) => {\r\n const r: number = Math.random() * 16 | 0;\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n}\r\n","import { Input } from '@angular/core';\r\nimport { StringUtils } from '../utils/string-utils';\r\n\r\n/**\r\n * Property decorator which enables template syntax like \"someBoolInput\" instead of \"[someBoolInput]='true'\". Makes use of the fact that\r\n * Angular assigns an empty string to the input property in the naked \"someBoolInput\" template case.\r\n */\r\nexport function InputBoolean(bindingPropertyName?: string): PropertyDecorator {\r\n const inputDecorator: PropertyDecorator = Input(bindingPropertyName);\r\n return (target: Object, key: string) => {\r\n inputDecorator(target, key);\r\n const descriptor: PropertyDescriptor = Object.getOwnPropertyDescriptor(target, key) || {};\r\n Object.defineProperty(target, key, {\r\n get: descriptor.get || function (): boolean {\r\n return this[\"__\" + key];\r\n },\r\n set: function(newValue: any): void {\r\n const val: boolean = InputBooleanDecorator.InputValueToBoolean(newValue);\r\n descriptor.set ? descriptor.set(val) : this[\"__\" + key] = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\r\n// Utility function holder of the InputBooleanDecorator decorator.\r\nexport class InputBooleanDecorator {\r\n public static InputValueToBoolean(value: any): boolean {\r\n if (StringUtils.IsString(value) && !StringUtils.IsStringWithLength(value)) {\r\n return true;\r\n }\r\n return !!value;\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\r\n\r\n const isValid: boolean = !(control.value === null || control.value === undefined || control.value === \"\");\r\n\r\n return isValid ? null : {'required': 'MESSAGE_FIELD_REQUIRED'};\r\n\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { NumberUtils } from '../utils/number-utils';\r\n\r\nexport function precisionScaleValidator(precision: number, scale: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n\r\n if (control) {\r\n isValid = NumberUtils.CheckPrecisionAndScale(control.value, precision, scale).isOk;\r\n }\r\n\r\n return isValid ? null : {'precision-scale': \"MESSAGE_FIELD_PRECISION_OVERRIDDEN||\" + precision};\r\n };\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function maxStringLengthValidator(length: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n if (control.value && typeof control.value === 'string') {\r\n isValid = control.value.length <= length;\r\n }\r\n return isValid ? null : {\"max-length\": {message: \"MESSAGE_FIELD_TOO_LONG\", placeholder: \"\" + length}};\r\n };\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject} from \"rxjs\";\r\nimport {Subscription} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class FormInputUserModelChangeListenerService implements OnDestroy {\r\n // Signal from input-field to change-listener user. Emits (or: should be emitted) each time the end-user has changed the state of a form input's model. Emits model as value.\r\n public readonly userModelChange: Subject<any> = new Subject<any>();\r\n\r\n // Signal from user of this change-listener to all its child input-fields. Resets their user touched marks.\r\n public readonly clearAllMarkedAsUserTouched: Subject<void> = new Subject<void>();\r\n\r\n public hasUserModelChanges: boolean = false;\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor() {\r\n this._subs.push(\r\n this.userModelChange.subscribe(() => {\r\n this.hasUserModelChanges = true;\r\n }),\r\n this.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this.hasUserModelChanges = false;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","import {Injectable, NgZone} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgZoneWrapperService {\r\n constructor(private _ngZone: NgZone) {\r\n }\r\n\r\n public setTimeoutOutsideAngular(fn: Function, millis: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n fn();\r\n }, millis);\r\n });\r\n }\r\n}","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\n\nexport enum CoreComponentsIcon {\n Account = \"account\",\n AccountRoundOpen = \"account_round_open\",\n Activities = \"activities\",\n AddToCartDrop = \"add_to_cart_drop\",\n ArrowDown = \"arrow_down\",\n ArrowFatLeft = \"arrow_fat_left\",\n ArrowFatRight = \"arrow_fat_right\",\n ArrowLeft = \"arrow_left\",\n ArrowLeftRoundOpen = \"arrow_left_round_open\",\n ArrowPointDown = \"arrow_point_down\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n ArrowPointUp = \"arrow_point_up\",\n ArrowRightRoundOpen = \"arrow_right_round_open\",\n ArrowScrollDown = \"arrow_scroll_down\",\n ArrowScrollLeft = \"arrow_scroll_left\",\n ArrowScrollRight = \"arrow_scroll_right\",\n ArrowScrollUp = \"arrow_scroll_up\",\n ArrowUp = \"arrow_up\",\n Article = \"article\",\n ArticleWithFold = \"article_with_fold\",\n AsteriskSmall = \"asterisk_small\",\n Attachments = \"attachments\",\n BackToTop = \"back_to_top\",\n Barcode = \"Barcode\",\n BigMac = \"big_mac\",\n Boxes = \"boxes\",\n Brush = \"brush\",\n BrushRoundOpen = \"brush_round_open\",\n BuildingColumns = \"building_columns\",\n Businessrules = \"businessrules\",\n Calendar = \"calendar\",\n CalendarDay = \"calendar_day\",\n CalendarDayRegular = \"calendar_day_regular\",\n CalendarEmpty = \"calendar_empty\",\n CalendarRange = \"calendar_range\",\n CalendarRoundOpen = \"calendar_round_open\",\n Camera = \"camera\",\n Cancel = \"cancel\",\n CancelRoundFilled = \"cancel_round_filled\",\n CancelRoundOpen = \"cancel_round_open\",\n Cart = \"cart\",\n CartOpen = \"cart_open\",\n CaseManager = \"case_manager\",\n CashRegister = \"CashRegister\",\n CashRegisterSimple = \"cash_register_simple\",\n ChangeLocation = \"change_location\",\n Check = \"check\",\n CheckDuotone = \"check_duotone\",\n CheckRound = \"check_round\",\n CheckRoundOpen = \"check_round_open\",\n CheckSimple = \"check_simple\",\n CheckThin = \"check_thin\",\n ChevronDownRegular = \"chevron_down_regular\",\n ChevronUpRegular = \"chevron_up_regular\",\n CirclePlusSkinny = \"CirclePlusSkinny\",\n Client = \"client\",\n Clock = \"clock\",\n ClockArrow = \"clockArrow\",\n CogWheelPlus = \"cogWheelPlus\",\n CogWheels = \"cogWheels\",\n ColumnOptions = \"column_options\",\n Company = \"company\",\n CompanyFlat = \"company_flat\",\n Configurable = \"configurable\",\n Consultant = \"consultant\",\n Copy = \"copy\",\n Crosshair1 = \"crosshair_1\",\n CrossSkinny = \"CrossSkinny\",\n Dashboard = \"dashboard\",\n DeliveryMethod = \"delivery_method\",\n DeliveryStatusUncheck = \"delivery_status_uncheck\",\n DeliveryTruck = \"delivery_truck\",\n DetailRecord = \"detail_record\",\n DetailView = \"detail_view\",\n Dictionary = \"dictionary\",\n Documents = \"documents\",\n DocumentWrench = \"documentWrench\",\n Dollar = \"dollar\",\n Download = \"download\",\n Dropdown = \"dropdown\",\n Dropzone = \"dropzone\",\n EditPencil = \"edit_pencil\",\n EditPencilCircle = \"edit_pencil_circle\",\n EditPencilRound = \"edit_pencil_round\",\n EditPencilSimple = \"edit_pencil_simple\",\n Email = \"email\",\n EmailRoundOpen = \"email_round_open\",\n Employee = \"employee\",\n EmployeeTwo = \"employee_two\",\n Employer = \"employer\",\n Employment = \"employment\",\n EmploymentEnd = \"employment_end\",\n Equal = \"equal\",\n Euro = \"euro\",\n Exclamation = \"exclamation\",\n ExclamationRoundOpen = \"exclamation_round_open\",\n EyeCircle = \"eye_circle\",\n EyeCircleLarge = \"eye_circle_large\",\n EyeRoundFilled = \"eye_round_filled\",\n Factory = \"factory\",\n Fasttrack = \"fasttrack\",\n Filter = \"filter\",\n Finish = \"finish\",\n FixedOptionValueTree = \"fixed_option_value_tree\",\n FixedTreeOptionValue = \"fixed_tree_option_value\",\n FloppyDiskSolid = \"floppy_disk_solid\",\n FolderArrow = \"FolderArrow\",\n FolderArrowIn = \"folder_arrow_in\",\n Formula = \"formula\",\n Fullscreen = \"fullscreen\",\n GearDouble = \"gear_double\",\n GlobalSearch = \"global_search\",\n Globe = \"globe\",\n GreaterThan = \"greater_than\",\n Groupby = \"groupby\",\n Hamburger = \"hamburger\",\n HandPointer = \"hand_pointer\",\n Hbarchart = \"hbarchart\",\n Home = \"Home\",\n HomeCircle = \"home_circle\",\n HomeOpen = \"home_open\",\n HomeRoundOpen = \"home_round_open\",\n Hourglass = \"hourglass\",\n Icon3d = \"icon_3d\",\n Id = \"id\",\n Image = \"image\",\n IncomingStorage = \"incoming_storage\",\n Information = \"information\",\n InformationRoundOpen = \"information_round_open\",\n InputMultiplechoice = \"input_multiplechoice\",\n InputText = \"input_text\",\n InputTextarea = \"input_textarea\",\n Inventory = \"inventory\",\n Invoice = \"invoice\",\n IoneLogo = \"ione_logo\",\n IoneLogoFat = \"ione_logo_fat\",\n IoneStatusNext = \"ione_status_next\",\n IoneWorkflow = \"ione_workflow\",\n Keyboard = \"keyboard\",\n Keychain = \"keychain\",\n Label = \"label\",\n LabelRoundOpen = \"label_round_open\",\n LandmarkFlag = \"landmark_flag\",\n Library = \"library\",\n Linechart = \"linechart\",\n LinkedProducts = \"linked_products\",\n LinkCircle = \"link_circle\",\n ListView = \"list_view\",\n Location = \"location\",\n Lock = \"lock\",\n LockRoundOpen = \"lock_round_open\",\n Logo = \"logo\",\n Logout = \"logout\",\n MagicWand = \"magic_wand\",\n Magnifier = \"magnifier\",\n Manager = \"manager\",\n Mask = \"mask\",\n MasterDetail = \"master_detail\",\n MaterialCircleLarge = \"material_circle_large\",\n MedalBronze = \"medal_bronze\",\n MedalGold = \"medal_gold\",\n MedalSilver = \"medal_silver\",\n MedicalOfficer = \"medical_officer\",\n Microphone = \"microphone\",\n MinusRoundOpen = \"minus_round_open\",\n MinusSimple = \"minus_simple\",\n Mobile = \"mobile\",\n MultiSelectCheck = \"multi_select_check\",\n NewTask = \"new_task\",\n Note = \"note\",\n NoteBordered = \"note_bordered\",\n Notification = \"notification\",\n NotEqual = \"not_equal\",\n Option = \"option\",\n Optionset = \"optionset\",\n Order = \"order\",\n Orderpicking = \"orderpicking\",\n OutgoingStorage = \"outgoing_storage\",\n OverBooking = \"over_booking\",\n PauseCircle = \"pause_circle\",\n PencilRoundOpen = \"pencil_round_open\",\n PenToSquareSolid = \"pen_to_square_solid\",\n Phone = \"phone\",\n PhoneRoundOpen = \"phone_round_open\",\n Piechart = \"piechart\",\n Pin = \"pin\",\n PinRoundOpen = \"pin_round_open\",\n PlayCircle = \"play_circle\",\n PlusRound = \"plus_round\",\n PlusRoundOpen = \"plus_round_open\",\n PlusSimple = \"plus_simple\",\n PlusSkinny = \"plus_skinny\",\n PlusSolid = \"plus_solid\",\n PlusStars = \"plus_stars\",\n Pointer = \"pointer\",\n Pointer3d = \"pointer_3d\",\n PointerFilled = \"pointer_filled\",\n POS = \"POS\",\n Positioning = \"positioning\",\n Pregnancy = \"pregnancy\",\n Preset = \"preset\",\n Print = \"print\",\n ProductProperties = \"product_properties\",\n Purchase = \"purchase\",\n Qrcode = \"qrcode\",\n Question = \"question\",\n RadioUncheck = \"radio_uncheck\",\n Range = \"range\",\n RangeSelect = \"range_select\",\n Rectangles = \"rectangles\",\n Refresh = \"refresh\",\n Relations = \"relations\",\n Remark = \"remark\",\n RemarkRoundOpen = \"remark_round_open\",\n ReportInType = \"report_in_type\",\n Resize = \"resize\",\n ResizeDown = \"resize_down\",\n ResizeUp = \"resize_up\",\n Returns = \"returns\",\n ReturnGoods = \"return_goods\",\n RotateLeftSolid = \"rotate_left_solid\",\n SaveDisk = \"save_disk\",\n SaveSkinny = \"save_skinny\",\n ScaleBalanced = \"scale_balanced\",\n Scanner = \"scanner\",\n SearchRoundOpen = \"search_round_open\",\n Sections = \"sections\",\n SelectAllRound = \"select_all_round\",\n Services = \"services\",\n Settings = \"settings\",\n Shop = \"Shop\",\n ShoppingCart = \"shopping_cart\",\n ShoppingCartNr = \"shopping_cart_nr\",\n Shortcut = \"shortcut\",\n SinglePerson = \"SinglePerson\",\n Skills = \"skills\",\n SliderPanel = \"slider_panel\",\n SlideIn = \"slide_in\",\n SmallerThan = \"smaller_than\",\n SmallTiles = \"small_tiles\",\n SortAsc = \"sort_asc\",\n SortDesc = \"sort_desc\",\n Star = \"Star\",\n StarRoundOpen = \"star_round_open\",\n StatusActive = \"status_active\",\n StatusAdoption = \"status_adoption\",\n StatusFostercare = \"status_fostercare\",\n StatusIll = \"status_ill\",\n StatusLeave = \"status_leave\",\n StatusPregnancy = \"status_pregnancy\",\n Stock = \"stock\",\n StockManagement = \"stock_management\",\n Storage = \"storage\",\n Supervisor = \"supervisor\",\n Supplier = \"supplier\",\n Surgery = \"surgery\",\n Tablechart = \"tablechart\",\n Tag = \"tag\",\n TalkTooMuch = \"talk_too_much\",\n Target = \"target\",\n Task = \"task\",\n ThickLines = \"thick_lines\",\n ThinLines = \"thin_lines\",\n ThreeSixtyView = \"three_sixty_view\",\n ThumbBronze = \"thumb_bronze\",\n ThumbGold = \"thumb_gold\",\n ThumbSilver = \"thumb_silver\",\n Timeline = \"timeline\",\n Transactions = \"transactions\",\n TransactionDetail = \"transaction_detail\",\n TrashBin = \"TrashBin\",\n TrashCanSolid = \"trash_can_solid\",\n TriangleDown = \"triangle_down\",\n TriangleLarge = \"triangle_large\",\n TriangleLeft = \"triangle_left\",\n TriangleRight = \"triangle_right\",\n TriangleUp = \"triangle_up\",\n Truck = \"truck\",\n TruckCalendar = \"truck_calendar\",\n UndoRoundOpen = \"undo_round_open\",\n User = \"user\",\n Variants = \"variants\",\n Vbarchart = \"vbarchart\",\n View = \"view\",\n Warehouse = \"warehouse\",\n Watermark = \"watermark\",\n Website = \"website\",\n Wizard = \"wizard\",\n Wms = \"wms\",\n WorkInProgress = \"work_in_progress\",\n WorkInProgressRoundOpen = \"work_in_progress_round_open\",\n Wrench = \"wrench\",\n XAxis = \"x_axis\",\n YAxis = \"y_axis\"\n}","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\n\nexport const CoreComponentsIconSvg: {[iconName: string]: string} = {\n \"account\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.05,22.53h-.49C29.45,24.1,27.15,26,25,26s-4.46-1.87-5.56-3.44H19a4.2,4.2,0,0,0-4,3.87l2.68,3c0,1.78,1.81,8.15,4,8.15h6.72c2.23,0,4-6.37,4-8.15l2.69-3A4.21,4.21,0,0,0,31.05,22.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.18,17.64a6.2,6.2,0,0,1-12.37,0c0-2.72,2.77-5.14,6.19-5.14S31.18,14.92,31.18,17.64Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"account_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,16.29c2.38,0,4.31,1.69,4.31,3.58a4.32,4.32,0,0,1-8.62,0C20.69,18,22.62,16.29,25,16.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.15,28c0,1.24-1.26,5.68-2.81,5.68H22.66c-1.55,0-2.81-4.44-2.81-5.68L18,26a2.94,2.94,0,0,1,2.81-2.69h.34A5.55,5.55,0,0,0,25,25.67a5.51,5.51,0,0,0,3.87-2.39h.35A2.94,2.94,0,0,1,32,26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,40A15,15,0,1,1,40,25,15,15,0,0,1,25,40Zm0-29A14,14,0,1,0,39,25,14,14,0,0,0,25,11Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"activities\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"33.08\\\" y=\\\"19.99\\\" width=\\\"1.15\\\" height=\\\"4.99\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.92,15a.39.39,0,0,1,.39-.38H27.87V13.46H17.31A1.54,1.54,0,0,0,15.77,15v3.05h1.15Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M33.08,32V35a.39.39,0,0,1-.39.38H17.31a.39.39,0,0,1-.39-.38V25H15.77V35a1.54,1.54,0,0,0,1.54,1.54H32.69A1.54,1.54,0,0,0,34.23,35V32Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M27.87,13.46v5c0,1.36.21,1.57,1.57,1.57h4.79Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"40 26.71 29.4 26.71 29.41 22.69 23.64 28.46 29.41 34.23 29.41 30.22 40 30.22 40 26.71\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"10 23.3 20.6 23.3 20.59 27.31 26.36 21.54 20.59 15.77 20.59 19.78 10 19.78 10 23.3\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"27.06 31.14 27.06 12.5 22.94 12.5 22.94 31.14 22.94 31.14 18.64 31.14 25 37.5 31.36 31.14 27.06 31.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_fat_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"12.5 25 24.8 37.3 24.8 29.65 37.5 29.65 37.5 20.34 24.8 20.34 24.8 12.7 12.5 25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_fat_right\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"37.5 25 25.2 12.7 25.2 20.35 12.5 20.35 12.5 29.66 25.2 29.66 25.2 37.3 37.5 25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"23.63 33.63 15 25 23.63 16.37 24.6 17.34 16.95 25 24.6 32.66 23.63 33.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"23.49\\\" y=\\\"24.31\\\" width=\\\"11.51\\\" height=\\\"1.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/></svg>\",\n \"arrow_left_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.65 31.43 17.39 25.17 23.65 18.9 24.36 19.61 18.8 25.17 24.36 30.72 23.65 31.43\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"23.55\\\" y=\\\"24.67\\\" width=\\\"8.36\\\" height=\\\"1\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/></svg>\",\n \"arrow_point_down\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 371 51 51\\\" enable-background=\\\"new -280 371 51 51\\\" ><path fill=\\\"#29363E\\\" d=\\\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\\\"/></svg>\",\n \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\n \"arrow_point_up\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 371 51 51\\\" enable-background=\\\"new -280 371 51 51\\\" ><path fill=\\\"#29363E\\\" d=\\\"M-260.7,400.8c-0.3,0-0.6-0.1-0.8-0.3c-0.5-0.5-0.5-1.2,0-1.6l6.2-6.2c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l6.2,6.2c0.2,0.2,0.3,0.5,0.3,0.8c0,0.3-0.1,0.6-0.3,0.8c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-5.4-5.4l-5.4,5.4C-260.1,400.6-260.4,400.8-260.7,400.8z\\\"/></svg>\",\n \"arrow_right_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.35 31.43 25.64 30.72 31.2 25.17 25.64 19.61 26.35 18.9 32.61 25.17 26.35 31.43\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"18.09\\\" y=\\\"24.67\\\" width=\\\"8.36\\\" height=\\\"1\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/></svg>\",\n \"arrow_scroll_down\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><polygon fill=\\\"#29363E\\\" points=\\\"5,19.4 8.5,15.8 25,27.3 41.5,15.8 45,19.4 25,34.2 \\\"/></svg>\",\n \"arrow_scroll_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" enable-background=\\\"new 0 0 50 50\\\" viewBox=\\\"0 0 50 50\\\" y=\\\"0px\\\" x=\\\"0px\\\" version=\\\"1.1\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><polygon fill=\\\"#000000\\\" transform=\\\"matrix(0,1,-1,0,50,0)\\\" points=\\\"8.5,15.8 25,27.3 41.5,15.8 45,19.4 25,34.2 5,19.4 \\\" /></svg>\",\n \"arrow_scroll_right\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" enable-background=\\\"new 0 0 50 50\\\" viewBox=\\\"0 0 50 50\\\" y=\\\"0px\\\" x=\\\"0px\\\" version=\\\"1.1\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><polygon fill=\\\"#000000\\\" transform=\\\"matrix(0,-1,1,0,0,50)\\\" points=\\\"41.5,15.8 45,19.4 25,34.2 5,19.4 8.5,15.8 25,27.3 \\\" /></svg>\",\n \"arrow_scroll_up\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><polygon fill=\\\"#29363E\\\" points=\\\"5,30.6 8.5,34.2 25,22.7 41.5,34.2 45,30.6 25,15.8 \\\"/></svg>\",\n \"arrow_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"27.5 19.4 27.5 38 23.4 38 23.4 19.4 23.4 19.4 19.1 19.4 25.4 13 31.8 19.4 27.5 19.4\\\" fill=\\\"#2a363b\\\"/></svg>\",\n \"article\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M37.43,15.14H12.57A2.57,2.57,0,0,0,10,17.71V32.29a2.57,2.57,0,0,0,2.57,2.57H37.43A2.57,2.57,0,0,0,40,32.29V17.71A2.57,2.57,0,0,0,37.43,15.14ZM14.29,32.71H12.15V17.29h2.14Zm2,0H15V17.29h1.29Zm2.57,0H17.54V17.29h1.29Zm3.52,0H20.2V17.29h2.15Zm2,0H23.11V17.29H24.4Zm2.06,0H25.17V17.29h1.29Zm2.66,0H27.83V17.29h1.29Zm3.51,0H31.34V17.29h1.29Zm3.34,0H33.4V17.29H36Zm2.32,0H37V17.29h1.29Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"article_with_fold\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.51,35.5H12a.5.5,0,0,1-.5-.5V15a.5.5,0,0,1,.5-.5H38a.5.5,0,0,1,.5.5V28.73H40V15a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H31.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,28.73H33.56c-1.78,0-2.05.27-2.05,2.05V37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"18.5\\\" width=\\\"6\\\" height=\\\"5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"30.5\\\" width=\\\"15\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"26.5\\\" width=\\\"15\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.5\\\" y=\\\"22.5\\\" width=\\\"13\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.5\\\" y=\\\"18.5\\\" width=\\\"13\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"asterisk_small\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"22\\\" width=\\\"30\\\" height=\\\"6\\\" transform=\\\"translate(15.85 -9.15) rotate(30)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"22\\\" width=\\\"30\\\" height=\\\"6\\\" transform=\\\"translate(0 50) rotate(-90)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"22\\\" width=\\\"30\\\" height=\\\"6\\\" transform=\\\"translate(-9.15 15.85) rotate(-30)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"attachments\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M12.16,18.19l-1.39,1.39a4.28,4.28,0,0,1,.27-6l1.39,1.39a2.33,2.33,0,0,0-.27,3.25Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.17,27.37l-1.39,1.39L15.68,14.67a2.33,2.33,0,0,0-3.25.27L11,13.55a4.29,4.29,0,0,1,6-.28l14.1,14.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.7,37.72l-1.39-1.4a4,4,0,0,0,.41-5.6l-18-18,1.39-1.39,18,18c2.2,2.2,2,6-.41,8.4Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.7,37.72c-2.43,2.42-6.19,2.61-8.39.41L10.77,19.58l1.39-1.39L30.7,36.73c1.43,1.44,3.95,1.25,5.61-.41l1.39,1.4Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31,31.15l-1.39-1.39a.79.79,0,0,0,.14-1.07l1.39-1.39A2.72,2.72,0,0,1,31,31.15Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31,31.15a2.72,2.72,0,0,1-3.85.14L16.54,20.73l1.39-1.39L28.49,29.9a.79.79,0,0,0,1.07-.14L31,31.15Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"back_to_top\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><text transform=\\\"translate(14.59 36.45)\\\" font-size=\\\"10\\\" fill=\\\"#484f60\\\" font-family=\\\"Quicksand-Regular, Quicksand\\\">TOP</text><polygon points=\\\"25 11.75 32.5 19.25 27.43 19.25 22.57 19.25 17.5 19.25 25 11.75\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.5\\\" y=\\\"21.25\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.5\\\" y=\\\"24.25\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"Barcode\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><path d=\\\"M 32.002 0 L 3.001 0 C 1.345 0 0 1.344 0 2.999 L 0 20.002 C 0 21.66 1.345 23.002 3.001 23.002 L 32.002 23.002 C 33.66 23.002 35 21.66 35 20.002 L 35 2.999 C 35 1.344 33.66 0 32.002 0 Z M 5 20.5 L 2.503 20.5 L 2.503 2.501 L 5 2.501 L 5 20.5 Z M 7.301 20.5 L 5.801 20.5 L 5.801 2.501 L 7.301 2.501 L 7.301 20.5 Z M 10.302 20.5 L 8.8 20.5 L 8.8 2.501 L 10.302 2.501 L 10.302 20.5 Z M 14.403 20.5 L 11.9 20.5 L 11.9 2.501 L 14.403 2.501 L 14.403 20.5 Z M 16.802 20.5 L 15.3 20.5 L 15.3 2.501 L 16.802 2.501 L 16.802 20.5 Z M 19.204 20.5 L 17.703 20.5 L 17.703 2.501 L 19.204 2.501 L 19.204 20.5 Z M 22.306 20.5 L 20.804 20.5 L 20.804 2.501 L 22.306 2.501 L 22.306 20.5 Z M 26.404 20.5 L 24.902 20.5 L 24.902 2.501 L 26.404 2.501 L 26.404 20.5 Z M 30.304 20.5 L 27.303 20.5 L 27.303 2.501 L 30.304 2.501 L 30.304 20.5 Z M 33 20.5 L 31.505 20.5 L 31.505 2.501 L 33 2.501 L 33 20.5 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(7.5 13.499)\\\" /></svg>\",\n \"big_mac\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><rect x=\\\"10.5\\\" y=\\\"14.5\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"20.5\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"26.5\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"32.5\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"boxes\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(9 11)\\\"><path d=\\\"M 0 12.292 L 0 0 L 8.563 1.518 L 8.563 14.576 L 0 12.292 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0 13.24)\\\" /><path d=\\\"M 0 1.132 L 7.909 0 L 7.909 11.897 L 0 14.153 L 0 1.132 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(9.813 13.647)\\\" /><path d=\\\"M 0 11.868 L 0 0 L 3.111 0.625 L 3.111 12.876 L 0 11.868 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(18.969 13.69)\\\" /><path d=\\\"M 0 1.433 L 8.673 0 L 8.673 11.434 L 0 13.721 L 0 1.433 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(23.327 12.898)\\\" /><path d=\\\"M 0 0.752 L 7.691 0 L 7.691 10.344 L 0 11.655 L 0 0.752 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(17.633 1.08)\\\" /><path d=\\\"M 0 10.344 L 0 0 L 8.13 0.755 L 8.13 11.669 L 0 10.344 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(8.258 1.077)\\\" /><path d=\\\"M 0 0.752 L 5.708 0 L 5.708 0.444 L 12.023 1.475 L 7.602 2.106 L 0 0.752 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(1.588 11.791)\\\" /><path d=\\\"M 0 1.434 L 5.278 0.54 L 5.182 0 L 9.086 0.528 L 1.549 1.772 L 0 1.434 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(21.162 11.687)\\\" /><path d=\\\"M 0 0.29 L 5.135 0 L 9.542 0.281 L 4.829 0.741 L 0 0.29 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(12.179 0.185)\\\" /></g></svg>\",\n \"brush\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M28.16,26a9.71,9.71,0,0,1-4-3.66A.88.88,0,0,0,22.92,22c-1.08.48-2.19.92-3.27,1.43-3.71,1.74-6,4.5-6.23,8.75-.17,2.75-.89,5.32-3.42,7.25,1.18,0,2.12,0,3.05,0,.73,0,1.46-.07,2.18-.12a10.82,10.82,0,0,0,4.86-3.38c1.31-1.61,3.14-3.58,3.95-5.49l-.08.38a22.78,22.78,0,0,1-3.09,5.74A11.79,11.79,0,0,1,18.13,39a22.35,22.35,0,0,0,4.29-1A8.2,8.2,0,0,0,28.06,32c.38-1.62.44-3.31.66-5A1,1,0,0,0,28.16,26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.23,20.43l6.57-9.32a1.23,1.23,0,0,1,1.87-.18l4.94,4.7a1.24,1.24,0,0,1-.11,1.9l-9.15,6.78a1.25,1.25,0,0,1-1.58-.08L26.4,22.06A1.23,1.23,0,0,1,26.23,20.43Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"brush_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>Tekengebied 13 kopie 739</title><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M13.39,36.15A7,7,0,0,0,16,30.53a7.59,7.59,0,0,1,4.83-6.77c.83-.39,1.69-.73,2.53-1.11a.69.69,0,0,1,1,.29,7.34,7.34,0,0,0,3.09,2.83.73.73,0,0,1,.43.82c-.17,1.28-.22,2.59-.51,3.84A6.35,6.35,0,0,1,23,35a24.09,24.09,0,0,1-7.25,1.14C15,36.18,14.3,36.15,13.39,36.15Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26,21.46,31,14.25a1,1,0,0,1,1.46-.14l3.82,3.64a1,1,0,0,1-.09,1.47l-7.08,5.24a1,1,0,0,1-1.22-.06l-1.83-1.67A1,1,0,0,1,26,21.46Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"building_columns\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path style= \\\"fill: #484f60\\\" d=\\\"M243.4 2.587C251.4-.8625 260.6-.8625 268.6 2.587L492.6 98.59C506.6 104.6 514.4 119.6 511.3 134.4C508.3 149.3 495.2 159.1 479.1 160V168C479.1 181.3 469.3 192 455.1 192H55.1C42.74 192 31.1 181.3 31.1 168V160C16.81 159.1 3.708 149.3 .6528 134.4C-2.402 119.6 5.429 104.6 19.39 98.59L243.4 2.587zM256 128C273.7 128 288 113.7 288 96C288 78.33 273.7 64 256 64C238.3 64 224 78.33 224 96C224 113.7 238.3 128 256 128zM127.1 416H167.1V224H231.1V416H280V224H344V416H384V224H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H31.1C17.9 512 5.458 502.8 1.372 489.3C-2.715 475.8 2.515 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.41 420.6 63.1 420.3V224H127.1V416z\\\"/></svg>\",\n \"businessrules\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,24.59l-.3-1.7-2.3-.21a5.22,5.22,0,0,0-.7-1.11l.74-2.07L21,18.5l-1.69,1.4a5.26,5.26,0,0,0-1.26-.29l-1-2.1-1.7.3-.21,2.29a4.88,4.88,0,0,0-1.15.73l-2-.73-1,1.41,1.38,1.67a5.29,5.29,0,0,0-.29,1.31l-2.09,1,.3,1.7,2.32.22a5.51,5.51,0,0,0,.71,1.09l-.74,2.05,1.42,1,1.68-1.4a5.3,5.3,0,0,0,1.3.28l1,2.08,1.7-.3.21-2.31A5.44,5.44,0,0,0,21,29.19l2.08.74,1-1.41-1.42-1.71a5,5,0,0,0,.28-1.23Zm-7.13,2.55a2.17,2.17,0,1,1,1.77-2.51A2.16,2.16,0,0,1,17.87,27.14Z\\\" fill=\\\"#484f60\\\"/><polyline points=\\\"35.97 33.1 38.44 29.57 40 38.44 31.14 40 33.6 36.48\\\" fill=\\\"#484f5f\\\"/><polygon points=\\\"35.62 34.07 26.39 27.61 26.55 28.42 25.66 29.69 34.39 35.81 35.62 34.07\\\" fill=\\\"#484f5f\\\"/><polyline points=\\\"33.6 13.52 31.14 10 40 11.56 38.44 20.43 35.97 16.9\\\" fill=\\\"#484f5f\\\"/><polygon points=\\\"26.61 22.23 35.61 15.93 34.39 14.19 24.82 20.89 26.4 21.04 26.61 22.23\\\" fill=\\\"#484f5f\\\"/></svg>\",\n \"calendar\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.94,12h-4v2a2,2,0,1,1-4.08,0V12H21.17v2a2,2,0,1,1-4.08,0V12h-4a1.2,1.2,0,0,0-1.19,1.2V18H38.14V13.16A1.2,1.2,0,0,0,36.94,12Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.14,20.5v16L34.65,39H13.05a.2.2,0,0,1-.19-.2V20.5H37.14m1-1H11.86V38.8A1.2,1.2,0,0,0,13.05,40h22l3.08-3.08V19.5Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.24\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.97\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"24.37\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"29.5\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"34.62\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.18\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"24.75\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.32\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_day\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#022D42\\\" d=\\\"M35.4,13.7H14.6c-0.6,0-1,0.5-1,1V20h22.9v-5.2C36.4,14.2,36,13.7,35.4,13.7z M19,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8c1,0,1.8,0.8,1.8,1.8C20.8,18,20,18.8,19,18.8z M31,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8C32.7,18,32,18.8,31,18.8z\\\"/><path fill=\\\"#022D42\\\" d=\\\"M35.4,22.3v12.6L31.3,39H14.6c0,0,0,0,0,0V22.3H35.4 M36.4,21.3H13.6V39c0,0.6,0.5,1,1,1h17.2l4.7-4.7V21.3L36.4,21.3z\\\"/><rect x=\\\"18.2\\\" y=\\\"10\\\" fill=\\\"#022D42\\\" width=\\\"1.6\\\" height=\\\"5.2\\\"/><rect x=\\\"30.2\\\" y=\\\"10\\\" fill=\\\"#022D42\\\" width=\\\"1.6\\\" height=\\\"5.2\\\"/><rect x=\\\"18.6\\\" y=\\\"30.5\\\" fill=\\\"#022D42\\\" width=\\\"3.4\\\" height=\\\"3.4\\\"/><rect x=\\\"19.1\\\" y=\\\"24.8\\\" opacity=\\\"0.1\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"19.1\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"19.1\\\" y=\\\"34.1\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"22.2\\\" y=\\\"24.8\\\" opacity=\\\"0.1\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"22.2\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"22.2\\\" y=\\\"31\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"22.2\\\" y=\\\"34.1\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"25.4\\\" y=\\\"31\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"25.4\\\" y=\\\"24.8\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"25.4\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"25.4\\\" y=\\\"34.1\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"31.6\\\" y=\\\"31\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"31.6\\\" y=\\\"24.8\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"31.6\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"28.5\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"28.5\\\" y=\\\"24.8\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"28.5\\\" y=\\\"31\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"28.5\\\" y=\\\"34.1\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"16\\\" y=\\\"24.8\\\" opacity=\\\"0.1\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"16\\\" y=\\\"27.9\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"16\\\" y=\\\"31\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/><rect x=\\\"16\\\" y=\\\"34.1\\\" opacity=\\\"0.25\\\" fill=\\\"#022D42\\\" width=\\\"2.4\\\" height=\\\"2.4\\\"/></g></svg>\",\n \"calendar_day_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M208 256C216.8 256 224 263.2 224 272V368C224 376.8 216.8 384 208 384H112C103.2 384 96 376.8 96 368V272C96 263.2 103.2 256 112 256H208zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z\\\"/></svg>\",\n \"calendar_empty\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M695.94,372h-4v2a2,2,0,0,1-4.09,0v-2h-7.65v2a2,2,0,0,1-4.09,0v-2h-4a1.19,1.19,0,0,0-1.19,1.2V378h26.28v-4.82A1.19,1.19,0,0,0,695.94,372Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M696.14,380.5v16l-2.49,2.5H672.05a.19.19,0,0,1-.19-.2V380.5h24.28m1-1H670.86V398.8a1.19,1.19,0,0,0,1.19,1.2h22l3.08-3.08V379.5Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M678.13,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,678.13,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M689.87,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,689.87,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"12.36\\\" y=\\\"24.87\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"30\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"35.12\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.68\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.25\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.82\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_range\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.94,12h-4v2a2,2,0,1,1-4.08,0V12H21.17v2a2,2,0,1,1-4.08,0V12h-4a1.2,1.2,0,0,0-1.19,1.2V18H38.14V13.16A1.2,1.2,0,0,0,36.94,12Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.14,20.5v16L34.65,39H13.05a.2.2,0,0,1-.19-.2V20.5H37.14m1-1H11.86V38.8A1.2,1.2,0,0,0,13.05,40h22l3.08-3.08V19.5Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.24\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.97\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"15\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.1\\\"/><rect x=\\\"28.6\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.2\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"21.8\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.4\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.1\\\"/><rect x=\\\"32\\\" y=\\\"22.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"28.6\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.2\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"21.8\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.4\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"26.16\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"28.6\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.2\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"21.8\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.4\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"29.83\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"28.6\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.1\\\"/><rect x=\\\"25.2\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"21.8\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.4\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"33.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.1\\\"/><rect x=\\\"18.75\\\" y=\\\"25.66\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"25.66\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"27.25\\\" y=\\\"25.66\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"31.5\\\" y=\\\"25.66\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"calendar_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M692.76,375.44h-3v1.47a1.5,1.5,0,1,1-3,0v-1.47h-5.61v1.47a1.5,1.5,0,1,1-3,0v-1.47h-3a.88.88,0,0,0-.87.88v3.54h19.27v-3.54A.88.88,0,0,0,692.76,375.44Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M692.9,381.7v11.74l-1.83,1.83H675.24a.14.14,0,0,1-.14-.14V381.7h17.8m.73-.73H674.37v14.16a.88.88,0,0,0,.87.88h16.14l2.26-2.26V381Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"20.54\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"29.15\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.87\\\" y=\\\"25.04\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"28.8\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"32.56\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"20.5\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.32\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"30.13\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><path d=\\\"M684,366.33A18.67,18.67,0,1,1,665.33,385,18.69,18.69,0,0,1,684,366.33m0-1.33a20,20,0,1,0,20,20,20,20,0,0,0-20-20Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"camera\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35,18l-3-4H22l-3,4H16V36H40V18ZM24,16h6v2H24Zm2.5,18A6.5,6.5,0,1,1,33,27.5,6.51,6.51,0,0,1,26.5,34ZM38,22H36V20h2Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"18\\\" width=\\\"5\\\" height=\\\"18\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.5,32A4.5,4.5,0,1,1,31,27.5,4.51,4.51,0,0,1,26.5,32Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_filled\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10Zm9.38,23.32h-5.3L25,28.27l-4.08,5.05H15.63L22.35,25l-6.72-8.32h5.29L25,21.73l4.08-5.05h5.3L27.64,25Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,40.17a15,15,0,1,1,15-15A15,15,0,0,1,25,40.17Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,25,11.13Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"29.41 32.25 25 26.79 20.59 32.25 17.96 32.25 23.68 25.17 17.96 18.09 20.59 18.09 25 23.54 29.41 18.09 32.04 18.09 26.32 25.17 32.04 32.25 29.41 32.25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M13.39,31.55A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19a.89.89,0,0,0-1-1.09L10.92,20.83a1,1,0,0,0-.87,1.28Zm19-2.05a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l19.71-2.51a.88.88,0,0,1,1,1.08Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cart_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><circle cx=\\\"17.08\\\" cy=\\\"34.14\\\" r=\\\"1.8\\\" fill=\\\"#4d5050\\\"/><circle cx=\\\"31.99\\\" cy=\\\"34.14\\\" r=\\\"1.8\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M672.39,388.55a1.73,1.73,0,0,0,1.56,1.17h17.69a1.51,1.51,0,0,0,1.43-1.2L695.6,376a.88.88,0,0,0-1-1.08l-24.68,2.93a1,1,0,0,0-.87,1.28Zm19-2.05a1.52,1.52,0,0,1-1.43,1.2h-14.4a1.75,1.75,0,0,1-1.57-1.16l-2.31-5.61a1,1,0,0,1,.86-1.28l19.71-2.51a.87.87,0,0,1,1,1.08Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M698,374a1.88,1.88,0,0,0-1.37,1.46l-.42,2.9c-.1.66.31,1,.9.7a2.74,2.74,0,0,0,1.33-1.7L699,375A.74.74,0,0,0,698,374Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"case_manager\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M26.85,29H23.46a.89.89,0,0,0-.88.88v5.28L24,32.3c.08-.74.69-1.32,2.86-1.36H36v-1.1a.89.89,0,0,0-.88-.88H26.85Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,38.29a.88.88,0,0,1-.88.88H23.76a.88.88,0,0,1-.88-.88l2.2-5.38A.88.88,0,0,1,26,32H36.7a.88.88,0,0,1,.88.88Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><path d=\\\"M20.58,35.11V29.83A2.89,2.89,0,0,1,23.46,27h7.4l1.72-1.89a4.22,4.22,0,0,0-4-3.87h-.49c-1.11,1.57-3.41,3.44-5.56,3.44S18,22.76,16.94,21.19h-.49a4.21,4.21,0,0,0-4,3.87l2.68,3c0,1.77,1.81,8.15,4,8.15h1.44Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.68,16.31c0,2.71-2.77,5.77-6.18,5.77S16.31,19,16.31,16.31s2.77-5.14,6.19-5.14S28.68,13.59,28.68,16.31Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"CashRegister\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35.39,18.12H14.62L10,29.66H40ZM23,19.29H27l.1,1.6H22.87Zm-.13,2h4.32l.12,1.81H22.72Zm-.15,2.3h4.62l.14,2.08h-4.9ZM17.9,19.29H22l-.16,1.6H17.54Zm-.46,2h4.32l-.18,1.81H17Zm-.53,2.3h4.62l-.2,2.08h-4.9Zm-1.16,5.06.55-2.42H27.49l.16,2.42ZM28,19.29H32.1l.36,1.6H28.2Zm.2,2h4.32L33,23.12H28.42Zm.23,2.3h4.62l.48,2.08h-4.9Zm.5,5.06-.24-2.42h5l.55,2.42Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M10,29.66v9.23H40V29.66Zm27.69,6.92H12.31V32H37.69Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M15.63,11.11v7.58H34.37V11.11Zm17.31,6.15H17.06V12.54H32.94Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cash_register_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path style= \\\"fill: #484f60\\\" d=\\\"M288 0C305.7 0 320 14.33 320 32V96C320 113.7 305.7 128 288 128H208V160H424.1C456.6 160 483.5 183.1 488.2 214.4L510.9 364.1C511.6 368.8 512 373.6 512 378.4V448C512 483.3 483.3 512 448 512H64C28.65 512 0 483.3 0 448V378.4C0 373.6 .3622 368.8 1.083 364.1L23.76 214.4C28.5 183.1 55.39 160 87.03 160H143.1V128H63.1C46.33 128 31.1 113.7 31.1 96V32C31.1 14.33 46.33 0 63.1 0L288 0zM96 48C87.16 48 80 55.16 80 64C80 72.84 87.16 80 96 80H256C264.8 80 272 72.84 272 64C272 55.16 264.8 48 256 48H96zM80 448H432C440.8 448 448 440.8 448 432C448 423.2 440.8 416 432 416H80C71.16 416 64 423.2 64 432C64 440.8 71.16 448 80 448zM112 216C98.75 216 88 226.7 88 240C88 253.3 98.75 264 112 264C125.3 264 136 253.3 136 240C136 226.7 125.3 216 112 216zM208 264C221.3 264 232 253.3 232 240C232 226.7 221.3 216 208 216C194.7 216 184 226.7 184 240C184 253.3 194.7 264 208 264zM160 296C146.7 296 136 306.7 136 320C136 333.3 146.7 344 160 344C173.3 344 184 333.3 184 320C184 306.7 173.3 296 160 296zM304 264C317.3 264 328 253.3 328 240C328 226.7 317.3 216 304 216C290.7 216 280 226.7 280 240C280 253.3 290.7 264 304 264zM256 296C242.7 296 232 306.7 232 320C232 333.3 242.7 344 256 344C269.3 344 280 333.3 280 320C280 306.7 269.3 296 256 296zM400 264C413.3 264 424 253.3 424 240C424 226.7 413.3 216 400 216C386.7 216 376 226.7 376 240C376 253.3 386.7 264 400 264zM352 296C338.7 296 328 306.7 328 320C328 333.3 338.7 344 352 344C365.3 344 376 333.3 376 320C376 306.7 365.3 296 352 296z\\\"/></svg>\",\n \"change_location\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"16.96 25 24.27 32.31 24.27 27.76 29.09 27.76 29.09 22.23 24.27 22.23 24.27 17.69 16.96 25\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.21 23.18 10 23.18 10 26.82 16.21 26.82 14.39 25 16.21 23.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"10 14.77 10 18.4 20.99 18.4 24.63 14.77 10 14.77\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"10 31.6 10 35.23 24.63 35.23 20.99 31.6 10 31.6\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.35 13.84 35.45 11.47 39.55 13.83 35.45 16.2 31.35 13.84\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 19.32 39.99 14.59 35.89 16.96 35.9 18.05 39.06 19.86 40 19.32\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"35.02 16.96 30.91 14.6 30.92 19.34 31.84 19.87 35.02 18.03 35.02 16.96\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"31.35 22.26 35.45 19.88 39.55 22.24 35.45 24.62 31.35 22.26\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 27.74 39.99 23 35.89 25.38 35.9 26.46 39.06 28.28 40 27.74\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"35.02 25.38 30.91 23.02 30.92 27.75 31.84 28.29 35.02 26.45 35.02 25.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"31.35 30.67 35.45 28.3 39.55 30.66 35.45 33.03 31.35 30.67\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.89 33.79 39.99 31.42 40 36.15 35.9 38.53 35.89 33.79\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"30.92 36.17 30.91 31.43 35.02 33.8 35.03 38.53 30.92 36.17\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"check\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"16.97 22.92 20.78 28.61 29.96 13 36.16 13 20.78 37 13.84 26.9 16.97 22.92\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check_duotone\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><defs><style>.fa-secondary{opacity:.4}</style></defs><path class=\\\"fa-primary\\\" d=\\\"M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z\\\"/></svg>\",\n \"check_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10ZM23,34l-6.24-9.09,2.81-3.59L23,26.45,27.66,16h5.58Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check_round_open\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#2A363B\\\" d=\\\"M40.5,25.5C40.5,34,33.5,41,25,41S9.5,34,9.5,25.5S16.5,10,25,10S40.5,16.9,40.5,25.5z M10.5,25.5C10.5,33.5,17,40,25,40s14.5-6.5,14.5-14.5S33,11,25,11S10.5,17.5,10.5,25.5z\\\"/></g><polygon fill=\\\"#2A363B\\\" points=\\\"19.9,24 22.5,28 29,17.1 33.3,17.1 22.5,33.9 17.7,26.8 \\\"/></svg>\",\n \"check_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon fill=\\\"#2A363B\\\" points=\\\"19.9,24 22.5,28 29,17.1 33.3,17.1 22.5,33.9 17.7,26.8 \\\"/></svg>\",\n \"check_thin\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"23.25 37.6 14.37 25.1 15.19 24.52 23.11 35.66 34.73 12.4 35.63 12.85 23.25 37.6\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"chevron_down_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M239 401c9.4 9.4 24.6 9.4 33.9 0L465 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-175 175L81 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L239 401z\\\"/></svg>\",\n \"chevron_up_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M239 111c9.4-9.4 24.6-9.4 33.9 0L465 303c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-175-175L81 337c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 111z\\\"/></svg>\",\n \"CirclePlusSkinny\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(10 10)\\\"><path d=\\\"M 16 8.668 C 16 9.402 15.402 10 14.668 10 L 10 10 L 10 14.668 C 10 15.402 9.402 16 8.668 16 L 7.337 16 C 6.598 16 6 15.402 6 14.668 L 6 10 L 1.337 10 C 0.598 10 0 9.402 0 8.668 L 0 7.332 C 0 6.599 0.598 6 1.337 6 L 6 6 L 6 1.333 C 6 0.598 6.598 0 7.337 0 L 8.668 0 C 9.402 0 10 0.598 10 1.333 L 10 6 L 14.668 6 C 15.402 6 16 6.599 16 7.332 L 16 8.668 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(7 7.47)\\\" /><path d=\\\"M 15 1 C 22.72 1 29 7.28 29 15 C 29 22.72 22.72 29 15 29 C 7.28 29 1 22.72 1 15 C 1 7.28 7.28 1 15 1 M 15 0 C 6.717 0 0 6.714 0 15 C 0 23.283 6.717 30 15 30 C 23.286 30 30 23.283 30 15 C 30 6.714 23.286 0 15 0 L 15 0 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0 0.47)\\\" /></g></svg>\",\n \"client\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30.3,25.39h-.43c-1,1.37-3,3-4.87,3s-3.9-1.64-4.87-3H19.7a3.68,3.68,0,0,0-3.53,3.39l2.35,2.58c0,1.56,1.59,7.14,3.54,7.14h5.88c1.95,0,3.53-5.58,3.53-7.14l2.36-2.58A3.68,3.68,0,0,0,30.3,25.39Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.9\\\"/><path d=\\\"M19.66,20.41a3.27,3.27,0,0,0-.08.7,5.43,5.43,0,0,0,10.83,0,4.05,4.05,0,0,0-.07-.7,35.41,35.41,0,0,1-5.36.47A34.08,34.08,0,0,1,19.66,20.41Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.9\\\"/><path d=\\\"M19.58,18.92a33.34,33.34,0,0,0,5.4.5,35,35,0,0,0,5.43-.5c-.9-.59,1.46-6.69,1.46-6.69s-2.44,3.57-3.95,3.65S25,12.23,25,12.23s-1.35,3.63-2.92,3.65-4-3.65-4-3.65S20.42,18.36,19.58,18.92Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.22,12.59a1.1,1.1,0,1,1-1.1-1.09A1.1,1.1,0,0,1,19.22,12.59Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M33,12.59a1.1,1.1,0,1,1-1.1-1.09A1.1,1.1,0,0,1,33,12.59Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.09,12.59A1.1,1.1,0,1,1,25,11.5,1.09,1.09,0,0,1,26.09,12.59Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"clock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10Zm0,27.5A12.5,12.5,0,1,1,37.5,25,12.52,12.52,0,0,1,25,37.5Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.41,26.24a1.68,1.68,0,1,1-1.67-1.68A1.67,1.67,0,0,1,26.41,26.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.06 26.24 24.74 16.48 26.41 26.24 23.06 26.24\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24.74 24.56 32.15 26.24 24.74 27.91 24.74 24.56\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"clockArrow\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(9 10)\\\"><path d=\\\"M 9.467 4.834 C 14.581 5.457 18.544 9.811 18.544 15.094 C 18.544 20.804 13.915 25.433 8.205 25.433 C 6.521 25.433 4.935 25.028 3.53 24.315 L 3.53 27.598 L 0 27.598 C 2.326 29.081 5.087 29.943 8.051 29.943 C 16.335 29.943 23.051 23.228 23.051 14.943 C 23.051 7.084 17.005 0.641 9.312 0 L 9.467 4.834 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(8.589 0.057)\\\" /><path d=\\\"M 0 26.396 L 10.49 26.396 L 10.49 15.906 L 6.994 19.398 C 6.409 18.102 6.084 16.664 6.084 15.15 C 6.084 9.44 10.713 4.811 16.424 4.811 L 16.27 0 C 7.984 0 1.27 6.716 1.27 15 C 1.27 17.895 2.089 20.597 3.509 22.889 L 0 26.396 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.37 0)\\\" /><ellipse cx=\\\"17.0\\\" cy=\\\"16.0\\\" fill=\\\"#1E2930\\\" rx=\\\"1.0\\\" ry=\\\"1.0\\\" /><path d=\\\"M 0 7.808 L 1.342 0 L 2.683 7.808 L 0 7.808 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(15.452 8.182)\\\" /><path d=\\\"M 0 0 L 5.929 1.341 L 0 2.682 L 0 0 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(16.794 14.648)\\\" /></g></svg>\",\n \"cogWheelPlus\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M37.77,29.63H33.39V25.25A1.25,1.25,0,0,0,32.14,24H30.9a1.25,1.25,0,0,0-1.26,1.25v4.38H25.27A1.25,1.25,0,0,0,24,30.87v1.26a1.26,1.26,0,0,0,1.25,1.25h4.37v4.37A1.25,1.25,0,0,0,30.9,39h1.24a1.25,1.25,0,0,0,1.25-1.25V33.38h4.38A1.26,1.26,0,0,0,39,32.13V30.87A1.25,1.25,0,0,0,37.77,29.63Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.95\\\"/><path d=\\\"M22,32.13V30.87a3.25,3.25,0,0,1,3.25-3.24h2.37V25.25A3.26,3.26,0,0,1,30.9,22h1.24a3.26,3.26,0,0,1,3.25,3.17L36,25V22.1l-3.74-1a9.59,9.59,0,0,0-.83-2l1.82-3.2-2-2.05L28,15.61a9.36,9.36,0,0,0-2-.86L25,11H22.12l-1,3.71a9.32,9.32,0,0,0-2.11.88l-3.15-1.8-2.05,2.05L15.59,19a8.93,8.93,0,0,0-.86,2.09L11,22.1V25l3.77,1a9.16,9.16,0,0,0,.86,2l-1.82,3.17,2.05,2L19,31.43a8.93,8.93,0,0,0,2.07.85l1,3.72H25l.18-.63A3.25,3.25,0,0,1,22,32.13ZM19.86,23.5a3.65,3.65,0,1,1,3.64,3.64A3.64,3.64,0,0,1,19.86,23.5Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"cogWheels\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30.24,31.09V28.75l-3-.83a7.42,7.42,0,0,0-.67-1.65L28,23.68,26.37,22,23.8,23.49a7.74,7.74,0,0,0-1.62-.69l-.83-3H19l-.82,3a7.73,7.73,0,0,0-1.7.71L13.93,22l-1.66,1.66,1.46,2.55a6.78,6.78,0,0,0-.7,1.69l-3,.83v2.34l3.05.83a7.25,7.25,0,0,0,.69,1.62l-1.47,2.57,1.66,1.66,2.58-1.48a7,7,0,0,0,1.67.69L19,40h2.35l.83-3a7.15,7.15,0,0,0,1.58-.67l2.61,1.49L28,36.11,26.53,33.5a7.58,7.58,0,0,0,.67-1.58ZM20.12,32.82a2.95,2.95,0,1,1,2.95-2.94A2.94,2.94,0,0,1,20.12,32.82Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.64,14.26l-2.19-.11a5.33,5.33,0,0,0-.71-.89,5,5,0,0,0-.89-.7l-.1-2.19L34.14,10l-.92,1.74a5.19,5.19,0,0,0-2.6.64l-1.94-1.11-1.16,1.16,1.1,1.92a5,5,0,0,0-.68,2.68L26.18,18l.36,1.61,2.2.11a5,5,0,0,0,1.58,1.58l.11,2.2,1.61.36L33,22.07a5.1,5.1,0,0,0,2.68-.68l1.92,1.1,1.16-1.17-1.11-1.93a5.12,5.12,0,0,0,.63-2.61L40,15.86Zm-5,4.25a2.26,2.26,0,1,1,0-3.19A2.26,2.26,0,0,1,34.69,18.51Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"column_options\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><rect x=\\\"-269\\\" y=\\\"389\\\" opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><rect x=\\\"-263\\\" y=\\\"389\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-255.3,389 -257,389 -257,411 -253,411 -253,393.3 -254.3,393.3 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-251,411 -247,411 -247,397.3 -251,396.4 \\\"/><g><path fill=\\\"#29363E\\\" d=\\\"M-241.3,386.7l-1.9-0.1c-0.2-0.3-0.4-0.5-0.6-0.8c-0.2-0.2-0.5-0.4-0.8-0.6l-0.1-1.9l-1.4-0.3l-0.8,1.5c-0.8,0-1.6,0.2-2.3,0.6l-1.7-1l-1,1l1,1.7c-0.4,0.7-0.6,1.5-0.6,2.3l-1.5,0.8l0.3,1.4l1.9,0.1c0.2,0.3,0.4,0.5,0.6,0.8c0.2,0.2,0.5,0.4,0.8,0.6l0.1,1.9l1.4,0.3l0.8-1.5c0.8,0,1.6-0.2,2.3-0.6l1.7,1l1-1l-1-1.7c0.4-0.7,0.6-1.5,0.6-2.3l1.5-0.8L-241.3,386.7z M-245.6,390.4c-0.8,0.8-2,0.8-2.8,0c-0.8-0.8-0.8-2,0-2.8c0.8-0.8,2-0.8,2.8,0C-244.9,388.4-244.9,389.6-245.6,390.4z\\\"/></g></g></svg>\",\n \"company\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16,11.17v28h7v-6h4v6h7v-28Zm16,19H18v-2H32Zm0-5H18v-2H32Zm0-5H18v-2H32Zm0-5H18v-2H32Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"company_flat\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M289.7,407v28h7v-6h4v6h7V407h-18Zm16,19h-14v-2h14v2Zm0-5h-14v-2h14v2Zm0-5h-14v-2h14v2Zm0-5h-14v-2h14v2Z\\\" transform=\\\"translate(-273.7 -396)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"configurable\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"25 33.97 13.43 28.12 10 29.61 25 37.19 40 29.61 36.57 28.12 25 33.97\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25 28.82 13.43 22.98 10 24.47 25 32.05 40 24.47 36.57 22.98 25 28.82\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"40 19.33 25 26.9 10 19.33 25 12.81 40 19.33\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"consultant\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30.89,25.63h-.48C29.33,27.15,27.09,29,25,29s-4.33-1.82-5.41-3.34h-.48a4.1,4.1,0,0,0-3.92,3.76l2.62,2.88c0,1.72,1.76,7.93,3.92,7.93h6.54c2.17,0,3.93-6.21,3.93-7.93l2.61-2.88A4.1,4.1,0,0,0,30.89,25.63Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.07,20.1a4,4,0,0,0-.09.77,6,6,0,0,0,12,0,4,4,0,0,0-.09-.77,40,40,0,0,1-5.95.52A38.67,38.67,0,0,1,19.07,20.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.17,17.4A5,5,0,0,1,31,15.11c-4.11-6.37-8.19-6.81-12.1-.23a5,5,0,0,1-4.12,2.5l-.62,0v1l4.82,0A36.84,36.84,0,0,0,25,19a38.65,38.65,0,0,0,6-.56l4.82,0v-1Zm-7.31-2.27A1.17,1.17,0,1,1,29,14,1.17,1.17,0,0,1,27.86,15.13Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"copy\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M29.13,40a.37.37,0,0,1-.37-.37V33.37H22.5a.38.38,0,0,1-.38-.37V31.52a.37.37,0,0,1,.38-.36h6.26V24.89a.37.37,0,0,1,.37-.37H30.6a.38.38,0,0,1,.37.37v6.27h6.26a.37.37,0,0,1,.37.36V33a.38.38,0,0,1-.37.37H31v6.26a.38.38,0,0,1-.37.37Z\\\" fill=\\\"#484f60\\\"/><g opacity=\\\"0.5\\\"><path d=\\\"M37.6,29.69V16.79H36.4V29.66h.83A2.22,2.22,0,0,1,37.6,29.69Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.6,11.6a.4.4,0,0,1,.4-.4H31V10H20a1.6,1.6,0,0,0-1.6,1.6v2.9h1.2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.62,16.79h5L31,10v5.15C31,16.57,31.2,16.79,32.62,16.79Z\\\" fill=\\\"#484f60\\\"/></g><g opacity=\\\"0.75\\\"><path d=\\\"M27.26,38.8H14a.4.4,0,0,1-.4-.4V17.6a.4.4,0,0,1,.4-.4H25V16H14a1.6,1.6,0,0,0-1.6,1.6V38.4A1.6,1.6,0,0,0,14,40H27.29a2.22,2.22,0,0,1,0-.37Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.6,23.32v-.53H30.4V23h.2A1.81,1.81,0,0,1,31.6,23.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,16v5.15c0,1.42.21,1.64,1.63,1.64h5Z\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"crosshair_1\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,35.5A10.5,10.5,0,1,1,35.5,25,10.51,10.51,0,0,1,25,35.5Zm0-20A9.5,9.5,0,1,0,34.5,25,9.51,9.51,0,0,0,25,15.5Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,31a6,6,0,1,1,6-6,6,6,0,0,1-6,6Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"24.5\\\" width=\\\"5\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"35\\\" y=\\\"24.5\\\" width=\\\"5\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"35\\\" width=\\\"1\\\" height=\\\"5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"10\\\" width=\\\"1\\\" height=\\\"5\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"CrossSkinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"35.35 15.52 34.65 14.81 25 24.46 15.35 14.81 14.65 15.52 24.29 25.17 14.65 34.81 15.35 35.52 25 25.87 34.65 35.52 35.35 34.81 25.71 25.17 35.35 15.52\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"dashboard\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"14.87\\\" width=\\\"14.17\\\" height=\\\"9.3\\\" rx=\\\"0.44\\\" ry=\\\"0.44\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.83\\\" y=\\\"14.87\\\" width=\\\"14.17\\\" height=\\\"9.3\\\" rx=\\\"0.44\\\" ry=\\\"0.44\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"25.83\\\" width=\\\"14.17\\\" height=\\\"9.3\\\" rx=\\\"0.44\\\" ry=\\\"0.44\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.83\\\" y=\\\"25.83\\\" width=\\\"14.17\\\" height=\\\"9.3\\\" rx=\\\"0.44\\\" ry=\\\"0.44\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"delivery_method\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><g><path fill=\\\"#282828\\\" d=\\\"M34,10c0-0.6-0.5-1-1-1H17.8c-0.6,0-1,0.4-1,1v5.8c0,0.5,0,1,0,1c0,0,0.1-0.4,0.2-1l0.1-1.1c0.1-0.5,0.1-1.3,0.2-1.8c0-0.4,0.4-0.9,0.8-1.1c0.4-0.2,1.1-0.4,1.7-0.6c0,0,3.7-1.2,5.5-1.2c2.7,0,4.8,0.8,6.2,2.4c1.2,1.3,1.8,3.5,1.8,3.5c0.1,0.5,0.4,1,0.5,1c0.1,0,0.2-0.5,0.2-1V10z\\\"/></g><path fill=\\\"#282828\\\" d=\\\"M16.6,17.7h-0.9v-6.6h-4.9l-1.8,4v4.3h0.7c0.2-1.4,1.3-2.4,2.7-2.4c1.4,0,2.6,1.1,2.7,2.4h1.1l0.2-0.9C16.5,18.2,16.6,18,16.6,17.7z M14.2,14.5c0,0.4-0.3,0.8-0.8,0.8h-2.2c-0.4,0-0.8-0.3-0.8-0.8c0,0,1-2.6,1.6-2.6c0.5,0,1.4,0,1.4,0c0.4,0,0.8,0.3,0.8,0.8V14.5z\\\"/><path fill=\\\"#282828\\\" d=\\\"M23.8,18.4C23.8,18.4,23.7,18.4,23.8,18.4c-0.3,0-0.4,0-0.4,0.1c0,0,0,0,0,0c0,0-0.2,0.2-0.5,0.9h0.7c0.2-0.5,0.2-0.7,0.2-0.8C23.8,18.5,23.8,18.5,23.8,18.4z\\\"/><g><path fill=\\\"#282828\\\" d=\\\"M34,18.2c0-0.3-0.1-0.5-0.2-0.5s-0.2,0.2-0.2,0.4c0,0.2,0,0.7,0.2,0.6S34,18.4,34,18.2z\\\"/></g><circle fill=\\\"#282828\\\" cx=\\\"12.5\\\" cy=\\\"19.7\\\" r=\\\"2\\\"/><path fill=\\\"#282828\\\" d=\\\"M39.9,28H28c-0.1,0.1-0.1,0.3-0.2,0.4c-0.1,0.2-0.2,0.6-0.3,1.5c0.3,0.2,0.5,0.4,0.8,0.6c1.1,1.1,1.6,2.4,1.6,3.9c0,0.3,0,0.7-0.1,1c0.5,0.2,0.9,0.4,1.2,0.4h0c2.1-0.1,9.3-6.2,10-6.8C41,28.5,40.5,28,39.9,28z\\\"/><path fill=\\\"#282828\\\" d=\\\"M35.6,34.3c2.3-1.6,4.6-3.5,5.4-4.2v8.7L35.6,34.3z\\\"/><path fill=\\\"#282828\\\" d=\\\"M35,34.9c-1.9,1.3-3.2,2-4,2c-0.4,0-0.9-0.2-1.5-0.4c-0.3,0.7-0.7,1.4-1.3,2c-1.1,1.1-2.4,1.6-3.9,1.6c-1,0-2-0.3-2.8-0.8L21,39.6v0.3c0,0.6,0.5,1.1,1.1,1.1h17.8c0.6,0,1.1-0.5,1.1-1.1v-0.3L35,34.9z\\\"/><path fill=\\\"#282828\\\" d=\\\"M20.4,19h-1.4c0.4-1.9,0.7-3.6,0.8-5.2c2.2-0.9,4-1.4,5.5-1.4c2,0,3.4,0.5,4.4,1.6c1,1,1.5,2.2,1.5,3.6c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.3-1,2c-0.3,0.4-0.9,1.2-1.9,2.6c-1,1.3-1.6,2.1-1.7,2.2c-0.2,0.4-0.4,0.8-0.6,1.4c-0.2,0.5-0.4,1.3-0.5,2.3h-1.7c0-1.5,0.2-2.7,0.5-3.8c0.3-1.1,0.8-2.5,1.7-4.3c0.7-1.4,1-2.4,1-3.2c0-0.8-0.2-1.5-0.7-2c-0.5-0.5-1.1-0.7-1.9-0.7c-0.7,0-1.3,0.2-1.9,0.6C21.3,17,20.8,17.8,20.4,19z\\\"/><path fill=\\\"#282828\\\" d=\\\"M24.3,31.5c0.8,0,1.6,0.3,2.1,0.9c0.6,0.6,0.9,1.3,0.9,2.1c0,0.8-0.3,1.6-0.9,2.1c-0.6,0.6-1.3,0.9-2.1,0.9c-0.8,0-1.5-0.3-2.1-0.9c-0.6-0.6-0.9-1.3-0.9-2.1c0-0.8,0.3-1.6,0.9-2.1C22.8,31.8,23.5,31.5,24.3,31.5z\\\"/></g></svg>\",\n \"delivery_status_uncheck\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" style=\\\"enable-background:new 0 0 50 50;\\\" ><style type=\\\"text/css\\\">.rect{fill:#514F4F;}</style><path class=\\\"rect\\\" d=\\\"M50,50H0.1V0H50V50z M41.5,8.2H8.6v33.2h32.9V8.2z\\\"/></svg>\",\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15.35\\\" y=\\\"16.56\\\" width=\\\"15.14\\\" height=\\\"10.94\\\" transform=\\\"translate(-1.83 2.08) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"7.96\\\" y=\\\"17.63\\\" width=\\\"5\\\" height=\\\"1\\\" transform=\\\"translate(-1.54 0.98) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.02\\\" y=\\\"29.71\\\" width=\\\"3\\\" height=\\\"1\\\" transform=\\\"translate(-2.59 1.21) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.48\\\" y=\\\"23.53\\\" width=\\\"4\\\" height=\\\"1\\\" transform=\\\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"detail_record\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M19.37,13.17H10v4h5.64a10.12,10.12,0,0,1,1.84-2.52A9.56,9.56,0,0,1,19.37,13.17Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M33.7,17.17H40v-4H30a9.8,9.8,0,0,1,1.88,1.48A10,10,0,0,1,33.7,17.17Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M22.79,17.73h3.75a4.56,4.56,0,0,0-1.87-.41A4.6,4.6,0,0,0,22.79,17.73Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M14.87,19.17H10v4h4.6A10.37,10.37,0,0,1,14.87,19.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.74,23.17H40v-4H34.47a10.28,10.28,0,0,1,.36,2.66A9.94,9.94,0,0,1,34.74,23.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.52,19.49h-7.7a4.54,4.54,0,0,0-.5,3.52H29A4.5,4.5,0,0,0,28.52,19.49Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><path d=\\\"M36.14,27.61l1.56,1.56H40v-4H34.26a11,11,0,0,1-.6,1.42A3.48,3.48,0,0,1,36.14,27.61Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M15.08,25.17H10v4h7.64L17.48,29A10,10,0,0,1,15.08,25.17Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M24.67,26.35A4.48,4.48,0,0,0,27.86,25a1.86,1.86,0,0,0,.22-.27H21.25c.08.09.14.19.22.27A4.5,4.5,0,0,0,24.67,26.35Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"40 31.17 39.7 31.17 40 31.47 40 31.17\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M30.79,15.71a8.66,8.66,0,1,0,0,12.25A8.65,8.65,0,0,0,30.79,15.71ZM29.37,26.53a6.65,6.65,0,1,1,0-9.4A6.64,6.64,0,0,1,29.37,26.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.41,33l-4.33-4.33a2,2,0,0,0-2.86,0l-.71.72a2,2,0,0,0,0,2.86l4.32,4.32a2,2,0,0,0,2.87,0l.71-.71A2,2,0,0,0,39.41,33Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"detail_view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"34.55 26.18 34.55 37.49 12.44 37.49 12.44 15.38 24.68 15.38 25.59 14.48 24.05 12.94 10 12.94 10 39.94 36.99 39.94 36.99 25.88 35.92 24.81 34.55 26.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 10.4 27.92 10.4 32 14.48 22.24 26.23 24.16 28.15 35.92 18.4 40 22.48 40 10.4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"dictionary\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M27.91,11l-14,17.21,11.19,5.42,14.4-18.4ZM24.38,26l-.18-.42a.91.91,0,0,0-.07-.14L24,25.33l-.15-.16L23.68,25a1.84,1.84,0,0,0-.59-.27,1.51,1.51,0,0,0-.6,0,1.8,1.8,0,0,0-.65.27,3.19,3.19,0,0,0-.67.58,3.13,3.13,0,0,0-.48.7,1.63,1.63,0,0,0-.18.64,1.15,1.15,0,0,0,.1.55A1.49,1.49,0,0,0,21,28c.07.05.14.11.21.15l.22.13a1,1,0,0,0,.21.09.61.61,0,0,0,.18.05l.51.1-.69,1.26-.26,0a1.29,1.29,0,0,1-.31-.08,2.14,2.14,0,0,1-.35-.16c-.12-.06-.24-.14-.37-.22L20,29a2.75,2.75,0,0,1-.69-.92A2.35,2.35,0,0,1,19.07,27a3,3,0,0,1,.27-1.14,4.53,4.53,0,0,1,.76-1.12,4.32,4.32,0,0,1,1-.86,3.42,3.42,0,0,1,1.12-.43,2.78,2.78,0,0,1,1.15,0,2.91,2.91,0,0,1,1.1.48,3.51,3.51,0,0,1,.36.29l.26.27c.07.09.14.17.19.25a.9.9,0,0,1,.11.22l.12.28ZM29.07,20a1.44,1.44,0,0,1-.13.32,1.68,1.68,0,0,1-.2.29,1.59,1.59,0,0,1-.36.32,2.19,2.19,0,0,1-.44.2l-.29.07a1,1,0,0,1,.05.24,1.6,1.6,0,0,1-.07.57,1.84,1.84,0,0,1-.33.57,2.57,2.57,0,0,1-.29.28,1.69,1.69,0,0,1-.31.21,2,2,0,0,1-.34.14,1.3,1.3,0,0,1-.34.08,1.36,1.36,0,0,1-.29,0h-.18a2.13,2.13,0,0,1-.49-.1,3.89,3.89,0,0,1-.49-.2,5.21,5.21,0,0,1-.49-.29l-.25-.17-.21-.16-.17-.14-.13-.12-.27-.25,3.67-4.1.22.06.24.08.27.1.27.13.29.14a4,4,0,0,1,.37.23,2.65,2.65,0,0,1,.3.25,1.6,1.6,0,0,1,.23.3,1.3,1.3,0,0,1,.14.32,1.35,1.35,0,0,1,.05.29A1.66,1.66,0,0,1,29.07,20Zm.83-1.49.53-1.36-.93-.45-1.38.89-1.28-.66,5-3.19,1.14.48-1.85,4.94Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.16 39.84 10.92 31.84 10 29.86 10.02 28.18 10.32 27.45 10.9 27.69 10.63 28.36 10.63 29.79 11.39 31.39 25 39.03 38.84 20.86 38.59 20.83 38.87 15.61 39.49 15.65 39.25 20.28 40 20.38 25.16 39.84 25.16 39.84\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.55 10.15 10.61 27.57 11.78 27.3 13.33 28.03 27.34 10.82 25.55 10.15\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.27 38.88 24.64 38.88 24.64 33.58 25.27 33.58 25.27 38.88 25.27 38.88\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.88,15.93l1.25-.8.19-.13.19-.13.18-.13.17-.13h0l-.09.16a.89.89,0,0,1-.08.17l-.08.18c0,.06-.05.13-.08.19l-.45,1.19-1.22-.58\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.78,22.05,24.66,22l-.11-.08-.09-.07-.07-.06,1.29-1.47.41.25a2.14,2.14,0,0,1,.36.28,1.12,1.12,0,0,1,.21.34.66.66,0,0,1,0,.37,1,1,0,0,1-.22.4,1.27,1.27,0,0,1-.4.31,1,1,0,0,1-.44.09,1.29,1.29,0,0,1-.43-.07,1.77,1.77,0,0,1-.41-.21\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26,19.93l1.06-1.19.08,0,.11,0,.13.06.15.08a1.74,1.74,0,0,1,.33.23.72.72,0,0,1,.18.26.51.51,0,0,1,0,.3.7.7,0,0,1-.18.32,1,1,0,0,1-.28.22,1,1,0,0,1-.35.1,1,1,0,0,1-.38,0,1.24,1.24,0,0,1-.4-.16L26,19.93\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"documents\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.5\\\"><path d=\\\"M36.4,16.79V32.4a.4.4,0,0,1-.3.38V34a1.59,1.59,0,0,0,1.5-1.59V16.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20,11.2H31V10H20a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,20,11.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"37.6 16.79 30.98 10 30.98 13.93 33.77 16.79 37.6 16.79\\\" fill=\\\"#484f60\\\"/></g><rect x=\\\"16\\\" y=\\\"21.2\\\" width=\\\"7.2\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"24.4\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"27.6\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"30.8\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"34\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.4,22.79V38.4a.4.4,0,0,1-.4.4H14a.4.4,0,0,1-.4-.4V17.6a.4.4,0,0,1,.4-.4H25V16H14a1.6,1.6,0,0,0-1.6,1.6V38.4A1.6,1.6,0,0,0,14,40H30a1.6,1.6,0,0,0,1.6-1.6V22.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,16v5.15c0,1.42.21,1.64,1.63,1.64h5Z\\\" fill=\\\"#484f60\\\"/><g opacity=\\\"0.75\\\"><path d=\\\"M33.4,19.79V35.4a.4.4,0,0,1-.3.38V37a1.59,1.59,0,0,0,1.5-1.59V19.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17,14.2H28V13H17a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,17,14.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"34.6 19.79 27.98 13 27.98 16.93 30.77 19.79 34.6 19.79\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"documentWrench\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(7 8)\\\"><path d=\\\"M 2.285 8.999 L 8.785 8.999 L 0 0 L 0 6.715 C 0 8.701 0.299 8.999 2.285 8.999 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(15.846 0.445)\\\" /><path d=\\\"M 2.292 3.619 C 1.833 4.208 1.397 4.805 0.961 5.4 C 0.646 5.83 0.327 6.264 0 6.697 L 2.748 6.697 C 4.732 6.697 5.033 6.397 5.033 4.412 L 5.033 0 C 4.428 0.723 3.847 1.516 3.325 2.23 C 2.965 2.725 2.621 3.195 2.292 3.619 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(20.049 25.271)\\\" /><path d=\\\"M 17.213 11.437 C 14.158 11.437 12.969 10.247 12.969 7.191 L 12.969 0 L 2.285 0 C 0.299 0 0 0.298 0 2.284 L 0 29.715 C 0 31.7 0.299 32 2.285 32 L 8.207 32 C 8.256 31.577 8.354 31.15 8.51 30.727 C 9.287 28.621 11.28 26.936 13.04 25.449 C 13.629 24.951 14.186 24.481 14.606 24.066 C 14.947 23.731 15.296 23.395 15.648 23.055 C 17.164 21.59 18.731 20.074 19.846 18.458 C 19.582 18.841 19.289 19.217 18.981 19.589 L 16.799 19.589 L 16.799 17.628 L 20.292 17.628 C 20.162 17.923 20.021 18.205 19.846 18.458 C 20.436 17.604 20.719 16.481 21.02 15.293 C 20.986 15.422 20.953 15.547 20.92 15.674 L 16.799 15.674 L 16.799 13.713 L 21.184 13.713 L 21.184 14.664 C 21.129 14.875 21.071 15.089 21.02 15.293 C 21.326 14.082 21.688 12.727 22.411 11.437 L 17.213 11.437 Z M 2.846 2.584 L 9.395 2.584 L 9.395 4.545 L 2.846 4.545 L 2.846 2.584 Z M 2.846 5.203 L 9.395 5.203 L 9.395 7.164 L 2.846 7.164 L 2.846 5.203 Z M 15.09 23.504 L 2.846 23.504 L 2.846 21.543 L 15.09 21.543 L 15.09 23.504 Z M 15.09 19.589 L 2.846 19.589 L 2.846 17.628 L 15.09 17.628 L 15.09 19.589 Z M 15.09 15.674 L 2.846 15.674 L 2.846 13.713 L 15.09 13.713 L 15.09 15.674 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.918 -0.032)\\\" /><g transform=\\\" translate(11 10)\\\"><path d=\\\"M 21.362 10.038 L 19.963 7.522 L 18.596 5.042 L 17.358 2.848 C 17.358 2.848 20.315 1.067 21.154 0.577 C 18.858 -0.421 15.629 -0.251 14.137 2.145 C 12.687 4.471 12.872 7.364 11.332 9.596 C 9.835 11.766 7.721 13.651 5.85 15.495 C 4.161 17.157 1.053 19.181 0.226 21.421 C -0.809 24.226 2.071 26.348 4.598 23.982 C 6.642 22.065 8.028 19.823 9.684 17.697 C 11.193 15.757 13.033 12.746 15.235 11.548 C 17.201 10.467 19.629 11.444 21.362 10.038 Z M 13.658 6.924 C 13.619 6.854 13.643 6.76 13.715 6.719 L 14.528 6.258 L 16.576 9.854 L 15.768 10.319 C 15.694 10.36 15.6 10.334 15.561 10.26 L 13.658 6.924 Z M 1.72 23.174 C 1.002 22.514 0.953 21.394 1.612 20.676 C 2.274 19.958 3.393 19.909 4.112 20.567 C 4.832 21.228 4.879 22.346 4.22 23.067 C 3.556 23.787 2.44 23.839 1.72 23.174 Z M 15.537 5.676 L 16.465 5.149 C 16.535 5.108 16.627 5.133 16.666 5.206 L 18.57 8.542 C 18.613 8.614 18.584 8.704 18.512 8.747 L 17.588 9.274 L 15.537 5.676 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.078 -0.034)\\\" /></g><g transform=\\\" translate(31 15)\\\"><path d=\\\"M 1.553 4.213 C 2.477 3.111 3.555 1.521 3.359 0 C 2.328 0.611 0.713 1.549 0 1.816 L 1.396 4.334 C 1.396 4.334 1.4 4.389 1.553 4.213 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.699 0.163)\\\" /></g></g></svg>\",\n \"dollar\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M24.26,39.17V36.39a10.33,10.33,0,0,1-3.39-.94,5.9,5.9,0,0,1-2.26-2.17,7.77,7.77,0,0,1-1.1-3.66l2.79-.53a7,7,0,0,0,1.15,3.29A4.08,4.08,0,0,0,24.26,34V25.18a11.44,11.44,0,0,1-3.51-1.33A5.12,5.12,0,0,1,18.7,21.8a6.11,6.11,0,0,1-.72-3A6.1,6.1,0,0,1,20.09,14a7.26,7.26,0,0,1,4.17-1.51V11.17H25.9V12.5a6.76,6.76,0,0,1,3.84,1.42,6.31,6.31,0,0,1,2.2,4.15l-2.88.44A4.68,4.68,0,0,0,28,16a3.8,3.8,0,0,0-2.14-1.16v8a23.43,23.43,0,0,1,2.78.82,6.91,6.91,0,0,1,2.11,1.39A5.56,5.56,0,0,1,32.05,27a6.53,6.53,0,0,1,.44,2.44,6.66,6.66,0,0,1-6.59,6.89v2.82Zm0-24.36a4.16,4.16,0,0,0-2.56,1.3,3.63,3.63,0,0,0-.93,2.49A3.6,3.6,0,0,0,21.56,21a5.46,5.46,0,0,0,2.7,1.53ZM25.9,34a4.18,4.18,0,0,0,2.68-1.41,4.38,4.38,0,0,0,1.06-3,3.76,3.76,0,0,0-.75-2.44,6.48,6.48,0,0,0-3-1.64Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31,38.87H19a9,9,0,0,1-9-9h4a5,5,0,0,0,5,5H31a5,5,0,0,0,5-5h4A9,9,0,0,1,31,38.87Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.22 21.1 21.94 21.1 21.94 11.46 28.06 11.46 28.06 21.1 33.78 21.1 25 29.87 16.22 21.1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"dropdown\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,406.5a15,15,0,1,0,15,15A15,15,0,0,0,298,406.5Zm7.5,13.2-6.2,6.2a1.8,1.8,0,0,1-2.5,0l-6.2-6.2a1.8,1.8,0,1,1,2.5-2.5l5,4.9,4.9-4.9A1.8,1.8,0,1,1,305.5,419.6Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"dropzone\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"12\\\" y=\\\"11.67\\\" width=\\\"14\\\" height=\\\"6\\\" rx=\\\"2\\\" ry=\\\"2\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M26.52,23.16l-.94-.47L24,20.16l-1.23-1.61-.65-.85-1.52-1.59L18.5,14.94H17.35l-.7.7.41.91,2.47,2.21L20.09,20l1.7,2.71.82,2.26.06.74L22.76,28l-.24-.86-1-.94-.79-1L19,23.51l-1.06-.35-.88.24-.7.61,1.32,1.44,1.55,2,2.15,3.73,2.2,2,1.82,1.14,2.44,1.06,1.91,1,2,1,.23,1.3,6-6v-.91s-.91-1-1-1a16.83,16.83,0,0,1-.82-1.65l-.47-1.91-.35-1L34,24.54l-.85-1.12-.5-.82-.88-1.14L31,20.69l-1.33-.86-.22.42,1.39,2.12-.94-.47-.86-1.48L27.72,19l-1.06-.15,0,.59,2.1,3.09-.94-.47L26,19.2l-1.22-.86-1.29.12.18.56Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26,11.67H25a2,2,0,0,1,2,2v2a2,2,0,0,1-2,2h1a2,2,0,0,0,2-2v-2A2,2,0,0,0,26,11.67Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28,11.67H27a2,2,0,0,1,2,2v2a2,2,0,0,1-2,2h1a2,2,0,0,0,2-2v-2A2,2,0,0,0,28,11.67Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M30,11.67H29a2,2,0,0,1,2,2v2a2,2,0,0,1-2,2h1a2,2,0,0,0,2-2v-2A2,2,0,0,0,30,11.67Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.1\\\"/></svg>\",\n \"edit_pencil\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16.33\\\" y=\\\"20.52\\\" width=\\\"17.99\\\" height=\\\"8.64\\\" transform=\\\"translate(-10.15 25.18) rotate(-45)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"edit_pencil_circle\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"17.19 33.03 16.86 32.69 18.61 27.78 22.1 31.27 17.19 33.03\\\" fill=\\\"#484f60\\\"/><rect x=\\\"19.52\\\" y=\\\"22.17\\\" width=\\\"11.07\\\" height=\\\"5.32\\\" transform=\\\"translate(-10.22 24.99) rotate(-45)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.57,21.07l-1,1-3.77-3.76,1-1a1,1,0,0,1,1.36,0l2.4,2.4A1,1,0,0,1,32.57,21.07Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"edit_pencil_round\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-288 379 35 35\\\" enable-background=\\\"new -288 379 35 35\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15c8.3,0,15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-277.9,404.5l-0.6-0.6l0.5-1.5l1.6,1.6L-277.9,404.5z M-275.5,403.8l-2.4-2.4l1-3.3l4.6,4.6L-275.5,403.8z M-271.4,402.4l-4.9-4.9l8.9-8.9l5,4.9L-271.4,402.4z M-260.8,391.8l-1.1,1.1l-5-4.9l1.1-1.1c0.4-0.4,1.1-0.4,1.5,0l3.4,3.4C-260.4,390.7-260.4,391.3-260.8,391.8z\\\"/></g></svg>\",\n \"edit_pencil_simple\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 371 51 51\\\" enable-background=\\\"new -280 371 51 51\\\" ><g><rect x=\\\"-263\\\" y=\\\"395.3\\\" transform=\\\"matrix(0.7071 -0.7071 0.7071 0.7071 -354.9541 -65.7895)\\\" fill=\\\"#29363E\\\" width=\\\"12.2\\\" height=\\\"0.6\\\"/><rect x=\\\"-256.5\\\" y=\\\"391.6\\\" transform=\\\"matrix(0.7075 0.7067 -0.7067 0.7075 206.5985 296.3285)\\\" fill=\\\"#29363E\\\" width=\\\"3.6\\\" height=\\\"12.2\\\"/><path fill=\\\"#29363E\\\" d=\\\"M-245.4,389.7l-2.4-2.4c-0.4-0.4-0.9-0.4-1.3,0l-0.9,0.9l3.7,3.7l0.9-0.9C-245,390.6-245,390.1-245.4,389.7z\\\"/><rect x=\\\"-252.1\\\" y=\\\"390.7\\\" transform=\\\"matrix(-0.7073 -0.707 0.707 -0.7073 -702.755 491.9368)\\\" fill=\\\"#29363E\\\" width=\\\"5.2\\\" height=\\\"1.5\\\"/><polygon fill=\\\"#29363E\\\" points=\\\"-262.4,400.9 -263.9,405.5 -263.4,406 -259,404.4 \\\"/></g></svg>\",\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"email_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M302.1,429.5a10.7,10.7,0,0,1-4.8.9,7.9,7.9,0,0,1-8.1-8.1,9.6,9.6,0,0,1,9.7-9.9c4.6,0,7.8,3.1,7.8,7.5s-2.1,6.2-4.9,6.2a2,2,0,0,1-2.2-2h-0.1a3.9,3.9,0,0,1-3.4,2c-1.7,0-2.9-1.3-2.9-3.4a5.9,5.9,0,0,1,6.1-6,7.7,7.7,0,0,1,3.1.6l-0.8,4.8c-0.3,1.5-.1,2.2.6,2.3s2.5-1.4,2.5-4.4-2.2-6-6.2-6-7.4,3.1-7.4,8,2.7,6.8,6.6,6.8a8.9,8.9,0,0,0,3.8-.8Zm-2.3-10.7H299c-1.7,0-3.1,1.7-3.1,3.7a1.3,1.3,0,0,0,1.3,1.6c1,0,2-1.2,2.2-2.7Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298,437a15.5,15.5,0,1,1,15.5-15.5A15.5,15.5,0,0,1,298,437Zm0-30a14.5,14.5,0,1,0,14.5,14.5A14.5,14.5,0,0,0,298,407Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"employee\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.05,22.53h-.49a9.09,9.09,0,0,1-4.08,3.16,1,1,0,0,1,.19.56,1.17,1.17,0,0,1-.63,1l1.46,7L25,36.67l-2.5-2.5,1.46-7a1.17,1.17,0,0,1-.63-1,1,1,0,0,1,.19-.56,9,9,0,0,1-4.08-3.16H19a4.2,4.2,0,0,0-4,3.87l2.68,3c0,1.78,1.81,8.15,4,8.15h6.72c2.23,0,4-6.37,4-8.15l2.69-3A4.21,4.21,0,0,0,31.05,22.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.18,17.64a6.2,6.2,0,0,1-12.37,0c0-2.72,2.77-5.14,6.19-5.14S31.18,14.92,31.18,17.64Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"employee_two\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M34.86,23h-.49a9.09,9.09,0,0,1-4.08,3.16,1,1,0,0,1,.19.56,1.17,1.17,0,0,1-.63,1l1.46,7-2.5,2.5-2.5-2.5,1.46-7a1.17,1.17,0,0,1-.63-1,1,1,0,0,1,.19-.56A9,9,0,0,1,23.25,23h-.49a4.2,4.2,0,0,0-4,3.87l2.69,3c0,1.78,1.8,8.15,4,8.15h6.72c2.23,0,4-6.37,4-8.15l2.69-3A4.21,4.21,0,0,0,34.86,23Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35,18.14a6.2,6.2,0,0,1-12.37,0c0-2.72,2.77-5.14,6.19-5.14S35,15.42,35,18.14Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M12.75,27.61V26h4.58a5.67,5.67,0,0,1,1.26-2.46H12.75V21.86H21a5.32,5.32,0,0,1,1.19-.3,7.59,7.59,0,0,1-.87-2.17H12.75V17.75h8.4a5.75,5.75,0,0,1,.76-2.46H12.75V13.64H23.22A8,8,0,0,1,25.89,12v0H11.11V35h5.75V30.07h2.73l-2.24-2.46Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M20.14,35h1a21.78,21.78,0,0,1-1-3.52Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"employer\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.07,22.72h-.36c-.1.15-.23.3-.36.46a5.27,5.27,0,0,1,1.23,3.22V27l-2.73,3A18.89,18.89,0,0,1,33,33.5h1.11c1.6,0,2.9-4.59,2.9-5.87L39,25.5A3,3,0,0,0,36.07,22.72Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M31.65,21.06a5.47,5.47,0,0,1,2.86,1.25,4.25,4.25,0,0,0,1.65-3.11c0-1.8-1.7-3.41-3.89-3.65a5.68,5.68,0,0,1,.41,2.09A6.64,6.64,0,0,1,31.65,21.06Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M13.42,27V26.4a5.27,5.27,0,0,1,1.23-3.22,4.49,4.49,0,0,1-.36-.46h-.36A3,3,0,0,0,11,25.5L13,27.63c0,1.28,1.31,5.87,2.91,5.87H17A21.35,21.35,0,0,1,16.16,30Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M17.31,17.64a5.49,5.49,0,0,1,.42-2.09c-2.19.24-3.89,1.85-3.89,3.65a4.25,4.25,0,0,0,1.65,3.11,5.44,5.44,0,0,1,2.85-1.25A6.73,6.73,0,0,1,17.31,17.64Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M31.05,22.53h-.49a9.09,9.09,0,0,1-4.08,3.16,1,1,0,0,1,.19.56,1.17,1.17,0,0,1-.63,1l1.46,7L25,36.67l-2.5-2.5,1.46-7a1.17,1.17,0,0,1-.63-1,1,1,0,0,1,.19-.56,9,9,0,0,1-4.08-3.16H19a4.2,4.2,0,0,0-4,3.87l2.68,3c0,1.78,1.81,8.15,4,8.15h6.72c2.23,0,4-6.37,4-8.15l2.69-3A4.21,4.21,0,0,0,31.05,22.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.18,17.64a6.2,6.2,0,0,1-12.37,0c0-2.72,2.77-5.14,6.19-5.14S31.18,14.92,31.18,17.64Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"employment\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35.4,17.53H30.59V15.9A2.61,2.61,0,0,0,28,13.3H22.14a2.61,2.61,0,0,0-2.6,2.6v1.63H14.6a2.61,2.61,0,0,0-2.6,2.6v14.3A2.61,2.61,0,0,0,14.6,37H35.4a2.61,2.61,0,0,0,2.6-2.6V20.13A2.61,2.61,0,0,0,35.4,17.53ZM20.84,15.9a1.3,1.3,0,0,1,1.3-1.3H28a1.3,1.3,0,0,1,1.3,1.3v1.63H20.84Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"employment_end\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M18.11,21.87h9.15L30.62,26,34,21.87h2v-5a2.61,2.61,0,0,0-2.6-2.61H28.59V12.6A2.61,2.61,0,0,0,26,10H20.14a2.61,2.61,0,0,0-2.6,2.6v1.62H12.6A2.61,2.61,0,0,0,10,16.83v14.3a2.61,2.61,0,0,0,2.6,2.59H24.4l1.65-2Zm.73-9.27a1.3,1.3,0,0,1,1.3-1.3H26a1.3,1.3,0,0,1,1.3,1.3v1.62H18.84Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"34.71 40 30.63 34.95 26.54 40 21.25 40 27.98 31.68 21.25 23.37 26.54 23.37 30.63 28.41 34.71 23.37 40 23.37 33.27 31.68 40 40 34.71 40\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"equal\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.58,22a.58.58,0,0,1-.58-.57V19.14a.58.58,0,0,1,.58-.57H35.43a.58.58,0,0,1,.57.57v2.29a.58.58,0,0,1-.57.57Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.58,31.43a.58.58,0,0,1-.58-.57V28.57a.58.58,0,0,1,.58-.57H35.43a.58.58,0,0,1,.57.57v2.29a.58.58,0,0,1-.57.57Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"euro\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30.13,10.9a15,15,0,1,0,9,19.23A15,15,0,0,0,30.13,10.9ZM20.21,38.16a14,14,0,1,1,17.95-8.37A14,14,0,0,1,20.21,38.16Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.85,36l5.91-16.24a12.16,12.16,0,0,0-1.62-2.48L27,36.82A12,12,0,0,0,29.85,36Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.55,37l7.57-20.8a11.05,11.05,0,0,0-2-1.47L23.08,36.83A11.47,11.47,0,0,0,25.55,37Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.28,29.1a11.91,11.91,0,0,0,.21-7.52L31.61,35A12,12,0,0,0,36.28,29.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.1,13.72a12,12,0,0,0-8.2,22.56c.29.1.58.19.88.27L30,14.08C29.68,14,29.4,13.83,29.1,13.72Zm-8,16.8-2.59-.94,2.58-7.09.45-1.16.51-1.26a11.64,11.64,0,0,1-1.21.52L19,21.21l-.68-2,5.09-1.71,2.13.78Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"exclamation\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,33.67a2,2,0,0,1-1.42-.59,2,2,0,0,1,0-2.83A1.94,1.94,0,0,1,25,29.67a2,2,0,0,1,2,2,2,2,0,0,1-.58,1.41A1.93,1.93,0,0,1,25,33.67Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23.05\\\" y=\\\"16.67\\\" width=\\\"4\\\" height=\\\"10\\\" transform=\\\"translate(50.1 43.34) rotate(180)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"exclamation_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,39.17a14,14,0,1,1,14-14,14,14,0,0,1-14,14m0,1a15,15,0,1,0-15-15,15,15,0,0,0,15,15Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,33.67a2,2,0,0,1-1.42-.59,2,2,0,0,1,0-2.83A1.94,1.94,0,0,1,25,29.67a2,2,0,0,1,2,2,2,2,0,0,1-.58,1.41A1.93,1.93,0,0,1,25,33.67Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23.05\\\" y=\\\"16.67\\\" width=\\\"4\\\" height=\\\"10\\\" transform=\\\"translate(50.1 43.34) rotate(180)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"eye_circle\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,40A15,15,0,1,1,40,25,15,15,0,0,1,25,40Zm0-29A14,14,0,1,0,39,25,14,14,0,0,0,25,11Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M16,24.94s8.37,12.13,18,0C34,24.94,25.94,13.07,16,24.94Zm9,3.81A3.75,3.75,0,1,1,28.75,25,3.75,3.75,0,0,1,25,28.75Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.31,24.62a.94.94,0,0,1-.94-.93.92.92,0,0,1,.45-.78A2.25,2.25,0,1,0,27.25,25a2.22,2.22,0,0,0-.16-.82A.93.93,0,0,1,26.31,24.62Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"eye_circle_large\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M13,24.93s11.17,16.16,24,0C37,24.93,26.25,9.09,13,24.93ZM25,30a5,5,0,1,1,5-5A5,5,0,0,1,25,30Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.75,24.5a1.25,1.25,0,0,1-1.25-1.25,1.22,1.22,0,0,1,.59-1A3.06,3.06,0,0,0,25,22a3,3,0,1,0,3,3,3.07,3.07,0,0,0-.21-1.1A1.25,1.25,0,0,1,26.75,24.5Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"eye_round_filled\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M25,10c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15c8.3,0,15-6.7,15-15C40,16.7,33.3,10,25,10z M15,24.9c11-13.2,20,0,20,0C24.3,38.4,15,24.9,15,24.9z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M25,20.1c-2.7,0-4.9,2.2-4.9,4.9c0,2.7,2.2,4.9,4.9,4.9c2.7,0,4.9-2.2,4.9-4.9C29.9,22.3,27.7,20.1,25,20.1z M25,25.8c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C27.1,24.8,26.2,25.8,25,25.8z\\\"/></g></svg>\",\n \"factory\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M12.09,40a1,1,0,0,1-1-1V26.54c0-.55.31-.68.7-.29l5.82,5.81c.39.39.71.26.71-.29V26.54c0-.55.33-.7.75-.34l6.75,5.91c.42.36.76.21.76-.34V26.54c0-.55.32-.68.7-.29l5.82,5.81c.39.39.71.26.71-.29V17.25a1,1,0,0,1,1-1H38a1,1,0,0,1,1,1V39a1,1,0,0,1-1,1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M16.5,15.52A9.55,9.55,0,0,1,11,14l1.15-1.72a7.52,7.52,0,0,0,4.32,1.17,19.35,19.35,0,0,0,4.73-.7l.5,2a21.36,21.36,0,0,1-5.23.76Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M24.76,13.91l-.6-2,.94-.29A28.16,28.16,0,0,1,32.71,10a5.53,5.53,0,0,1,5.07,2.61L36,13.69a3.5,3.5,0,0,0-3.32-1.63,26.89,26.89,0,0,0-7,1.56l-.94.29Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"fasttrack\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"39 10.99 27.71 14.04 19.67 22.88 23.76 22.3 15.66 30.08 19.07 29.45 11 38.67 28.54 25.65 23.88 26.51 34.31 17.9 29.46 18.51 39 10.99\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"filter\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.13,39.17A1.69,1.69,0,0,1,21,37.58v-8.5l-9-15.46a1.68,1.68,0,0,1,1.5-2.45h22.9A1.68,1.68,0,0,1,38,13.62L29,29.08v8.49a1.68,1.68,0,0,1-1.14,1.59Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"finish\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"3.2\\\" y=\\\"24.12\\\" width=\\\"26.3\\\" height=\\\"1.75\\\" transform=\\\"translate(-13.22 29.26) rotate(-65)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27,16.77a4.75,4.75,0,0,0-4,.36l1.56-3.33a5.8,5.8,0,0,1,3.65.48Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.67,19.27A6.91,6.91,0,0,0,27,16.77l1.17-2.49A10.31,10.31,0,0,1,31,16.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M31.92,22.73c-.77-1.11-1.48-2.37-2.25-3.46l1.3-2.8c.88.89,1.71,1.87,2.58,2.77Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.6,25.27a7.18,7.18,0,0,1-2.68-2.54l1.63-3.49a11.18,11.18,0,0,0,2.83,2.22C35.76,22.79,35.17,24.06,34.6,25.27Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M38.59,25a4.56,4.56,0,0,1-4,.25c.57-1.21,1.16-2.48,1.78-3.81A5.84,5.84,0,0,0,40,22Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.61,19.66c-1.09-.42-2.45-.28-4.24.81.52-1.11,1-2.22,1.55-3.34a4.75,4.75,0,0,1,4-.36Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M28.26,22.27a5.89,5.89,0,0,0-2.65-2.61L27,16.77a6.91,6.91,0,0,1,2.71,2.5C29.21,20.24,28.75,21.24,28.26,22.27Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.37,26.05c-.73-1.2-1.37-2.59-2.11-3.78.49-1,.95-2,1.41-3,.77,1.09,1.48,2.35,2.25,3.46C31.39,23.86,30.88,25,30.37,26.05Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M33,28.72a6.22,6.22,0,0,1-2.63-2.67c.51-1.08,1-2.19,1.55-3.32a7.18,7.18,0,0,0,2.68,2.54C34,26.48,33.5,27.63,33,28.72Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.18,28c-1.77,1-3.11,1.14-4.18.68.5-1.09,1-2.24,1.6-3.45a4.56,4.56,0,0,0,4-.25Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M24.09,22.94c-1.11-.41-2.47-.24-4.28.87l1.56-3.34c1.79-1.09,3.15-1.23,4.24-.81Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.77,25.48a5.87,5.87,0,0,0-2.68-2.54l1.52-3.28a5.89,5.89,0,0,1,2.65,2.61Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M28.91,29.19c-.74-1.17-1.4-2.54-2.14-3.71l1.49-3.21c.74,1.19,1.38,2.58,2.11,3.78Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.56,31.81a6.12,6.12,0,0,1-2.65-2.62l1.46-3.14A6.22,6.22,0,0,0,33,28.72Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M35.78,31.06c-1.79,1.06-3.14,1.18-4.22.75L33,28.72c1.07.46,2.41.36,4.18-.68C36.71,29,36.24,30.05,35.78,31.06Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M22.38,26.6a5.07,5.07,0,0,0-4.13.54l1.56-3.33c1.81-1.11,3.17-1.28,4.28-.87Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M25.18,28.9a6.5,6.5,0,0,0-2.8-2.3l1.71-3.66a5.87,5.87,0,0,1,2.68,2.54Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.52,32.17c-.8-1-1.54-2.24-2.34-3.27l1.59-3.42c.74,1.17,1.4,2.54,2.14,3.71Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M30.29,34.52a6.78,6.78,0,0,1-2.77-2.35l1.39-3a6.12,6.12,0,0,0,2.65,2.62C31.11,32.77,30.69,33.68,30.29,34.52Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.37,34.08a4.91,4.91,0,0,1-4.08.44c.4-.84.82-1.75,1.27-2.71,1.08.43,2.43.31,4.22-.75Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M20.49,30.64a6.4,6.4,0,0,0-3.79-.16c.52-1.11,1-2.22,1.55-3.34a5.07,5.07,0,0,1,4.13-.54Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.49,32.52a10.08,10.08,0,0,0-3-1.88l1.89-4a6.5,6.5,0,0,1,2.8,2.3Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M26.21,35c-.92-.79-1.8-1.67-2.72-2.45l1.69-3.62c.8,1,1.54,2.23,2.34,3.27C27.07,33.13,26.63,34.06,26.21,35Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.2,36.87a10.23,10.23,0,0,1-3-1.9c.42-.91.86-1.84,1.31-2.8a6.78,6.78,0,0,0,2.77,2.35Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0\\\"/><path d=\\\"M33,37.1a6.27,6.27,0,0,1-3.76-.23l1.09-2.35a4.91,4.91,0,0,0,4.08-.44Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"fixed_option_value_tree\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"21.92 38.92 21.7 13.06 22.57 13.06 23.89 38.92 21.92 38.92\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"21.56 28.7 17.71 26.89 17.01 25.01 17.62 24.78 18.23 26.41 21.84 28.1 21.56 28.7 21.56 28.7\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"13.82 30.17 13.36 29.7 14.56 28.5 17.86 28.72 19.29 27.5 19.72 27.99 18.09 29.39 14.81 29.18 13.82 30.17 13.82 30.17\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.26 27.2 16.18 26.54 17.93 26.32 18.01 26.98 16.26 27.2 16.26 27.2\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.87 30.72 15.26 30.46 15.92 28.93 16.52 29.19 15.87 30.72 15.87 30.72\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"21.7 19.64 16 16.57 21.48 20.95 21.7 19.64\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.4 18.39 18.5 13.62 19.93 12.18 20.39 12.64 19.2 13.83 20.05 18.26 19.4 18.39 19.4 18.39\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"10.3 18.57 9.88 18.07 11.26 16.91 15.69 16.28 15.9 12.05 17.3 10.64 17.77 11.11 16.54 12.33 16.32 16.86 11.54 17.54 10.3 18.57 10.3 18.57\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"13.98 16.98 12.89 15.45 13.42 15.06 14.52 16.6 13.98 16.98 13.98 16.98\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.92 12.32 15.26 10.79 15.87 10.53 16.52 12.06 15.92 12.32 15.92 12.32\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.78 15.5 13.46 13.41 13.71 11.71 14.36 11.79 14.16 13.16 16.22 15.01 15.78 15.5 15.78 15.5\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.64 13.54 18.86 10.47 19.28 9.96 22.51 12.59 24.39 9.86 25.91 10.11 25.81 10.76 24.7 10.57 22.64 13.54 22.64 13.54\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.02 12.05 21.38 11.89 21.82 10.14 22.46 10.29 22.02 12.05 22.02 12.05\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24.29 10.42 23.41 9.33 23.93 8.92 24.8 10.01 24.29 10.42 24.29 10.42\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.27 17.21 22.75 16.81 24.88 14.05 24.88 11.75 25.53 11.75 25.53 14.27 23.27 17.21 23.27 17.21\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.52 14.49 25.2 14.49 25.2 13.83 26.52 13.83 26.52 14.49 26.52 14.49\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"28.49 15.04 26.74 17.23 23.23 23.14 23.45 25.11 27.61 17.45 28.49 15.04\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"28.21 15.39 27.73 12.05 27.09 10.33 27.7 10.1 28.38 11.92 28.77 14.68 30.87 14.49 33.99 14.71 33.94 15.37 30.88 15.15 28.21 15.39 28.21 15.39\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"28.27 12.22 27.84 11.72 29.59 10.19 30.02 10.68 28.27 12.22 28.27 12.22\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.15 15.03 30.65 14.6 32.18 12.85 32.68 13.28 31.15 15.03 31.15 15.03\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.19 17.67 25.53 17.67 25.53 15.69 26.19 15.69 26.19 17.67 26.19 17.67\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"29.24 19.31 26.74 19.31 26.74 18.65 29.05 18.65 31.17 17.38 31.51 17.95 29.24 19.31 29.24 19.31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.48\\\" y=\\\"18.63\\\" width=\\\"0.66\\\" height=\\\"1.58\\\" transform=\\\"translate(-2.87 33.48) rotate(-56.37)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.8,24.44l-3.57,2.65.22,2.19,3.23-3.23v-.21A7.77,7.77,0,0,1,26.8,24.44Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28,20.22l-.3.59.92.45a5.32,5.32,0,0,1,.59-.44Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M33.13,19.93l.76-.84h1.39v-.66H33.6L32.2,20c.26,0,.51,0,.78,0Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"34.07 18.8 33.42 18.72 33.64 16.97 34.29 17.05 34.07 18.8 34.07 18.8\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36,20.31l-.46-.47-.35.35q.38.09.72.21Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.71,24.63l.11.06.4,1.19.62-.21-.34-1h-.79Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.6 26.29 26.68 26.32 26.68 26.13 26.6 26.29\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"21.7 25.99 17.32 23.36 14.69 21.39 18.19 22.92 21.7 24.02 21.7 25.99\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"18.52 22.92 17.86 22.92 17.86 20.07 18.52 20.07 18.52 22.92 18.52 22.92\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.75 21.61 14.24 19.88 12.52 18.59 12.91 18.06 14.71 19.42 16.25 21.17 15.75 21.61 15.75 21.61\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14.78 19.73 14.15 19.55 14.59 18.01 15.22 18.2 14.78 19.73 14.78 19.73\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14.69 21.72 11.7 21.72 10.07 20.09 10.54 19.63 11.97 21.06 14.69 21.06 14.69 21.72 14.69 21.72\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"11 22.91 10.49 22.49 11.59 21.18 12.09 21.6 11 22.91 11 22.91\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"13.7 28.21 13.04 28.15 13.3 25.61 14.26 23.98 16.67 22.01 17.08 22.52 14.72 24.45 13.91 25.87 13.7 28.21 13.7 28.21\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"13.59 26.1 11.84 26.1 11.84 25.44 13.59 25.44 13.59 26.1 13.59 26.1\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14.3 24.52 12.77 23.65 13.1 23.08 14.63 23.95 14.3 24.52 14.3 24.52\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.08,29.2H27.88c-1.87,0-2,1.52-2,3.41V38c0,1.89.17,3.42,2,3.42h10.2c1.88,0,2-1.53,2-3.42V32.61C40.12,30.72,40,29.2,38.08,29.2ZM29.8,39.75l1.73-4.22a2.55,2.55,0,1,1,2.9,0l1.74,4.22Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36,25.84c0-2.4-1.35-2.71-3-2.71h0c-1.66,0-3,.31-3,2.71v2h-1.8v-2c0-3.34,2.15-4.42,4.8-4.42h0c2.66,0,4.81,1.08,4.81,4.42v2H36Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"fixed_tree_option_value\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,27.8H27.76c-1.88,0-2.05,1.53-2.05,3.41v5.4c0,1.88.17,3.41,2.05,3.41H38c1.88,0,2-1.53,2-3.41v-5.4C40,29.33,39.83,27.8,38,27.8ZM29.67,38.35l1.74-4.22a2.56,2.56,0,0,1,1.45-4.66,2.56,2.56,0,0,1,1.45,4.66L36,38.35Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.86,24.44c0-2.4-1.34-2.71-3-2.71h0c-1.66,0-3,.31-3,2.71v2h-1.8v-2c0-3.34,2.15-4.42,4.81-4.42h0c2.65,0,4.8,1.08,4.8,4.42v2h-1.8Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.19,19.36l-1.43,0A2.12,2.12,0,0,1,25.94,18l-2.49-7.16c-.25-.71-.65-.71-.9,0L20.06,18a2.12,2.12,0,0,1-1.82,1.32l-7.58.16c-.76,0-.88.4-.28.85l6,4.58a2.14,2.14,0,0,1,.7,2.15l-2.2,7.25c-.22.72.11,1,.73.53l6.22-4.33a2.14,2.14,0,0,1,2.26,0l.09.07c.05-1.35.35-3.5,2.33-4.12v-2A5.41,5.41,0,0,1,29.19,19.36Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"floppy_disk_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433.1 129.1l-83.9-83.9C342.3 38.32 327.1 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 152.9 441.7 137.7 433.1 129.1zM224 416c-35.34 0-64-28.66-64-64s28.66-64 64-64s64 28.66 64 64S259.3 416 224 416zM320 208C320 216.8 312.8 224 304 224h-224C71.16 224 64 216.8 64 208v-96C64 103.2 71.16 96 80 96h224C312.8 96 320 103.2 320 112V208z\\\"/></svg>\",\n \"FolderArrow\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(11 11)\\\"><path d=\\\"M 7.695 3.589 L 7.695 0 L 1.591 0 C 0.711 0 0 0.711 0 1.59 L 0 11.109 L 2.535 6.039 C 2.688 4.703 3.793 3.66 7.695 3.589 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.463 10.031)\\\" /><path d=\\\"M 7.7 1.59 C 7.7 0.711 6.988 0 6.109 0 L 0 0 L 0 3.574 L 7.7 3.574 L 7.7 1.59 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(16.924 10.031)\\\" /><path d=\\\"M 22.566 11.285 C 22.566 12.164 21.856 12.875 20.981 12.875 L 1.59 12.875 C 0.711 12.875 0 12.164 0 11.285 L 3.973 1.59 C 3.973 0.711 4.684 0 5.563 0 L 24.953 0 C 25.828 0 26.543 0.711 26.543 1.59 L 22.566 11.285 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.994 15.593)\\\" /><path d=\\\"M 6.331 0 L 0 6.332 L 3.938 6.332 L 3.938 12.871 L 8.729 12.871 L 8.729 6.332 L 12.663 6.332 L 6.331 0 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(6.21 0.468)\\\" /></g></svg>\",\n \"folder_arrow_in\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M286.1,417a1.6,1.6,0,0,0-1.6,1.6v9.5l2.5-5.1c0.2-1.3,1.3-2.4,5.2-2.4H294l-3.6-3.6h-4.3Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M307,417h-4.4l-3.6,3.6h9.5v-2A1.6,1.6,0,0,0,307,417Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M307.6,433.9a1.6,1.6,0,0,1-1.6,1.6H286.6a1.6,1.6,0,0,1-1.6-1.6l4-9.7a1.6,1.6,0,0,1,1.6-1.6h19.4a1.6,1.6,0,0,1,1.6,1.6Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><polygon points=\\\"24 24.4 30.4 18 26.4 18 26.4 11.5 21.6 11.5 21.6 18 17.7 18 24 24.4\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"formula\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.85,15.24a16.12,16.12,0,0,0-3,10,16.45,16.45,0,0,0,3,9.86H13.19A15.77,15.77,0,0,1,10,25.2a16.12,16.12,0,0,1,3.19-10Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.15,35.09a16.11,16.11,0,0,0,3.05-10,16.46,16.46,0,0,0-3.05-9.87h1.66A15.77,15.77,0,0,1,40,25.13a16.1,16.1,0,0,1-3.19,10Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.26,30.25c-.82,1.84-3.08,2.12-4.88,2.18-2.8.1-3.3-2.53-4.2-4.62-1.12,1.56-2.48,4.44-4.73,4.55-3.31.16-2.54-4.67.72-4.58,3.67.1,3.93-1.43,3-4.68-.79-2.68-1.5-3.43-4.28-2.9.36-2.05,3.29-2.3,4.91-2.23,2.43.11,3.17,2.66,3.82,4.6,1.16-1.67,3.49-6.08,6.18-4.22,2.34,1.61-.28,4.22-2.26,4.09-3.81-.26-3.72,2-2.71,5.1.86,2.67,1.72,3,4.47,2.71C31.41,32.14,29,30.64,32.26,30.25Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"fullscreen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"gear_double\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><g><path fill=\\\"#29363E\\\" d=\\\"M-249.4,403.5V401l-3.2-0.9c-0.2-0.6-0.4-1.2-0.7-1.8l1.6-2.8l-1.8-1.8l-2.7,1.6c-0.5-0.3-1.1-0.6-1.7-0.7l-0.9-3.2h-2.5l-0.9,3.2c-0.6,0.2-1.3,0.4-1.8,0.8l-2.7-1.6l-1.8,1.8l1.6,2.7c-0.3,0.6-0.6,1.2-0.7,1.8l-3.2,0.9v2.5l3.3,0.9c0.2,0.6,0.4,1.2,0.7,1.7l-1.6,2.7l1.8,1.8l2.8-1.6c0.6,0.3,1.2,0.6,1.8,0.7l0.9,3.2h2.5l0.9-3.2c0.6-0.2,1.2-0.4,1.7-0.7l2.8,1.6l1.8-1.8l-1.6-2.8c0.3-0.5,0.5-1.1,0.7-1.7L-249.4,403.5z M-260.2,405.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1C-257.1,403.9-258.5,405.3-260.2,405.3z\\\"/></g><g><path fill=\\\"#29363E\\\" d=\\\"M-239.4,385.5l-2.3-0.1c-0.2-0.3-0.5-0.7-0.8-0.9c-0.3-0.3-0.6-0.5-0.9-0.8l-0.1-2.3l-1.7-0.4l-1,1.9c-1,0-1.9,0.2-2.8,0.7l-2.1-1.2l-1.2,1.2l1.2,2c-0.5,0.9-0.8,1.9-0.7,2.9l-1.9,1l0.4,1.7l2.3,0.1c0.2,0.3,0.5,0.7,0.7,0.9c0.3,0.3,0.6,0.5,0.9,0.7l0.1,2.3l1.7,0.4l1-1.9c1,0,2-0.2,2.9-0.7l2,1.2l1.2-1.2l-1.2-2.1c0.5-0.9,0.7-1.8,0.7-2.8l1.9-1L-239.4,385.5z M-244.7,390.1c-0.9,0.9-2.5,0.9-3.4,0c-0.9-0.9-0.9-2.5,0-3.4c0.9-0.9,2.5-0.9,3.4,0C-243.7,387.6-243.7,389.1-244.7,390.1z\\\"/></g></g></svg>\",\n \"global_search\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path opacity=\\\"0.75\\\" fill=\\\"#29363E\\\" d=\\\"M33.5,21.5c0.1-0.1,0.2-0.1,0.3,0l0.8,0.6c0.1,0.1,0.1,0,0.1-0.1l-0.3-0.9c0-0.1,0-0.2,0.1-0.3l0.8-0.6c0.1-0.1,0.1-0.1,0-0.1l-1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.9c0-0.1-0.1-0.1-0.1,0l-0.3,0.9c0,0.1-0.1,0.2-0.2,0.2l-1,0c-0.1,0-0.1,0.1,0,0.1l0.8,0.6c0.1,0.1,0.1,0.2,0.1,0.3L32.6,22c0,0.1,0,0.1,0.1,0.1L33.5,21.5z\\\"/><path opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" d=\\\"M34.7,16.3L34,16.8c-0.1,0-0.1,0-0.1-0.1l0.3-0.8c0-0.1,0-0.2-0.1-0.2l-0.7-0.5c-0.1-0.1-0.1-0.1,0-0.1l0.9,0c0.1,0,0.2-0.1,0.2-0.2l0.3-0.8c0-0.1,0.1-0.1,0.1,0l0.3,0.8c0,0.1,0.1,0.1,0.2,0.2l0.9,0c0.1,0,0.1,0,0,0.1l-0.7,0.5c-0.1,0.1-0.1,0.2-0.1,0.2l0.2,0.8c0,0.1,0,0.1-0.1,0.1L35,16.3C34.9,16.3,34.8,16.3,34.7,16.3z\\\"/><path opacity=\\\"0.75\\\" fill=\\\"#29363E\\\" d=\\\"M30.5,26.2c0.1-0.1,0.2-0.1,0.3,0l0.9,0.6c0.1,0.1,0.1,0,0.1-0.1l-0.3-1.1c0-0.1,0-0.2,0.1-0.3l0.9-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.1,0c-0.1,0-0.2-0.1-0.3-0.2l-0.4-1.1c0-0.1-0.1-0.1-0.1,0l-0.4,1.1c0,0.1-0.2,0.2-0.3,0.2l-1.1,0c-0.1,0-0.1,0.1,0,0.1l0.9,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.3,1.1c0,0.1,0,0.1,0.1,0.1L30.5,26.2z\\\"/><path opacity=\\\"0.75\\\" fill=\\\"#29363E\\\" d=\\\"M26.2,30.6c0.1-0.1,0.3-0.1,0.4,0l1,0.7c0.1,0.1,0.2,0,0.1-0.1l-0.4-1.2c0-0.1,0-0.3,0.1-0.3l1-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.2,0c-0.1,0-0.3-0.1-0.3-0.2l-0.4-1.2c0-0.1-0.1-0.1-0.1,0l-0.4,1.2c0,0.1-0.2,0.2-0.3,0.2l-1.2,0c-0.1,0-0.1,0.1,0,0.1l1,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.4,1.2c0,0.1,0,0.2,0.1,0.1L26.2,30.6z\\\"/><path opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" d=\\\"M14.9,36.4c0.1-0.1,0.2-0.1,0.3,0L16,37c0.1,0.1,0.1,0,0.1-0.1L15.8,36c0-0.1,0-0.2,0.1-0.3l0.8-0.6c0.1-0.1,0.1-0.1,0-0.1l-1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.9c0-0.1-0.1-0.1-0.1,0l-0.3,0.9c0,0.1-0.1,0.2-0.2,0.2l-1,0c-0.1,0-0.1,0.1,0,0.1l0.8,0.6c0.1,0.1,0.1,0.2,0.1,0.3L14,36.9c0,0.1,0,0.1,0.1,0.1L14.9,36.4z\\\"/><path opacity=\\\"0.25\\\" fill=\\\"#29363E\\\" d=\\\"M19.3,25.3c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1L20,25c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L19.3,25.3z\\\"/><path opacity=\\\"0.4\\\" fill=\\\"#29363E\\\" d=\\\"M29.6,16.8c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1l-0.2-0.7c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L29.6,16.8z\\\"/><path opacity=\\\"0.4\\\" fill=\\\"#29363E\\\" d=\\\"M14.9,31.7c0.1,0,0.2,0,0.3,0l0.7,0.5c0.1,0,0.1,0,0.1-0.1l-0.3-0.8c0-0.1,0-0.2,0.1-0.2l0.7-0.5c0.1-0.1,0.1-0.1,0-0.1l-0.9,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.8c0-0.1-0.1-0.1-0.1,0l-0.3,0.8c0,0.1-0.1,0.1-0.2,0.2l-0.9,0c-0.1,0-0.1,0,0,0.1l0.7,0.5c0.1,0.1,0.1,0.2,0.1,0.2l-0.3,0.8c0,0.1,0,0.1,0.1,0.1L14.9,31.7z\\\"/><path opacity=\\\"0.75\\\" fill=\\\"#29363E\\\" d=\\\"M20.5,35c0.1-0.1,0.3-0.1,0.4,0l1,0.7c0.1,0.1,0.2,0,0.1-0.1l-0.4-1.2c0-0.1,0-0.3,0.1-0.3l1-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.2,0c-0.1,0-0.3-0.1-0.3-0.2l-0.4-1.2c0-0.1-0.1-0.1-0.1,0L20.2,33c0,0.1-0.2,0.2-0.3,0.2l-1.2,0c-0.1,0-0.1,0.1,0,0.1l1,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.4,1.2c0,0.1,0,0.2,0.1,0.1L20.5,35z\\\"/><path opacity=\\\"0.25\\\" fill=\\\"#29363E\\\" d=\\\"M24,20.8c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1l-0.2-0.7c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L24,20.8z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M25.5,27.7l0.3-0.8c-0.8,0.6-1.7,1-2.6,1.2l1.7,0C25.1,28.1,25.4,27.9,25.5,27.7z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M22.5,28.4c-0.1-0.1-0.1-0.1-0.1-0.1c-1.9,0.2-3.9-0.4-5.4-1.9c-2.6-2.6-2.6-6.8,0-9.4c2.6-2.6,6.8-2.6,9.4,0c1.8,1.8,2.4,4.5,1.6,6.8l1.3,0c0.2,0,0.5-0.2,0.5-0.4l0.5-1.4c0.1-2.3-0.8-4.7-2.5-6.4c-3.4-3.4-8.9-3.4-12.3,0c-3.4,3.4-3.4,8.9,0,12.3c2.4,2.4,5.9,3.1,8.9,2.1c0,0,0,0-0.1-0.1L22.5,28.4z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M27.6,28c0.1-0.1,0.2-0.1,0.2-0.2c0.4-0.4,0.7-0.8,1-1.2L29,26c0.1-0.2,0-0.5-0.2-0.6l-1.1-0.8c-0.2,0.5-0.6,1-1,1.4l0.6,1.7C27.3,27.8,27.4,27.9,27.6,28z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M36.4,32.8l-4.3-4.3c-0.6-0.6-1.6-0.7-2.3-0.4l0.4,0c0.2,0,0.3,0.1,0.1,0.3l-1.9,1.4c-0.2,0.1-0.3,0.4-0.2,0.7l0.6,1.8l4.1,4.1c0.8,0.8,2.1,0.8,2.9,0l0.7-0.7C37.2,34.9,37.2,33.6,36.4,32.8z\\\"/></g></svg>\",\n \"globe\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25.86,37.19a14.53,14.53,0,0,1-8.31-2.75V40H34.18V34.44A14.54,14.54,0,0,1,25.86,37.19Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.81,36a12.39,12.39,0,0,1-12-9.41l0-.13L15,24.83l.11.65A10.92,10.92,0,1,0,21.22,13.7l-.21.1-.87-1.24.3-.14a12.14,12.14,0,0,1,5.37-1.24,12.42,12.42,0,1,1,0,24.83Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.48 13.58 18.1 17.41 14.21 18.59 17.42 21.09 17.34 25.15 20.71 22.86 24.55 24.2 23.42 20.29 25.86 17.05 21.8 16.92 19.48 13.58\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"11.9 14.69 13.84 14.34 15.27 15.68 15.54 13.73 17.26 12.79 15.49 11.93 15.12 10 13.76 11.42 11.81 11.17 12.74 12.91 11.9 14.69\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.02 21.84 13.82 22.23 12.79 21.49 12.78 22.75 11.77 23.5 12.96 23.9 13.36 25.09 14.11 24.08 15.37 24.07 14.63 23.05 15.02 21.84\\\" fill=\\\"#484f60\\\"/><path d=\\\"M33.27,29.27l-.74-.56a8.46,8.46,0,0,0-2.36-12.35l.48-.8a9.32,9.32,0,0,1,4.54,8A9.23,9.23,0,0,1,33.27,29.27Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.36\\\" y=\\\"38\\\" width=\\\"23\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"greater_than\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M18.63,13.81l14.65,9.58a.48.48,0,0,1,.23.42v2.38a.48.48,0,0,1-.23.42L18.63,36.19a.5.5,0,0,1-.69-.14L16.57,34a.49.49,0,0,1,.15-.69l12-7.84a.5.5,0,0,0,0-.84l-12-7.84a.49.49,0,0,1-.15-.69L17.94,14A.5.5,0,0,1,18.63,13.81Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"groupby\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"19.5\\\" y=\\\"11.17\\\" width=\\\"1\\\" height=\\\"28\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"hamburger\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"14\\\" y=\\\"15.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14\\\" y=\\\"23.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14\\\" y=\\\"31.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"hand_pointer\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M24.16,20.4,23,19.8l-2-3.19-1.56-2-.82-1.08-1.93-2L14,10H12.58l-.89.89L12.21,12l3.11,2.79L16,16.34l2.15,3.42,1,2.86.08.93.11,3-.3-1.08-1.22-1.19-1-1.22-2.22-2.23-1.34-.44-1.11.29-.89.78L13,23.29l2,2.49,2.71,4.71L20.45,33l2.3,1.45,3.08,1.33,2.41,1.27,2.53,1.3.3,1.63,7.61-7.57V31.27S37.53,30,37.42,30a20.15,20.15,0,0,1-1-2.08l-.6-2.42-.44-1.22-1.67-2.12-1.08-1.41-.63-1-1.12-1.45-1-1-1.68-1.09-.27.54,1.75,2.68-1.18-.59-1.09-1.87-1.69-1.75L24.35,15l0,.76L27,19.65l-1.19-.6L23.5,15.39,22,14.3l-1.63.15.22.71Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"hbarchart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"14\\\" y=\\\"13.17\\\" width=\\\"26\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14\\\" y=\\\"21.17\\\" width=\\\"15\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14\\\" y=\\\"29.17\\\" width=\\\"21\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><path d=\\\"M11,12.17v25H40v1H10v-26Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"Home\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35.09,36.39H14.81v-11H10L25,13.61l2.73,2V14.06H32V19l8,6.43H35.09ZM16.25,35h17.4v-11h2.26l-5.37-4.3V15.49H29.16v3L25,15.42,14.16,23.94h2.09Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"home_circle\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path d=\\\"M32,33H17.9V25.36H14.55L25,17.18l1.89,1.42V17.49h3v3.4l5.58,4.47H32ZM18.9,32H31V24.36h1.58l-3.74-3V18.49h-1v2.1L25,18.44l-7.55,5.92H18.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"home_open\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M35.6,36.9H15.3v-11h-4.8l15-11.8l2.7,2v-1.6h4.3v4.9l8,6.4h-4.9V36.9z M16.7,35.5h17.4v-11h2.3L31,20.1V16h-1.4v3l-4.1-3.1l-10.9,8.5h2.1V35.5z\\\"/></svg>\",\n \"home_round_open\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M32,32.9H17.9v-7.7h-3.3L25,17l1.9,1.4v-1.1h3v3.4l5.6,4.5H32V32.9z M18.9,31.9H31v-7.7h1.6l-3.7-3v-2.9h-1v2.1L25,18.3l-7.6,5.9h1.5V31.9z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M25,11c7.7,0,14,6.3,14,14s-6.3,14-14,14s-14-6.3-14-14S17.3,11,25,11 M25,10c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15c8.3,0,15-6.7,15-15C40,16.7,33.3,10,25,10L25,10z\\\"/></g></svg>\",\n \"hourglass\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M15.57,10c0,.31,5.35,1.2,9.43,1.19s9.43-.88,9.43-1.19v1.3c0,.31-5.5,1.17-9.43,1.19s-9.43-.88-9.43-1.19Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.65,25.26h-3.3l-5.64,11c0-.16.77.16,2.17.49C20.94,34,23.53,32,25,32c1.26,0,4,2,5.1,4.79,1.41-.34,2.19-.68,2.19-.52Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.43,38.53c0-.31-5.35,1.47-9.43,1.47-5.32,0-9.43-1.78-9.43-1.47v-1.3A31.69,31.69,0,0,0,25,38.7a44.9,44.9,0,0,0,9.43-1.47Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,13.81c-4.56,0-7.29-.56-7.29-.87l5.64,11h3.3l5.64-11C32.29,13.25,29.56,13.84,25,13.81Zm.84,8.79H24.16l-2-3.9A4.7,4.7,0,0,1,25,17.37a4.85,4.85,0,0,1,2.84,1.33Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"icon_3d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"11.6 27.71 11.31 26.44 11.31 29.44 12.19 29.36 12.19 27.23 11.6 27.71\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><g opacity=\\\"0.5\\\"><path d=\\\"M22.28,14.36v.16l-.77-.09-2.82.23v.26l-1.33-.14L14.79,15v.1L14.25,15l-2.94.25v6a5.59,5.59,0,0,1,.54-.35,7.46,7.46,0,0,1,1.1-.53v-5l1.84-.15v4.63a9.24,9.24,0,0,1,.92-.11l.49,0,.18,0V15.15L18.69,15V20.3a4.83,4.83,0,0,1,1.34.87l.2.2V14.83l2.05-.17v4.86l.94-.25.55-.14V14.54l3-.25-1.45-.18Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.47,13.58,26.91,14v4.65h0l1.39-.13V14.16l4.48-.37Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M34.3,14.11c0-2.13-1.47-2.51-3.17-2.84C32.6,11.6,33,13.07,33,14.4v4.14c0,.44.94.47,1.32.61,0-1.68,0-3.36,0-5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M22.22,19.54l.06,0V14.36l3-.25v4.72l.27,0c.42-.07.86-.12,1.32-.17V14l4.56-.39v4.93a13.65,13.65,0,0,1,1.37.2l.15,0V14c0-.1,0-.2,0-.3a2.89,2.89,0,0,0,0-.29l-.06-.28a2,2,0,0,0-.08-.26,1.89,1.89,0,0,0-.11-.25l-.12-.24-.15-.21-.16-.2-.18-.17-.19-.15-.2-.13-.22-.1-.19-.06-.21-.05-.21,0h-.33l-19,2.05-.17,0-.16.06-.15.07-.15.1-.13.11a.8.8,0,0,0-.13.13,1.58,1.58,0,0,0-.12.15l-.12.16-.09.17-.09.19a1.67,1.67,0,0,0-.08.2,1.42,1.42,0,0,0-.07.22,1.29,1.29,0,0,0,0,.21,1.57,1.57,0,0,0,0,.23,1.64,1.64,0,0,0,0,.23,1.93,1.93,0,0,0,0,.24V29a5.8,5.8,0,0,0,0,.48,1.7,1.7,0,0,0,0,.22,1.42,1.42,0,0,0,0,.22,1.72,1.72,0,0,0,.07.21,1.19,1.19,0,0,0,.08.2l.09.19.09.17.12.17a2.4,2.4,0,0,0,.25.27,1.42,1.42,0,0,0,.13.12l.15.09.15.08.16.05a.76.76,0,0,0,.16,0l.62.07v-2l-.88-.08v-3l-1-4.31.61-.54c.11-.09.23-.19.36-.28v-6L14.25,15v5h0l.54-.1V15l2.57-.21V19.9c.25.05.5.1.74.17a4.24,4.24,0,0,1,.59.23V14.66l2.82-.23v5.36Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17.23,34.77A4.68,4.68,0,0,1,14.41,34,3.81,3.81,0,0,0,12,33.86a5.92,5.92,0,0,0,2.41,1,12.74,12.74,0,0,0,2.78-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M15.51,24.22a4.44,4.44,0,0,0-3.07,1.05l1.87.13c.3,0,1.15-.66,1.48-.78a3.85,3.85,0,0,1,1.57-.23l-1.85-.17\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M22.53,32.88a3.92,3.92,0,0,0-3-3.81c.85-.67,1.69-1,2.16-2.1a4.88,4.88,0,0,0,.33-1.81c-.12-3.08-2.51-3.56-5-3.95a3.8,3.8,0,0,1,3.27,3.52,4.42,4.42,0,0,1-.79,3,9.21,9.21,0,0,1-1.74,1.36,4.1,4.1,0,0,1,3,4.13,4.66,4.66,0,0,1-4,4.71c2-.32,4.16-.61,5.19-2.55a4.82,4.82,0,0,0,.55-2.47\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M29,23.45l.36-.06.45-.06.55,0h.71l.35,0,.33.05c-.19,0-.41-.08-1.49-.24l-.35-.05-.35,0h-.73l-.56,0-.47,0-.37.07-.28.08V35.35h2.11l.19,0h.2l.19,0h0l1.47-.22h0l-.33,0-.31,0H30l-.33,0-.35,0-.31,0-.27,0V23.52Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,28.65a8.62,8.62,0,0,0-2.82-6.76,10.46,10.46,0,0,0-4.25-1.77c4.16,1.08,5.93,5.06,5.83,9.09-.11,4.27-2.16,8.13-6.53,9.19,2.47-.6,4.78-1.35,6.21-3.6A11.38,11.38,0,0,0,40,28.65\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.6,21.39a6.92,6.92,0,0,1,1.3,1.24,8.42,8.42,0,0,1,1,1.65,9.38,9.38,0,0,1,.64,2.06,12.54,12.54,0,0,1,.23,2.46,14.5,14.5,0,0,1-.24,2.65,10.69,10.69,0,0,1-.65,2.2,9.15,9.15,0,0,1-1,1.75,7.52,7.52,0,0,1-1.22,1.34,7.41,7.41,0,0,1-1.62,1,9.44,9.44,0,0,1-1.92.66,13.09,13.09,0,0,1-2.15.31,18.15,18.15,0,0,1-2.33,0c-.48,0-.92-.07-1.33-.12s-.78-.08-1.11-.13l-.92-.15-.72-.15V20.58c.32-.09.66-.17,1-.24s.77-.15,1.18-.21L27.07,20c.45,0,.9-.09,1.37-.12a18.53,18.53,0,0,1,2.21,0,11.1,11.1,0,0,1,1.91.23,7.4,7.4,0,0,1,1.63.52A6.87,6.87,0,0,1,35.6,21.39Zm-7.1,14.1a6.3,6.3,0,0,0,2.34-.3A4.65,4.65,0,0,0,32.69,34,5.37,5.37,0,0,0,33.9,32a9.49,9.49,0,0,0,.43-3,8.41,8.41,0,0,0-.4-2.71,4.86,4.86,0,0,0-1.12-1.88,4.35,4.35,0,0,0-1.74-1.05,6.42,6.42,0,0,0-2.24-.26l-.56,0-.47,0-.37.07-.28.08V35.35l.27.06.32,0,.35,0,.35,0h.06\\\" fill=\\\"#484f60\\\"/><path d=\\\"M15.8,21.16a5.16,5.16,0,0,1,1.89.21,3.65,3.65,0,0,1,1.42.8,3.5,3.5,0,0,1,.9,1.29,4.29,4.29,0,0,1,.31,1.62,5.2,5.2,0,0,1-.16,1.27,4.24,4.24,0,0,1-.48,1.11,4,4,0,0,1-.8.9,4.57,4.57,0,0,1-1.11.65v0a3.53,3.53,0,0,1,1.17.48,3.76,3.76,0,0,1,1,.87,4.45,4.45,0,0,1,.66,1.24,5,5,0,0,1,.24,1.54,5.15,5.15,0,0,1-.4,2,4.38,4.38,0,0,1-1.15,1.57,4.81,4.81,0,0,1-1.76,1,6.42,6.42,0,0,1-2.28.22A8.17,8.17,0,0,1,13,37.48a8.9,8.9,0,0,1-.87-.41,4.33,4.33,0,0,1-.65-.45L12,33.86a4.33,4.33,0,0,0,.5.33,7.59,7.59,0,0,0,.7.35,5.17,5.17,0,0,0,.84.28A4.55,4.55,0,0,0,15,35a3.37,3.37,0,0,0,1-.12,2.16,2.16,0,0,0,.76-.43,1.89,1.89,0,0,0,.47-.68,2.34,2.34,0,0,0,.15-.85,2.38,2.38,0,0,0-.23-1.07,2.1,2.1,0,0,0-.6-.75,2.65,2.65,0,0,0-.85-.44,3.93,3.93,0,0,0-1-.15H13.55V27.79h1.16a3.58,3.58,0,0,0,.79-.11,2.89,2.89,0,0,0,.76-.34,1.7,1.7,0,0,0,.56-.6,1.74,1.74,0,0,0,.23-.88,1.92,1.92,0,0,0-.12-.69,1.45,1.45,0,0,0-1-.86,2.56,2.56,0,0,0-.86-.09,3.6,3.6,0,0,0-.79.12,6.06,6.06,0,0,0-.75.27,5.26,5.26,0,0,0-.63.33,3.55,3.55,0,0,0-.48.34l-.6-2.65a4.38,4.38,0,0,1,.69-.49,6.06,6.06,0,0,1,.92-.44,8.33,8.33,0,0,1,2.35-.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"id\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M37.43,15.14H12.57A2.57,2.57,0,0,0,10,17.71V32.29a2.57,2.57,0,0,0,2.57,2.57H37.43A2.57,2.57,0,0,0,40,32.29V17.71A2.57,2.57,0,0,0,37.43,15.14Zm-20.1,2.15a3.36,3.36,0,0,1,3.45,3.16A3.71,3.71,0,0,1,17.33,24a3.71,3.71,0,0,1-3.44-3.57A3.36,3.36,0,0,1,17.33,17.29Zm4.12,10.4c0,1.09-1,5-2.24,5H15.46c-1.24,0-2.25-3.93-2.25-5l-1.5-1.83A2.49,2.49,0,0,1,14,23.47h.28a4.37,4.37,0,0,0,3.09,2.13,4.39,4.39,0,0,0,3.1-2.13h.27A2.49,2.49,0,0,1,23,25.86Zm16.41,5H25V31.28H37.86Zm0-2.85H25V28.43H37.86Zm0-2.86H25V25.57H37.86Zm0-5.71H25V19.86H37.86Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"image\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M39.17,12.2H36.43L41,16.77V14A1.83,1.83,0,0,0,39.17,12.2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.6,12.2H10.83A1.83,1.83,0,0,0,9,14V36a1.83,1.83,0,0,0,1.83,1.83H39.17A1.83,1.83,0,0,0,41,36V18.6Zm5,23.77a.47.47,0,0,1-.46.46H10.83a.47.47,0,0,1-.46-.46V14a.47.47,0,0,1,.46-.46H34l5.6,5.6Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24.91 17.96 18.14 29.11 20.89 29.11 26.19 19.61 24.91 17.96\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.43,30.49c0,2-1.64,4.57-3.66,4.57H17.23c-2,0-3.66-2.56-3.66-4.57Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.71 29.11 30.03 16.31 36.43 29.11 22.71 29.11\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17.23,18.37a2.06,2.06,0,1,1-2.06-2.06A2.06,2.06,0,0,1,17.23,18.37Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"incoming_storage\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"25 25.16 17.62 17.79 17.62 22.38 10 22.38 10 27.96 17.62 27.96 17.62 32.55 25 25.16\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"20 32.29 20 37.97 22.93 37.97 22.93 29.36 20 32.29\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"22.93 12.36 20 12.36 20 18.05 22.93 20.97 22.93 12.36\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"24.39\\\" y=\\\"30.65\\\" width=\\\"11.22\\\" height=\\\"1.46\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"35.61 21.88 24.39 21.88 24.39 22.44 25.29 23.34 35.61 23.34 35.61 21.88\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"37.07\\\" y=\\\"12.36\\\" width=\\\"2.93\\\" height=\\\"25.61\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"24.39\\\" y=\\\"13.09\\\" width=\\\"11.22\\\" height=\\\"1.46\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"information\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25.05,16.67a2,2,0,0,1,2,2,1.92,1.92,0,0,1-.58,1.41,2,2,0,0,1-1.42.59,2,2,0,0,1-2-2,2,2,0,0,1,.58-1.42A1.92,1.92,0,0,1,25.05,16.67Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.95\\\" y=\\\"23.67\\\" width=\\\"4\\\" height=\\\"10\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"information_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,407.5a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15h0Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298.1,413a2,2,0,1,1-1.4.6A1.9,1.9,0,0,1,298.1,413Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><rect x=\\\"23.4\\\" y=\\\"24\\\" width=\\\"4\\\" height=\\\"10\\\" fill=\\\"#fff\\\"/></svg>\",\n \"input_multiplechoice\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"18\\\" y=\\\"15.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18\\\" y=\\\"23.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18\\\" y=\\\"31.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"17.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"25.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"33.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"input_text\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"19.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"27.17\\\" width=\\\"20\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"input_textarea\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"11.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"19.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"27.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"35.17\\\" width=\\\"20\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"inventory\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.41 31.89 30.72 29.4 35.03 31.88 30.73 34.38 26.41 31.89\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"31.19 35.17 35.49 32.68 35.5 37.65 31.2 40.15 31.19 35.17\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25.96 37.67 25.96 32.69 30.27 35.17 30.28 40.15 25.96 37.67\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"15.96 31.91 20.26 29.42 24.57 31.9 20.27 34.39 15.96 31.91\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"20.73 35.19 25.03 32.7 25.04 37.67 20.74 40.16 20.73 35.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"15.51 37.69 15.5 32.71 19.81 35.19 19.82 40.17 15.51 37.69\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"26.43 20.9 26.43 21.7 23.15 21.7 21.17 22.85 25.48 25.33 29.79 22.83 26.43 20.9\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"25.94 26.12 30.25 23.63 30.26 28.6 25.95 31.1 25.94 26.12\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"20.72 28.62 20.71 23.65 25.02 26.13 25.03 31.1 20.72 28.62\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31\\\" y=\\\"10.17\\\" width=\\\"1.5\\\" height=\\\"10\\\" fill=\\\"#484f60\\\"/><rect x=\\\"38\\\" y=\\\"10.17\\\" width=\\\"1.5\\\" height=\\\"10\\\" fill=\\\"#484f60\\\"/><rect x=\\\"34.5\\\" y=\\\"10.17\\\" width=\\\"1.5\\\" height=\\\"10\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14.43 10.2 12.93 10.2 12.93 16.47 14.43 15.65 14.43 10.2\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14.43 19.64 13.39 20.2 14.43 20.2 14.43 19.64\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.43 10.2 23.43 10.76 24.46 10.2 23.43 10.2\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.43 14.75 23.43 20.2 24.93 20.2 24.93 13.93 23.43 14.75\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"21.43 10.2 19.93 10.2 19.93 12.66 21.43 11.85 21.43 10.2\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.93 16.65 19.93 20.2 21.43 20.2 21.43 15.83 19.93 16.65\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.43 18.55 16.43 20.2 17.93 20.2 17.93 17.74 16.43 18.55\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"17.93 10.2 16.43 10.2 16.43 14.57 17.93 13.75 17.93 10.2\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"11.24 20.23 10.5 18.93 26.62 10.17 27.36 11.47 11.24 20.23\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"invoice\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.5,25V12a.5.5,0,0,1,.5-.5H28.73V10H15a2,2,0,0,0-2,2V26.53A9.56,9.56,0,0,1,14.5,25Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.5,18.49V38a.5.5,0,0,1-.5.5H27.73A10,10,0,0,1,26.11,40H35a2,2,0,0,0,2-2V18.49Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,10v6.44c0,1.78.27,2,2.05,2H37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"17.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"21.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"21.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"25.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"29.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.8,33.1a.51.51,0,0,0-.7.1l-.56.72-1.4-.4a.54.54,0,0,0-.22,0,9.59,9.59,0,0,1-.34,1.61l.57-.57,1.44.42a.49.49,0,0,0,.54-.18l.77-1A.51.51,0,0,0,32.8,33.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.06,25.45a7.5,7.5,0,1,0,4.49,9.61A7.5,7.5,0,0,0,23.06,25.45ZM18.11,39.08a7,7,0,1,1,9-4.19A7,7,0,0,1,18.11,39.08Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M22.93,38l2.95-8.12a6.3,6.3,0,0,0-.81-1.24l-3.56,9.79A6.46,6.46,0,0,0,22.93,38Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.78,38.49l3.78-10.4a6.08,6.08,0,0,0-1-.74l-4,11.06A5.79,5.79,0,0,0,20.78,38.49Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.14,34.55a6.06,6.06,0,0,0,.11-3.76L23.8,37.5A6,6,0,0,0,26.14,34.55Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M22.55,26.86a6,6,0,1,0-4.1,11.28l.44.13L23,27Zm-4,8.4-1.3-.47,1.29-3.55.23-.57L19,30l-.6.26-.91.31-.34-1,2.54-.85,1.07.38Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"ione_logo\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 77 15\\\"><path d=\\\"M.29,11V.22h1V11Z\\\" fill=\\\"#fff\\\"/><path d=\\\"M22.11,15a6.93,6.93,0,0,1-5.22-2.18A7.32,7.32,0,0,1,14.78,7.5a7.36,7.36,0,0,1,2.11-5.33A7,7,0,0,1,22.11,0a7,7,0,0,1,5.22,2.17A7.36,7.36,0,0,1,29.44,7.5a7.32,7.32,0,0,1-2.11,5.32A6.93,6.93,0,0,1,22.11,15Zm0-14.08a5.86,5.86,0,0,0-4.48,1.9A6.61,6.61,0,0,0,15.85,7.5a6.53,6.53,0,0,0,1.79,4.66,5.86,5.86,0,0,0,4.48,1.9,5.84,5.84,0,0,0,4.47-1.9A6.56,6.56,0,0,0,28.37,7.5a6.64,6.64,0,0,0-1.78-4.68A5.84,5.84,0,0,0,22.12.92Z\\\" fill=\\\"#fff\\\"/><path d=\\\"M42.89,14.78V.13h.5l9.55,11c.34.39.66.77,1,1.16l.46.59c0-.36,0-1.06,0-2.11V.22h1V14.87h-.49L45.11,3.7,43.88,2.2c0,.3,0,1,0,2.1V14.78Z\\\" fill=\\\"#fff\\\"/><path d=\\\"M69.69,14.78V.22h6.79v.9H70.72V6.41h5.2v.88h-5.2v6.54h6v.95Z\\\" fill=\\\"#fff\\\"/></svg>\",\n \"ione_logo_fat\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 142 31.96\\\"><title>iOne logo fattened</title><rect y=\\\"0.4\\\" width=\\\"6.93\\\" height=\\\"24.46\\\" fill=\\\"#fff\\\"/><path d=\\\"M90.33,55.77A15,15,0,0,1,79.15,51.1a15.67,15.67,0,0,1-4.5-11.31,15.7,15.7,0,0,1,4.5-11.31,15.72,15.72,0,0,1,22.36,0A15.7,15.7,0,0,1,106,39.79a15.67,15.67,0,0,1-4.5,11.31A15,15,0,0,1,90.33,55.77Zm0-25.23a8.14,8.14,0,0,0-6.18,2.61,9.38,9.38,0,0,0-2.51,6.64,9.33,9.33,0,0,0,2.5,6.62,8.64,8.64,0,0,0,12.35,0A9.39,9.39,0,0,0,99,39.79a9.43,9.43,0,0,0-2.49-6.64A8.08,8.08,0,0,0,90.35,30.54Z\\\" transform=\\\"translate(-48.7 -23.81)\\\" fill=\\\"#fff\\\"/><polygon points=\\\"99.13 31.72 83.26 13.5 83.26 31.55 76.33 31.55 76.33 0.24 80.92 0.24 96.79 18.5 96.79 0.4 103.71 0.4 103.71 31.72 99.13 31.72\\\" fill=\\\"#fff\\\"/><polygon points=\\\"124.35 31.55 124.35 0.4 141.6 0.4 141.6 7.09 131.27 7.09 131.27 11.49 140.59 11.49 140.59 18.14 131.27 18.14 131.27 24.79 142 24.79 142 31.55 124.35 31.55\\\" fill=\\\"#fff\\\"/></svg>\",\n \"ione_status_next\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g display=\\\"none\\\"></g><g ><g ><g><polygon fill=\\\"#484F60\\\" points=\\\"35,20 25.2,10.2 25.2,16.3 15,16.3 15,23.7 25.2,23.7 25.2,29.8 \\\"/><circle opacity=\\\"0.25\\\" fill=\\\"#484F60\\\" cx=\\\"12.5\\\" cy=\\\"37.3\\\" r=\\\"2.5\\\"/><circle fill=\\\"#484F60\\\" cx=\\\"25\\\" cy=\\\"37.3\\\" r=\\\"2.5\\\"/><circle opacity=\\\"0.75\\\" fill=\\\"#484F60\\\" cx=\\\"37.5\\\" cy=\\\"37.3\\\" r=\\\"2.5\\\"/><rect x=\\\"16\\\" y=\\\"36.8\\\" opacity=\\\"0.25\\\" fill=\\\"#484F60\\\" width=\\\"5.5\\\" height=\\\"1\\\"/><rect x=\\\"28.5\\\" y=\\\"36.8\\\" opacity=\\\"0.75\\\" fill=\\\"#484F60\\\" width=\\\"5.5\\\" height=\\\"1\\\"/></g></g><g display=\\\"none\\\"></g></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"><g display=\\\"inline\\\"><rect y=\\\"50\\\" opacity=\\\"0.25\\\" fill=\\\"#FFFFFF\\\" width=\\\"50\\\" height=\\\"50\\\"/></g><g display=\\\"inline\\\"></g><g display=\\\"inline\\\"><g><rect y=\\\"0\\\" opacity=\\\"0.25\\\" fill=\\\"#FFFFFF\\\" width=\\\"50\\\" height=\\\"50\\\"/><rect y=\\\"5\\\" opacity=\\\"0.5\\\" fill=\\\"none\\\" width=\\\"50\\\" height=\\\"45\\\"/><text transform=\\\"matrix(1 0 0 1 5.0054 12.0999)\\\"><tspan x=\\\"0\\\" y=\\\"0\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">Workflow </tspan><tspan x=\\\"5.3\\\" y=\\\"12\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">acties / </tspan><tspan x=\\\"0.3\\\" y=\\\"24\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">volgende </tspan><tspan x=\\\"8.3\\\" y=\\\"36\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">stap / </tspan></text></g></g></g></svg>\",\n \"ione_workflow\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g display=\\\"none\\\"></g><g ><g ><g><g><rect x=\\\"34.3\\\" y=\\\"20\\\" fill=\\\"#484F60\\\" width=\\\"1.5\\\" height=\\\"3.7\\\"/><g><polygon fill=\\\"#484F60\\\" points=\\\"32,22.8 35,28 38,22.8 \\\"/></g></g><path fill=\\\"#484F60\\\" d=\\\"M18.5,21.5v7h-7v-7H18.5 M20,20H10v10h10V20L20,20z\\\"/><path fill=\\\"#484F60\\\" d=\\\"M38.5,11.5v7h-7v-7H38.5 M40,10H30v10h10V10L40,10z\\\"/><path fill=\\\"#484F60\\\" d=\\\"M38.5,31.5v7h-7v-7H38.5 M40,30H30v10h10V30L40,30z\\\"/><g><polygon fill=\\\"#484F60\\\" points=\\\"15.8,20 14.3,20 14.3,14.3 23.7,14.3 23.7,15.8 15.8,15.8 \\\"/><g><polygon fill=\\\"#484F60\\\" points=\\\"22.8,18 28,15 22.8,12 \\\"/></g></g><g><polygon fill=\\\"#484F60\\\" points=\\\"23.7,35.8 14.3,35.8 14.3,30 15.8,30 15.8,34.3 23.7,34.3 \\\"/><g><polygon fill=\\\"#484F60\\\" points=\\\"22.8,38 28,35 22.8,32 \\\"/></g></g></g></g><g display=\\\"none\\\"></g></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"></g><g display=\\\"none\\\"><g display=\\\"inline\\\"><rect y=\\\"50\\\" opacity=\\\"0.25\\\" fill=\\\"#FFFFFF\\\" width=\\\"50\\\" height=\\\"50\\\"/></g><g display=\\\"inline\\\"><g><rect y=\\\"-45\\\" opacity=\\\"0.5\\\" fill=\\\"none\\\" width=\\\"50\\\" height=\\\"45\\\"/><text transform=\\\"matrix(1 0 0 1 7.375 -37.9002)\\\"><tspan x=\\\"0\\\" y=\\\"0\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">Opmaak </tspan><tspan x=\\\"5.4\\\" y=\\\"12\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">item / </tspan><tspan x=\\\"-1.4\\\" y=\\\"24\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">structuur </tspan><tspan x=\\\"8.1\\\" y=\\\"36\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">item </tspan></text></g></g><g display=\\\"inline\\\"><g><rect y=\\\"0\\\" opacity=\\\"0.25\\\" fill=\\\"#FFFFFF\\\" width=\\\"50\\\" height=\\\"50\\\"/><rect y=\\\"5\\\" opacity=\\\"0.5\\\" fill=\\\"none\\\" width=\\\"50\\\" height=\\\"45\\\"/><text transform=\\\"matrix(1 0 0 1 5.0054 12.0999)\\\" font-family=\\\"'MyriadPro-Regular'\\\" font-size=\\\"10px\\\">Workflow</text></g></g></g></svg>\",\n \"keyboard\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"12.65\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"34.71\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"30.29\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.88\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.47\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.06\\\" y=\\\"24.43\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.65\\\" y=\\\"28.84\\\" width=\\\"4.41\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"32.06\\\" y=\\\"28.84\\\" width=\\\"5.29\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"27.65\\\" y=\\\"28.84\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23.24\\\" y=\\\"28.84\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.82\\\" y=\\\"28.84\\\" width=\\\"2.65\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.65\\\" y=\\\"33.26\\\" width=\\\"4.41\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"32.06\\\" y=\\\"33.26\\\" width=\\\"5.29\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.82\\\" y=\\\"33.26\\\" width=\\\"11.47\\\" height=\\\"2.65\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.12,22.67v15H10.88v-15H39.12m.88-.88H10V38.55H40V21.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.55,22.67c-3-1.46-5.74-2.76-6.26-4.5h0a4.9,4.9,0,0,1-.22-1.62,3.58,3.58,0,0,1,2.31-3.25c2.2-.94,4.48.38,5.93,1.33s2.72,3.64,4.93,2.88a2.65,2.65,0,0,0,1.65-1.39A2.7,2.7,0,0,0,32,13.78a12.94,12.94,0,0,0-.84-2l.65-.33a12.51,12.51,0,0,1,.89,2.1,3.24,3.24,0,0,1-.15,2.74,3.36,3.36,0,0,1-2.12,1.79c-2.58.9-4.12-2-5.6-2.94s-3.4-2.05-5.19-1.28a2.89,2.89,0,0,0-1.86,2.65A4.47,4.47,0,0,0,18,18c.49,1.61,3.09,2.76,5.92,4.13Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"keychain\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25.78,21.66a5.63,5.63,0,1,0-6.34-4.81A5.63,5.63,0,0,0,25.78,21.66ZM22,15.31a2,2,0,1,1,2.29,1.74A2,2,0,0,1,22,15.31Z\\\" fill=\\\"#484f60\\\"/><polyline points=\\\"30.37 17.82 40 27.42 39.88 29.4 36.45 29.61 35.68 28.85 35.86 26.49 33.31 26.47 33.4 24.02 30.91 24.07 29.88 23.04 28.78 23.24 26.95 21.41\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17.42,17.13a4.57,4.57,0,0,1-.05-.52l-2,1.47a3.78,3.78,0,0,0-1.55,2L10.09,33.8a3.85,3.85,0,0,0,.32,2.52l.24.43a3.85,3.85,0,0,0,2,1.55l4.21,1.15a3.87,3.87,0,0,0,2.53-.32l.42-.25a3.8,3.8,0,0,0,1.56-2L25,23.76A7.69,7.69,0,0,1,17.42,17.13Zm1.51,19.55-6.63-1.8,3.54-13,6.64,1.8Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"label\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 37.5 50\\\"><path fill=\\\"#29363E\\\" d=\\\"M32,0A15.3,15.3,0,0,0,21.9,3.7L1.7,21.5a4.6,4.6,0,0,0,0,7.1L21.9,46.3A15.3,15.3,0,0,0,32,50h5.5V0H32Z\\\"/><circle class=\\\"cls-circle\\\" cx=\\\"21.5\\\" cy=\\\"25\\\" r=\\\"6.3\\\"/></svg>\",\n \"label_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M307,423.7v-0.4a2.8,2.8,0,0,0-.7-1.7l-7.4-7.4a2.8,2.8,0,0,0-1.7-.7H292a1,1,0,0,0-1,1v5.1a2.8,2.8,0,0,0,.7,1.7l7.4,7.4a2.8,2.8,0,0,0,1.7.7h0.4a2.8,2.8,0,0,0,1.7-.7l3.3-3.3A2.8,2.8,0,0,0,307,423.7Zm-14.3-6.6a1.4,1.4,0,1,1,1.9,0A1.4,1.4,0,0,1,292.7,417.1Zm8.5,10.1-6-6,0.7-.7,6,6Zm1.4-1.4-6-6,0.7-.7,6,6Zm1.4-1.4-6-6,0.7-.7,6,6Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298,436a15.5,15.5,0,1,1,15.5-15.5A15.5,15.5,0,0,1,298,436Zm0-30a14.5,14.5,0,1,0,14.5,14.5A14.5,14.5,0,0,0,298,406Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"landmark_flag\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path style= \\\"fill: #484f60\\\" d=\\\"M352 0C360.8 0 368 7.164 368 16V80C368 88.84 360.8 96 352 96H272V128H464C481.7 128 496 142.3 496 160C496 177.7 481.7 192 464 192H47.1C30.33 192 15.1 177.7 15.1 160C15.1 142.3 30.33 128 47.1 128H239.1V16C239.1 7.164 247.2 0 255.1 0H352zM63.1 224H127.1V416H167.1V224H231.1V416H280V224H344V416H384V224H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H31.1C17.9 512 5.458 502.8 1.372 489.3C-2.715 475.8 2.515 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.4 420.6 63.1 420.3V224z\\\"/></svg>\",\n \"library\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10.47,12.81,18H37.19Zm0,6.3a2.34,2.34,0,1,1,2.34-2.34A2.34,2.34,0,0,1,25,16.77Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"13.75\\\" y=\\\"21.72\\\" width=\\\"1.88\\\" height=\\\"10.31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"13.28\\\" y=\\\"20.78\\\" width=\\\"2.81\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.81\\\" y=\\\"32.03\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.81\\\" y=\\\"19.84\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"27.5\\\" y=\\\"21.72\\\" width=\\\"1.88\\\" height=\\\"10.31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"27.03\\\" y=\\\"20.78\\\" width=\\\"2.81\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.56\\\" y=\\\"32.03\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.56\\\" y=\\\"19.84\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"20.62\\\" y=\\\"21.72\\\" width=\\\"1.88\\\" height=\\\"10.31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"20.16\\\" y=\\\"20.78\\\" width=\\\"2.81\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"19.69\\\" y=\\\"32.03\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"19.69\\\" y=\\\"19.84\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"34.38\\\" y=\\\"21.72\\\" width=\\\"1.88\\\" height=\\\"10.31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"33.91\\\" y=\\\"20.78\\\" width=\\\"2.81\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"33.44\\\" y=\\\"32.03\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"33.44\\\" y=\\\"19.84\\\" width=\\\"3.75\\\" height=\\\"0.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"37.66\\\" width=\\\"30\\\" height=\\\"1.87\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.88\\\" y=\\\"34.84\\\" width=\\\"26.25\\\" height=\\\"1.87\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"linechart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M11,12.17v25H40v1H10v-26Z\\\" fill=\\\"#4c5050\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"11.76 33.18 11 32.53 15.16 26.48 19.66 24.3 24.26 27.19 28.07 22.25 35.3 19.53 37.01 21.7 38.92 17.28 39.84 17.68 37.26 23.64 34.97 20.72 28.69 23.09 24.5 28.52 19.6 25.44 15.7 27.34 11.76 33.18\\\" fill=\\\"#4c5050\\\"/><polygon points=\\\"39.84 17.68 37.26 23.64 34.97 20.72 28.69 23.09 24.5 28.52 19.6 25.44 15.7 27.34 11.76 33.18 11 32.53 11 37.17 40 37.17 39.84 17.68\\\" fill=\\\"#4c5050\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"linked_products\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.5\\\"><path d=\\\"M20.2,14.71h2.15V26.2l.76-.77V14.71H24.4v9.43l.77-.77V14.71h1.29V22.1l.08-.09,1.29-1.3v-6h1.29v4.71l1.68-1.67a6.28,6.28,0,0,1,.54-.49V14.71h1.29v1.77a7.15,7.15,0,0,1,.77-.29V14.71H36V16a6.71,6.71,0,0,1,1,.21V14.71h1.29v2a6,6,0,0,1,1.31,1l.09.08c.11.11.21.23.31.35v-3a2.57,2.57,0,0,0-2.57-2.57H12.57A2.57,2.57,0,0,0,10,15.14V29.72a2.57,2.57,0,0,0,2.57,2.57h5.95a6.13,6.13,0,0,1,1.68-3.93ZM14.29,30.14H12.15V14.71h2.14Zm2,0H15V14.71h1.29Zm1.28,0V14.71h1.29V30.14Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.68,26.63,38.29,28v2.11H37v-.83l-2.92,2.92v-.1s-.09.1-.13.16h3.48A2.57,2.57,0,0,0,40,29.72V26.28A3.49,3.49,0,0,1,39.68,26.63Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M38.62,18.89l-.08-.08a4.73,4.73,0,0,0-6.68,0L27.6,23.07a4.73,4.73,0,0,0,0,6.68l.08.08a3.8,3.8,0,0,0,.48.42l1.56-1.56a2.38,2.38,0,0,1-.51-.39l-.08-.08a2.56,2.56,0,0,1,0-3.62l4.26-4.26a2.56,2.56,0,0,1,3.62,0l.08.08a2.56,2.56,0,0,1,0,3.62L35.16,26a6.53,6.53,0,0,1,.48,2.58l3-3A4.73,4.73,0,0,0,38.62,18.89ZM32.33,25a3.77,3.77,0,0,0-.49-.42l-1.56,1.56a2.1,2.1,0,0,1,.51.39l.08.08a2.56,2.56,0,0,1,0,3.62l-4.26,4.26a2.56,2.56,0,0,1-3.62,0l-.08-.08a2.56,2.56,0,0,1,0-3.62l1.93-1.93a6.6,6.6,0,0,1-.48-2.58l-3,3a4.73,4.73,0,0,0,0,6.68l.08.08a4.73,4.73,0,0,0,6.68,0l4.26-4.26a4.74,4.74,0,0,0,0-6.69Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"link_circle\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.48,15.6l-.08-.08a5.21,5.21,0,0,0-7.36,0L22.36,20.2a5.21,5.21,0,0,0,0,7.36l.08.08c.17.17.35.32.53.47l1.72-1.72a2.88,2.88,0,0,1-.56-.43L24,25.87a2.81,2.81,0,0,1,0-4l4.69-4.69a2.81,2.81,0,0,1,4,0l.09.09a2.81,2.81,0,0,1,0,4l-2.12,2.12a7.17,7.17,0,0,1,.52,2.85L34.48,23A5.21,5.21,0,0,0,34.48,15.6Zm-6.92,6.76A5.62,5.62,0,0,0,27,21.9l-1.72,1.71a2.88,2.88,0,0,1,.56.43l.09.09a2.81,2.81,0,0,1,0,4L21.27,32.8a2.81,2.81,0,0,1-4,0l-.09-.09a2.81,2.81,0,0,1,0-4l2.12-2.12a7.17,7.17,0,0,1-.52-2.85L15.52,27a5.21,5.21,0,0,0,0,7.36l.08.08a5.21,5.21,0,0,0,7.36,0l4.68-4.68a5.21,5.21,0,0,0,0-7.36Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"list_view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><rect x=\\\"26.5\\\" y=\\\"13\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"13\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"22\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"26.5\\\" y=\\\"22\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"10.5\\\" y=\\\"31\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"26.5\\\" y=\\\"31\\\" width=\\\"14\\\" height=\\\"7\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"location\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"lock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M32.65,21.67H17.35c-2.81,0-3.06,2.29-3.06,5.12v8.09c0,2.83.25,5.12,3.06,5.12h15.3c2.81,0,3.06-2.29,3.06-5.12V26.79C35.71,24,35.46,21.67,32.65,21.67ZM20.22,37.49l2.61-6.32a3.82,3.82,0,1,1,4.35,0l2.6,6.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.51,16.64c0-3.6-2-4.07-4.51-4.07h0c-2.49,0-4.51.47-4.51,4.07v3h-2.7v-3C17.79,11.62,21,10,25,10h0c4,0,7.21,1.62,7.21,6.64v3h-2.7Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"lock_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M684,399.49a15,15,0,1,1,15-15A15,15,0,0,1,684,399.49Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,684,370.46Z\\\" transform=\\\"translate(-658.5 -358.99)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M688.59,382.49h-9.18c-1.69,0-1.84,1.38-1.84,3.07v4.86c0,1.7.15,3.07,1.84,3.07h9.18c1.69,0,1.84-1.38,1.84-3.07v-4.86C690.43,383.87,690.28,382.49,688.59,382.49ZM681.13,392l1.56-3.79a2.29,2.29,0,1,1,2.61,0l1.56,3.79Z\\\" transform=\\\"translate(-658.5 -358.99)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M686.7,379.48c0-2.16-1.21-2.44-2.7-2.44h0c-1.49,0-2.7.28-2.7,2.44v1.8h-1.62v-1.8c0-3,1.94-4,4.33-4h0c2.39,0,4.33,1,4.33,4v1.8H686.7Z\\\" transform=\\\"translate(-658.5 -358.99)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"logo\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"21.19\\\" width=\\\"2.04\\\" height=\\\"6.32\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"logout\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"27.33 34.17 12.33 34.17 12.33 11.17 27.33 11.17 27.33 17.63 28.33 17.63 28.33 10.17 11.33 10.17 11.33 35.17 28.33 35.17 28.33 27.71 27.33 27.71 27.33 34.17\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.33 40.17 11.33 35.17 11.33 10.17 22.33 14.17 22.33 40.17\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"38.67 22.66 30.63 14.63 30.63 19.63 24.33 19.63 24.33 25.71 30.63 25.71 30.63 30.71 38.67 22.66\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\n \"magnifier\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\\\"/></svg>\",\n \"manager\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><path fill=\\\"#484F5F\\\" d=\\\"M31.5,23h-0.5c-0.9,1.2-2.4,2.6-4.1,3.2c0.1,0.2,0.2,0.4,0.2,0.6c0,0.4-0.2,0.7-0.6,1l1.5,6.9l-2.5,2.5L23,34.7l1.5-6.9c-0.4-0.2-0.6-0.6-0.6-1c0-0.2,0.1-0.4,0.2-0.6c-1.7-0.6-3.2-2-4.1-3.2h-0.5c-2.2,0-4,2.1-4,3.9l2.7,3c0,1.8,1.8,8.1,4,8.1h6.7c2.2,0,4-6.4,4-8.1l2.7-3C35.6,25.1,33.8,23,31.5,23z\\\"/><path fill=\\\"#484F5F\\\" d=\\\"M31.7,18.1c0,2.7-2.8,5.8-6.2,5.8c-3.4,0-6.2-3.1-6.2-5.8c0-2.7,2.8-5.1,6.2-5.1C28.9,13,31.7,15.4,31.7,18.1z\\\"/></g></svg>\",\n \"mask\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30,11V30H11V11H30m1-1H10V31H31V10Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"19\\\" y=\\\"19\\\" width=\\\"21\\\" height=\\\"21\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"19\\\" y=\\\"19\\\" width=\\\"12\\\" height=\\\"12\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,20V39H20V20H39m1-1H19V40H40V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"master_detail\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"22\\\" y=\\\"32.17\\\" width=\\\"18\\\" height=\\\"4\\\" transform=\\\"translate(62 68.33) rotate(180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"26.17\\\" width=\\\"18\\\" height=\\\"4\\\" transform=\\\"translate(62 56.33) rotate(180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"20.17\\\" width=\\\"18\\\" height=\\\"4\\\" transform=\\\"translate(62 44.33) rotate(180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"14.17\\\" width=\\\"18\\\" height=\\\"4\\\" transform=\\\"translate(62 32.33) rotate(180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"14.17\\\" width=\\\"10\\\" height=\\\"22\\\" transform=\\\"translate(30 50.33) rotate(180)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"material_circle_large\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>material_circle_large</title><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><ellipse cx=\\\"23.2\\\" cy=\\\"30.43\\\" rx=\\\"3.63\\\" ry=\\\"4.15\\\" transform=\\\"translate(-2.56 2.14) rotate(-5)\\\" fill=\\\"#484f60\\\"/><ellipse cx=\\\"16.12\\\" cy=\\\"28.44\\\" rx=\\\"3.11\\\" ry=\\\"3.63\\\" transform=\\\"translate(-2.42 1.51) rotate(-5)\\\" fill=\\\"#484f60\\\"/><ellipse cx=\\\"19.83\\\" cy=\\\"21.35\\\" rx=\\\"3.37\\\" ry=\\\"3.89\\\" transform=\\\"translate(-1.79 1.81) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.84,26.84a2.71,2.71,0,0,1-2.66-2.71A2.71,2.71,0,0,1,34.33,21,2.72,2.72,0,0,1,37,23.71,2.72,2.72,0,0,1,34.84,26.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.44,20.76a2.46,2.46,0,0,1-2.37-2.48A2.45,2.45,0,0,1,31,15.44a2.45,2.45,0,0,1,2.38,2.47A2.47,2.47,0,0,1,31.44,20.76Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.63,30a5.51,5.51,0,0,1-.33,2.36l8.64-6.12-2.1-5.15L24,25.58A5,5,0,0,1,27.63,30Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24,21a5,5,0,0,1-.67,3l8.33-3.3L31,15.43l-9.51,1.68A4.84,4.84,0,0,1,24,21Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"medal_bronze\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><path fill=\\\"#A06F51\\\" d=\\\"M38.2,27.1c-0.1-0.2-0.1-0.6,0.1-0.8l1.8-2.1c0.2-0.2,0.1-0.5-0.1-0.7l-2.2-1.7c-0.2-0.2-0.3-0.5-0.3-0.8l0.8-2.7c0.1-0.3-0.1-0.5-0.3-0.6L35.3,17c-0.3-0.1-0.5-0.3-0.5-0.6l-0.4-2.8c0-0.3-0.3-0.5-0.6-0.4l-2.8,0.5c-0.3,0.1-0.6-0.1-0.7-0.3L28.9,11c-0.1-0.2-0.4-0.3-0.7-0.1l-2.3,1.6c-0.2,0.2-0.6,0.2-0.8,0l-2.3-1.6c-0.2-0.2-0.5-0.1-0.7,0.1l-1.5,2.4c-0.1,0.2-0.5,0.4-0.7,0.3l-2.8-0.5c-0.3-0.1-0.5,0.1-0.6,0.4l-0.4,2.8c0,0.3-0.3,0.5-0.5,0.6l-2.7,0.6c-0.3,0.1-0.4,0.3-0.3,0.6l0.8,2.7c0.1,0.3,0,0.6-0.3,0.8l-2.2,1.7c-0.2,0.2-0.3,0.5-0.1,0.7l1.8,2.1c0.2,0.2,0.2,0.6,0.1,0.8l-1.4,2.5c-0.1,0.2,0,0.5,0.2,0.7l2.6,1.2c0.2,0.1,0.4,0.4,0.4,0.7l-0.2,2.8c0,0.3,0.2,0.5,0.5,0.5l2.8,0.1c0.3,0,0.6,0.2,0.7,0.5l0.9,2.7c0.1,0.3,0.4,0.4,0.6,0.3l2.6-1.1c0.3-0.1,0.6,0,0.8,0.2l1.9,2.1c0.2,0.2,0.5,0.2,0.7,0l1.9-2.1c0.2-0.2,0.5-0.3,0.8-0.2l2.6,1.1c0.3,0.1,0.5,0,0.6-0.3l0.9-2.7c0.1-0.3,0.4-0.5,0.7-0.5l2.8-0.1c0.3,0,0.5-0.2,0.5-0.5l-0.2-2.8c0-0.3,0.2-0.6,0.4-0.7l2.6-1.2c0.2-0.1,0.3-0.4,0.2-0.7L38.2,27.1z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g><path fill=\\\"#CF8E67\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><path fill=\\\"#A06F51\\\" d=\\\"M26,29.1c-0.3-0.2-0.8-0.2-1,0l-2.9,2c-0.3,0.2-0.4,0.1-0.3-0.2l1-3.3c0.1-0.3,0-0.8-0.3-1l-2.8-2.1c-0.3-0.2-0.2-0.4,0.1-0.4l3.5-0.1c0.3,0,0.7-0.3,0.8-0.6l1.1-3.3c0.1-0.3,0.3-0.3,0.4,0l1.1,3.3c0.1,0.3,0.5,0.6,0.8,0.6l3.5,0.1c0.3,0,0.4,0.2,0.1,0.4l-2.8,2.1c-0.3,0.2-0.4,0.7-0.3,1l1,3.3c0.1,0.3-0.1,0.4-0.3,0.2L26,29.1z\\\"/></g></svg>\",\n \"medal_gold\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><path fill=\\\"#CB9618\\\" d=\\\"M38.2,27.1c-0.1-0.2-0.1-0.6,0.1-0.8l1.8-2.1c0.2-0.2,0.1-0.5-0.1-0.7l-2.2-1.7c-0.2-0.2-0.3-0.5-0.3-0.8l0.8-2.7c0.1-0.3-0.1-0.5-0.3-0.6L35.3,17c-0.3-0.1-0.5-0.3-0.5-0.6l-0.4-2.8c0-0.3-0.3-0.5-0.6-0.4l-2.8,0.5c-0.3,0.1-0.6-0.1-0.7-0.3L28.9,11c-0.1-0.2-0.4-0.3-0.7-0.1l-2.3,1.6c-0.2,0.2-0.6,0.2-0.8,0l-2.3-1.6c-0.2-0.2-0.5-0.1-0.7,0.1l-1.5,2.4c-0.1,0.2-0.5,0.4-0.7,0.3l-2.8-0.5c-0.3-0.1-0.5,0.1-0.6,0.4l-0.4,2.8c0,0.3-0.3,0.5-0.5,0.6l-2.7,0.6c-0.3,0.1-0.4,0.3-0.3,0.6l0.8,2.7c0.1,0.3,0,0.6-0.3,0.8l-2.2,1.7c-0.2,0.2-0.3,0.5-0.1,0.7l1.8,2.1c0.2,0.2,0.2,0.6,0.1,0.8l-1.4,2.5c-0.1,0.2,0,0.5,0.2,0.7l2.6,1.2c0.2,0.1,0.4,0.4,0.4,0.7l-0.2,2.8c0,0.3,0.2,0.5,0.5,0.5l2.8,0.1c0.3,0,0.6,0.2,0.7,0.5l0.9,2.7c0.1,0.3,0.4,0.4,0.6,0.3l2.6-1.1c0.3-0.1,0.6,0,0.8,0.2l1.9,2.1c0.2,0.2,0.5,0.2,0.7,0l1.9-2.1c0.2-0.2,0.5-0.3,0.8-0.2l2.6,1.1c0.3,0.1,0.5,0,0.6-0.3l0.9-2.7c0.1-0.3,0.4-0.5,0.7-0.5l2.8-0.1c0.3,0,0.5-0.2,0.5-0.5l-0.2-2.8c0-0.3,0.2-0.6,0.4-0.7l2.6-1.2c0.2-0.1,0.3-0.4,0.2-0.7L38.2,27.1z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g><path fill=\\\"#F0B016\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><path fill=\\\"#CB9618\\\" d=\\\"M26,29.1c-0.3-0.2-0.8-0.2-1,0l-2.9,2c-0.3,0.2-0.4,0.1-0.3-0.2l1-3.3c0.1-0.3,0-0.8-0.3-1l-2.8-2.1c-0.3-0.2-0.2-0.4,0.1-0.4l3.5-0.1c0.3,0,0.7-0.3,0.8-0.6l1.1-3.3c0.1-0.3,0.3-0.3,0.4,0l1.1,3.3c0.1,0.3,0.5,0.6,0.8,0.6l3.5,0.1c0.3,0,0.4,0.2,0.1,0.4l-2.8,2.1c-0.3,0.2-0.4,0.7-0.3,1l1,3.3c0.1,0.3-0.1,0.4-0.3,0.2L26,29.1z\\\"/></g></svg>\",\n \"medal_silver\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><path fill=\\\"#C0C1C2\\\" d=\\\"M38.2,27.1c-0.1-0.2-0.1-0.6,0.1-0.8l1.8-2.1c0.2-0.2,0.1-0.5-0.1-0.7l-2.2-1.7c-0.2-0.2-0.3-0.5-0.3-0.8l0.8-2.7c0.1-0.3-0.1-0.5-0.3-0.6L35.3,17c-0.3-0.1-0.5-0.3-0.5-0.6l-0.4-2.8c0-0.3-0.3-0.5-0.6-0.4l-2.8,0.5c-0.3,0.1-0.6-0.1-0.7-0.3L28.9,11c-0.1-0.2-0.4-0.3-0.7-0.1l-2.3,1.6c-0.2,0.2-0.6,0.2-0.8,0l-2.3-1.6c-0.2-0.2-0.5-0.1-0.7,0.1l-1.5,2.4c-0.1,0.2-0.5,0.4-0.7,0.3l-2.8-0.5c-0.3-0.1-0.5,0.1-0.6,0.4l-0.4,2.8c0,0.3-0.3,0.5-0.5,0.6l-2.7,0.6c-0.3,0.1-0.4,0.3-0.3,0.6l0.8,2.7c0.1,0.3,0,0.6-0.3,0.8l-2.2,1.7c-0.2,0.2-0.3,0.5-0.1,0.7l1.8,2.1c0.2,0.2,0.2,0.6,0.1,0.8l-1.4,2.5c-0.1,0.2,0,0.5,0.2,0.7l2.6,1.2c0.2,0.1,0.4,0.4,0.4,0.7l-0.2,2.8c0,0.3,0.2,0.5,0.5,0.5l2.8,0.1c0.3,0,0.6,0.2,0.7,0.5l0.9,2.7c0.1,0.3,0.4,0.4,0.6,0.3l2.6-1.1c0.3-0.1,0.6,0,0.8,0.2l1.9,2.1c0.2,0.2,0.5,0.2,0.7,0l1.9-2.1c0.2-0.2,0.5-0.3,0.8-0.2l2.6,1.1c0.3,0.1,0.5,0,0.6-0.3l0.9-2.7c0.1-0.3,0.4-0.5,0.7-0.5l2.8-0.1c0.3,0,0.5-0.2,0.5-0.5l-0.2-2.8c0-0.3,0.2-0.6,0.4-0.7l2.6-1.2c0.2-0.1,0.3-0.4,0.2-0.7L38.2,27.1z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g><path fill=\\\"#E2E2E2\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><path fill=\\\"#C0C1C2\\\" d=\\\"M26,29.1c-0.3-0.2-0.8-0.2-1,0l-2.9,2c-0.3,0.2-0.4,0.1-0.3-0.2l1-3.3c0.1-0.3,0-0.8-0.3-1l-2.8-2.1c-0.3-0.2-0.2-0.4,0.1-0.4l3.5-0.1c0.3,0,0.7-0.3,0.8-0.6l1.1-3.3c0.1-0.3,0.3-0.3,0.4,0l1.1,3.3c0.1,0.3,0.5,0.6,0.8,0.6l3.5,0.1c0.3,0,0.4,0.2,0.1,0.4l-2.8,2.1c-0.3,0.2-0.4,0.7-0.3,1l1,3.3c0.1,0.3-0.1,0.4-0.3,0.2L26,29.1z\\\"/></g></svg>\",\n \"medical_officer\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><path fill=\\\"#484F5F\\\" d=\\\"M31.4,25.4h-0.5c-1.1,1.5-3.3,3.3-5.4,3.3c-2.1,0-4.3-1.8-5.4-3.3h-0.5c-2.2,0-3.9,2-3.9,3.8l2.6,2.9c0,1.7,1.8,7.9,3.9,7.9h6.5c2.2,0,3.9-6.2,3.9-7.9l2.6-2.9C35.3,27.5,33.6,25.4,31.4,25.4z\\\"/><path fill=\\\"#484F5F\\\" d=\\\"M19.6,19.9c-0.1,0.3-0.1,0.5-0.1,0.8c0,2.6,2.7,5.6,6,5.6c3.3,0,6-3,6-5.6c0-0.3,0-0.5-0.1-0.8c-0.9,0.2-3.4,0.5-6,0.5C22.9,20.4,20.5,20.1,19.6,19.9z\\\"/><path fill=\\\"#484F5F\\\" d=\\\"M31.3,16.2L25.5,11l-5.8,5.2l-0.2,2c0,0,3,0.6,6,0.6c3,0,6-0.6,6-0.6L31.3,16.2z M28,16c0,0.1-0.1,0.2-0.2,0.2h-1.5v1.5c0,0.1-0.1,0.2-0.2,0.2h-1c-0.1,0-0.2-0.1-0.2-0.2v-1.5h-1.5c-0.1,0-0.2-0.1-0.2-0.2v-1c0-0.1,0.1-0.2,0.2-0.2h1.5v-1.5c0-0.1,0.1-0.2,0.2-0.2h1c0.1,0,0.2,0.1,0.2,0.2v1.5h1.5c0.1,0,0.2,0.1,0.2,0.2V16z\\\"/></g></svg>\",\n \"microphone\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,30.83a5,5,0,0,0,5-4.95V16A5,5,0,0,0,20,16v9.92A5,5,0,0,0,25,30.83Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.45,16a3.55,3.55,0,0,1,7.1,0v9.92a3.55,3.55,0,0,1-7.1,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.38,20.87v6c0,2.95-2.86,5.34-6.38,5.34s-6.38-2.39-6.38-5.34v-6H17.21v6c0,3.52,3.12,6.41,7.08,6.72v4.29H20v1.41H30V37.92H25.7V33.63c4-.31,7.09-3.2,7.09-6.72v-6Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"minus_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.67,26.27A.67.67,0,0,1,18,25.6v-.87a.66.66,0,0,1,.67-.66H31.33a.66.66,0,0,1,.67.66v.87a.67.67,0,0,1-.67.67Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.95\\\"/></svg>\",\n \"minus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.58,26.71a.57.57,0,0,1-.58-.56v-2.3a.57.57,0,0,1,.58-.56H35.43a.57.57,0,0,1,.57.56v2.3a.57.57,0,0,1-.57.56Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"mobile\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31,10H19a3,3,0,0,0-3,3V37a3,3,0,0,0,3,3H31a3,3,0,0,0,3-3V13A3,3,0,0,0,31,10Zm1.5,27A1.5,1.5,0,0,1,31,38.5H19A1.5,1.5,0,0,1,17.5,37V13A1.5,1.5,0,0,1,19,11.5H31A1.5,1.5,0,0,1,32.5,13Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21,10h8a0,0,0,0,1,0,0v2a1,1,0,0,1-1,1H22a1,1,0,0,1-1-1V10A0,0,0,0,1,21,10Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31 32.41 31 36.41 19 36.41 19 17 31 32.41\\\" fill=\\\"#484f60\\\" opacity=\\\"0.15\\\"/></svg>\",\n \"multi_select_check\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"12.1 28.6 13.3 30.4 16.1 25.5 18.1 25.5 13.3 33 11.1 29.8 12.1 28.6\\\" fill=\\\"#fff\\\"/><polygon points=\\\"12.1 21.1 13.3 22.9 16.1 18 18.1 18 13.3 25.5 11.1 22.3 12.1 21.1\\\" fill=\\\"#fff\\\"/><polygon points=\\\"12.1 13.6 13.3 15.4 16.1 10.5 18.1 10.5 13.3 18 11.1 14.8 12.1 13.6\\\" fill=\\\"#fff\\\"/><rect x=\\\"19.3\\\" y=\\\"12.4\\\" width=\\\"20.6\\\" height=\\\"3.75\\\" fill=\\\"#fff\\\"/><rect x=\\\"19.3\\\" y=\\\"19.9\\\" width=\\\"20.6\\\" height=\\\"3.75\\\" fill=\\\"#fff\\\"/><rect x=\\\"19.3\\\" y=\\\"27.4\\\" width=\\\"20.6\\\" height=\\\"3.75\\\" fill=\\\"#fff\\\"/><rect x=\\\"19.3\\\" y=\\\"34.9\\\" width=\\\"20.6\\\" height=\\\"3.75\\\" fill=\\\"#fff\\\"/><polygon points=\\\"12.1 36.1 13.3 37.9 16.1 33 18.1 33 13.3 40.5 11.1 37.3 12.1 36.1\\\" fill=\\\"#fff\\\"/></svg>\",\n \"new_task\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.75\\\"><path d=\\\"M12.18,38.68a.44.44,0,0,1-.44-.44v-23a.44.44,0,0,1,.44-.44h.88V13.53h-.88a1.76,1.76,0,0,0-1.77,1.76v23A1.76,1.76,0,0,0,12.18,40h13a10.37,10.37,0,0,1-1.76-1.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.59,20.55V15.29a1.76,1.76,0,0,0-1.77-1.76h-.88v1.32h.88a.44.44,0,0,1,.44.44v5.23l.33,0C30.93,20.5,31.26,20.52,31.59,20.55Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.65,12.65a2.65,2.65,0,0,1-5.3,0H15.26a.88.88,0,0,0-.88.88v2.65a.89.89,0,0,0,.88.88H26.74a.89.89,0,0,0,.88-.88V13.53a.88.88,0,0,0-.88-.88Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21,10a2.65,2.65,0,1,0,2.65,2.65A2.65,2.65,0,0,0,21,10Zm0,4a1.33,1.33,0,1,1,1.32-1.32A1.32,1.32,0,0,1,21,14Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.09,21.51v1h6.34a11.81,11.81,0,0,1,1.68-1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.09,27.51v1H20.4c.08-.34.18-.67.29-1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.09,33.51v1h2.62a7.75,7.75,0,0,1-.3-1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M16.09,33.51v1h-1v-1h1m1-1h-3v3h3v-3Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.44 30.02 13.91 27.86 14.52 27.43 15.33 28.57 16.61 26.02 17.27 26.35 15.44 30.02\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.44 24.02 13.91 21.86 14.52 21.43 15.33 22.57 16.61 20.02 17.27 20.35 15.44 24.02\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M30.08,36.4a.26.26,0,0,1-.26-.26V31.77H25.45a.26.26,0,0,1-.26-.25v-1a.26.26,0,0,1,.26-.25h4.37V25.86a.26.26,0,0,1,.26-.26h1a.26.26,0,0,1,.26.26v4.37h4.37a.26.26,0,0,1,.26.25v1a.26.26,0,0,1-.26.25H31.36v4.37a.26.26,0,0,1-.26.26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.59,23a8,8,0,1,1-8,8,8,8,0,0,1,8-8m0-1a9,9,0,1,0,9,9,9,9,0,0,0-9-9Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"note\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M40,17c-10-2.75-20,2.75-30,0V14.25c10,2.75,20-2.75,30,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,23.25c-10-2.75-20,2.75-30,0V20.5c10,2.75,20-2.75,30,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,29.5c-10-2.75-20,2.75-30,0V26.75c10,2.75,20-2.75,30,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,35.75c-10-2.75-20,2.75-30,0V33c10,2.75,20-2.75,30,0Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"note_bordered\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>Tekengebied 13 kopie 828</title><path d=\\\"M31.51,35.5H12a.5.5,0,0,1-.5-.5V15a.5.5,0,0,1,.5-.5H38a.5.5,0,0,1,.5.5V28.73H40V15a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H31.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,28.73H33.56c-1.78,0-2.05.27-2.05,2.05V37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"18.5\\\" width=\\\"6\\\" height=\\\"5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"30.5\\\" width=\\\"15\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.5\\\" y=\\\"26.5\\\" width=\\\"15\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.5\\\" y=\\\"22.5\\\" width=\\\"13\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.5\\\" y=\\\"18.5\\\" width=\\\"13\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"notification\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,11.1c-8.28,0-15,4.9-15,11a8.87,8.87,0,0,0,2.27,5.77h-.16c.15.1.28.21.43.32a12.22,12.22,0,0,0,1.34,1.24c3.07,3.75.06,8.72-3.25,9.85,5.79-1.34,9.32-3.9,10.91-6.53A20.52,20.52,0,0,0,25,33c8.28,0,15-4.9,15-10.95S33.28,11.1,25,11.1Zm1.38,17.07H23.55V21.11h2.83ZM26,18.58a1.42,1.42,0,0,1-2,0,1.42,1.42,0,0,1,0-2,1.32,1.32,0,0,1,1-.41,1.35,1.35,0,0,1,1,.41,1.42,1.42,0,0,1,0,2Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"not_equal\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298.1,413a2,2,0,1,1-1.4.6A1.9,1.9,0,0,1,298.1,413Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"23.4\\\" y=\\\"24\\\" width=\\\"4\\\" height=\\\"10\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"option\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.54,35.41a1.9,1.9,0,0,0-2,0L15,39.26c-.55.38-.84.17-.65-.47l2-6.45a1.9,1.9,0,0,0-.62-1.9l-5.36-4.06c-.54-.41-.42-.75.24-.76l6.73-.14a1.88,1.88,0,0,0,1.62-1.17L21.14,18c.22-.63.58-.63.8,0l2.21,6.36a1.87,1.87,0,0,0,1.61,1.17l6.73.14c.67,0,.78.35.25.76l-5.36,4.06a1.88,1.88,0,0,0-.62,1.9l1.95,6.45c.19.64-.1.85-.65.47Z\\\" fill=\\\"#484f60\\\"/><g opacity=\\\"0.75\\\"><path d=\\\"M17.52,23.8l.6-1.73-4.07.09c-.67,0-.78.35-.25.76L15.26,24l2,0A.51.51,0,0,0,17.52,23.8Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.2,31.92l.6,2,2.72,1.89c.55.39.84.18.65-.47l-1.63-5.39-2.26,1.71A.51.51,0,0,0,28.2,31.92Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36,22.16,29.22,22a1.88,1.88,0,0,1-1.61-1.17L25.4,14.49c-.22-.63-.58-.63-.8,0l-1.14,3.28,2.1,6.05a.49.49,0,0,0,.25.16l6.71.14a2.21,2.21,0,0,1,1.44.49l2.24-1.69C36.73,22.51,36.62,22.17,36,22.16Z\\\" fill=\\\"#484f60\\\"/></g><g opacity=\\\"0.5\\\"><path d=\\\"M35.63,31.86,34.17,27a2.43,2.43,0,0,1-.53.54L31.81,29l.45,1.47L35,32.33C35.53,32.72,35.82,32.5,35.63,31.86Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17.51,18.7c-.67,0-.78.35-.25.76l1.4,1.06.64-1.86Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.42,18.7l-6.73-.14a1.87,1.87,0,0,1-1.62-1.18L28.86,11c-.22-.63-.58-.63-.8,0L26.92,14.3,29,20.35a.45.45,0,0,0,.25.17l6.71.14a2.16,2.16,0,0,1,1.44.49l2.24-1.69C40.2,19.05,40.08,18.71,39.42,18.7Z\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"optionset\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25.47,21.86a.89.89,0,0,0-.94,0l-3,2.1c-.26.18-.4.07-.31-.23l1.06-3.51a.89.89,0,0,0-.29-.9l-2.92-2.21c-.25-.19-.2-.35.12-.36l3.66-.07a.91.91,0,0,0,.77-.56l1.2-3.46c.1-.3.27-.3.38,0l1.2,3.46a.91.91,0,0,0,.77.56l3.66.07c.32,0,.37.17.12.36L28,19.32a.89.89,0,0,0-.29.9l1.06,3.51c.09.3-.05.41-.31.23Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.35,31.92a.9.9,0,0,0-1,0l-3,2.1c-.26.18-.4.08-.3-.22l1.06-3.51a.88.88,0,0,0-.3-.9l-2.92-2.22c-.25-.19-.2-.35.12-.36l3.67-.07a.9.9,0,0,0,.76-.56l1.2-3.46c.11-.3.28-.3.38,0l1.21,3.46a.88.88,0,0,0,.76.56l3.67.07c.31,0,.37.17.11.36l-2.92,2.22a.89.89,0,0,0-.29.9l1.06,3.51c.09.3,0,.4-.3.22Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,31.92a.9.9,0,0,0-1,0l-3,2.1c-.27.18-.4.08-.31-.22l1.06-3.51a.89.89,0,0,0-.29-.9l-2.92-2.22c-.26-.19-.2-.35.11-.36L16,26.74a.88.88,0,0,0,.76-.56l1.21-3.46c.1-.3.27-.3.38,0l1.2,3.46a.9.9,0,0,0,.76.56l3.67.07c.32,0,.37.17.12.36l-2.93,2.22a.89.89,0,0,0-.29.9l1.07,3.51c.09.3-.05.4-.31.22Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,41A16,16,0,1,1,41,25,16,16,0,0,1,25,41Zm0-30.27A14.27,14.27,0,1,0,39.27,25,14.28,14.28,0,0,0,25,10.73Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"order\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"17.5\\\" y=\\\"17.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"21.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"29.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.5,18.49V38a.5.5,0,0,1-.5.5H15a.5.5,0,0,1-.5-.5V12a.5.5,0,0,1,.5-.5H28.73V10H15a2,2,0,0,0-2,2V38a2,2,0,0,0,2,2H35a2,2,0,0,0,2-2V18.49Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,10v6.44c0,1.78.27,2,2.05,2H37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"21.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"25.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"29.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,35.78h-.1a.48.48,0,0,1-.36-.3l-.79-1.93-1.75.9a.49.49,0,0,1-.67-.21.48.48,0,0,1,.21-.67L27.5,32.4a.56.56,0,0,1,.4,0,.49.49,0,0,1,.29.29l.72,1.73.73-.74a.51.51,0,0,1,.5-.13l1.4.4.56-.72a.5.5,0,1,1,.8.6l-.77,1a.49.49,0,0,1-.54.18l-1.44-.42-1.06,1.07A.51.51,0,0,1,28.73,35.78Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"orderpicking\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.43,40.17c-.12-.16-2.92-4-1.53-8.21,1.33-4.08,6.25-9.69,6.46-9.84l.72-.55,2.28,2.83-1.45,1.17-1.13-1.39c-1.34,1.14-4.23,5.68-5.1,8.36C15.59,35.88,17.9,39,17.93,39l-1.5,1.13Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.86,41l-1.74-.66A17.68,17.68,0,0,0,27,32.56,63.51,63.51,0,0,0,25.5,25.1l-1.29-.38,1.27-4.35,1.05,2.26a81.55,81.55,0,0,1,2.28,9.64A19,19,0,0,1,27.86,41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34,39.94l-1.67-.83s1.9-3.88,1-6.39a36.83,36.83,0,0,0-4.84-8.51l-1.37,1.42-1.34-1.29,2.71-2.82.67.69c.2.2,4.84,6.82,5.93,9.89,1.16,3.25-1,7.65-1.1,7.84Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.91\\\" y=\\\"24.41\\\" width=\\\"4.48\\\" height=\\\"1.17\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.52 9 23.52 20.93 23.93 21.44 25.28 16.78 26.7 19.85 26.7 9 23.52 9\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"outgoing_storage\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"12.36\\\" width=\\\"2.93\\\" height=\\\"25.61\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"14.39\\\" y=\\\"30.65\\\" width=\\\"11.22\\\" height=\\\"1.46\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"14.39\\\" y=\\\"21.87\\\" width=\\\"9.11\\\" height=\\\"1.46\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"27.07\\\" y=\\\"29.46\\\" width=\\\"2.93\\\" height=\\\"8.51\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"27.07\\\" y=\\\"12.36\\\" width=\\\"2.93\\\" height=\\\"8.51\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"14.39\\\" y=\\\"13.09\\\" width=\\\"11.22\\\" height=\\\"1.46\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"40 25.16 32.62 17.79 32.62 22.38 25 22.38 25 27.96 32.62 27.96 32.62 32.55 40 25.16\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"over_booking\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"31.66 31 27.76 27.1 27.76 29.73 25.86 29.74 23.34 29.73 23.34 32.27 24.59 32.27 27.76 32.26 27.76 34.9 31.66 31\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.27\\\" y=\\\"30.23\\\" width=\\\"2.39\\\" height=\\\"4.77\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><rect x=\\\"15.34\\\" y=\\\"30.23\\\" width=\\\"2.39\\\" height=\\\"4.77\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><polygon points=\\\"21.34 27.73 22.5 27.73 22.5 23.41 15 20 7.5 23.41 7.5 35 10.91 35 10.91 28.86 19.09 28.86 19.09 35 22.5 35 22.5 34.27 21.34 34.27 21.34 27.73\\\" fill=\\\"#484f60\\\" opacity=\\\"0.75\\\"/><rect x=\\\"38.86\\\" y=\\\"28.64\\\" width=\\\"3.18\\\" height=\\\"6.36\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"32.5 19.54 32.5 29.01 34.49 31 32.5 32.99 32.5 35 37.05 35 37.05 26.82 42.5 26.82 42.5 15 32.5 19.54\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"pause_circle\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><path fill=\\\"#484F5F\\\" d=\\\"M23.5,18.5v14h-3.1v-14H23.5z M30.6,18.5v14h-3.1v-14H30.6z\\\"/></g><path fill=\\\"#484F5F\\\" d=\\\"M25.5,39.5c-7.7,0-14-6.3-14-14s6.3-14,14-14s14,6.3,14,14S33.2,39.5,25.5,39.5 M25.5,40.5c8.3,0,15-6.7,15-15c0-8.3-6.7-15-15-15c-8.3,0-15,6.7-15,15C10.5,33.8,17.2,40.5,25.5,40.5L25.5,40.5z\\\"/></g></svg>\",\n \"pencil_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><rect x=\\\"290.8\\\" y=\\\"419.4\\\" width=\\\"10.4\\\" height=\\\"0.49\\\" transform=\\\"translate(-482.6 -62.8) rotate(-45)\\\" fill=\\\"#fff\\\"/><rect x=\\\"292.6\\\" y=\\\"420\\\" width=\\\"10.4\\\" height=\\\"3.1\\\" transform=\\\"translate(-483.4 -60.6) rotate(-45)\\\" fill=\\\"#fff\\\"/><path d=\\\"M305.8,414.7l-2.1-2.1a0.8,0.8,0,0,0-1.1,0l-0.8.8,3.1,3.1,0.8-.8A0.8,0.8,0,0,0,305.8,414.7Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#fff\\\"/><rect x=\\\"301.6\\\" y=\\\"414\\\" width=\\\"1.3\\\" height=\\\"4.44\\\" transform=\\\"translate(-478.3 -59.3) rotate(-45)\\\" fill=\\\"#fff\\\"/><polygon points=\\\"18.8 29.3 17.5 33.1 17.9 33.5 21.7 32.2 18.8 29.3\\\" fill=\\\"#fff\\\"/><path d=\\\"M298,436a15.5,15.5,0,1,1,15.5-15.5A15.5,15.5,0,0,1,298,436Zm0-30a14.5,14.5,0,1,0,14.5,14.5A14.5,14.5,0,0,0,298,406Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"pen_to_square_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M490.3 40.4C512.2 62.27 512.2 97.73 490.3 119.6L460.3 149.7L362.3 51.72L392.4 21.66C414.3-.2135 449.7-.2135 471.6 21.66L490.3 40.4zM172.4 241.7L339.7 74.34L437.7 172.3L270.3 339.6C264.2 345.8 256.7 350.4 248.4 353.2L159.6 382.8C150.1 385.6 141.5 383.4 135 376.1C128.6 370.5 126.4 361 129.2 352.4L158.8 263.6C161.6 255.3 166.2 247.8 172.4 241.7V241.7zM192 63.1C209.7 63.1 224 78.33 224 95.1C224 113.7 209.7 127.1 192 127.1H96C78.33 127.1 64 142.3 64 159.1V416C64 433.7 78.33 448 96 448H352C369.7 448 384 433.7 384 416V319.1C384 302.3 398.3 287.1 416 287.1C433.7 287.1 448 302.3 448 319.1V416C448 469 405 512 352 512H96C42.98 512 0 469 0 416V159.1C0 106.1 42.98 63.1 96 63.1H192z\\\"/></svg>\",\n \"phone\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M28.23,38.17a4,4,0,0,1-2.06-.62A16.35,16.35,0,0,1,22,33.89,31.57,31.57,0,0,1,16,23a15.48,15.48,0,0,1-.75-4.38,3.7,3.7,0,0,1,1.69-3.31l1-.65c.16-.1.26-.07.36.1l3.35,5.8c.07.13.13.24,0,.36a2.78,2.78,0,0,0-1,2.69A10.07,10.07,0,0,0,23.78,30a4,4,0,0,0,2.33,1.19,2.24,2.24,0,0,0,1.2-.19c.19-.09.28,0,.38.13Q29.36,34,31,36.89c.07.12.13.23,0,.33A5.74,5.74,0,0,1,28.23,38.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28,30.19a.81.81,0,0,1,.39-.68c.62-.36,1.23-.73,1.86-1.07a.78.78,0,0,1,1.09.38c.58,1,1.14,2,1.71,2.95l1.54,2.67c.4.71.31,1.06-.39,1.47-.5.29-1,.59-1.5.86a.79.79,0,0,1-1.2-.31c-1.13-1.94-2.25-3.89-3.38-5.85A1,1,0,0,1,28,30.19Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.18,12.17a.83.83,0,0,1,.82.53q1.16,2,2.29,4c.33.56.66,1.13,1,1.7a.85.85,0,0,1-.34,1.29l-1.58.91a.82.82,0,0,1-1.26-.34c-1.11-1.91-2.21-3.81-3.3-5.72a.81.81,0,0,1,.33-1.26c.53-.32,1.07-.62,1.61-.93A.77.77,0,0,1,21.18,12.17Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"phone_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M300.5,431.5a3.1,3.1,0,0,1-1.6-.5,12.6,12.6,0,0,1-3.2-2.8,24.3,24.3,0,0,1-4.7-8.4,11.8,11.8,0,0,1-.6-3.4,2.9,2.9,0,0,1,1.3-2.5l0.8-.5a0.2,0.2,0,0,1,.3.1l2.6,4.5a0.2,0.2,0,0,1,0,.3,2.1,2.1,0,0,0-.7,2.1,7.7,7.7,0,0,0,2.4,4.9,3,3,0,0,0,1.8.9h0.9a0.2,0.2,0,0,1,.3.1l2.6,4.5c0.1,0.1.1,0.2,0,.3A4.4,4.4,0,0,1,300.5,431.5Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M300.3,425.3a0.6,0.6,0,0,1,.3-0.5l1.4-.8a0.6,0.6,0,0,1,.8.3l1.3,2.3,1.2,2.1a0.7,0.7,0,0,1-.3,1.1l-1.2.7a0.6,0.6,0,0,1-.9-0.2l-2.6-4.5A0.7,0.7,0,0,1,300.3,425.3Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M295.1,411.5a0.7,0.7,0,0,1,.6.4l1.8,3,0.8,1.3a0.6,0.6,0,0,1-.3,1l-1.2.7a0.6,0.6,0,0,1-1-.3l-2.5-4.4a0.6,0.6,0,0,1,.3-1l1.2-.7h0.3Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298,437a15.5,15.5,0,1,1,15.5-15.5A15.5,15.5,0,0,1,298,437Zm0-30a14.5,14.5,0,1,0,14.5,14.5A14.5,14.5,0,0,0,298,407Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"piechart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.25\\\"><path d=\\\"M25,22.17,19.16,8.35a14.91,14.91,0,0,0-4.77,3.21L25,22.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,7.17a15,15,0,0,0-5.84,1.18L25,22.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,22.17,14.39,11.56a15.13,15.13,0,0,0-3.21,4.77L25,22.17Z\\\" fill=\\\"#4c5050\\\"/></g><path d=\\\"M38.82,16.33a15.13,15.13,0,0,0-3.21-4.77L25,22.17h0Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,7.17v15L30.84,8.35A15,15,0,0,0,25,7.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M30.84,8.35,25,22.17,35.61,11.56A14.91,14.91,0,0,0,30.84,8.35Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M38.82,16.33,25,22.17H40A14.93,14.93,0,0,0,38.82,16.33Z\\\" fill=\\\"#4c5050\\\"/><g opacity=\\\"0.6\\\"><path d=\\\"M11.18,16.33A14.93,14.93,0,0,0,10,22.17H25Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M14.39,32.77,25,22.17,11.18,28A15.08,15.08,0,0,0,14.39,32.77Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,22.17H10A15,15,0,0,0,11.18,28L25,22.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M19.16,36,25,22.17,14.39,32.77A15.1,15.1,0,0,0,19.16,36Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,22.17h0L19.16,36A15,15,0,0,0,25,37.17v-15Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,37.17A15,15,0,0,0,30.84,36L25,22.17Z\\\" fill=\\\"#4c5050\\\"/></g><path d=\\\"M30.84,36a15.1,15.1,0,0,0,4.77-3.22L25,22.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,22.17l10.61,10.6A15.08,15.08,0,0,0,38.82,28L25,22.17Z\\\" fill=\\\"#4c5050\\\"/><path d=\\\"M25,22.17h0L38.82,28A15,15,0,0,0,40,22.17Z\\\" fill=\\\"#4c5050\\\"/><polygon points=\\\"25 22.17 25 22.17 25 22.17 25 22.17\\\" fill=\\\"#4c5050\\\"/><polygon points=\\\"25 22.17 25 22.17 25 22.17 25 22.17\\\" fill=\\\"#4c5050\\\"/></svg>\",\n \"pin\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M297.3,432.6a13.7,13.7,0,0,1-6-1.5c-4.9-2.4-7.7-7-6.1-10.1s3-2.8,5.7-2.8h0.2l-2,3.4V422a4.8,4.8,0,0,0,1.5,3.5,10.2,10.2,0,0,0,6.7,2.9,3.9,3.9,0,0,0,3.5-1.6v-0.2l1-2.9c1.5,2.1,2,4.3,1.1,6s-3,2.8-5.7,2.8h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M297.3,426.3a7.9,7.9,0,0,1-5.1-2.3,2.9,2.9,0,0,1-.9-1.8l4.5-7.8a10.2,10.2,0,0,0,6.1,2.8l-3,8.4a2,2,0,0,1-1.6.6h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M304.3,415.6a11.2,11.2,0,0,1-4.9-1.2c-4-2-6.2-5.6-5-8.2s2.4-2.2,4.6-2.2a11.3,11.3,0,0,1,4.9,1.2,10.7,10.7,0,0,1,4.5,4,4.4,4.4,0,0,1,.5,4.2c-0.7,1.4-2.4,2.2-4.6,2.2h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M290,432.2l-1.7,3.7-0.2,3,2-2.3,1.6-3.7-1.1-.5Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"pin_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M683.16,390.18a7.07,7.07,0,0,1-3.09-.77c-2.53-1.25-3.94-3.58-3.14-5.19a3.07,3.07,0,0,1,2.94-1.43h.1l-1,1.74v.2a2.48,2.48,0,0,0,.78,1.82,5.23,5.23,0,0,0,3.44,1.51,2,2,0,0,0,1.8-.84l.06-.09.52-1.48a3,3,0,0,1,.57,3.09,3.07,3.07,0,0,1-2.94,1.43Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683.15,386.94a4.06,4.06,0,0,1-2.62-1.16,1.5,1.5,0,0,1-.47-.92l2.32-4a5.24,5.24,0,0,0,3.13,1.45L684,386.63a1,1,0,0,1-.84.31Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M686.75,381.45a5.78,5.78,0,0,1-2.52-.63c-2.06-1-3.21-2.9-2.57-4.21a2.48,2.48,0,0,1,2.37-1.15,5.78,5.78,0,0,1,2.53.63,5.5,5.5,0,0,1,2.32,2.05,2.26,2.26,0,0,1,.24,2.15,2.48,2.48,0,0,1-2.37,1.15Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M679.42,390l-.89,1.92-.13,1.55,1-1.16.81-1.92-.54-.24Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683,399.47a15,15,0,1,1,15-15A15,15,0,0,1,683,399.47Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,683,370.44Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/></svg>\",\n \"play_circle\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"32.95 25.17 21.05 32.17 21.05 18.17 32.95 25.17\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,39.17a14,14,0,1,1,14-14,14,14,0,0,1-14,14m0,1a15,15,0,1,0-15-15,15,15,0,0,0,15,15Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"plus_round\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-288 379 35 35\\\" enable-background=\\\"new -288 379 35 35\\\" ><path fill=\\\"#29363E\\\" d=\\\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15s15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-261.1,397.3c0,0.9-0.7,1.6-1.6,1.6h-5.5v5.5c0,0.9-0.7,1.6-1.6,1.6h-1.6c-0.9,0-1.6-0.7-1.6-1.6v-5.5h-5.5c-0.9,0-1.6-0.7-1.6-1.6v-1.6c0-0.9,0.7-1.6,1.6-1.6h5.5v-5.5c0-0.9,0.7-1.6,1.6-1.6h1.6c0.9,0,1.6,0.7,1.6,1.6v5.5h5.5c0.9,0,1.6,0.7,1.6,1.6V397.3z\\\"/></svg>\",\n \"plus_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M24.34,32.17a.34.34,0,0,1-.34-.34V26.17H18.34a.34.34,0,0,1-.34-.34V24.5a.34.34,0,0,1,.34-.33H24V18.5a.34.34,0,0,1,.34-.33h1.33a.33.33,0,0,1,.33.33v5.67h5.67a.33.33,0,0,1,.33.33v1.33a.34.34,0,0,1-.33.34H26v5.66a.34.34,0,0,1-.33.34Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,11.17a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"plus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M23.86,37a.58.58,0,0,1-.57-.57V26.71H13.58a.57.57,0,0,1-.58-.56v-2.3a.57.57,0,0,1,.58-.56h9.71V13.57a.58.58,0,0,1,.57-.57h2.28a.57.57,0,0,1,.57.57v9.72h9.72a.57.57,0,0,1,.57.56v2.3a.57.57,0,0,1-.57.56H26.71v9.72a.57.57,0,0,1-.57.57Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"plus_skinny\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M24.4,37.5c-0.3,0-0.6-0.3-0.6-0.6v-9.7h-9.7c-0.3,0-0.6-0.3-0.6-0.6v-2.3c0-0.3,0.3-0.6,0.6-0.6h9.7v-9.7c0-0.3,0.3-0.6,0.6-0.6h2.3c0.3,0,0.6,0.3,0.6,0.6v9.7h9.7c0.3,0,0.6,0.3,0.6,0.6v2.3c0,0.3-0.3,0.6-0.6,0.6h-9.7v9.7c0,0.3-0.3,0.6-0.6,0.6H24.4z\\\"/></svg>\",\n \"plus_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z\\\"/></svg>\",\n \"plus_stars\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"24.09 10 23.32 12.15 21.13 12.82 22.93 14.22 22.89 16.51 24.79 15.23 26.95 15.98 26.31 13.78 27.69 11.95 25.4 11.88 24.09 10\\\" fill=\\\"#484f60\\\" opacity=\\\"0.8\\\"/><polygon points=\\\"15.69 13.56 16.49 15.05 15.77 16.58 17.43 16.28 18.67 17.43 18.9 15.76 20.38 14.94 18.86 14.21 18.54 12.55 17.37 13.77 15.69 13.56\\\" fill=\\\"#484f60\\\" opacity=\\\"0.6\\\"/><polygon points=\\\"12.16 19.48 13 20.08 13.02 21.11 13.85 20.49 14.83 20.79 14.5 19.81 15.09 18.97 14.06 18.98 13.44 18.16 13.13 19.14 12.16 19.48\\\" fill=\\\"#484f60\\\" opacity=\\\"0.4\\\"/><polygon points=\\\"25.91 40 26.68 37.85 28.87 37.18 27.07 35.77 27.11 33.49 25.21 34.77 23.05 34.02 23.69 36.22 22.31 38.05 24.6 38.12 25.91 40\\\" fill=\\\"#484f60\\\" opacity=\\\"0.8\\\"/><polygon points=\\\"34.31 36.44 33.51 34.95 34.23 33.42 32.56 33.72 31.33 32.57 31.1 34.24 29.62 35.06 31.14 35.79 31.46 37.45 32.63 36.23 34.31 36.44\\\" fill=\\\"#484f60\\\" opacity=\\\"0.6\\\"/><polygon points=\\\"37.84 30.52 37 29.92 36.98 28.89 36.15 29.51 35.17 29.21 35.5 30.19 34.91 31.03 35.94 31.02 36.56 31.84 36.87 30.86 37.84 30.52\\\" fill=\\\"#484f60\\\" opacity=\\\"0.4\\\"/><path d=\\\"M24.15,31.49a.31.31,0,0,1-.31-.31V25.92H18.58a.31.31,0,0,1-.31-.31V24.37a.31.31,0,0,1,.31-.31h5.26V18.8a.31.31,0,0,1,.31-.31h1.24a.31.31,0,0,1,.31.31v5.26H31a.31.31,0,0,1,.31.31v1.24a.31.31,0,0,1-.31.31H25.7v5.26a.31.31,0,0,1-.31.31Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"pointer\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><path fill=\\\"#4C5050\\\" d=\\\"M-255,384.5c-4.6,0-8.3,3.7-8.3,8.3s8.3,16.7,8.3,16.7s8.3-12.1,8.3-16.7S-250.4,384.5-255,384.5z M-255,394.9c-1.2,0-2.1-0.9-2.1-2.1c0-1.2,0.9-2.1,2.1-2.1c1.2,0,2.1,0.9,2.1,2.1C-252.9,394-253.8,394.9-255,394.9z\\\"/></svg>\",\n \"pointer_3d\": \"<svg width=\\\"512\\\" height=\\\"512\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g><g stroke=\\\"null\\\"><path fill=\\\"#06B7FC\\\" d=\\\"m256,18.34937c-87.45543,0 -157.80002,70.34459 -157.80002,157.80002s157.80002,317.50125 157.80002,317.50125s157.80002,-230.04581 157.80002,-317.50125s-70.34459,-157.80002 -157.80002,-157.80002zm0,197.72533c-22.81446,0 -39.92531,-17.11085 -39.92531,-39.92531c0,-22.81446 17.11085,-39.92531 39.92531,-39.92531c22.81446,0 39.92531,17.11085 39.92531,39.92531c0,22.81446 -17.11085,39.92531 -39.92531,39.92531z\\\" stroke=\\\"null\\\"/></g></g></svg>\",\n \"pointer_filled\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M25.5,13c-4.6,0-8.3,3.7-8.3,8.3S25.5,38,25.5,38s8.3-12.1,8.3-16.7S30.1,13,25.5,13z\\\"/></svg>\",\n \"POS\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.9\\\"><path d=\\\"M29.21,11.05a1.05,1.05,0,0,1,1.05,1.06V30a1,1,0,0,1-1.05,1.05H17.63A1,1,0,0,1,16.58,30V12.11a1.05,1.05,0,0,1,1.05-1.06H29.21m0-1.05H17.63a2.1,2.1,0,0,0-2.1,2.11V30a2.11,2.11,0,0,0,2.1,2.11H29.21A2.12,2.12,0,0,0,31.32,30V12.11A2.11,2.11,0,0,0,29.21,10Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.4,40H20.09a1.58,1.58,0,0,1-1.58-1.58V33.16h1v5.26a.53.53,0,0,0,.53.53H26.4a.53.53,0,0,0,.53-.53V33.16H28v5.26A1.58,1.58,0,0,1,26.4,40Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.05,13.16v2.1H18.57v-2.1h9.48m0-1.05H18.57a1,1,0,0,0-1.05,1.05v2.1a1.06,1.06,0,0,0,1.05,1.06h9.48a1.06,1.06,0,0,0,1.05-1.06v-2.1a1,1,0,0,0-1.05-1.05Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.52\\\" y=\\\"18.42\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.73\\\" y=\\\"18.42\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.94\\\" y=\\\"18.42\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.52\\\" y=\\\"22.63\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.73\\\" y=\\\"22.63\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.94\\\" y=\\\"22.63\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.52\\\" y=\\\"26.84\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.73\\\" y=\\\"26.84\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.94\\\" y=\\\"26.84\\\" width=\\\"3.16\\\" height=\\\"2.11\\\" rx=\\\"1.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23.25\\\" y=\\\"33.16\\\" width=\\\"2.11\\\" height=\\\"6.32\\\" fill=\\\"#484f60\\\"/><rect x=\\\"33.42\\\" y=\\\"18.42\\\" width=\\\"1.05\\\" height=\\\"12.63\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"positioning\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"23\\\" y=\\\"17.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"23.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"29.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"pregnancy\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><path fill=\\\"#5B5B5B\\\" d=\\\"M21.3,31.4c0.6,1.5,0.7,2.4,2.3,2.5c1.6,0.1,2.4-0.7,3.1-2.1c0.7-1.4,1.4-2.9,2.1-4.3c0.7-1.4,0.6-2.5-0.9-3c-1-0.3-1.5-0.6-2.5-0.9c-0.8-0.2-1.1-0.9-1.6-1.6c-0.2-0.3-0.5-0.7-0.9-0.8c-0.5-0.1-1,0.1-1.2,0.5c-0.2,0.4-0.3,0.9-0.2,1.4c0.4,1.4,1.3,2.6,2.8,2.8c0.1,0,0.1,0.1,0.3,0.2c0,0-1.2,2.3-1.3,2.5c-0.1,0.2-0.2,0.5-0.3,0.7l0-0.2c-0.1-0.5-0.2-0.9-0.3-1.4c-0.1-0.3-0.2-0.6-0.4-0.8c-0.3-0.3-1-0.4-1.4-0.2c-0.6,0.2-1.2,0.8-1.5,1.3c-0.9,1.4-0.7,5.3-0.1,6.8c0.1,0.2,0.1,0.3,0.3,0.4c0.3,0.2,0.8,0.1,1.1-0.1C21.1,34.7,21.2,32,21.3,31.4\\\"/><path fill=\\\"#5B5B5B\\\" d=\\\"M28.4,23.4c-2.1,0-3.8-1.7-3.8-3.8c0-2.1,1.7-3.9,3.9-3.8c2.1,0,3.9,1.8,3.8,3.8C32.2,21.7,30.5,23.4,28.4,23.4z\\\"/></g><path fill=\\\"#5B5B5B\\\" d=\\\"M25.5,40.5c-8.3,0-15-6.7-15-15s6.7-15,15-15s15,6.7,15,15S33.8,40.5,25.5,40.5z M25.5,11.5c-7.7,0-14,6.3-14,14s6.3,14,14,14s14-6.3,14-14S33.2,11.5,25.5,11.5z\\\"/></g></svg>\",\n \"preset\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M37.07,11.48H12.93A1.94,1.94,0,0,0,11,13.41V36.59a1.94,1.94,0,0,0,1.93,1.93H37.07A1.94,1.94,0,0,0,39,36.59V13.41A1.94,1.94,0,0,0,37.07,11.48ZM20.66,32.72H18.24v2.9h-2.9v-2.9H12.93V27.9h2.41V15.34h2.9V27.9h2.42Zm8.2-9.65H26.45V35.62h-2.9V23.07H21.14V18.24h2.41v-2.9h2.9v2.9h2.41Zm8.21,6.76H34.66v5.79h-2.9V29.83H29.34V25h2.42V15.34h2.9V25h2.41Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"14.38\\\" y=\\\"29.34\\\" width=\\\"4.83\\\" height=\\\"1.93\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.59\\\" y=\\\"19.69\\\" width=\\\"4.83\\\" height=\\\"1.93\\\" fill=\\\"#484f60\\\"/><rect x=\\\"30.79\\\" y=\\\"26.45\\\" width=\\\"4.83\\\" height=\\\"1.93\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"print\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M39.25,27.44c0-1.25-2.51-3-3.75-3h-21c-1.24,0-3.75,1.75-3.75,3L10,34.94a2.25,2.25,0,0,0,2.25,2.25h3l1.22-2.44H13.75V29.5l.75-2.25C14.5,26,17,25,18.25,25h13.5c1.24,0,3.75,1,3.75,2.25l.75,2.25v5.25H33.53l1.22,2.44h3A2.25,2.25,0,0,0,40,34.94Zm-1.5,4.31a1.13,1.13,0,1,1,1.13-1.13A1.13,1.13,0,0,1,37.75,31.75Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M15,30.89V29.63l.71-2.17v-.17c0-.54,1.78-1.43,2.85-1.43H31.41c1.07,0,2.85.89,2.85,1.43v.17L35,29.63v1.26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.25,12.06v9.75h13.5V12.06Zm12,7.5H19.75v-.75h10.5Zm0-2.25H19.75v-.75h10.5Zm0-2.25H19.75v-.75h10.5Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.71 37.94 17.96 33.44 32.04 33.44 34.29 37.94 15.71 37.94\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16.75\\\" y=\\\"22.94\\\" width=\\\"16.5\\\" height=\\\"1.5\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"product_properties\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M37.43,12.64H12.57A2.57,2.57,0,0,0,10,15.21V29.79a2.57,2.57,0,0,0,2.57,2.57H31.11a3.45,3.45,0,0,1,1.75-.5H29.5v-13h1.84V14.79h1.29v4.07h.77V14.79H36v4.07h.53v13H32.93a3.45,3.45,0,0,1,1.75.5h2.75A2.57,2.57,0,0,0,40,29.79V15.21A2.57,2.57,0,0,0,37.43,12.64ZM14.29,30.21H12.15V14.79h2.14Zm2,0H15V14.79h1.29Zm2.57,0H17.54V14.79h1.29Zm3.52,0H20.2V14.79h2.15Zm2,0H23.11V14.79H24.4Zm2.06,0H25.17V14.79h1.29Zm2.66,0H27.83V14.79h1.29Zm9.17,0H37V14.79h1.29Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M32.9,37.36a2,2,0,0,1-2-2,2,2,0,0,1,.58-1.42,2,2,0,0,1,2.83,0,2,2,0,0,1,.59,1.42,2,2,0,0,1-2,2Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"31\\\" y=\\\"20.36\\\" width=\\\"4\\\" height=\\\"10\\\" transform=\\\"translate(66 50.72) rotate(180)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"purchase\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.75\\\"><polygon points=\\\"33.34 25.04 27.34 28.52 33.35 31.97 39.34 28.49 33.34 25.04\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.99 33.08 39.99 29.6 40 36.53 34.01 40.01 33.99 33.08\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"26.72 36.55 26.71 29.63 32.71 33.08 32.72 40.01 26.72 36.55\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"12.78 28.54 18.79 32 24.78 28.52 18.77 25.07 12.78 28.54\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.43 33.1 25.42 29.63 25.44 36.56 19.44 40.03 19.43 33.1\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"12.15 36.58 12.14 29.65 18.15 33.11 18.16 40.04 12.15 36.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"32.04 15.89 26.03 12.44 22.09 14.73 27.52 14.73 24.03 18.21 26.05 19.37 32.04 15.89\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"32.68 17 26.69 20.48 26.7 27.41 32.7 23.93 32.68 17\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"23.1 19.15 19.41 22.83 19.41 23.95 25.42 27.41 25.41 20.48 23.1 19.15\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></g><polygon points=\\\"19.03 16.34 19.03 10.3 14.61 10.3 14.61 16.34 14.61 16.34 10 16.34 16.82 23.16 23.64 16.34 19.03 16.34\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"qrcode\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"qrcode.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"10.24\\\" inkscape:cx=\\\"-3.609533\\\" inkscape:cy=\\\"34.630587\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg12\\\" /><g transform=\\\"matrix(0.12987013,0,0,0.12987013,8.5714286,8.5714285)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" d=\\\"M 11,11 H 22 V 22 H 11 Z m 11,0 H 33 V 22 H 22 Z m 11,0 H 44 V 22 H 33 Z m 11,0 H 55 V 22 H 44 Z m 11,0 H 66 V 22 H 55 Z m 11,0 H 77 V 22 H 66 Z m 11,0 H 88 V 22 H 77 Z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 V 22 H 231 Z M 11,22 H 22 V 33 H 11 Z m 66,0 H 88 V 33 H 77 Z m 22,0 h 11 V 33 H 99 Z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 66,0 h 11 V 33 H 231 Z M 11,33 H 22 V 44 H 11 Z m 22,0 H 44 V 44 H 33 Z m 11,0 H 55 V 44 H 44 Z m 11,0 H 66 V 44 H 55 Z m 22,0 H 88 V 44 H 77 Z m 33,0 h 11 v 11 h -11 z m 55,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 V 44 H 231 Z M 11,44 H 22 V 55 H 11 Z m 22,0 H 44 V 55 H 33 Z m 11,0 H 55 V 55 H 44 Z m 11,0 H 66 V 55 H 55 Z m 22,0 H 88 V 55 H 77 Z m 22,0 h 11 V 55 H 99 Z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 V 55 H 231 Z M 11,55 H 22 V 66 H 11 Z m 22,0 H 44 V 66 H 33 Z m 11,0 H 55 V 66 H 44 Z m 11,0 H 66 V 66 H 55 Z m 22,0 H 88 V 66 H 77 Z m 44,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 V 66 H 231 Z M 11,66 H 22 V 77 H 11 Z m 66,0 H 88 V 77 H 77 Z m 22,0 h 11 V 77 H 99 Z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 66,0 h 11 V 77 H 231 Z M 11,77 H 22 V 88 H 11 Z m 11,0 H 33 V 88 H 22 Z m 11,0 H 44 V 88 H 33 Z m 11,0 H 55 V 88 H 44 Z m 11,0 H 66 V 88 H 55 Z m 11,0 H 77 V 88 H 66 Z m 11,0 H 88 V 88 H 77 Z m 22,0 h 11 V 88 H 99 Z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 V 88 H 231 Z M 121,88 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 V 99 H 143 Z M 11,99 h 11 v 11 H 11 Z m 11,0 h 11 v 11 H 22 Z m 11,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 22,0 h 11 v 11 H 77 Z m 11,0 h 11 v 11 H 88 Z m 11,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 H 220 Z M 22,110 h 11 v 11 H 22 Z m 77,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 H 231 Z M 22,121 h 11 v 11 H 22 Z m 11,0 h 11 v 11 H 33 Z m 22,0 h 11 v 11 H 55 Z m 22,0 h 11 v 11 H 77 Z m 33,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 H 220 Z M 22,132 h 11 v 11 H 22 Z m 11,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 11,0 h 11 v 11 H 66 Z m 55,0 h 11 v 11 h -11 z m 55,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 H 220 Z M 22,143 h 11 v 11 H 22 Z m 22,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 11,0 h 11 v 11 H 66 Z m 11,0 h 11 v 11 H 77 Z m 11,0 h 11 v 11 H 88 Z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 44,0 h 11 v 11 H 231 Z M 99,154 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 H 231 Z M 11,165 h 11 v 11 H 11 Z m 11,0 h 11 v 11 H 22 Z m 11,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 11,0 h 11 v 11 H 66 Z m 11,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 44,0 h 11 v 11 H 220 Z M 11,176 h 11 v 11 H 11 Z m 66,0 h 11 v 11 H 77 Z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 H 209 Z M 11,187 h 11 v 11 H 11 Z m 22,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 22,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 44,0 h 11 v 11 H 220 Z M 11,198 h 11 v 11 H 11 Z m 22,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 22,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 H 209 Z M 11,209 h 11 v 11 H 11 Z m 22,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 22,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 H 209 Z M 11,220 h 11 v 11 H 11 Z m 66,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 22,0 h 11 v 11 h -11 z m 55,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 H 209 Z M 11,231 h 11 v 11 H 11 Z m 11,0 h 11 v 11 H 22 Z m 11,0 h 11 v 11 H 33 Z m 11,0 h 11 v 11 H 44 Z m 11,0 h 11 v 11 H 55 Z m 11,0 h 11 v 11 H 66 Z m 11,0 h 11 v 11 H 77 Z m 22,0 h 11 v 11 H 99 Z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 33,0 h 11 v 11 h -11 z m 22,0 h 11 v 11 h -11 z m 11,0 h 11 v 11 h -11 z\\\" /></g></svg>\",\n \"question\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.56,21H19.5A4.14,4.14,0,0,1,21,17.69a6.16,6.16,0,0,1,4.12-1.32,6.6,6.6,0,0,1,2.8.54,4.58,4.58,0,0,1,1.85,1.58,3.84,3.84,0,0,1,.69,2.16,3.46,3.46,0,0,1-.22,1.22,4.85,4.85,0,0,1-.7,1.23,10.78,10.78,0,0,1-1.34,1.24A8.45,8.45,0,0,0,27,25.51a2.8,2.8,0,0,0-.44.9A7,7,0,0,0,26.31,28H23.15v-.47A5.69,5.69,0,0,1,23.71,25a6.46,6.46,0,0,1,1.86-2.16,9.51,9.51,0,0,0,1.49-1.34,1.48,1.48,0,0,0,.26-.86,1.38,1.38,0,0,0-.63-1.14A2.71,2.71,0,0,0,25,19a2.66,2.66,0,0,0-1.76.57A1.83,1.83,0,0,0,22.56,21Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.79,30a2,2,0,0,1,1.45.59,2,2,0,0,1-2.86,2.82A2,2,0,0,1,24.79,30Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"radio_uncheck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,34.5a9.34,9.34,0,1,1,9.33-9.33A9.34,9.34,0,0,1,25,34.5m0,.67a10,10,0,1,0-10-10,10,10,0,0,0,10,10Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"range\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>range</title><path d=\\\"M10,35.46V14.54h4.43V16.2H12V33.8h2.42v1.66Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.88,26V24h6.18v2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,35.46H35.57V33.8H38V16.2H35.57V14.54H40Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"range_select\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"18\\\" y=\\\"11.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18\\\" y=\\\"19.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18\\\" y=\\\"27.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"13.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><circle cx=\\\"13\\\" cy=\\\"21.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"29.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18\\\" y=\\\"35.17\\\" width=\\\"22\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"13\\\" cy=\\\"37.17\\\" r=\\\"3\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"rectangles\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><path fill=\\\"#484F5F\\\" d=\\\"M24.7,24.2c0,0.2-0.2,0.4-0.4,0.4H10.9c-0.2,0-0.4-0.2-0.4-0.4v-8.4c0-0.2,0.2-0.4,0.4-0.4h13.3c0.2,0,0.4,0.2,0.4,0.4V24.2z\\\"/><path fill=\\\"#484F5F\\\" d=\\\"M40.5,24.2c0,0.2-0.2,0.4-0.4,0.4H26.8c-0.2,0-0.4-0.2-0.4-0.4v-8.4c0-0.2,0.2-0.4,0.4-0.4h13.3c0.2,0,0.4,0.2,0.4,0.4V24.2z\\\"/><path fill=\\\"#484F5F\\\" d=\\\"M24.7,35.2c0,0.2-0.2,0.4-0.4,0.4H10.9c-0.2,0-0.4-0.2-0.4-0.4v-8.4c0-0.2,0.2-0.4,0.4-0.4h13.3c0.2,0,0.4,0.2,0.4,0.4V35.2z\\\"/><path opacity=\\\"0.5\\\" fill=\\\"#484F5F\\\" d=\\\"M40.5,35.2c0,0.2-0.2,0.4-0.4,0.4H26.8c-0.2,0-0.4-0.2-0.4-0.4v-8.4c0-0.2,0.2-0.4,0.4-0.4h13.3c0.2,0,0.4,0.2,0.4,0.4V35.2z\\\"/></g></svg>\",\n \"refresh\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"14.58 22.71 14.58 10 27.29 22.71 14.58 22.71\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.42 27.29 35.42 40 22.71 27.29 35.42 27.29\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.9,15.32c4.09-4.09,10.2-8.13,18.33,0h0C31.73,8.82,26.65,13.9,22.56,18Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.1,34.68c-4.09,4.08-10.2,8.13-18.33,0h0c6.51,6.5,11.58,1.43,15.67-2.66Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"relations\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#2A363B\\\" d=\\\"M32.8,35.2c1.4-1.3,2.5-4.7,2.9-6.7l-1.5,1.7C34,31.3,33.6,33.3,32.8,35.2z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M37,26.1l1.6-1.8c0-1.8-1.9-4-4.1-4h-0.5c-0.2,0.3-0.5,0.6-0.7,0.9C35.3,22,36.8,24.1,37,26.1z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M34.6,15.3c0-2.8-2.8-5.3-6.4-5.3c-1,0-1.9,0.2-2.8,0.6c4.1,0.2,7.5,3.3,7.5,6.9c0,0.6-0.1,1.3-0.3,1.9C33.8,18.2,34.6,16.7,34.6,15.3z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M33.7,28.2l1.6-1.8c0-1.8-1.9-4-4.1-4h-0.5c-0.2,0.3-0.5,0.6-0.7,0.9C32.1,24.2,33.6,26.2,33.7,28.2z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M29.6,37.3c1.4-1.3,2.5-4.7,2.9-6.7l-1.5,1.7C30.8,33.4,30.4,35.5,29.6,37.3z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M31.4,17.4c0-2.8-2.8-5.3-6.4-5.3c-1,0-1.9,0.2-2.8,0.6c4.1,0.2,7.5,3.3,7.5,6.9c0,0.6-0.1,1.3-0.3,1.9C30.6,20.4,31.4,18.9,31.4,17.4z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M28,24.6h-0.5c-0.9,1.2-2.5,2.7-4.2,3.3c0.1,0.2,0.2,0.4,0.2,0.6c0,0.4-0.3,0.8-0.6,1l1.5,7.1l-2.6,2.6l-2.6-2.6l1.5-7.1c-0.4-0.2-0.6-0.6-0.6-1c0-0.2,0.1-0.4,0.2-0.6c-1.7-0.6-3.3-2-4.2-3.3h-0.5c-2.3,0-4.1,2.2-4.1,4l2.8,3c0,1.8,1.9,8.4,4.1,8.4h6.9c2.3,0,4.2-6.6,4.2-8.4l2.8-3C32.2,26.8,30.3,24.6,28,24.6z\\\"/><path fill=\\\"#2A363B\\\" d=\\\"M28.1,19.6c0,2.8-2.8,5.9-6.4,5.9c-3.5,0-6.4-3.1-6.4-5.9c0-2.8,2.8-5.3,6.4-5.3C25.3,14.3,28.1,16.8,28.1,19.6z\\\"/></g></svg>\",\n \"remark\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10.93c-8.28,0-15,4.9-15,11a8.87,8.87,0,0,0,2.27,5.77h-.16c.15.1.28.22.43.32a13.37,13.37,0,0,0,1.34,1.25c3.07,3.74.06,8.71-3.25,9.84,5.79-1.34,9.32-3.89,10.91-6.53a19.53,19.53,0,0,0,3.46.31c8.28,0,15-4.91,15-11S33.28,10.93,25,10.93Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"remark_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M683,375.62c-5.52,0-10,3.27-10,7.31a5.91,5.91,0,0,0,1.51,3.85h-.11c.11.07.19.14.29.22a8.27,8.27,0,0,0,.9.83c2,2.5,0,5.81-2.16,6.56,3.86-.89,6.21-2.59,7.27-4.35a13.52,13.52,0,0,0,2.31.2c5.52,0,10-3.27,10-7.3S688.52,375.62,683,375.62Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M683,405a20,20,0,1,1,20-20A20,20,0,0,1,683,405Zm0-38.71A18.71,18.71,0,1,0,701.71,385,18.73,18.73,0,0,0,683,366.29Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"report_in_type\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.75\\\"><path d=\\\"M27.38,15.39a1,1,0,0,0-1-1H24.89a1,1,0,0,0-1,1v7.53c0,.55-.32.68-.71.29l-3.47-3.47c-.39-.39-.71-.26-.71.29v2.89c0,.55-.34.7-.75.34l-4.08-3.57c-.41-.36-.75-.21-.75.34v2.89c0,.55-.32.68-.71.29L9.25,19.74c-.39-.39-.71-.26-.71.29v7.14a1,1,0,0,0,1,1H20.4l7-7Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M15.73,13.38,15.39,12a13.26,13.26,0,0,1-3.2.47,5.14,5.14,0,0,1-2.92-.79L8.5,12.87a6.43,6.43,0,0,0,3.69,1A14.53,14.53,0,0,0,15.73,13.38Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.41,12.61a18.14,18.14,0,0,1,4.74-1,2.35,2.35,0,0,1,2.24,1.1l1.18-.73a3.72,3.72,0,0,0-3.42-1.76A19,19,0,0,0,18,11.28l-.63.19.41,1.34Z\\\" fill=\\\"#484f60\\\"/></g><g opacity=\\\"0.75\\\"><rect x=\\\"28.55\\\" y=\\\"34.12\\\" width=\\\"3.02\\\" height=\\\"6.05\\\" fill=\\\"#484f60\\\"/><rect x=\\\"32.43\\\" y=\\\"34.12\\\" width=\\\"3.02\\\" height=\\\"6.05\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.28 21.29 22.5 32.07 22.5 40.17 26.82 40.17 26.82 32.39 37.18 32.39 37.18 40.17 41.5 40.17 41.5 25.48 33.28 21.29\\\" fill=\\\"#484f60\\\"/></g><rect x=\\\"6.6\\\" y=\\\"24.67\\\" width=\\\"39.6\\\" height=\\\"1\\\" transform=\\\"translate(-10.06 26.04) rotate(-45)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"1.1 49.9 1.1 30.6 7.8 37.3 37.3 8 30.6 1.3 49.9 1.3 49.9 20.6 43.2 13.9 13.7 43.2 20.5 49.9 1.1 49.9\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"resize_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"29.5 28.25 25 32.75 20.5 28.25 29.5 28.25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"20.5 22.75 25 18.25 29.5 22.75 20.5 22.75\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"returns\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M33.63,16.88H29.25A1.25,1.25,0,0,0,28,18.13v.65A1.25,1.25,0,0,0,29.25,20h9.5A1.25,1.25,0,0,0,40,18.78v-.65a1.25,1.25,0,0,0-1.25-1.25H33.63Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.36,22.45H20.53v1.79a3.21,3.21,0,0,1-.67,1.94V37.09H18.79v-10a3.24,3.24,0,0,1-1.08.33v9.68H16.64V27.45a3.68,3.68,0,0,1-.57-.06v9.7H14.29V26.36a3.17,3.17,0,0,1-.82-2.12V22.81a2.14,2.14,0,0,0-1,1.78V36.74a2.14,2.14,0,0,0,2.14,2.14H35.36a2.14,2.14,0,0,0,2.14-2.14V24.59A2.14,2.14,0,0,0,35.36,22.45ZM22.79,37.09H21V24.24h1.79Zm1.71,0H23.43V24.24H24.5Zm1.72,0H25.15V24.24h1.07Zm2.21,0H27.36V24.24h1.07Zm2.93,0H30.29V24.24h1.07Zm2.79,0H32V24.24h2.15Zm1.92,0H35V24.24h1.07Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M22.79,16.92H18.53V12.67a1.22,1.22,0,0,0-1.21-1.22h-.63a1.22,1.22,0,0,0-1.22,1.22v4.25H11.22A1.22,1.22,0,0,0,10,18.13v.64A1.21,1.21,0,0,0,11.22,20h4.25v4.26a1.21,1.21,0,0,0,1.22,1.21h.63a1.21,1.21,0,0,0,1.21-1.21V20h4.26A1.21,1.21,0,0,0,24,18.77v-.64A1.21,1.21,0,0,0,22.79,16.92Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"return_goods\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,407.7a15,15,0,0,0-5.1.9l-2.7-3.5-2.5,9.7,10-.3-2-2.6,2.4-.3a11,11,0,1,1-11,11h-4A15,15,0,1,0,298,407.7Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"rotate_left_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.84 0-95.17-15.58-134.2-44.86c-14.12-10.59-16.97-30.66-6.375-44.81c10.59-14.12 30.62-16.94 44.81-6.375c27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256s-71.69-159.8-159.8-159.8c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04c0-24.04 29.07-36.08 46.07-19.07l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z\\\"/></svg>\",\n \"save_disk\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-288 379 35 35\\\" enable-background=\\\"new -288 379 35 35\\\" ><g opacity=\\\"0.95\\\"><path fill=\\\"#29363E\\\" d=\\\"M-259.5,384.4h-2.1v6.8c0,0.4-0.3,0.7-0.7,0.7h-16.6c-0.4,0-0.7-0.3-0.7-0.7v-6.8h-2c-0.6,0-1.1,0.5-1.1,1.1v22.4c0,0.6,0.5,1.1,1.1,1.1h2v-14c0-0.4,0.3-0.7,0.7-0.7h16.7c0.4,0,0.7,0.3,0.7,0.7v14h2c0.6,0,1.1-0.5,1.1-1.1v-22.4C-258.4,384.9-258.9,384.4-259.5,384.4z M-280.1,406.6h-1.7V405h1.7V406.6z M-259.2,406.6h-1.7V405h1.7V406.6z\\\"/><rect x=\\\"-278.4\\\" y=\\\"395.4\\\" fill=\\\"#29363E\\\" width=\\\"15.8\\\" height=\\\"13.5\\\"/><path fill=\\\"#29363E\\\" d=\\\"M-263.4,384h-12c-0.1,0-0.3,0.1-0.3,0.3v6.5c0,0.1,0.1,0.3,0.3,0.3h12c0.1,0,0.2-0.1,0.2-0.3v-6.5C-263.1,384.1-263.2,384-263.4,384z M-265.6,390c0,0.1-0.1,0.3-0.3,0.3h-2.4c-0.1,0-0.2-0.1-0.2-0.3v-4.8c0-0.1,0.1-0.3,0.2-0.3h2.4c0.1,0,0.3,0.1,0.3,0.3V390z\\\"/></g></svg>\",\n \"save_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\\\" fill=\\\"#fff\\\"/></svg>\",\n \"scale_balanced\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path style=\\\"fill:#484f60\\\" d=\\\"M554.9 154.5c-17.62-35.25-68.12-35.38-85.87 0c-87 174.3-84.1 165.9-84.1 181.5c0 44.13 57.25 80 128 80s127.1-35.88 127.1-80C639.1 319.9 641.4 327.3 554.9 154.5zM439.1 320l71.96-144l72.17 144H439.1zM256 336c0-16.12 1.375-8.75-85.12-181.5c-17.62-35.25-68.12-35.38-85.87 0c-87 174.3-84.1 165.9-84.1 181.5c0 44.13 57.25 80 127.1 80S256 380.1 256 336zM127.9 176L200.1 320H55.96L127.9 176zM495.1 448h-143.1V153.3C375.5 143 393.1 121.8 398.4 96h113.6c17.67 0 31.1-14.33 31.1-32s-14.33-32-31.1-32h-128.4c-14.62-19.38-37.5-32-63.62-32S270.1 12.62 256.4 32H128C110.3 32 96 46.33 96 64S110.3 96 127.1 96h113.6c5.25 25.75 22.87 47 46.37 57.25V448H144c-26.51 0-48.01 21.49-48.01 48c0 8.836 7.165 16 16 16h416c8.836 0 16-7.164 16-16C544 469.5 522.5 448 495.1 448z\\\"/></svg>\",\n \"scanner\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38.21,34.13s-1.57-5.49-2.34-9a13.47,13.47,0,0,1-.51-3.86,10.31,10.31,0,0,1,.24-2.92,4.85,4.85,0,0,1,1.24-2.07,20.07,20.07,0,0,0,.2-2.18A17.29,17.29,0,0,0,37,12.08a.88.88,0,0,0-.39-.71A4.2,4.2,0,0,0,35.13,11l-8.38-.85s-2.21.4-4.63,1c-4.21,1-9.67,2.42-9.67,2.42a1.36,1.36,0,0,0-.5.35.8.8,0,0,0-.16.46l1.13,6.24a2,2,0,0,0,.2.7,1,1,0,0,0,.43.39s3.79,1.35,7.32,2.18a39,39,0,0,0,5.65.86,2.22,2.22,0,0,0,.9-.16A1.28,1.28,0,0,0,28,24a3.38,3.38,0,0,1,0,1,4.14,4.14,0,0,1-.31,1l-1.09,2.69a.8.8,0,0,0,0,.43,1.19,1.19,0,0,0,.23.43,15.44,15.44,0,0,0,1.48.7,2,2,0,0,0,.78.16,2.49,2.49,0,0,0,.63,0,3.52,3.52,0,0,0,.81-.24l1.06-2.06.5-2.3.31-.47a11.58,11.58,0,0,1,.16,1.31,5.3,5.3,0,0,1,0,.87,11.17,11.17,0,0,1-.14,1.31,4.52,4.52,0,0,1-.25.91,8.47,8.47,0,0,1-.37.9,3.13,3.13,0,0,1-.37.58l-.35.32a3.72,3.72,0,0,1-1.05.07,2.55,2.55,0,0,1-.94-.31L29.05,33l-.15,1a1.4,1.4,0,0,1-.39.45,2.75,2.75,0,0,1-.67.29.88.88,0,0,0-.42.43,2.27,2.27,0,0,0-.08.89s1.59,4.1,4.44,4.06C38.4,40.21,38.21,34.13,38.21,34.13ZM25.08,22.48c-.73-.11-2.63-.39-4.4-.82-2.53-.61-5-1.43-5.64-1.63a.23.23,0,0,1-.15-.19l-.55-3.51a.24.24,0,0,1,.27-.27c.73.12,2.62.43,4.55.78,2.36.43,4.75.95,5.37,1.08a.23.23,0,0,1,.18.2l.63,4.09A.24.24,0,0,1,25.08,22.48Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"search_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M299.9,415.2a5.8,5.8,0,1,0,0,8.2A5.8,5.8,0,0,0,299.9,415.2Zm-1,7.2a4.4,4.4,0,1,1,0-6.3A4.4,4.4,0,0,1,298.9,422.4Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M305.6,426.7l-2.9-2.9a1.4,1.4,0,0,0-1.9,0l-0.5.5a1.3,1.3,0,0,0,0,1.9l2.9,2.9a1.3,1.3,0,0,0,1.9,0l0.5-.5A1.3,1.3,0,0,0,305.6,426.7Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M295.5,422.2h-0.1v-2.4h-2.6V419h2.6v-2.4h0.9v2.4h2.6v0.6h-2.6v2.4h-0.7Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298,407.5a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15h0Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"sections\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"12.5\\\" y=\\\"13.17\\\" width=\\\"25\\\" height=\\\"11\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.5\\\" y=\\\"26.17\\\" width=\\\"25\\\" height=\\\"11\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"select_all_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,406.5a15,15,0,1,0,15,15A15,15,0,0,0,298,406.5Zm-3,24-6.2-9.1,2.8-3.6,3.4,5.1,4.7-10.4h5.6Zm9.3,0-0.5-1.5h-2.7l-0.5,1.5h-1.9l2.7-7.3h2.2l2.7,7.3h-1.9Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><polygon points=\\\"30.8 31.7 30 29.1 29.1 31.7 30.8 31.7\\\" fill=\\\"#fff\\\"/></svg>\",\n \"services\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M30.5,23.39l2-2.2a3.14,3.14,0,0,0-3-2.88h-.37c-.82,1.17-2.53,2.56-4.13,2.56s-3.31-1.39-4.14-2.56H20.5a3.13,3.13,0,0,0-3,2.88l2,2.2a4.93,4.93,0,0,0,.08.75H30.42A4.93,4.93,0,0,0,30.5,23.39Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.6,14.68a4.61,4.61,0,0,1-9.2,0c0-2,2.06-3.82,4.6-3.82S29.6,12.66,29.6,14.68Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.1,32.67a2.9,2.9,0,0,0-1-2.31c-2-1.93-4.27-3.55-6.44-5.28a2.7,2.7,0,0,0-1.92-.68c-.55.05-.7.29-.41.77a13.73,13.73,0,0,0,1.78,2.16,18.19,18.19,0,0,1,2.07,2.4c.14.22.34.48.12.74s-.53.12-.73,0c-1.85-1.51-3.76-3-4.32-5.5-.45-2-.85-4-1.28-6a7.56,7.56,0,0,0-.79-2.39.6.6,0,0,0-.58-.36.59.59,0,0,0-.45.51A4.92,4.92,0,0,0,10,18.38c.23,2.79.55,5.58.84,8.37A7.54,7.54,0,0,0,14,32.39c1,.75,2,1.57,2.94,2.41a3.94,3.94,0,0,1,1.51,2.88c0,.6,0,1.2,0,1.8h5.59C24.06,37.21,24.06,34.94,24.1,32.67Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39.84,16.6c-.16-.54-.55-.63-.94-.17a3.41,3.41,0,0,0-.61,1.5c-.51,2.29-1,4.59-1.49,6.9-.54,2.56-2.47,4.05-4.34,5.59-.19.16-.48.33-.73.06s0-.51.1-.74a13.22,13.22,0,0,1,1.56-1.87,20.28,20.28,0,0,0,2.19-2.53c.14-.21.37-.44.19-.73s-.48-.2-.74-.21a2.24,2.24,0,0,0-1.42.53,66.31,66.31,0,0,0-7,5.75,2.21,2.21,0,0,0-.69,1.7c0,1.36,0,2.72,0,4.07h0c0,1,0,2,0,3h5.51A5.57,5.57,0,0,1,34,34c1-.77,2-1.61,3-2.46A5.63,5.63,0,0,0,38.92,28c.53-3.31.87-6.64,1.07-10A4.33,4.33,0,0,0,39.84,16.6Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"settings\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><g><path fill=\\\"#2A363B\\\" d=\\\"M30.6,31.5V29l-3.2-0.9c-0.2-0.6-0.4-1.2-0.7-1.8l1.6-2.8l-1.8-1.8l-2.7,1.6c-0.5-0.3-1.1-0.6-1.7-0.7l-0.9-3.2h-2.5l-0.9,3.2c-0.6,0.2-1.3,0.4-1.8,0.8l-2.7-1.6l-1.8,1.8l1.6,2.7c-0.3,0.6-0.6,1.2-0.7,1.8L9,29v2.5l3.3,0.9c0.2,0.6,0.4,1.2,0.7,1.7l-1.6,2.7l1.8,1.8l2.8-1.6c0.6,0.3,1.2,0.6,1.8,0.7l0.9,3.2h2.5l0.9-3.2c0.6-0.2,1.2-0.4,1.7-0.7l2.8,1.6l1.8-1.8l-1.6-2.8c0.3-0.5,0.5-1.1,0.7-1.7L30.6,31.5z M19.8,33.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1C22.9,31.9,21.5,33.3,19.8,33.3z\\\"/></g><g><path fill=\\\"#2A363B\\\" d=\\\"M40.6,13.5l-2.3-0.1c-0.2-0.3-0.5-0.7-0.8-0.9c-0.3-0.3-0.6-0.5-0.9-0.8l-0.1-2.3L34.8,9l-1,1.9c-1,0-1.9,0.2-2.8,0.7l-2.1-1.2l-1.2,1.2l1.2,2c-0.5,0.9-0.8,1.9-0.7,2.9l-1.9,1l0.4,1.7l2.3,0.1c0.2,0.3,0.5,0.7,0.7,0.9c0.3,0.3,0.6,0.5,0.9,0.7l0.1,2.3l1.7,0.4l1-1.9c1,0,2-0.2,2.9-0.7l2,1.2l1.2-1.2L38.4,19c0.5-0.9,0.7-1.8,0.7-2.8l1.9-1L40.6,13.5z M35.3,18.1c-0.9,0.9-2.5,0.9-3.4,0c-0.9-0.9-0.9-2.5,0-3.4c0.9-0.9,2.5-0.9,3.4,0C36.3,15.6,36.3,17.1,35.3,18.1z\\\"/></g></g><path fill=\\\"#2A363B\\\" d=\\\"M25.3,24.9c-0.1,0-0.3-0.1-0.4-0.1c-0.1,0.1-0.1,0.2-0.2,0.3C24.9,25.1,25.1,25,25.3,24.9z\\\"/></svg>\",\n \"Shop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"12.68\\\" y=\\\"13.92\\\" width=\\\"24.35\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.2 16.25 28.1 16.25 28.82 20.96 26.2 20.96 26.2 16.25\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"30.27 16.25 32.45 16.25 34.38 20.96 31.48 20.96 30.27 16.25\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"34.62 16.25 36.8 16.25 39.7 20.96 37.04 20.96 34.62 16.25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.16\\\" y=\\\"22.29\\\" width=\\\"2.66\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><rect x=\\\"31.48\\\" y=\\\"22.29\\\" width=\\\"2.9\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"23.5 16.25 21.61 16.25 20.88 20.96 23.5 20.96 23.5 16.25\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.43 16.25 17.25 16.25 15.32 20.96 18.22 20.96 19.43 16.25\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"15.08 16.25 12.9 16.25 10 20.96 12.66 20.96 15.08 16.25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"20.88\\\" y=\\\"22.29\\\" width=\\\"2.66\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><rect x=\\\"15.32\\\" y=\\\"22.29\\\" width=\\\"2.9\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"22.29\\\" width=\\\"2.66\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><rect x=\\\"37.1\\\" y=\\\"22.29\\\" width=\\\"2.9\\\" height=\\\"1.45\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.85,26.58m-1-1.5v9.5h-20v-9.5h-1.5v11h23v-11Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"shopping_cart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path style= \\\"fill: #484f60\\\" d=\\\"M96 0C107.5 0 117.4 8.19 119.6 19.51L121.1 32H541.8C562.1 32 578.3 52.25 572.6 72.66L518.6 264.7C514.7 278.5 502.1 288 487.8 288H170.7L179.9 336H488C501.3 336 512 346.7 512 360C512 373.3 501.3 384 488 384H159.1C148.5 384 138.6 375.8 136.4 364.5L76.14 48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0H96zM128 464C128 437.5 149.5 416 176 416C202.5 416 224 437.5 224 464C224 490.5 202.5 512 176 512C149.5 512 128 490.5 128 464zM512 464C512 490.5 490.5 512 464 512C437.5 512 416 490.5 416 464C416 437.5 437.5 416 464 416C490.5 416 512 437.5 512 464z\\\"/></svg>\",\n \"shopping_cart_nr\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-2.87.34a8.92,8.92,0,0,1,.08,1.16c0,.26,0,.52,0,.78l.42-.05a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l.87-.11a9.27,9.27,0,0,1-.47-2.05l-3,.35a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"23.31\\\" cy=\\\"19.4\\\" r=\\\"7.5\\\" fill=\\\"#484f60\\\"/><text transform=\\\"translate(20.46 22.82)\\\" font-size=\\\"10\\\" fill=\\\"#484f60\\\" font-family=\\\"Quicksand-Regular, Quicksand\\\">3</text></svg>\",\n \"shortcut\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M23.51,13.64A14.9,14.9,0,0,0,8.62,28.54h3.72a11.16,11.16,0,0,1,21.91-3l3.42-1.59A14.92,14.92,0,0,0,23.51,13.64Z\\\" fill=\\\"#484f60\\\"/><polyline points=\\\"36.98 21.51 41.1 19.58 37.84 28.54 28.89 25.28 33.01 23.35\\\" fill=\\\"#484f60\\\"/><path d=\\\"M13.46,33.38a3,3,0,1,1-3-3A3,3,0,0,1,13.46,33.38Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.14,33.38a3,3,0,1,1-3-3A3,3,0,0,1,23.14,33.38Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M32.82,33.38a3,3,0,1,1-3-3A3,3,0,0,1,32.82,33.38Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><path d=\\\"M42.5,33.38a3,3,0,1,1-3-3A3,3,0,0,1,42.5,33.38Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"SinglePerson\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(12 10)\\\"><path d=\\\"M 19.357 0 L 18.768 0 C 17.44 1.885 14.674 4.129 12.098 4.129 C 9.52 4.129 6.752 1.885 5.426 0 L 4.836 0 C 2.164 0 0 2.515 0 4.644 L 3.225 8.191 C 3.225 10.319 5.395 17.969 8.064 17.969 L 16.129 17.969 C 18.803 17.969 20.971 10.319 20.971 8.191 L 24.197 4.644 C 24.197 2.515 22.027 0 19.357 0 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.901 12.031)\\\" /><path d=\\\"M 14.842 6.166 C 14.842 9.427 11.52 13.099 7.422 13.099 C 3.324 13.099 0 9.427 0 6.166 C 0 2.905 3.324 0 7.422 0 C 11.52 0 14.842 2.905 14.842 6.166 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(5.577 0.001)\\\" /></g></svg>\",\n \"skills\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.29,33.16h-4c.3.57.55,1.1.85,1.59a11.57,11.57,0,0,0,2.88,3.08.64.64,0,0,0,.36.11h1.45v1.14H20.25V38H21.6a.47.47,0,0,0,.31-.08,12.92,12.92,0,0,0,3.35-4.27l.12-.29s0-.06,0-.12l-.33,0H22.12c-.24,0-.32-.06-.31-.31,0-.48,0-1,0-1.45a.32.32,0,0,0-.28-.38,7.84,7.84,0,0,1-5-4l-.2-.42a.71.71,0,0,1,0-.12h5.47V25.26H36.29v1.25c0,.55,0,.55.52.71A8.58,8.58,0,0,1,40,29.09c-.64.47-1.24.94-1.87,1.34a14,14,0,0,1-1.59.81c-.18.09-.25.16-.25.36C36.3,32.1,36.29,32.61,36.29,33.16Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23,17.88,10.86,23.32,10,21.41,22.1,16,21,12.18,23,11.25c.06,0,.19,0,.25.09q1.78,1.73,3.54,3.47a.85.85,0,0,1,.18.32c.44,1.44.87,2.88,1.31,4.31.07.22,0,.31-.17.41-1,.41-1.9.84-2.85,1.28-.21.1-.3.05-.42-.14-.56-.93-1.13-1.85-1.7-2.78C23.1,18.11,23,18,23,17.88Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"slider_panel\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M311.1,407.5H286.9a1.9,1.9,0,0,0-1.9,1.9v23.2a1.9,1.9,0,0,0,1.9,1.9h24.1a1.9,1.9,0,0,0,1.9-1.9V409.4A1.9,1.9,0,0,0,311.1,407.5Zm-16.4,21.2h-2.4v2.9h-2.9v-2.9h-2.4v-4.8h2.4V411.3h2.9v12.6h2.4v4.8Zm8.2-9.7h-2.4v12.6h-2.9V419.1h-2.4v-4.8h2.4v-2.9h2.9v2.9h2.4v4.8Zm8.2,6.8h-2.4v5.8h-2.9v-5.8h-2.4V421h2.4v-9.7h2.9V421h2.4v4.8Z\\\" transform=\\\"translate(-274 -396)\\\" fill=\\\"#fff\\\"/><rect x=\\\"14.4\\\" y=\\\"29.3\\\" width=\\\"4.8\\\" height=\\\"1.93\\\" fill=\\\"#fff\\\"/><rect x=\\\"22.6\\\" y=\\\"19.7\\\" width=\\\"4.8\\\" height=\\\"1.93\\\" fill=\\\"#fff\\\"/><rect x=\\\"30.8\\\" y=\\\"26.5\\\" width=\\\"4.8\\\" height=\\\"1.93\\\" fill=\\\"#fff\\\"/></svg>\",\n \"slide_in\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M12,12.17H38v26H12ZM36.76,13.4H13.24V36.93H36.76Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.71 23.42 28.41 23.42 28.41 20.43 24.13 24.72 28.41 29.01 28.41 26.02 33.71 26.02 33.71 23.42\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12\\\" y=\\\"12.17\\\" width=\\\"9\\\" height=\\\"26\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"smaller_than\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.37,36.19,16.72,26.61a.48.48,0,0,1-.23-.42V23.81a.48.48,0,0,1,.23-.42l14.65-9.58a.5.5,0,0,1,.69.14l1.37,2.1a.49.49,0,0,1-.15.69l-12,7.84a.5.5,0,0,0,0,.84l12,7.84a.49.49,0,0,1,.15.69l-1.37,2.1A.5.5,0,0,1,31.37,36.19Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"small_tiles\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"12.5\\\" y=\\\"12.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.5\\\" y=\\\"21.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"12.5\\\" y=\\\"30.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.5\\\" y=\\\"12.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.5\\\" y=\\\"21.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.5\\\" y=\\\"30.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"30.5\\\" y=\\\"12.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"30.5\\\" y=\\\"21.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"30.5\\\" y=\\\"30.67\\\" width=\\\"7\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"sort_asc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"21.99 31.3 21.99 12.67 17.86 12.67 17.86 31.3 17.86 31.3 13.56 31.3 19.93 37.67 26.29 31.3 21.99 31.3\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,15.17a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V15a2.71,2.71,0,0,1-.34.26c-.13.09-.28.18-.44.27l-.49.24-.51.2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,30.88a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74,6.66,6.66,0,0,1-.61.72l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87,6.51,6.51,0,0,1,.63-.76c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.45,1.45,0,0,0,.12-.59,1.43,1.43,0,0,0-.11-.58,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.2-.52-.75a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,30.88Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"sort_desc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.29 19.03 19.93 12.67 13.56 19.03 17.86 19.03 17.86 37.67 21.99 37.67 21.99 19.03 21.99 19.03 26.29 19.03\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,15.75a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74A6.66,6.66,0,0,1,35,18l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87A6.51,6.51,0,0,1,33,18.7c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.46,1.46,0,0,0,.12-.6,1.41,1.41,0,0,0-.11-.57,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.19-.52-.74a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,15.75Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,30.41a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V30.25a4.61,4.61,0,0,1-.78.53c-.15.08-.32.17-.49.24l-.51.2Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"Star\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M26.23,33.67a2.32,2.32,0,0,0-2.46,0L17,38.41c-.68.47-1,.21-.8-.58l2.41-7.94a2.34,2.34,0,0,0-.77-2.34l-6.6-5c-.66-.5-.53-.92.3-.94l8.29-.17a2.33,2.33,0,0,0,2-1.44l2.72-7.84c.27-.78.71-.78,1,0L28.21,20a2.33,2.33,0,0,0,2,1.44l8.29.17c.83,0,1,.44.3.94l-6.6,5a2.34,2.34,0,0,0-.77,2.34l2.41,7.94c.23.79-.12,1.05-.8.58Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"star_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M684,399a14,14,0,1,1,14-14,14,14,0,0,1-14,14m0,1a15,15,0,1,0-15-15,15,15,0,0,0,15,15Z\\\" transform=\\\"translate(-658 -359)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M685.23,390.55a2.32,2.32,0,0,0-2.46,0l-3.1,2.16c-.68.47-1,.21-.8-.58l1.09-3.61a2.32,2.32,0,0,0-.76-2.34l-3-2.28c-.66-.5-.52-.92.3-.94l3.78-.08a2.32,2.32,0,0,0,2-1.45l1.24-3.57c.27-.78.71-.78,1,0l1.24,3.57a2.32,2.32,0,0,0,2,1.45l3.78.08c.82,0,1,.44.3.94l-3,2.28a2.32,2.32,0,0,0-.76,2.34l1.09,3.61c.24.79-.12,1.05-.8.58Z\\\" transform=\\\"translate(-658 -359)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"status_active\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"23.22 32.18 26 28.64 28.55 32.46 34.59 22.19 40 22.19 28.59 40 23.22 32.18\\\" fill=\\\"#484f60\\\"/><path d=\\\"M22.74,30.36H12.14V28.21H24.43l1.66-2.12,2.38,3.55.82-1.39V10H10V40h7.5V33.57h4.29V40h5l-5.41-7.88ZM12.14,12.14h15v2.15h-15Zm0,5.36h15v2.14h-15Zm0,5.36h15V25h-15Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\",\n \"status_adoption\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10c3.83,0,6.93,2.72,6.93,5.76s-3.1,6.48-6.93,6.48-6.94-3.43-6.94-6.48S21.17,10,25,10Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.26,30.14c-.62-2.17-1.08-4.39-1.79-6.53a3.82,3.82,0,0,0-1.61-1.95l-.58-.28c-1.37,1.78-3.9,3.72-6.28,3.72s-5.17-2.14-6.49-4A3,3,0,0,0,16.75,23c-.92,2.84-1.49,5.81-2.16,8.74a1.9,1.9,0,0,0,.81,2c1,.77,2,1.47,3.19,2.28-.44,1.33-.88,2.69-1.32,4h16c-.29-.93-.58-1.86-.86-2.79-.49-1.57-.52-1.62.87-2.46A3.7,3.7,0,0,0,35.26,30.14Zm-4.2,1A7.8,7.8,0,0,1,30,32a7.15,7.15,0,0,1-1.13.59,6,6,0,0,1-.59.22,8.53,8.53,0,0,1-1.26.27h0a9.48,9.48,0,0,1-1.6,0,15.15,15.15,0,0,1-1.65-.19,1.91,1.91,0,0,1-.44-.15c-.43-.22-.87-.6-1.47-1a3.64,3.64,0,0,1-1,0,2.7,2.7,0,0,1-.49-.12,2.32,2.32,0,0,1-.87-.53,3,3,0,0,1-.81-1.64,2.49,2.49,0,0,1,.68-2.18,2.57,2.57,0,0,1,1.2-.73,2.33,2.33,0,0,1,1.55.05,3.69,3.69,0,0,1,1.86,2.36,2.62,2.62,0,0,1,1.66-.48,3.88,3.88,0,0,1,.75.11,8.29,8.29,0,0,1,.93.29l1.85.71L30,30c.4.16.81.34,1.26.54l.24.1C31.38,30.85,31.23,31,31.06,31.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.32,31.72a2.32,2.32,0,0,1-.87-.53A2.32,2.32,0,0,0,20.32,31.72Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.54,30.67c-.16.18-.31.34-.48.5.17-.16.32-.32.48-.5l-.24-.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.41,33.11a9.48,9.48,0,0,0,1.6,0A9.48,9.48,0,0,1,25.41,33.11Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.81,31.84a3.64,3.64,0,0,0,1,0c.6.36,1,.74,1.47,1-.43-.22-.87-.6-1.47-1A3.64,3.64,0,0,1,20.81,31.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.12,29.68,27.27,29a8.29,8.29,0,0,0-.93-.29,8.29,8.29,0,0,1,.93.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.93,29.05h0a3.69,3.69,0,0,0-1.86-2.36A3.69,3.69,0,0,1,23.93,29.05Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"status_fostercare\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M18.5,10.16c2.88,0,5.21,2,5.21,4.33a5.33,5.33,0,0,1-5.21,4.87,5.34,5.34,0,0,1-5.22-4.87C13.28,12.2,15.62,10.16,18.5,10.16Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.5,10.16c2.88,0,5.21,2,5.21,4.33a5.23,5.23,0,0,1-10.43,0C26.28,12.2,28.62,10.16,31.5,10.16Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23,21.87h4A3.54,3.54,0,0,0,25,19,3.54,3.54,0,0,0,23,21.87Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.6,18.61h-.42c-.93,1.32-2.87,2.9-4.68,2.9s-3.76-1.58-4.69-2.9H26.4A3.18,3.18,0,0,0,25,19a3.54,3.54,0,0,1,2,2.92H23A3.54,3.54,0,0,1,25,19a3.18,3.18,0,0,0-1.4-.34h-.42c-.93,1.32-2.87,2.9-4.68,2.9s-3.76-1.58-4.69-2.9H13.4A3.54,3.54,0,0,0,10,21.87l2.27,2.49c0,1.5,2.52,15.48,4.4,15.48h6.5C22,39.84,21,36.37,21,35.4L19.5,33.79a2.3,2.3,0,0,1,2.2-2.12H22a4.3,4.3,0,0,0,3,1.88,4.3,4.3,0,0,0,3-1.88h.27a2.31,2.31,0,0,1,2.2,2.12L29,35.4c0,1-1,4.44-2.2,4.44h6.5c1.88,0,4.4-14,4.4-15.48L40,21.87A3.55,3.55,0,0,0,36.6,18.61ZM25,32.32a4.09,4.09,0,0,1-4-3.73c0-1.76,1.79-3.33,4-3.33s4,1.57,4,3.33A4.09,4.09,0,0,1,25,32.32Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"status_ill\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><g opacity=\\\"0.5\\\"><polygon points=\\\"29.79 40.5 29.79 39.49 28.97 40.5 29.79 40.5\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M684,389.82H671.14v-2.14h11.1l-2.6-3.21h-8.5v-2.14h6.77l-.8-1h9.15l2,2.51V369.47H669v30h7.5V393h4.29v3.38l4.26-5.27Zm-12.83-18.21h15v2.14h-15Zm0,5.36h15v2.14h-15Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4d5050\\\"/></g><polygon points=\\\"35.21 40.5 31.13 35.45 27.04 40.5 21.75 40.5 28.48 32.18 21.75 23.87 27.04 23.87 31.13 28.91 35.21 23.87 40.5 23.87 33.77 32.18 40.5 40.5 35.21 40.5\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"status_leave\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.94,12h-4v2a2,2,0,1,1-4.08,0V12H21.17v2a2,2,0,1,1-4.08,0V12h-4a1.2,1.2,0,0,0-1.19,1.2V18H38.14V13.16A1.2,1.2,0,0,0,36.94,12Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.14,20.5v16L34.65,39H13.05a.2.2,0,0,1-.19-.2V20.5H37.14m1-1H11.86V38.8A1.2,1.2,0,0,0,13.05,40h22l3.08-3.08V19.5Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.24\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.97\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"24.37\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"29.5\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"34.62\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.18\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.75\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\"/><rect x=\\\"31.32\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.18,29.34a13.36,13.36,0,0,1-3-3.65l.87-.5a12.36,12.36,0,0,0,2.71,3.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.45,28.73l-1-.24c.15-.6.9-1.23,2-2.11a7.56,7.56,0,0,0,1.21-1.07l1,.2c-.06.45-.55.85-1.57,1.65C21.57,27.6,20.53,28.42,20.45,28.73Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.46,29.34a13.47,13.47,0,0,1-3-3.65l.87-.5A12.58,12.58,0,0,0,30,28.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.72,28.73l-1-.24c.16-.6.91-1.23,2-2.11A7.74,7.74,0,0,0,29,25.31l1,.2c-.06.45-.55.85-1.57,1.65C27.84,27.6,26.8,28.42,26.72,28.73Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36,29.34a13.36,13.36,0,0,1-3-3.65l.87-.5a12.36,12.36,0,0,0,2.71,3.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M33.23,28.73l-1-.24c.15-.6.9-1.23,2-2.11a7.13,7.13,0,0,0,1.21-1.07l1,.2c-.06.45-.55.85-1.57,1.65C34.35,27.6,33.31,28.42,33.23,28.73Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17.19,34.47a13.46,13.46,0,0,1-3-3.65l.87-.5a12.63,12.63,0,0,0,2.7,3.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.46,33.86l-1-.25c.15-.59.9-1.22,2-2.11a8.72,8.72,0,0,0,1.21-1.06l1,.19c-.06.45-.56.86-1.58,1.66C15.58,32.73,14.54,33.55,14.46,33.86Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.05,34.47a13.46,13.46,0,0,1-3-3.65l.87-.5a12.52,12.52,0,0,0,2.71,3.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.32,33.86l-1-.25c.15-.59.9-1.22,2-2.11a8.16,8.16,0,0,0,1.21-1.06l1,.19c-.06.45-.55.86-1.57,1.66C21.44,32.73,20.4,33.55,20.32,33.86Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"status_pregnancy\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M682.38,393.69a7.48,7.48,0,0,1,3.35-5.39,1.29,1.29,0,0,0,.48-1.82,8.11,8.11,0,0,0-3.66-3.86c-1.19-.63-1.6-.34-2.21.48a6.92,6.92,0,0,1-5.14,3.08,6.66,6.66,0,0,0,.62,13.29A6.45,6.45,0,0,0,682.38,393.69Zm-10.45,2.42a4.82,4.82,0,0,1-1.26-3.4,4.75,4.75,0,0,1,1.33-3.27c.22-.22.69-.18,1-.26,0,.34.05.77-.12,1a3.94,3.94,0,0,0,0,5.22c.17.24.07.66.09,1C672.63,396.32,672.15,396.34,671.93,396.12Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M692.65,390.82a12.66,12.66,0,0,0-1.36-3.28,32.24,32.24,0,0,0-10.1-10.27,12.85,12.85,0,0,0-3.15-1.41c-1.33-.41-2.07.34-1.8,1.72a12.81,12.81,0,0,0,2.46,4.85c.09-.11.19-.2.29-.33a3.11,3.11,0,0,1,2.5-1.5,3.93,3.93,0,0,1,1.84.53,9.76,9.76,0,0,1,4.4,4.64,3,3,0,0,1-1,3.89c-.17.12-.29.25-.44.37a11.94,11.94,0,0,0,4.76,2.44C692.29,392.65,693,392,692.65,390.82Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M694.1,381.5a6.09,6.09,0,1,0-7.07-3.85c.48,1.31,1.12,1.85,1.86,1.48,1.12-.56.71-1.4.3-2.2a.91.91,0,0,1,0-.11,3.82,3.82,0,1,1,4.81,2.38l-.36.12Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M690.36,378.72a2,2,0,0,1-1.1,1.17,1.82,1.82,0,0,1-.82.2c-.94,0-1.68-.72-2.2-2.15a7.07,7.07,0,0,1-.31-1.14,5.12,5.12,0,0,0-1.59,1,33.85,33.85,0,0,1,7.16,7.29,5.11,5.11,0,0,0-1.37-8.14A2.36,2.36,0,0,1,690.36,378.72Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"stock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.19 27.13 31.78 23.88 37.39 27.11 31.79 30.35 26.19 27.13\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"32.39 31.38 37.99 28.14 38 34.61 32.41 37.85 32.39 31.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25.6 34.63 25.59 28.16 31.2 31.39 31.21 37.85 25.6 34.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"12.6 27.15 18.19 23.91 23.8 27.13 18.2 30.37 12.6 27.15\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"18.8 31.41 24.39 28.16 24.41 34.63 18.81 37.88 18.8 31.41\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"12.01 34.65 12 28.19 17.61 31.41 17.62 37.88 12.01 34.65\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"19.37 15.37 24.96 12.12 30.57 15.35 24.98 18.59 19.37 15.37\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.58 19.62 31.17 16.38 31.18 22.85 25.59 26.09 25.58 19.62\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"18.79 22.87 18.77 16.4 24.38 19.63 24.39 26.09 18.79 22.87\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"stock_management\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><polygon fill=\\\"#2A363B\\\" points=\\\"20,32.1 25,29.2 29.9,32.1 25,34.9 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,35.9 30.5,33 30.5,38.7 25.5,41.6 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,38.7 19.5,33 24.5,35.9 24.5,41.6 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"26,21.7 31,18.8 35.9,21.7 31,24.5 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"31.5,25.4 36.5,22.6 36.5,28.3 31.5,31.2 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,28.3 25.5,22.6 30.5,25.4 30.5,31.2 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"14,21.7 19,18.8 23.9,21.7 19,24.5 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,25.5 24.4,22.6 24.5,28.3 19.5,31.2 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"13.5,28.3 13.5,22.6 18.4,25.5 18.5,31.2 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"8,32.1 13,29.2 17.9,32.1 13,35 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"13.5,35.9 18.5,33 18.5,38.7 13.5,41.6 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"7.5,38.7 7.5,33 12.5,35.9 12.5,41.6 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"32.1,32.1 37,29.2 42,32 37,34.9 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"37.5,35.8 42.5,33 42.5,38.7 37.6,41.5 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"31.5,38.7 31.5,33 36.5,35.8 36.5,41.5 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"20,11.3 25,8.4 29.9,11.3 25,14.1 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,15 30.4,12.2 30.4,17.9 25.5,20.8 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,17.9 19.5,12.2 24.4,15 24.4,20.8 \\\"/></g></svg>\",\n \"storage\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"25.9 25.28 30.14 22.82 34.39 25.26 30.15 27.72 25.9 25.28\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"30.6 28.5 34.84 26.05 34.85 30.95 30.61 33.4 30.6 28.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25.46 30.96 25.45 26.06 29.7 28.5 29.7 33.41 25.46 30.96\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"15.6 25.3 19.84 22.84 24.09 25.28 19.85 27.74 15.6 25.3\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"20.3 28.52 24.54 26.07 24.55 30.96 20.31 33.42 20.3 28.52\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"15.16 30.98 15.15 26.08 19.4 28.52 19.41 33.42 15.16 30.98\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"20.73 16.37 24.97 13.91 29.22 16.35 24.98 18.81 20.73 16.37\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.44 19.59 29.68 17.14 29.68 22.03 25.45 24.49 25.44 19.59\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"20.29 22.05 20.28 17.15 24.53 19.59 24.54 24.5 20.29 22.05\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"40 36.42 10 36.42 10 16.66 11.43 16.66 11.43 35 38.57 35 38.57 16.66 40 16.66 40 36.42\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"supervisor\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M18.14,26.63l.69-.84c.17-.22.35-.44.53-.65A.46.46,0,0,1,19.6,25a1.59,1.59,0,0,1,1,.19,1.07,1.07,0,0,1,.52.84c.05.8.08,1.61.12,2.41a.57.57,0,0,1,0,.12H15c0-.22,0-.43,0-.64,0-.6.08-1.19.1-1.79A1.18,1.18,0,0,1,16.27,25a.85.85,0,0,1,.86.39c.24.35.54.67.81,1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.26,25.32H21.62v-.76h1.63V17.12h2.83v.74h-2v6.7h2v.75h-2V32h2v.76H23.26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M33,27.62H28.18v-.16c0-.45.06-.89.08-1.34a.61.61,0,0,1,.35-.53,1.76,1.76,0,0,1,.63-.15c.89,0,1.77,0,2.65,0a1.45,1.45,0,0,1,.47.08.71.71,0,0,1,.52.7c0,.41,0,.82.08,1.23Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.17,34c0-.38,0-.74.07-1.09,0-.12,0-.23,0-.34a.63.63,0,0,1,.39-.62,1.89,1.89,0,0,1,.58-.14h2.68a1.32,1.32,0,0,1,.44.08.71.71,0,0,1,.53.7c0,.41,0,.81.07,1.22A1.15,1.15,0,0,1,33,34Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.17,21.1c0-.19,0-.36,0-.53s0-.56.06-.84a.76.76,0,0,1,.68-.79,1.87,1.87,0,0,1,.34,0h2.58a1.19,1.19,0,0,1,.71.19.59.59,0,0,1,.29.47c0,.48.07,1,.1,1.45,0,0,0,0,0,.08Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,22.9a1.6,1.6,0,0,1-1.6,1.62,1.63,1.63,0,0,1-1.63-1.61,1.61,1.61,0,0,1,1.63-1.61A1.58,1.58,0,0,1,19.74,22.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.33,23.78a1.24,1.24,0,1,1,1.25,1.27A1.25,1.25,0,0,1,29.33,23.78Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.33,17.26a1.24,1.24,0,1,1,1.23,1.27A1.24,1.24,0,0,1,29.33,17.26Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.33,30.16a1.24,1.24,0,1,1,2.48,0,1.24,1.24,0,1,1-2.48,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,11A14,14,0,1,1,11,25,14,14,0,0,1,25,11m0-1A15,15,0,1,0,40,25,15,15,0,0,0,25,10Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"supplier\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><polygon fill=\\\"#29363E\\\" points=\\\"18.6,12.9 25.5,10.1 32.4,12.9 25.5,15.8 \\\"/><path fill=\\\"#29363E\\\" d=\\\"M33.2,14.2L26.2,17l0,8l0.2-0.1c0,0,0.1,0,0.1,0l0.7-0.3c-0.4-0.8-0.6-1.6-0.6-2.5c0-3,3-5.6,6.4-5.6c0,0,0,0,0.1,0L33.2,14.2z\\\"/><polyline fill=\\\"#29363E\\\" points=\\\"18,17.6 24.8,24.3 24.8,17.1 17.8,14.2 17.8,17.4 \\\"/><path fill=\\\"#29363E\\\" d=\\\"M38,26.1h-0.4c-0.9,1.3-2.7,2.8-4.4,2.8c-1.7,0-3.6-1.5-4.4-2.8h-0.4c-0.8,0-1.4,0.3-2,0.8l3.7,3.7l-2.5,2.5c0.5,2,1.6,5,3,5h5.4c1.8,0,3.2-5.1,3.2-6.5l2.2-2.4C41.2,27.8,39.7,26.1,38,26.1z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M38.1,22.2c0,2.2-2.2,4.6-4.9,4.6c-2.7,0-4.9-2.4-4.9-4.6c0-2.2,2.2-4.1,4.9-4.1C35.9,18.1,38.1,20,38.1,22.2z\\\"/><g><polygon fill=\\\"#29363E\\\" points=\\\"27.9,30.6 18.5,21.2 18.5,27 8.8,27 8.8,34.1 18.5,34.1 18.5,39.9 \\\"/></g></g></svg>\",\n \"surgery\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><path fill=\\\"#4C4C4C\\\" d=\\\"M25.5,38.8c-7.2,0-13-5.8-13-13c0-6.4,4.6-11.8,10.9-12.8l0.4,0.9c-0.8,0.6-1.2,1.5-1.2,2.4c0,1.7,1.3,3,3,3s3-1.3,3-3c0-1-0.4-1.8-1.2-2.4l0.4-0.9c6.3,1,10.9,6.4,10.9,12.8C38.5,32.9,32.7,38.8,25.5,38.8z M22,14.3c-5,1.5-8.5,6.1-8.5,11.5c0,6.6,5.4,12,12,12s12-5.4,12-12c0-5.4-3.5-10-8.5-11.5c0.3,0.6,0.5,1.3,0.5,2c0,2.2-1.8,4-4,4s-4-1.8-4-4C21.5,15.5,21.7,14.9,22,14.3z\\\"/><path fill=\\\"#4C4C4C\\\" d=\\\"M30,34.3h-9c-0.8,0-1.5-0.7-1.5-1.5v-5c0-0.8,0.7-1.5,1.5-1.5h9c0.8,0,1.5,0.7,1.5,1.5v5C31.5,33.6,30.8,34.3,30,34.3z\\\"/><rect x=\\\"15.8\\\" y=\\\"23.1\\\" transform=\\\"matrix(0.2747 -0.9615 0.9615 0.2747 -13.7537 35.2664)\\\" fill=\\\"#4C4C4C\\\" width=\\\"1.5\\\" height=\\\"7.3\\\"/><rect x=\\\"30.9\\\" y=\\\"26\\\" transform=\\\"matrix(0.9615 -0.2749 0.2749 0.9615 -6.0243 10.5144)\\\" fill=\\\"#4C4C4C\\\" width=\\\"7.3\\\" height=\\\"1.5\\\"/><rect x=\\\"15.8\\\" y=\\\"32.5\\\" transform=\\\"matrix(0.9715 -0.237 0.237 0.9715 -7.3694 5.2014)\\\" fill=\\\"#4C4C4C\\\" width=\\\"4.2\\\" height=\\\"1.5\\\"/><rect x=\\\"32.3\\\" y=\\\"31.1\\\" transform=\\\"matrix(0.2368 -0.9716 0.9716 0.2368 -7.0792 57.4882)\\\" fill=\\\"#4C4C4C\\\" width=\\\"1.5\\\" height=\\\"4.2\\\"/><rect x=\\\"30.8\\\" y=\\\"14.2\\\" transform=\\\"matrix(5.361340e-03 -1 1 5.361340e-03 14.5533 48.1979)\\\" fill=\\\"#4C4C4C\\\" width=\\\"1.5\\\" height=\\\"5.1\\\"/><rect x=\\\"16.9\\\" y=\\\"16\\\" transform=\\\"matrix(1 -5.208263e-03 5.208263e-03 1 -8.714692e-02 0.1018)\\\" fill=\\\"#4C4C4C\\\" width=\\\"5.1\\\" height=\\\"1.5\\\"/><g><path fill=\\\"#4C4C4C\\\" d=\\\"M22,24c-0.5,0-1,0.1-1-1s0.5-2,1-2s1,0.9,1,2S22.5,24,22,24z\\\"/><path fill=\\\"#4C4C4C\\\" d=\\\"M22,24.2c-0.7,0-1.3,0-1.3-1.3s0.6-2.3,1.3-2.3s1.3,1,1.3,2.3S22.7,24.2,22,24.2z M22,21.2c-0.3,0-0.8,0.7-0.8,1.8s0.5,0.8,0.8,0.8s0.8,0.3,0.8-0.8S22.3,21.2,22,21.2z\\\"/></g><g><path fill=\\\"#4C4C4C\\\" d=\\\"M29,24c-0.5,0-1,0.1-1-1s0.5-2,1-2s1,0.9,1,2S29.5,24,29,24z\\\"/><path fill=\\\"#4C4C4C\\\" d=\\\"M29,24.2c-0.7,0-1.3,0-1.3-1.3s0.6-2.3,1.3-2.3s1.3,1,1.3,2.3S29.7,24.2,29,24.2z M29,21.2c-0.3,0-0.8,0.7-0.8,1.8s0.5,0.8,0.8,0.8s0.8,0.3,0.8-0.8S29.3,21.2,29,21.2z\\\"/></g><path fill=\\\"#4C4C4C\\\" d=\\\"M25.5,20.3c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S27.7,20.3,25.5,20.3z\\\"/></g></svg>\",\n \"tablechart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"12.67\\\" width=\\\"7.5\\\" height=\\\"25\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"17.5\\\" y=\\\"12.67\\\" width=\\\"22.5\\\" height=\\\"5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"10\\\" y=\\\"37.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"27.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"17.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"12.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"22.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"32.17\\\" width=\\\"30\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.5\\\" y=\\\"12.67\\\" width=\\\"1\\\" height=\\\"25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"39.5\\\" y=\\\"12.67\\\" width=\\\"1\\\" height=\\\"25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"12.67\\\" width=\\\"1\\\" height=\\\"25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"12.67\\\" width=\\\"1\\\" height=\\\"25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"32\\\" y=\\\"12.67\\\" width=\\\"1\\\" height=\\\"25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"tag\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M40,29.15v-.68a5.28,5.28,0,0,0-1.34-3.25L24.78,11.34A5.34,5.34,0,0,0,21.53,10H11.9A1.91,1.91,0,0,0,10,11.9v9.63a5.28,5.28,0,0,0,1.34,3.25L25.22,38.66A5.28,5.28,0,0,0,28.47,40h.68a5.28,5.28,0,0,0,3.24-1.34l6.27-6.27A5.28,5.28,0,0,0,40,29.15ZM13.13,16.72a2.54,2.54,0,1,1,3.59,0A2.55,2.55,0,0,1,13.13,16.72Zm15.9,19L17.84,24.55l1.34-1.34L30.37,34.4Zm2.69-2.69L20.52,21.87l1.35-1.35,11.19,11.2Zm2.68-2.69L23.21,19.18l1.34-1.34L35.75,29Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"talk_too_much\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><ellipse cx=\\\"19.4\\\" cy=\\\"28.2\\\" rx=\\\"10.9\\\" ry=\\\"8\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M290,428.4c0.9,2.7-1.6,6.7-8.5,8.3h0c2.8-.9,5.3-5.6,1.1-8.3H290Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M315,414.2c0-4.4-4.9-8-10.9-8s-10.9,3.6-10.9,8v0.2c5.6,0.4,10.1,3.6,11.3,7.7C310.3,422.1,315,418.6,315,414.2Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M306,418.5c-0.9,2.7,1.6,6.7,8.5,8.3h0c-2.8-.9-5.3-5.6-1.1-8.3H306Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"target\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M13.67,25.17c0-.34,0-.67,0-1h-2c0,.33,0,.66,0,1A13.35,13.35,0,0,0,22,38.16V36.09A11.33,11.33,0,0,1,13.67,25.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.93,28.17A11.36,11.36,0,0,1,25,36.5c-.34,0-.67,0-1,0v2c.33,0,.66,0,1,0A13.35,13.35,0,0,0,38,28.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,13.83c.34,0,.67,0,1,.05v-2c-.33,0-.66,0-1,0A13.35,13.35,0,0,0,12,22.17h2.06A11.36,11.36,0,0,1,25,13.83Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.3,26.17c0-.33,0-.67,0-1A13.37,13.37,0,0,0,28,12.17v2.07a11.35,11.35,0,0,1,8.33,10.93c0,.33,0,.67,0,1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,19.17a6.63,6.63,0,0,1,1,.08v-2a8.26,8.26,0,0,0-1-.06,8,8,0,0,0-7.41,5h2.22A6,6,0,0,1,25,19.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19,25.17a6.53,6.53,0,0,1,.08-1h-2a8.14,8.14,0,0,0-.06,1,8,8,0,0,0,5,7.41V30.36A6,6,0,0,1,19,25.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.19,28.17a6,6,0,0,1-5.19,3,5.55,5.55,0,0,1-1-.09v2a8.26,8.26,0,0,0,1,.07,8,8,0,0,0,7.41-5Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M32.94,26.17a8.26,8.26,0,0,0,.06-1,8,8,0,0,0-5-7.42V20a6,6,0,0,1,3,5.2,6.63,6.63,0,0,1-.08,1Z\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"25\\\" cy=\\\"25.17\\\" r=\\\"2.67\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9\\\" y=\\\"24.17\\\" width=\\\"32\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24\\\" y=\\\"9.17\\\" width=\\\"2\\\" height=\\\"32\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"task\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M33.82,13.53h-.88v1.32h.88a.44.44,0,0,1,.44.44v23a.44.44,0,0,1-.44.44H16.18a.44.44,0,0,1-.44-.44v-23a.44.44,0,0,1,.44-.44h.88V13.53h-.88a1.76,1.76,0,0,0-1.77,1.76v23A1.76,1.76,0,0,0,16.18,40H33.82a1.76,1.76,0,0,0,1.77-1.76v-23A1.76,1.76,0,0,0,33.82,13.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.65,12.65a2.65,2.65,0,0,1-5.3,0H19.26a.88.88,0,0,0-.88.88v2.65a.89.89,0,0,0,.88.88H30.74a.89.89,0,0,0,.88-.88V13.53a.88.88,0,0,0-.88-.88Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,10a2.65,2.65,0,1,0,2.65,2.65A2.65,2.65,0,0,0,25,10Zm0,4a1.33,1.33,0,1,1,1.32-1.32A1.32,1.32,0,0,1,25,14Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.09\\\" y=\\\"21.51\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.09\\\" y=\\\"27.51\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22.09\\\" y=\\\"33.51\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20.09,33.51v1h-1v-1h1m1-1h-3v3h3v-3Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.44 30.02 17.91 27.86 18.52 27.43 19.33 28.57 20.61 26.02 21.27 26.35 19.44 30.02\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"19.44 24.02 17.91 21.86 18.52 21.43 19.33 22.57 20.61 20.02 21.27 20.35 19.44 24.02\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25-1.67A23.35,23.35,0,0,1,1.67-25,23.35,23.35,0,0,1,25-48.33,23.35,23.35,0,0,1,48.33-25,23.35,23.35,0,0,1,25-1.67M25,0A25,25,0,0,0,50-25,25,25,0,0,0,25-50,25,25,0,0,0,0-25,25,25,0,0,0,25,0Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"thick_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"12.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"21.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"30.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"thin_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"14.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"20.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"32.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"three_sixty_view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M10,28.3c0,4,5.36,6.39,11.5,7.05V31.62c-5.56-.63-9.64-2.71-9.64-5.18,0-1.3,1.14-2.49,3-3.43l-.13-.12C11.91,24.1,10,25.91,10,28.3Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.21,22.87a1.59,1.59,0,0,1-.13.13c1.9.93,3.06,2.13,3.06,3.44,0,2.63-4.61,4.81-10.71,5.28l2.27,1.82-2.39,1.91C33.93,35,40,32.56,40,28.3,40,25.9,38.07,24.09,35.21,22.87Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"26.5 33.54 21.5 37.54 21.5 29.54 26.5 33.54\\\" fill=\\\"#484f60\\\"/><path d=\\\"M13.5,19.2s10.7,15.5,23,0C36.5,19.2,26.2,4,13.5,19.2ZM25,24.87a5.59,5.59,0,1,1,5.59-5.59A5.59,5.59,0,0,1,25,24.87Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.45,17.74A2.46,2.46,0,1,1,25,15.29,2.45,2.45,0,0,1,27.45,17.74Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"thumb_bronze\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><g><path fill=\\\"#A06F51\\\" d=\\\"M38.5,27.5c-0.3-0.5-0.2-1.2,0.2-1.6l1.2-1.4c0.4-0.4,0.3-1-0.1-1.4l-1.5-1.1c-0.4-0.3-0.7-1-0.5-1.6l0.5-1.7c0.2-0.5-0.1-1.1-0.7-1.2l-1.8-0.4c-0.5-0.1-1-0.7-1.1-1.2l-0.2-1.8c-0.1-0.5-0.6-0.9-1.1-0.8l-1.8,0.3c-0.5,0.1-1.2-0.2-1.5-0.7l-0.9-1.6c-0.3-0.5-0.9-0.6-1.3-0.3l-1.5,1c-0.5,0.3-1.2,0.3-1.6,0l-1.5-1c-0.5-0.3-1.1-0.2-1.3,0.3L20.9,13c-0.3,0.5-1,0.8-1.5,0.7l-1.8-0.3c-0.5-0.1-1,0.3-1.1,0.8l-0.2,1.8c-0.1,0.5-0.6,1.1-1.1,1.2l-1.8,0.4c-0.5,0.1-0.8,0.7-0.7,1.2l0.5,1.7c0.2,0.5-0.1,1.2-0.5,1.6l-1.5,1.1c-0.4,0.3-0.5,0.9-0.1,1.4l1.2,1.4c0.4,0.4,0.4,1.2,0.2,1.6l-0.9,1.6c-0.3,0.5-0.1,1.1,0.4,1.3l1.6,0.8c0.5,0.2,0.9,0.9,0.8,1.4l-0.2,1.8c0,0.5,0.4,1,0.9,1l1.8,0c0.5,0,1.1,0.4,1.3,1l0.6,1.7c0.2,0.5,0.7,0.8,1.2,0.6L22,38c0.5-0.2,1.2-0.1,1.6,0.3l1.2,1.3c0.4,0.4,1,0.4,1.4,0l1.2-1.3c0.4-0.4,1.1-0.6,1.6-0.3l1.7,0.7c0.5,0.2,1.1,0,1.2-0.6l0.6-1.7c0.2-0.5,0.8-1,1.3-1l1.8,0c0.5,0,1-0.5,0.9-1l-0.2-1.8c0-0.5,0.3-1.2,0.8-1.4l1.6-0.8c0.5-0.2,0.7-0.8,0.4-1.3L38.5,27.5z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g></g><path fill=\\\"#CF8E67\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><g><path fill=\\\"#FFFFFF\\\" d=\\\"M18.5,25.1c1.1-0.2,2.1-0.3,3.2-0.5c-0.4,1.6,0.1,5.2,2,5.5c-0.5,1.7-2.9,0.5-3.7-0.4C19,28.5,18.5,26.7,18.5,25.1\\\"/><path fill=\\\"#FFFFFF\\\" d=\\\"M24.4,29.8c-1.2-0.1-1.8-1.8-2-3c-0.4-2.1,0.3-1.7,1.5-2.9c1-1,2.1-2.2,3.1-3.3c0.5-0.5,2.1-3.4,2.6-2.3c0.9,1.8-2.3,3.4-1,4.8c0.9,0.9,2.4-0.3,3.3,0.2c0.8,0.5,0.9,1.5-0.3,1.7c1,0.6,0.9,1.5-0.1,2c0.7,0.5,0.6,1-0.1,1.4c-0.6,0.4,0.1,1-0.8,1.7C29,31.1,26.1,30.1,24.4,29.8\\\"/></g></g></svg>\",\n \"thumb_gold\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><g><path fill=\\\"#CB9618\\\" d=\\\"M38.5,27.5c-0.3-0.5-0.2-1.2,0.2-1.6l1.2-1.4c0.4-0.4,0.3-1-0.1-1.4l-1.5-1.1c-0.4-0.3-0.7-1-0.5-1.6l0.5-1.7c0.2-0.5-0.1-1.1-0.7-1.2l-1.8-0.4c-0.5-0.1-1-0.7-1.1-1.2l-0.2-1.8c-0.1-0.5-0.6-0.9-1.1-0.8l-1.8,0.3c-0.5,0.1-1.2-0.2-1.5-0.7l-0.9-1.6c-0.3-0.5-0.9-0.6-1.3-0.3l-1.5,1c-0.5,0.3-1.2,0.3-1.6,0l-1.5-1c-0.5-0.3-1.1-0.2-1.3,0.3L20.9,13c-0.3,0.5-1,0.8-1.5,0.7l-1.8-0.3c-0.5-0.1-1,0.3-1.1,0.8l-0.2,1.8c-0.1,0.5-0.6,1.1-1.1,1.2l-1.8,0.4c-0.5,0.1-0.8,0.7-0.7,1.2l0.5,1.7c0.2,0.5-0.1,1.2-0.5,1.6l-1.5,1.1c-0.4,0.3-0.5,0.9-0.1,1.4l1.2,1.4c0.4,0.4,0.4,1.2,0.2,1.6l-0.9,1.6c-0.3,0.5-0.1,1.1,0.4,1.3l1.6,0.8c0.5,0.2,0.9,0.9,0.8,1.4l-0.2,1.8c0,0.5,0.4,1,0.9,1l1.8,0c0.5,0,1.1,0.4,1.3,1l0.6,1.7c0.2,0.5,0.7,0.8,1.2,0.6L22,38c0.5-0.2,1.2-0.1,1.6,0.3l1.2,1.3c0.4,0.4,1,0.4,1.4,0l1.2-1.3c0.4-0.4,1.1-0.6,1.6-0.3l1.7,0.7c0.5,0.2,1.1,0,1.2-0.6l0.6-1.7c0.2-0.5,0.8-1,1.3-1l1.8,0c0.5,0,1-0.5,0.9-1l-0.2-1.8c0-0.5,0.3-1.2,0.8-1.4l1.6-0.8c0.5-0.2,0.7-0.8,0.4-1.3L38.5,27.5z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g></g><path fill=\\\"#F0B016\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><g><path fill=\\\"#FFFFFF\\\" d=\\\"M18.5,25.1c1.1-0.2,2.1-0.3,3.2-0.5c-0.4,1.6,0.1,5.2,2,5.5c-0.5,1.7-2.9,0.5-3.7-0.4C19,28.5,18.5,26.7,18.5,25.1\\\"/><path fill=\\\"#FFFFFF\\\" d=\\\"M24.4,29.8c-1.2-0.1-1.8-1.8-2-3c-0.4-2.1,0.3-1.7,1.5-2.9c1-1,2.1-2.2,3.1-3.3c0.5-0.5,2.1-3.4,2.6-2.3c0.9,1.8-2.3,3.4-1,4.8c0.9,0.9,2.4-0.3,3.3,0.2c0.8,0.5,0.9,1.5-0.3,1.7c1,0.6,0.9,1.5-0.1,2c0.7,0.5,0.6,1-0.1,1.4c-0.6,0.4,0.1,1-0.8,1.7C29,31.1,26.1,30.1,24.4,29.8\\\"/></g></g></svg>\",\n \"thumb_silver\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><g><g><g><path fill=\\\"#C0C1C2\\\" d=\\\"M38.5,27.5c-0.3-0.5-0.2-1.2,0.2-1.6l1.2-1.4c0.4-0.4,0.3-1-0.1-1.4l-1.5-1.1c-0.4-0.3-0.7-1-0.5-1.6l0.5-1.7c0.2-0.5-0.1-1.1-0.7-1.2l-1.8-0.4c-0.5-0.1-1-0.7-1.1-1.2l-0.2-1.8c-0.1-0.5-0.6-0.9-1.1-0.8l-1.8,0.3c-0.5,0.1-1.2-0.2-1.5-0.7l-0.9-1.6c-0.3-0.5-0.9-0.6-1.3-0.3l-1.5,1c-0.5,0.3-1.2,0.3-1.6,0l-1.5-1c-0.5-0.3-1.1-0.2-1.3,0.3L20.9,13c-0.3,0.5-1,0.8-1.5,0.7l-1.8-0.3c-0.5-0.1-1,0.3-1.1,0.8l-0.2,1.8c-0.1,0.5-0.6,1.1-1.1,1.2l-1.8,0.4c-0.5,0.1-0.8,0.7-0.7,1.2l0.5,1.7c0.2,0.5-0.1,1.2-0.5,1.6l-1.5,1.1c-0.4,0.3-0.5,0.9-0.1,1.4l1.2,1.4c0.4,0.4,0.4,1.2,0.2,1.6l-0.9,1.6c-0.3,0.5-0.1,1.1,0.4,1.3l1.6,0.8c0.5,0.2,0.9,0.9,0.8,1.4l-0.2,1.8c0,0.5,0.4,1,0.9,1l1.8,0c0.5,0,1.1,0.4,1.3,1l0.6,1.7c0.2,0.5,0.7,0.8,1.2,0.6L22,38c0.5-0.2,1.2-0.1,1.6,0.3l1.2,1.3c0.4,0.4,1,0.4,1.4,0l1.2-1.3c0.4-0.4,1.1-0.6,1.6-0.3l1.7,0.7c0.5,0.2,1.1,0,1.2-0.6l0.6-1.7c0.2-0.5,0.8-1,1.3-1l1.8,0c0.5,0,1-0.5,0.9-1l-0.2-1.8c0-0.5,0.3-1.2,0.8-1.4l1.6-0.8c0.5-0.2,0.7-0.8,0.4-1.3L38.5,27.5z M25.5,37.5c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12c6.6,0,12,5.4,12,12C37.5,32.1,32.1,37.5,25.5,37.5z\\\"/></g></g><path fill=\\\"#E2E2E2\\\" d=\\\"M25.5,37C19.2,37,14,31.8,14,25.5S19.2,14,25.5,14S37,19.2,37,25.5S31.8,37,25.5,37z\\\"/><g><path fill=\\\"#FFFFFF\\\" d=\\\"M18.5,25.1c1.1-0.2,2.1-0.3,3.2-0.5c-0.4,1.6,0.1,5.2,2,5.5c-0.5,1.7-2.9,0.5-3.7-0.4C19,28.5,18.5,26.7,18.5,25.1\\\"/><path fill=\\\"#FFFFFF\\\" d=\\\"M24.4,29.8c-1.2-0.1-1.8-1.8-2-3c-0.4-2.1,0.3-1.7,1.5-2.9c1-1,2.1-2.2,3.1-3.3c0.5-0.5,2.1-3.4,2.6-2.3c0.9,1.8-2.3,3.4-1,4.8c0.9,0.9,2.4-0.3,3.3,0.2c0.8,0.5,0.9,1.5-0.3,1.7c1,0.6,0.9,1.5-0.1,2c0.7,0.5,0.6,1-0.1,1.4c-0.6,0.4,0.1,1-0.8,1.7C29,31.1,26.1,30.1,24.4,29.8\\\"/></g></g></svg>\",\n \"timeline\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"10\\\" width=\\\"11\\\" height=\\\"6\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"18\\\" width=\\\"11\\\" height=\\\"6\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26\\\" width=\\\"11\\\" height=\\\"6\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"25\\\" cy=\\\"13\\\" r=\\\"2\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"25\\\" cy=\\\"21\\\" r=\\\"2\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"25\\\" cy=\\\"29\\\" r=\\\"2\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"34\\\" width=\\\"11\\\" height=\\\"6\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"25\\\" cy=\\\"37\\\" r=\\\"2\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"16\\\" width=\\\"1\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"32\\\" width=\\\"1\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><rect x=\\\"24.5\\\" y=\\\"24\\\" width=\\\"1\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"transactions\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#333333\\\" d=\\\"M29.8,18.9c-1.9,0-2.1-0.3-2.1-2.1v-6.3l8.2,8.4H29.8z\\\"/><path fill=\\\"#333333\\\" d=\\\"M15.8,40c-1.9,0-2.1-0.3-2.1-2.1V12.1c0-1.9,0.3-2.1,2.1-2.1h10v6.7c0,2.9,1.1,4,4,4h6.5v17.1c0,1.9-0.3,2.1-2.1,2.1H15.8z M29.4,32h4.1v-1.8h-4.1V32z M29.4,28.4h4.1v-1.8h-4.1V28.4z M29.4,24.7h4.1v-1.8h-4.1V24.7z M16.3,32h11.5v-1.8H16.3V32z M16.3,28.4h11.5v-1.8H16.3V28.4z M16.3,24.7h11.5v-1.8H16.3V24.7z M27.4,36.9h6.1v-1.8h-6.1V36.9z M16.3,14.3h6.1v-1.8h-6.1V14.3z M16.3,16.7h6.1v-1.8h-6.1V16.7z\\\"/></g></svg>\",\n \"transaction_detail\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><g opacity=\\\"0.5\\\"><rect x=\\\"15.5\\\" y=\\\"18\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.5\\\" y=\\\"22\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.5\\\" y=\\\"26\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.5\\\" y=\\\"30\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><polygon points=\\\"35 18.98 33.5 18.98 33.5 25.52 35 27.02 35 18.98\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M671,398V372a.5.5,0,0,1,.5-.5h13.73V370H671.5a2,2,0,0,0-2,2v26a2,2,0,0,0,2,2h19.14v-1.5H671.5A.5.5,0,0,1,671,398Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M685.23,370v6.44c0,1.78.27,2,2,2h6.22Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.5\\\" y=\\\"15\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"27.5\\\" y=\\\"22\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"27.5\\\" y=\\\"26\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"27.5\\\" y=\\\"30\\\" width=\\\"3\\\" height=\\\"0.57\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M684.69,392.66a.5.5,0,0,0-.29-.28.51.51,0,0,0-.4,0l-2.23,1.16a.5.5,0,0,0,.46.89l1.75-.9.79,1.93a.49.49,0,0,0,.23.24V393.4Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></g><polygon points=\\\"33.64 32.07 28 32.07 28 36.2 33.64 36.2 33.64 36.2 33.64 40.5 40 34.14 33.64 27.77 33.64 32.07\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"TrashBin\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(14 10)\\\"><path d=\\\"M 0 0 L 0 18.215 C 0 19.99 1.439 21.429 3.215 21.429 L 15 21.429 C 16.775 21.429 18.215 19.99 18.215 18.215 L 18.215 0 L 0 0 Z M 4.287 19.286 L 2.143 19.286 L 2.143 2.143 L 4.287 2.143 L 4.287 19.286 Z M 10.18 19.286 L 8.037 19.286 L 8.037 2.143 L 10.18 2.143 L 10.18 19.286 Z M 16.072 19.286 L 13.93 19.286 L 13.93 2.143 L 16.072 2.143 L 16.072 19.286 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(1.891 8.571)\\\" /><path d=\\\"M 18.213 2.143 L 10.713 2.143 C 11.305 2.143 11.785 1.664 11.785 1.071 C 11.785 0.479 11.305 0 10.713 0 L 9.643 0 C 9.051 0 8.57 0.479 8.57 1.071 C 8.57 1.664 9.051 2.143 9.643 2.143 L 2.143 2.143 C 0.959 2.143 0 3.103 0 4.286 L 0 5.357 C 0 6.541 0.959 6.429 2.143 6.429 L 18.213 6.429 C 19.397 6.429 20.357 6.541 20.357 5.357 L 20.357 4.286 C 20.357 3.103 19.397 2.143 18.213 2.143 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.821 0)\\\" /></g></svg>\",\n \"trash_can_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z\\\"/></svg>\",\n \"triangle_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"29.06 18.75 37.5 18.75 25 31.25 12.5 18.75 20.95 18.75 29.06 18.75\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"triangle_large\": \"<svg version=\\\"1.1\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\"><g><polygon fill=\\\"green\\\" points=\\\"0 0, 100 100, 0 100\\\"/></g></svg>\",\n \"triangle_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"31.25 29.06 31.25 37.5 18.75 25 31.25 12.5 31.25 20.95 31.25 29.06\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"triangle_right\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"18.75 20.94 18.75 12.5 31.25 25 18.75 37.5 18.75 29.05 18.75 20.94\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"triangle_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"20.94 31.25 12.5 31.25 25 18.75 37.5 31.25 29.05 31.25 20.94 31.25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"14.75\\\" width=\\\"17.47\\\" height=\\\"12.62\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37,18.11h-8V28.84H20.22a4.42,4.42,0,0,1,1.41,2.73H30a4.41,4.41,0,0,1,8.76,0H40V24.63Zm-.26,6.73H32.25a.57.57,0,0,1-.57-.57V20a.57.57,0,0,1,.57-.58h2.63a.58.58,0,0,1,.52.35L37.31,24A.58.58,0,0,1,36.78,24.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.28,28.84a4.39,4.39,0,0,0-1.42,2.73H12l-2-1.26V28.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.25,32.1a3.16,3.16,0,1,0,3.16-3.16A3.16,3.16,0,0,0,31.25,32.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.09,32.1a3.16,3.16,0,1,0,3.16-3.16A3.15,3.15,0,0,0,14.09,32.1Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"truck_calendar\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M312.6,408.7H297.3a0.8,0.8,0,0,0-.8.8v3.8h16.9v-3.8A0.8,0.8,0,0,0,312.6,408.7Zm-12.1,3.7a1.3,1.3,0,1,1,1.3-1.3A1.3,1.3,0,0,1,300.5,412.5Zm8.8,0a1.3,1.3,0,1,1,1.3-1.3A1.3,1.3,0,0,1,309.3,412.5Z\\\" transform=\\\"translate(-272.4 -397)\\\" fill=\\\"#fff\\\" opacity=\\\"0.5\\\"/><path d=\\\"M313.4,415H296.5v7.7h4.6v-3h-0.8v-1.4a0.9,0.9,0,0,0,.8-0.4,1.2,1.2,0,0,0,.3-0.8h1.8v5.5h3.2l0.9-1.6a4,4,0,0,0,.4-1.9q0-.6-0.4-0.6a0.4,0.4,0,0,0-.4.4v1.6h-1.9v-1.6q0-1.8,2.3-1.8a2.2,2.2,0,0,1,1.9.7,3.9,3.9,0,0,1,.5,2.2,2.1,2.1,0,0,1-.2,1l-0.9,1.7h1.6v5.9l3.2-3.2V415Z\\\" transform=\\\"translate(-272.4 -397)\\\" fill=\\\"#fff\\\" opacity=\\\"0.5\\\"/><rect x=\\\"27.6\\\" y=\\\"9\\\" width=\\\"1.2\\\" height=\\\"3.86\\\" fill=\\\"#fff\\\" opacity=\\\"0.5\\\"/><rect x=\\\"36.4\\\" y=\\\"9\\\" width=\\\"1.1\\\" height=\\\"3.86\\\" fill=\\\"#fff\\\" opacity=\\\"0.5\\\"/><rect x=\\\"17.5\\\" y=\\\"27.1\\\" width=\\\"18.9\\\" height=\\\"8.57\\\" rx=\\\"1\\\" ry=\\\"1\\\" fill=\\\"#fff\\\"/><path d=\\\"M288.8,433.6v-7.3h-5.4l-2,4.4v4.7h0.8a3,3,0,0,1,6,0h11.2a3,3,0,0,1,1-1.9H288.8Zm-1.8-3.6a0.9,0.9,0,0,1-.9.9h-2.4a0.9,0.9,0,0,1-.9-0.9s1.1-2.9,1.7-2.9h1.6a0.9,0.9,0,0,1,.9.9v2Z\\\" transform=\\\"translate(-272.4 -397)\\\" fill=\\\"#fff\\\"/><path d=\\\"M305.3,433.6c-0.6,0-.8.3-0.6,0.6s0.8,1.3,1.2,1.3l1.6-.4h0.3a1.4,1.4,0,0,0,.9-0.9,0.9,0.9,0,0,0-1-.5h-2.5Z\\\" transform=\\\"translate(-272.4 -397)\\\" fill=\\\"#fff\\\"/><circle cx=\\\"12.8\\\" cy=\\\"38.9\\\" r=\\\"2.1\\\" fill=\\\"#fff\\\"/><circle cx=\\\"29.9\\\" cy=\\\"38.9\\\" r=\\\"2.1\\\" fill=\\\"#fff\\\"/></svg>\",\n \"undo_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"22.18 17.59 20.94 15.25 18.38 20.68 24.3 21.62 23.38 19.88 22.18 17.59\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.78,18.07l.34-.12A8.49,8.49,0,1,1,25,34.43h0a8.49,8.49,0,0,1-8.48-8h1.41A7.1,7.1,0,0,0,25,33a7.1,7.1,0,1,0,0-14.2,6.87,6.87,0,0,0-1.57.18l-.78.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,40.67a15.5,15.5,0,1,1,15.5-15.5A15.52,15.52,0,0,1,25,40.67Zm0-30a14.5,14.5,0,1,0,14.5,14.5A14.51,14.51,0,0,0,25,10.67Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"user\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#878787\\\" d=\\\"M32.3,22h-0.6c-1.3,1.9-4.1,4.1-6.7,4.1c-2.6,0-5.3-2.2-6.7-4.1h-0.6c-2.7,0-4.8,2.5-4.8,4.6l3.2,3.5c0,2.1,2.2,9.8,4.8,9.8H29c2.7,0,4.8-7.6,4.8-9.8l3.2-3.5C37.1,24.5,34.9,22,32.3,22z\\\"/><path fill=\\\"#878787\\\" d=\\\"M32.4,16.2c0,3.3-3.3,6.9-7.4,6.9c-4.1,0-7.4-3.7-7.4-6.9c0-3.3,3.3-6.2,7.4-6.2C29.1,10,32.4,12.9,32.4,16.2z\\\"/></g></svg>\",\n \"variants\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.5\\\"><path d=\\\"M19,28.6l-.78-1.81H14.74L14,28.6H12l3.62-8.39h1.82L21,28.6Zm-2.53-5.89-1.06,2.43h2.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M23.5,35.5H9.5v-21h14Zm-13-1h12v-19h-12Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M34.07,28.6H30.4V20.21h3.26a4.88,4.88,0,0,1,1.47.2,2.1,2.1,0,0,1,.93.56,2.15,2.15,0,0,1,.57,1.46A1.72,1.72,0,0,1,36,23.89a1.17,1.17,0,0,1-.3.21l-.3.14a2.22,2.22,0,0,1,1.24.7,2,2,0,0,1,.46,1.33,2.27,2.27,0,0,1-.6,1.55A3.12,3.12,0,0,1,34.07,28.6Zm-1.8-5h.89a3.12,3.12,0,0,0,1.16-.16.71.71,0,0,0,.37-.73.76.76,0,0,0-.34-.74,2.81,2.81,0,0,0-1.18-.18h-.9Zm0,3.41h1.28a2.73,2.73,0,0,0,1.21-.2.77.77,0,0,0,.4-.77.75.75,0,0,0-.42-.77,3.56,3.56,0,0,0-1.37-.19h-1.1Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40.5,35.5h-14v-21h14Zm-13-1h12v-19h-12Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"vbarchart\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15\\\" y=\\\"26.17\\\" width=\\\"4\\\" height=\\\"8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"16.17\\\" width=\\\"4\\\" height=\\\"18\\\" fill=\\\"#484f60\\\"/><rect x=\\\"31\\\" y=\\\"12.17\\\" width=\\\"4\\\" height=\\\"22\\\" fill=\\\"#484f60\\\"/><path d=\\\"M40,38.17H10v-26h1v25H40Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M42.23,20.39H40.61c-4.19-2.23-11.11-.52-13.92,0H23.31c-2.81-.52-9.73-2.23-13.92,0H7.77a2.49,2.49,0,0,0,0,2.2c1.42-.18,1.22.63,1.22.63s-.07,7.64,6.75,7.84,8-7.57,8-7.57A2.33,2.33,0,0,1,25,23.36a2.33,2.33,0,0,1,1.28.13s1.15,7.77,8,7.57S41,23.22,41,23.22s-.2-.81,1.22-.63A2.49,2.49,0,0,0,42.23,20.39Zm-20,3.42s-.94,6.29-6.46,6.13-5.48-6.35-5.48-6.35l.33-2.3c3.4-1.8,9.81-.41,12.09,0Zm12.36,6.13c-5.53.16-6.46-6.13-6.46-6.13l-.48-2.52c2.27-.41,8.69-1.8,12.08,0l.33,2.3S40.11,29.78,34.58,29.94Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"warehouse\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"19.54\\\" y=\\\"30.45\\\" width=\\\"4.77\\\" height=\\\"9.55\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.68\\\" y=\\\"30.45\\\" width=\\\"4.77\\\" height=\\\"9.55\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,10,10,16.82V40h6.82V27.73H33.18V40H40V16.82Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"watermark\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 228.2 60\\\"><rect width=\\\"16.5\\\" height=\\\"52.3\\\" fill=\\\"#ed0a0a\\\"/><path d=\\\"M103.3,30A40.3,40.3,0,0,0,91.8,1.1L90.7,0H35.8L34.7,1.1A40.3,40.3,0,0,0,23.2,30,40.2,40.2,0,0,0,34.7,58.9L35.8,60H90.7l1.1-1.1A40.3,40.3,0,0,0,103.3,30ZM79.9,47.8c-4.5,4.8-9.7,7-16.6,7s-12.2-2.2-16.7-7S39.9,37.1,39.9,30s2.2-13,6.7-17.8,9.8-7,16.7-7,12.1,2.2,16.6,7A25.1,25.1,0,0,1,86.6,30C86.6,37.1,84.4,43,79.9,47.8Z\\\" transform=\\\"translate(-0.9)\\\" fill=\\\"#ed0a0a\\\"/><polygon points=\\\"161.5 0 161.5 38.6 127.9 0 108.2 0 108.2 60 124.7 60 124.7 21.5 158.3 60 178 60 178 0 161.5 0\\\" fill=\\\"#ed0a0a\\\"/><polygon points=\\\"200.3 53.7 200.3 34.8 224.6 34.8 224.6 19.1 200.3 19.1 200.3 6.1 227.2 6.1 227.2 0 183.8 0 183.8 60 228.2 60 228.2 53.7 200.3 53.7\\\" fill=\\\"#ed0a0a\\\"/></svg>\",\n \"website\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M12.71,40.17,11,34.57h1l.89,3.23L13.2,39c0-.06.11-.44.29-1.15l.89-3.28h1l.83,3.25.28,1.07.32-1.08,1-3.24h.92l-1.74,5.6h-1l-.89-3.35-.22-1L13.7,40.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.37,40.17l-1.71-5.6h1l.89,3.23.33,1.2c0-.06.11-.44.29-1.15L23,34.57h1l.84,3.25.28,1.07.32-1.08,1-3.24h.92l-1.75,5.6h-1l-.89-3.35-.22-1-1.13,4.31Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30,40.17l-1.71-5.6h1l.89,3.23.33,1.2c0-.06.11-.44.29-1.15l.89-3.28h1l.84,3.25.28,1.07.32-1.08,1-3.24H36l-1.75,5.6h-1l-.89-3.35-.22-1L31,40.17Z\\\" fill=\\\"#484f60\\\"/><polyline points=\\\"12.44 32.26 12.44 15.15 24.68 15.15 25.59 14.25 24.05 12.71 10 12.71 10 32.26\\\" fill=\\\"#484f60\\\"/><polyline points=\\\"36.99 32.26 36.99 25.65 35.92 24.58 34.55 25.95 34.55 32.26\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 10.17 27.92 10.17 32 14.25 22.24 26 24.16 27.92 35.92 18.17 40 22.25 40 10.17\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"wizard\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 26.5 30.9\\\"><polygon points=\\\"12.3 0 11.5 2.2 9.2 2.9 11.1 4.4 11.1 6.7 13 5.4 15.2 6.2 14.6 3.9 16 2 13.6 1.9 12.3 0\\\" fill=\\\"#fff\\\"/><polygon points=\\\"3.6 3.7 4.5 5.2 3.7 6.8 5.4 6.5 6.7 7.7 6.9 5.9 8.5 5.1 6.9 4.3 6.6 2.6 5.4 3.9 3.6 3.7\\\" fill=\\\"#fff\\\"/><polygon points=\\\"0 9.8 0.9 10.4 0.9 11.4 1.7 10.8 2.8 11.1 2.4 10.1 3 9.2 2 9.3 1.3 8.4 1 9.4 0 9.8\\\" fill=\\\"#fff\\\"/><polygon points=\\\"14.2 30.9 15 28.7 17.2 28 15.4 26.6 15.4 24.2 13.4 25.5 11.2 24.8 11.9 27 10.5 28.9 12.8 29 14.2 30.9\\\" fill=\\\"#fff\\\"/><polygon points=\\\"22.8 27.3 22 25.7 22.7 24.1 21 24.4 19.8 23.3 19.5 25 18 25.8 19.6 26.6 19.9 28.3 21.1 27 22.8 27.3\\\" fill=\\\"#fff\\\"/><polygon points=\\\"26.5 21.1 25.6 20.5 25.6 19.5 24.7 20.1 23.7 19.8 24 20.8 23.4 21.7 24.5 21.7 25.1 22.5 25.5 21.5 26.5 21.1\\\" fill=\\\"#fff\\\"/><polygon points=\\\"13 19.4 8.4 22.6 10 17.2 5.5 13.8 11.2 13.7 13 8.3 14.8 13.7 20.5 13.8 16 17.2 17.6 22.6 13 19.4\\\" fill=\\\"#fff\\\"/></svg>\",\n \"wms\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><polygon fill=\\\"#2A363B\\\" points=\\\"20,32.1 25,29.2 29.9,32.1 25,34.9 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,35.9 30.5,33 30.5,38.7 25.5,41.6 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,38.7 19.5,33 24.5,35.9 24.5,41.6 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"26,21.7 31,18.8 35.9,21.7 31,24.5 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"31.5,25.4 36.5,22.6 36.5,28.3 31.5,31.2 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,28.3 25.5,22.6 30.5,25.4 30.5,31.2 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"14,21.7 19,18.8 23.9,21.7 19,24.5 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,25.5 24.4,22.6 24.5,28.3 19.5,31.2 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"13.5,28.3 13.5,22.6 18.4,25.5 18.5,31.2 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"8,32.1 13,29.2 17.9,32.1 13,35 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"13.5,35.9 18.5,33 18.5,38.7 13.5,41.6 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"7.5,38.7 7.5,33 12.5,35.9 12.5,41.6 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"32.1,32.1 37,29.2 42,32 37,34.9 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"37.5,35.8 42.5,33 42.5,38.7 37.6,41.5 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"31.5,38.7 31.5,33 36.5,35.8 36.5,41.5 \\\"/><polygon fill=\\\"#2A363B\\\" points=\\\"20,11.3 25,8.4 29.9,11.3 25,14.1 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#2A363B\\\" points=\\\"25.5,15 30.4,12.2 30.4,17.9 25.5,20.8 \\\"/><polygon opacity=\\\"0.25\\\" fill=\\\"#2A363B\\\" points=\\\"19.5,17.9 19.5,12.2 24.4,15 24.4,20.8 \\\"/></g></svg>\",\n \"work_in_progress\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"26.8 34 27.7 33 28.3 32.3 29.1 31.9 30 31.7 30.1 31 30.1 30.1 30.2 29 30.8 28.5 31.7 28 33.2 28.1 34.2 28.4 34.9 28.8 35 29.5 30.5 34 26.8 34\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M298.4,421.8v-2.7l0.2-3.2v-1.5l-1.1-.7-1.1-.3-1.6.7-1.7.7-1.3.3v0.5l0.4,1.6,0.6,1.5-0.5.9v7.3l1.5,2.2v-1.1l0.4-3.1,0.3-2.8,1.2,2.4v4.6H297v-5.5l-1.1-2.2,4.6,3.9h0.5v-0.9Zm-5-4.5-0.4-.8v-0.8l1.9-.2Zm2.5,2.4,1.4-2v2l0.3,1.5Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#4d5050\\\"/><circle cx=\\\"26.7\\\" cy=\\\"17.5\\\" r=\\\"1.6\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M296.1,403.7l-14.9,14.9a2.6,2.6,0,0,0,0,3.7l14.9,14.9a2.6,2.6,0,0,0,3.7,0l14.9-14.9a2.6,2.6,0,0,0,0-3.7l-14.9-14.9A2.6,2.6,0,0,0,296.1,403.7Zm0.9,31.4-13.8-13.8a1.3,1.3,0,0,1,0-1.9l13.8-13.8a1.3,1.3,0,0,1,1.9,0l13.8,13.8a1.3,1.3,0,0,1,0,1.9l-13.8,13.8A1.3,1.3,0,0,1,297.1,435.2Z\\\" transform=\\\"translate(-272.5 -395)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"work_in_progress_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M684,405a20,20,0,1,1,20-20A20,20,0,0,1,684,405Zm0-38.71A18.71,18.71,0,1,0,702.71,385,18.73,18.73,0,0,0,684,366.29Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M695.74,392.08l-.08-1.41-.91-.48-1.55-.58-2.13-.1-1.45.78-.78.78-.19,1.55V394l-.1,1-1.36.29-1.16.68-1,1-1.26,1.45h6A55.26,55.26,0,0,0,695.74,392.08Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M682.25,383.88l.29-4.65-.1-2.23-1.55-1.07-1.65-.48-2.33,1-2.52,1-1.94.39-.19.68.58,2.33.87,2.23-.68,1.36-.1,10.74,2.23,3.23.1-1.65.58-4.56.39-4.07,1.84,3.49.1,6.79h2.23v-6.21l-.1-1.94-1.55-3.3,6.73,5.76.68-.1.1-1.36-3.82-3.33Zm-7.18-2.72-.58-1.16.1-1.16,2.81-.29Zm3.68,3.49,2-3-.19,2.91.48,2.23Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><circle cx=\\\"25.1\\\" cy=\\\"14.49\\\" r=\\\"2.33\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"wrench\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M696.41,378.36a5.36,5.36,0,0,0-.58.61q-2.09,2.11-4.2,4.21a2.22,2.22,0,0,1-3.38.24,22.16,22.16,0,0,1-2.06-2,10.79,10.79,0,0,1-1.31-1.51,2.1,2.1,0,0,1,.29-3c.54-.55,1.08-1.09,1.63-1.63L690.2,372c-.33-.11-.51-.18-.7-.23a9.89,9.89,0,0,0-12,12,.86.86,0,0,1-.27.95c-2.08,2.06-4.15,4.14-6.23,6.2a13.7,13.7,0,0,0,6.53,6.48q3.1-3.1,6.2-6.2a.86.86,0,0,1,.95-.27,9.89,9.89,0,0,0,12.19-8A8.55,8.55,0,0,0,696.41,378.36Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4c5050\\\"/></svg>\",\n \"x_axis\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"30.24 23.75 38.24 31.75 30.24 39.75 29.34 38.85 36.43 31.75 29.34 24.65 30.24 23.75\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"11.76\\\" y=\\\"10.25\\\" width=\\\"1.5\\\" height=\\\"19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><rect x=\\\"12.01\\\" y=\\\"31\\\" width=\\\"20\\\" height=\\\"1.5\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"y_axis\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.25 19.76 25.35 20.66 18.25 13.57 11.15 20.66 10.25 19.76 18.25 11.76 26.25 19.76\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"17.5\\\" y=\\\"17.99\\\" width=\\\"1.5\\\" height=\\\"20\\\" fill=\\\"#484f60\\\"/><rect x=\\\"20.75\\\" y=\\\"36.74\\\" width=\\\"19\\\" height=\\\"1.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/></svg>\"\n};","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { ObjectUtils } from '../../core/utils/object-utils';\r\nimport { StringUtils } from '../../core/utils/string-utils';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { CoreComponentsIconSvg } from '../../core/model/core-components-icon-svg';\r\n\r\n@Injectable()\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = CoreComponentsIconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: CoreComponentsIcon): SafeHtml {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getRawIcon(iconName: CoreComponentsIcon): string {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._allIcons[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getIconAsBase64(iconName: CoreComponentsIcon): SafeHtml {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);\r\n }\r\n\r\n public getIconRawBase64(iconName: CoreComponentsIcon): string {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return \"data:image/svg+xml;base64,\" + base64Data;\r\n }\r\n\r\n public setIconCache(): void {\r\n ObjectUtils.ForOwnProperty(this._allIcons, (svgData: string, iconName: CoreComponentsIcon) => {\r\n this._iconCache[iconName.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[iconName]);\r\n });\r\n }\r\n}\r\n","import {Component, ElementRef, HostBinding, Input, ViewEncapsulation} from '@angular/core';\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-validation-error\",\r\n template: `\r\n <div class=\"validation-error-wrapper\" [overlay]=\"parentForOverlay\">\r\n <div class=\"validation-error-content\">\r\n <co-icon [iconData]=\"icons.getIcon(Icons.InformationRoundOpen)\"></co-icon>\r\n <div class=\"validation-error-message\" [textContent]=\"error | coreLocalize\"></div>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ValidationErrorComponent {\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n @Input()\r\n public error: string;\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n @HostBinding('style.top.px')\r\n @Input()\r\n public top: number;\r\n\r\n @HostBinding('style.left.px')\r\n @Input()\r\n public left: number;\r\n\r\n @HostBinding('class.co-validation-error')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(public icons: IconCacheService) {\r\n }\r\n\r\n}\r\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, ElementRef, EmbeddedViewRef, Injectable, Injector} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class OverlayService {\r\n\r\n private _componentRefs: Map<any, ComponentRef<any>> = new Map<any, ComponentRef<any>>();\r\n\r\n constructor(\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n private _injector: Injector\r\n ) {\r\n }\r\n\r\n public createComponent(compClass: any, inputs: any, events?: any): ComponentRef<any> {\r\n if (this._componentRefExists(compClass)) {\r\n this._removeComponentRef(compClass);\r\n }\r\n const componentRef = this._componentFactoryResolver\r\n .resolveComponentFactory(compClass)\r\n .create(this._injector);\r\n\r\n if (inputs) {\r\n for (let property in inputs) {\r\n if (inputs.hasOwnProperty(property)) {\r\n componentRef.instance[property] = inputs[property];\r\n }\r\n }\r\n }\r\n\r\n if (events) {\r\n for (let event in events) {\r\n if (events.hasOwnProperty(event)) {\r\n componentRef.instance[event].subscribe((value) => events[event](value));\r\n }\r\n }\r\n }\r\n\r\n this._appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n document.body.appendChild(domElem);\r\n\r\n componentRef.onDestroy(() => {\r\n this._appRef.detachView(componentRef.hostView);\r\n });\r\n\r\n this._componentRefs.set(compClass, componentRef);\r\n return componentRef;\r\n }\r\n\r\n public removeComponent(componentRef: ComponentRef<any>): void {\r\n if (componentRef) {\r\n const compClass: any = this._getClassFromComponentRef(componentRef);\r\n componentRef.destroy();\r\n this._componentRefs.delete(compClass);\r\n }\r\n }\r\n\r\n private _componentRefExists(compClass: any): boolean {\r\n return this._componentRefs.has(compClass);\r\n }\r\n\r\n private _removeComponentRef(compClass: any): void {\r\n const componentRef: ComponentRef<any> = this._componentRefs.get(compClass);\r\n this.removeComponent(componentRef);\r\n }\r\n\r\n private _getClassFromComponentRef(componentRef: ComponentRef<any>): any {\r\n let result: any;\r\n this._componentRefs.forEach((value: ComponentRef<any>, key: any) => {\r\n if (value === componentRef) {\r\n result = key;\r\n return;\r\n }\r\n });\r\n return result;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output,\r\n QueryList,\r\n Renderer2,\r\n ViewChildren,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'co-commit-buttons',\r\n template: `\r\n <div class=\"commit-buttons-wrapper\" [overlay]=\"parentForOverlay\" [rightAlign]=\"true\" @showHideSaveCancel>\r\n <div class=\"commit-buttons-button save\" [class.finished]=\"commitFinished\"\r\n (click)=\"commitClick.emit($event)\">\r\n <div class=\"save-button-spinner\" *ngIf=\"committing\">\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n </div>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" *ngIf=\"firstShow || commitFinished\">\r\n <path class=\"checkmark-check\" [class.first-show]=\"firstShow\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"/></svg>\r\n </div>\r\n <div class=\"commit-buttons-button cancel\" (click)=\"cancelClick.emit($event)\">\r\n <div class=\"cancel-button\"></div>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n trigger('showHideSaveCancel', [\r\n state('*', style({transform: 'scaleY(1)', opacity: 1})),\r\n state('void', style({transform: 'scaleY(0)', opacity: 0})),\r\n transition('void <=> *', animate(200))\r\n ]),\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CommitButtonsComponent {\r\n @ViewChildren('animatediv', {read: ElementRef}) set content(children) {\r\n this.animateDivs = children.toArray();\r\n this._checkAnimation();\r\n }\r\n\r\n public animateDivs: QueryList<ElementRef>;\r\n public firstShow: boolean = true;\r\n\r\n @Input()\r\n public set committing(value: boolean) {\r\n if (value) {\r\n this.firstShow = false;\r\n }\r\n this._committing = value;\r\n this._checkAnimation();\r\n }\r\n\r\n public get committing(): boolean {\r\n return this._committing;\r\n }\r\n\r\n @Input()\r\n public set commitFinished(value: boolean) {\r\n if (value) {\r\n this._checkAnimationFinished();\r\n }\r\n this._commitFinished = value;\r\n }\r\n\r\n public get commitFinished(): boolean {\r\n return this._commitFinished;\r\n }\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n @Output()\r\n public cancelClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public commitClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @HostBinding('class.co-commit-buttons')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n private _committing: boolean = false;\r\n private _commitFinished: boolean = false;\r\n\r\n constructor(private _renderer: Renderer2) {\r\n }\r\n\r\n private _checkAnimation(): void {\r\n if (this.animateDivs) {\r\n if (this.committing) {\r\n this.animateDivs.forEach(a => this._renderer.addClass(a.nativeElement, 'animate'));\r\n } else {\r\n this.animateDivs.forEach(a => this._renderer.removeClass(a.nativeElement, 'animate'));\r\n }\r\n }\r\n }\r\n\r\n private _checkAnimationFinished(): void {\r\n if (this.commitFinished && this.animateDivs) {\r\n this.animateDivs.forEach(a => {\r\n a.nativeElement.addEventListener('animationiteration', this._handleAnimationIteration);\r\n });\r\n }\r\n }\r\n\r\n private _handleAnimationIteration = (event: AnimationEvent) => {\r\n this._renderer.removeClass(event.currentTarget, 'animate');\r\n event.currentTarget.removeEventListener('animationiteration', this._handleAnimationIteration);\r\n };\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef, ContentChild,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Injectable,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {AsyncValidatorFn, FormControl, NgModel, ValidatorFn} from \"@angular/forms\";\r\nimport {isNill} from \"../../core/function/is-nill.function\";\r\nimport {notNill} from \"../../core/function/not-nill.function\";\r\nimport {InputBoolean, InputBooleanDecorator} from \"../../core/decorator/input-boolean.decorator\";\r\nimport {requiredValidator} from \"../../core/validator/required.validator\";\r\nimport {precisionScaleValidator} from \"../../core/validator/precision-scale.validator\";\r\nimport {maxStringLengthValidator} from \"../../core/validator/max-string-length.validator\";\r\nimport {StringUtils} from \"../../core/utils/string-utils\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NumberUtils} from \"../../core/utils/number-utils\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {ValidationErrorComponent} from \"../validation-error/validation-error.component\";\r\nimport {ScreenConfigAdapterComponent} from \"../../interfaces/screen-config-adapter.component.interface\";\r\nimport {OverlayService} from '../../service/overlay.service';\r\nimport {CommitButtonsComponent} from './commit-buttons/commit-buttons.component';\r\n\r\n/**\r\n * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as\r\n * adding self as a control to the parent form.\r\n */\r\n@Directive()\r\n@Injectable()\r\nexport abstract class BaseInputComponent<T> implements OnInit, OnDestroy, AfterViewInit, ScreenConfigAdapterComponent {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @ViewChild(\"validationError\", {read: ViewContainerRef})\r\n public validationErrorContainer: ViewContainerRef;\r\n\r\n @ViewChild(NgModel, {static: true})\r\n public _ngModel: NgModel;\r\n\r\n public get ngModel(): NgModel {\r\n if (this._myFormInputInstance) {\r\n return this._myFormInputInstance.ngModel;\r\n } else {\r\n return this._ngModel;\r\n }\r\n }\r\n\r\n public static BaseFormInputComponentIndex: number = 0;\r\n public static HiddenClass: string = \"hidden\";\r\n\r\n @Input()\r\n public showSaveCancel: boolean = false;\r\n\r\n @Input()\r\n public set model(value: T) {\r\n if (!this._initialModelSet) {\r\n this._initialModel = this._model;\r\n this._initialModelSet = true;\r\n }\r\n this._model = value;\r\n this.canSaveOrCancel = this._model !== this._initialModel;\r\n this._modelDirtyForCommit = this._model !== this._initialModel;\r\n this._clearErrorComponent();\r\n this.modelSet();\r\n }\r\n\r\n public get model(): T {\r\n return this._model;\r\n }\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input() @InputBoolean()\r\n public noValidation: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public initFocus: boolean;\r\n\r\n @Input() @InputBoolean()\r\n public noClickFocus: boolean;\r\n\r\n // used to link field to business object for deep-validation\r\n @Input()\r\n public businessObjectId: any;\r\n\r\n // @Input()\r\n // public errorMessage: ValidationMessage;\r\n\r\n public name: string;\r\n\r\n @Input()\r\n public set disabled(disabled: boolean) {\r\n if (disabled === this._disabled) {\r\n return;\r\n }\r\n this._disabled = InputBooleanDecorator.InputValueToBoolean(disabled);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Input()\r\n public set maxLength(maxLength: number) {\r\n this.setMaxLength(maxLength);\r\n }\r\n\r\n public get maxLength(): number {\r\n return notNill(this.forcedMaxLength) ? this.forcedMaxLength : this._maxLength;\r\n }\r\n\r\n @Input()\r\n public forcedMaxLength: number;\r\n\r\n @Input()\r\n public set readonly(readonly: boolean) {\r\n if (this._forceReadonly !== undefined || readonly === this._readonly) {\r\n return;\r\n }\r\n this._readonly = InputBooleanDecorator.InputValueToBoolean(readonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n public get readonly(): boolean {\r\n return this.forceReadonly || this._readonly;\r\n }\r\n\r\n @Input()\r\n public set forceReadonly(forceReadonly: boolean) {\r\n if (forceReadonly === this._forceReadonly) {\r\n return;\r\n }\r\n this._forceReadonly = InputBooleanDecorator.InputValueToBoolean(forceReadonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get forceReadonly(): boolean {\r\n return this._forceReadonly;\r\n }\r\n\r\n @Input()\r\n public set required(required: boolean) {\r\n if (required === this._required) {\r\n return;\r\n }\r\n this._required = InputBooleanDecorator.InputValueToBoolean(required);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get required(): boolean {\r\n return this.forceRequired || this._required;\r\n }\r\n\r\n @Input() @InputBoolean()\r\n public forceRequired: boolean = false; // a force outside of [cfgName]'s influence\r\n\r\n @Input()\r\n public set validators(validators: ValidatorFn[]) {\r\n if (validators === this._validators) {\r\n return;\r\n }\r\n this._validators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get validators(): ValidatorFn[] {\r\n return this._validators;\r\n }\r\n\r\n @Input()\r\n public set asyncValidators(validators: AsyncValidatorFn[]) {\r\n this._asyncValidators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get asyncValidators(): AsyncValidatorFn[] {\r\n return this._asyncValidators;\r\n }\r\n\r\n @Input() @HostBinding(\"class.\" + BaseInputComponent.HiddenClass)\r\n public set hidden(hidden: boolean) {\r\n if (hidden === this._hidden) {\r\n return;\r\n }\r\n\r\n this._hidden = hidden;\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (!this._destroyed) {\r\n if (hidden) {\r\n this.changeDetector.detach();\r\n } else {\r\n this.changeDetector.reattach();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChangesAfterAngular();\r\n }\r\n }\r\n }\r\n\r\n this.hiddenChange.emit(hidden);\r\n }\r\n\r\n public get hidden(): boolean {\r\n return this._hidden;\r\n }\r\n\r\n // no custom setter logic as with the other 'screen config props', because concrete form input components handle this themselves.\r\n @Input()\r\n public set decimals(value: number) {\r\n this._decimals = value;\r\n }\r\n\r\n public get decimals(): number {\r\n return this._decimals;\r\n }\r\n\r\n @Input()\r\n public icon: CoreComponentsIcon;\r\n\r\n @Input()\r\n public customCssClass: string;\r\n\r\n // Goal: ability to emulate the red background of input fields (form-submitted invalid state)\r\n @Input() @HostBinding(\"class.cc-red-error-background\")\r\n public redErrorBackground: boolean = false;\r\n\r\n @Input()\r\n set myFormInputInstance(value: BaseInputComponent<T>) {\r\n if (value === this._myFormInputInstance) {\r\n return;\r\n }\r\n this._myFormInputInstance = value;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n get myFormInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance;\r\n }\r\n\r\n @Input()\r\n public commitOnBlur: boolean = true;\r\n\r\n // @Output()\r\n // public commit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly nativeBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly blur: EventEmitter<any> = new EventEmitter();\r\n\r\n // emits when the enter button on keyboard was pressed while this form input had focussed\r\n @Output()\r\n public readonly enter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly focus: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyDown: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyUp: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly modelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly userModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly hiddenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.cc-input-focused\")\r\n public focused: boolean = false;\r\n\r\n public formComponent: FormComponent;\r\n\r\n @HostBinding(\"class.form-input\")\r\n public formInput: boolean = true;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.custom-width\")\r\n public customWidth: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding('class.custom-height')\r\n public customHeight: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noTriangleGraphic: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public keepFocussed: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.half-width\")\r\n public halfWidth: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.full-width-important\")\r\n public fullWidth: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public excludeUserModelChange: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noFormGroupControl: boolean = false;\r\n\r\n @HostBinding(\"class.form-submitted\")\r\n public get formSubmitted(): boolean {\r\n return this.formComponent && this.formComponent.submitted;\r\n }\r\n\r\n @HostBinding(\"class.hasnolabel\")\r\n public get hasNoLabel(): boolean {\r\n return isNill(this.label);\r\n }\r\n\r\n @HostBinding(\"class.hasvalue\")\r\n public get hasValue(): boolean {\r\n return (!Array.isArray(this.model) && !!this.model || StringUtils.IsStringWithLength(this.model) || NumberUtils.IsNumber(this.model)) ||\r\n (Array.isArray(this.model) && this.model.length > 0);\r\n }\r\n\r\n @HostBinding(\"class.invalid\")\r\n public get invalid(): boolean {\r\n return this._checkState() && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.disabled\")\r\n public get isDisabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @HostBinding(\"class.read-only\")\r\n public get isReadonly(): boolean {\r\n return this.readonly;\r\n }\r\n\r\n @HostBinding(\"class.required\")\r\n public get isRequired(): boolean {\r\n return this.required;\r\n }\r\n\r\n @HostBinding(\"class.cc-touched-invalid\")\r\n public get touchedInvalid(): boolean {\r\n return this._controlExists() && this.control.touched && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.valid\")\r\n public get valid(): boolean {\r\n return this._checkState() && this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.no-validation\")\r\n public get validationDisabled(): boolean {\r\n return this.readonly || this.disabled || this.noValidation;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(event: MouseEvent): void {\r\n if (this.canChange && !this.noClickFocus) {\r\n this.requestFocus();\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"focusin\")\r\n onFocusIn(): void {\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n\r\n // @HostListener(\"document:scroll\")\r\n // public handleDocumentScroll(): void {\r\n // this._positionValidationError();\r\n // }\r\n\r\n // @HostListener(\"window:resize\")\r\n // public handleWindowResize(): void {\r\n // this._positionValidationError();\r\n // }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n public handleKeyDown(event: KeyboardEvent): void {\r\n this.keyDown.next(event);\r\n if (this.showSaveCancel && this.canSaveOrCancel) {\r\n this._handleKeyDown(event);\r\n }\r\n // this._positionValidationError();\r\n }\r\n\r\n public get canChange(): boolean {\r\n return !this.readonly && !this.disabled;\r\n }\r\n\r\n public get control(): FormControl {\r\n return this._myFormInputInstance ? this._myFormInputInstance.control : this.ngModel && this.ngModel.control;\r\n }\r\n\r\n public get formInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance || this;\r\n }\r\n\r\n public get isDestroyed(): boolean {\r\n return this._destroyed;\r\n }\r\n\r\n public input: HTMLInputElement | HTMLTextAreaElement;\r\n\r\n public keepFocus: boolean = false;\r\n\r\n public set canSaveOrCancel(value: boolean) {\r\n this._canSaveOrCancel = value;\r\n if (this.showSaveCancel && this.focused && this._canSaveOrCancel) {\r\n if (!this._commitButtonsComponentRef) {\r\n this._commitButtonsComponentRef = this.overlayService.createComponent(CommitButtonsComponent,\r\n {\r\n parentForOverlay: this.elementRef,\r\n committing: false,\r\n commitFinished: false\r\n }, {\r\n commitClick: (event) => this._handleCommit(event),\r\n cancelClick: (event) => this.cancelClick(event)\r\n });\r\n }\r\n } else {\r\n this.overlayService.removeComponent(this._commitButtonsComponentRef);\r\n this._commitButtonsComponentRef = undefined;\r\n }\r\n }\r\n\r\n public get canSaveOrCancel(): boolean {\r\n return this._canSaveOrCancel;\r\n }\r\n\r\n // @implements ConfigurationAdapterComponent\r\n public objectConfigName: string;\r\n public validationError: string = \"\";\r\n\r\n protected _markedAsUserTouched: boolean = false;\r\n\r\n protected _destroyed: boolean = false;\r\n protected _hasOnPushCdStrategy: boolean = false;\r\n protected _model: T;\r\n protected _modelDirtyForCommit: boolean = false;\r\n protected _initialModel: T;\r\n protected _initialModelSet: boolean = false;\r\n\r\n private _myFormInputInstance: BaseInputComponent<T>;\r\n private _errorValidationComponent: ComponentRef<ValidationErrorComponent>;\r\n private _decimals: number;\r\n private _hidden: boolean;\r\n private _disabled: boolean;\r\n private _maxLength: number;\r\n private _readonly: boolean;\r\n private _required: boolean;\r\n\r\n private _forceReadonly: boolean = undefined;\r\n\r\n private _validators: ValidatorFn[] = [];\r\n private _asyncValidators: AsyncValidatorFn[] = [];\r\n\r\n private _speechSub: Subscription;\r\n private _modelChangeSub: Subscription;\r\n private _formAnySubmitSub: Subscription;\r\n private _formReadonlyChangeSub: Subscription;\r\n private _clearMarkedAsUserTouchedSub: Subscription;\r\n private _canSaveOrCancel: boolean = false;\r\n\r\n private _commitButtonsComponentRef: ComponentRef<any>;\r\n private _validationComponentRef: ComponentRef<any>;\r\n\r\n constructor(\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected overlayService: OverlayService,\r\n @Optional() protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n @Optional() protected ngZoneWrapper?: NgZoneWrapperService,\r\n @Optional() public elementRef?: ElementRef,\r\n ) {\r\n BaseInputComponent.BaseFormInputComponentIndex++;\r\n this.name = BaseInputComponent.BaseFormInputComponentIndex.toString();\r\n\r\n if (this.formUserChangeListener) {\r\n this._clearMarkedAsUserTouchedSub = this.formUserChangeListener.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this._markedAsUserTouched = false;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._modelChangeSub = this.modelChange.subscribe((val: any) => {\r\n this.model = val;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._prepareInput();\r\n\r\n this._updateControlValidatorsAndOwnFlags();\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (this.formComponent) {\r\n this.readonly = this.readonly || this.formComponent.readonly;\r\n this._formReadonlyChangeSub = this.formComponent.readonlyChange.subscribe((isFormReadonly: boolean) => {\r\n this.readonly = isFormReadonly;\r\n });\r\n }\r\n\r\n if (this.initFocus) {\r\n setTimeout(this.requestFocus.bind(this));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._removeSelfFromForm();\r\n\r\n if (this.input) {\r\n this.input.removeEventListener('blur', (event) => this.doBlur(event));\r\n this.input.removeEventListener('focus', (event) => this.doFocus(event));\r\n }\r\n\r\n this._destroyed = true;\r\n this._clearErrorComponent();\r\n\r\n // if (this.tooltipManager && this.elementRef) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);\r\n // }\r\n\r\n if (this._modelChangeSub) {\r\n this._modelChangeSub.unsubscribe();\r\n }\r\n if (this._speechSub) {\r\n this._speechSub.unsubscribe();\r\n }\r\n if (this._formAnySubmitSub) {\r\n this._formAnySubmitSub.unsubscribe();\r\n }\r\n if (this._formReadonlyChangeSub) {\r\n this._formReadonlyChangeSub.unsubscribe();\r\n }\r\n if (this._clearMarkedAsUserTouchedSub) {\r\n this._clearMarkedAsUserTouchedSub.unsubscribe();\r\n }\r\n // this._removeSelfFromForm();\r\n this.elementRef = undefined;\r\n this.changeDetector = undefined;\r\n this.input = undefined;\r\n }\r\n\r\n // descendents should override this\r\n public commit = async (model: any): Promise<boolean> => {\r\n return Promise.resolve(true);\r\n }\r\n\r\n public cancelClick(event?: MouseEvent): void {\r\n this.keepFocus = true;\r\n if (this._initialModelSet) {\r\n this.model = this._initialModel;\r\n }\r\n this.keepFocus = false;\r\n }\r\n\r\n public showValidationError(error: string): void {\r\n this.validationError = error;\r\n this._validationComponentRef = this.overlayService.createComponent(ValidationErrorComponent, {parentForOverlay: this.elementRef, error: error});\r\n }\r\n\r\n /**\r\n * Emits a modelChange event with given value, indicating that the model of this form input\r\n * has changed and its new value is given value. Also emits userModelChange if markedAsUserTouched.\r\n */\r\n public setModel(value: any): void {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n\r\n if (this.control) {\r\n this.control.markAsDirty({onlySelf: true});\r\n }\r\n if (this.formComponent) {\r\n this.formComponent.formGroup.markAsDirty({onlySelf: true});\r\n }\r\n\r\n if (this._markedAsUserTouched && this.formUserChangeListener) {\r\n this.formUserChangeListener.userModelChange.next(value);\r\n this.userModelChange.next(value);\r\n }\r\n\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n public requestFocus(): void {\r\n if (this.canChange && this.input) {\r\n this.input.focus();\r\n this.focused = true;\r\n if (this._hasOnPushCdStrategy) {\r\n this.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n public doFocus(event?: any): any {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._initialModelSet = false;\r\n this.focused = true;\r\n this.canSaveOrCancel = false;\r\n if (this._hasOnPushCdStrategy) {\r\n this.markForCheck();\r\n }\r\n this.focus.next();\r\n }\r\n\r\n public async doBlur(event?: any, handleCommit: boolean = true): Promise<any> {\r\n if (this.showSaveCancel && handleCommit && this._modelDirtyForCommit) {\r\n await this._handleCommit(event, false);\r\n }\r\n setTimeout(() => {\r\n if (this.keepFocus || this.keepFocussed) {\r\n if (event) {\r\n event.preventDefault;\r\n }\r\n return false;\r\n }\r\n this.focused = false;\r\n if (this._hasOnPushCdStrategy) {\r\n this.markForCheck();\r\n }\r\n if (this.input) {\r\n this.input.blur();\r\n }\r\n this.blur.next();\r\n }, 200);\r\n }\r\n\r\n public detectChanges(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n public markForCheck(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n public detectChangesAfterAngular(): void {\r\n if (!!this.ngZoneWrapper) {\r\n this.ngZoneWrapper.setTimeoutOutsideAngular(() => {\r\n if (!this._destroyed) {\r\n if (this._hasOnPushCdStrategy) {\r\n this.changeDetector.markForCheck();\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Links the given formComp.submit event to the firing of detectChanges() of given change detector. This is a 'utility-like' method,\r\n * but we manage the actual subscription (with UNSUBSCRIBE()!) on this base class.\r\n * @param formComp The form whose submit we want to link with the call of .detectChanges() on given change detector ref.\r\n * @param changeDetectorRef This should be given as param. I choose not to make this part of our (BaseFormInputComponent) constructor,\r\n * because we already have 21 extenders.\r\n */\r\n // public linkFormAnySubmitWithDetectChanges(formComp: FormComponent, changeDetectorRef: ChangeDetectorRef): void {\r\n // if (formComp && changeDetectorRef) {\r\n // this._formAnySubmitSub = formComp.anySubmit.subscribe((() => {\r\n // if (!this._destroyed) {\r\n // changeDetectorRef.detectChanges();\r\n // }\r\n // }));\r\n // }\r\n // }\r\n\r\n public markAsUserTouched(): void {\r\n this._markedAsUserTouched = true;\r\n this.redErrorBackground = false; // not sure if this is the right place to do that\r\n }\r\n\r\n public clearMarkedAsUserTouched(): void {\r\n this._markedAsUserTouched = false;\r\n }\r\n\r\n protected modelSet(): void {\r\n\r\n }\r\n\r\n //used for descendents, because descendents can't set super properties, see InputNumberComponent\r\n protected setMaxLength(maxLength: number): void {\r\n if (notNill(this.forcedMaxLength) || maxLength === this._maxLength) {\r\n return;\r\n }\r\n\r\n if (!isNaN(maxLength)) {\r\n this._maxLength = maxLength;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n }\r\n\r\n protected _markAsOnPush(): void {\r\n this._hasOnPushCdStrategy = true;\r\n }\r\n\r\n protected _checkState(): boolean {\r\n if (this.ngModel) {\r\n return this.formSubmitted || (this._controlExists() && this.control.touched);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Place validators onto our Angular's FormControl.\r\n protected _updateControlValidatorsAndOwnFlags(): void {\r\n const er: ElementRef = this.myFormInputInstance ? this.myFormInputInstance.elementRef : this.elementRef;\r\n // if (this.tooltipManager && er) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(er.nativeElement);\r\n // }\r\n this._setNativeRequired(this.required);\r\n this._setNativeMaxLength(this.maxLength);\r\n this._setNativeDisabled(this.disabled);\r\n this._setNativeReadOnly(this.readonly || this.forceReadonly);\r\n\r\n this.redErrorBackground = false;\r\n if (this._controlExists()) {\r\n const validators: ValidatorFn[] = [];\r\n\r\n // add required\r\n if (this.required) {\r\n validators.push(requiredValidator);\r\n }\r\n\r\n // add maxlength\r\n if (notNill(this._maxLength)) {\r\n if (this.decimals) {\r\n validators.push(precisionScaleValidator(this._maxLength, this.decimals));\r\n } else {\r\n validators.push(maxStringLengthValidator(this._maxLength));\r\n }\r\n }\r\n\r\n // add @Input()-ed validators\r\n validators.push(...this._validators);\r\n\r\n if (this._validators) {\r\n this._validators.forEach(validator => {\r\n if (validator === requiredValidator) {\r\n this._required = true;\r\n this._setNativeRequired(true);\r\n }\r\n });\r\n }\r\n\r\n this.control.setValidators(validators);\r\n this.control.setAsyncValidators(this._asyncValidators);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n private async _handleCommit(event?: MouseEvent, doBlur: boolean = true): Promise<boolean> {\r\n if (!this.showSaveCancel || (!this._modelDirtyForCommit)) {\r\n return true;\r\n }\r\n this.keepFocus = true;\r\n if (this._commitButtonsComponentRef) {\r\n this._commitButtonsComponentRef.instance.commitFinished = false;\r\n this._commitButtonsComponentRef.instance.committing = true;\r\n }\r\n this._modelDirtyForCommit = false;\r\n const success: boolean = await this.commit(this.model);\r\n this.keepFocus = false;\r\n await this._commitFinished();\r\n if (success && doBlur) {\r\n this.doBlur(event, false);\r\n }\r\n return success;\r\n }\r\n\r\n private _commitFinished(): Promise<void> {\r\n return new Promise((resolve: Function) => {\r\n if (this._commitButtonsComponentRef) {\r\n this._commitButtonsComponentRef.instance.commitFinished = true;\r\n this._commitButtonsComponentRef.instance.committing = false;\r\n setTimeout(() => {\r\n // this._commitButtonsComponentRef.instance.commitFinished = false;\r\n this.overlayService.removeComponent(this._commitButtonsComponentRef);\r\n resolve();\r\n }, 800);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n private _clearErrorComponent(): void {\r\n this.overlayService.removeComponent(this._validationComponentRef);\r\n }\r\n\r\n\r\n // whether this.ngModel.control has safe access\r\n private _controlExists(): boolean {\r\n return this.ngModel && !!this.control;\r\n }\r\n\r\n private _controlIsValid(): boolean {\r\n return this._controlExists() && this.control.valid;\r\n }\r\n\r\n private _setNativeDisabled(disabled: boolean): void {\r\n if (this.input) {\r\n this.input.disabled = disabled;\r\n }\r\n }\r\n\r\n private _setNativeMaxLength(maxlength: number): void {\r\n if (this.input && !isNaN(maxlength)) {\r\n this.input.maxLength = maxlength;\r\n }\r\n }\r\n\r\n protected _setNativeReadOnly(readonly: boolean): void {\r\n if (this.input) {\r\n this.input.readOnly = readonly;\r\n }\r\n }\r\n\r\n private _setNativeRequired(required: boolean): void {\r\n if (this.input) {\r\n this.input.required = required;\r\n }\r\n }\r\n\r\n private _subscribeToSpeechInput(): void {\r\n // this._speechSub = this.speechInput.speechInput.subscribe((data) => {\r\n // if (this.focused && this._controlExists()) {\r\n // const val: string = this.control.value;\r\n // this.setModel((StringUtils.IsString(val) ? val : '') + data);\r\n // }\r\n // });\r\n }\r\n\r\n private _addOrRemoveSelfFromForm(): void {\r\n if (this.hidden) {\r\n this._removeSelfFromForm();\r\n } else {\r\n this._addSelfToForm();\r\n }\r\n }\r\n\r\n private _updateSelfInForm(): void {\r\n if (this.formComponent) {\r\n this.formComponent.updateFormInput(this);\r\n }\r\n }\r\n\r\n private _removeSelfFromForm(): void {\r\n if (this.formComponent && this.ngModel) {\r\n this.formComponent.removeFormInput(this);\r\n }\r\n }\r\n\r\n private _addSelfToForm(): void {\r\n if (this.formComponent && this.ngModel && !this.noFormGroupControl) {\r\n this.formComponent.removeFormInput(this); // preventing there are two controls in formgroup when myFormInputInstance is (being) set\r\n this.formComponent.addFormInput(this.myFormInputInstance ? this.myFormInputInstance : this);\r\n }\r\n }\r\n\r\n private _prepareInput(): void {\r\n if (this.elementRef && this.elementRef.nativeElement) {\r\n //try to find input element\r\n this._findInputNode(this.elementRef.nativeElement.children);\r\n if (this.input) {\r\n this.input.addEventListener('blur', (event) => this.doBlur(event));\r\n this.input.addEventListener('focus', (event) => this.doFocus(event));\r\n }\r\n }\r\n }\r\n\r\n private _findInputNode(nodes): void {\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\r\n this.input = node;\r\n break;\r\n } else if (node.children.length > 0) {\r\n this._findInputNode(node.children);\r\n }\r\n }\r\n }\r\n\r\n private _positionValidationError(): void {\r\n if (this.elementRef && this.elementRef.nativeElement && this._errorValidationComponent) {\r\n const clientRect: ClientRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n this._errorValidationComponent.instance.top = clientRect.bottom;\r\n this._errorValidationComponent.instance.left = clientRect.left;\r\n }\r\n }\r\n\r\n protected async _handleKeyDown(event: KeyboardEvent): Promise<any> {\r\n switch (event.code) {\r\n case 'Enter':\r\n case 'NumpadEnter':\r\n if (!event.shiftKey) {\r\n event.preventDefault();\r\n await this._handleCommit();\r\n return false;\r\n }\r\n return true;\r\n case 'Tab':\r\n const nextSiblingToFocus = event.shiftKey ? (event.currentTarget as any).previousSibling : (event.currentTarget as any).nextSibling;\r\n event.preventDefault();\r\n const success: boolean = await this._handleCommit();\r\n if (success) {\r\n if (nextSiblingToFocus) {\r\n try {\r\n this._setFocusOnNextPossibleInput(nextSiblingToFocus, event.shiftKey);\r\n } catch (e) {\r\n }\r\n }\r\n }\r\n return false;\r\n case 'Escape':\r\n this.cancelClick();\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n private _createNewFocusEvent(element: any): Event {\r\n let eventType = \"onfocusin\" in element ? \"focusin\" : \"focus\",\r\n bubbles = \"onfocusin\" in element,\r\n focusEvent;\r\n\r\n if (\"createEvent\" in document) {\r\n focusEvent = document.createEvent(\"Event\");\r\n focusEvent.initEvent(eventType, bubbles, true);\r\n } else if (\"Event\" in window) {\r\n focusEvent = new Event(eventType, { bubbles: bubbles, cancelable: true });\r\n }\r\n return focusEvent;\r\n }\r\n\r\n private _setFocusOnNextPossibleInput(element: any, previous: boolean): void {\r\n let elementColl = element.getElementsByTagName('input');\r\n if (!elementColl || elementColl.length < 1) {\r\n elementColl = element.getElementsByTagName('textarea');\r\n }\r\n if (elementColl && elementColl.length > 0) {\r\n const inputElement = elementColl[0];\r\n if (inputElement.disabled || inputElement.readOnly) {\r\n this._setFocusOnNextPossibleInput(previous ? element.previousSibling : element.nextSibling, previous);\r\n } else {\r\n const focusEvent = this._createNewFocusEvent(element);\r\n inputElement.focus();\r\n inputElement.dispatchEvent(focusEvent);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, HostBinding, Input, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {IconCacheService} from './icon-cache.service';\r\n\r\n@Component({\r\n selector: 'co-icon',\r\n template: ''\r\n ,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class IconComponent implements OnInit {\r\n\r\n @Input()\r\n public set icon(value: CoreComponentsIcon) {\r\n this._icon = value;\r\n }\r\n\r\n @Input()\r\n public set iconData(value: SafeHtml | undefined) {\r\n if (value) {\r\n this._iconData = value;\r\n this._prepareIcon();\r\n }\r\n }\r\n\r\n @HostBinding('class.co-icon')\r\n public showClass: boolean = true;\r\n\r\n @HostBinding('innerHtml')\r\n public innerIconData: SafeHtml | undefined;\r\n\r\n private _icon: CoreComponentsIcon;\r\n private _iconData: SafeHtml | undefined;\r\n\r\n constructor(private _iconCache: IconCacheService) {\r\n }\r\n\r\n ngOnInit() {\r\n this._prepareIcon();\r\n }\r\n\r\n private _prepareIcon(): void {\r\n if (this._iconData) {\r\n this.innerIconData = this._iconData;\r\n } else if (this._icon) {\r\n this._setIconFromEnum(this._icon);\r\n }\r\n }\r\n\r\n private _setIconFromEnum(icon: CoreComponentsIcon): void {\r\n this.innerIconData = this._iconCache.getIcon(icon);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { IconComponent } from './icon.component';\r\nimport { IconCacheService } from './icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n declarations: [\r\n IconComponent\r\n ],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [\r\n IconComponent\r\n ]\r\n})\r\nexport class IconModule {\r\n}\r\n","// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.\r\nimport { ElementRef, Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { fromEvent, merge, Observable, Subject, Subscription } from 'rxjs';\r\n\r\nimport { CoScrollableDirective } from './scrollable.directive';\r\nimport { auditTime } from 'rxjs/operators';\r\n\r\n/** Time in ms to throttle the scrolling events by default. */\r\nexport const DEFAULT_SCROLL_TIME = 20;\r\n\r\n/**\r\n * Service contained all registered Scrollable references and emits an event when any one of the\r\n * Scrollable references emit a scrolled event.\r\n */\r\n@Injectable()\r\nexport class CoScrollDispatcherService {\r\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\r\n _scrolled: Subject<void> = new Subject<void>();\r\n\r\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\r\n _globalSubscription: Subscription = null;\r\n\r\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\r\n private _scrolledCount = 0;\r\n\r\n /**\r\n * Map of all the scrollable references that are registered with the service and their\r\n * scroll event subscriptions.\r\n */\r\n scrollableReferences: Map<CoScrollableDirective, Subscription> = new Map();\r\n\r\n /**\r\n * Registers a Scrollable with the service and listens for its scrolled events. When the\r\n * scrollable is scrolled, the service emits the event in its scrolled observable.\r\n * @param scrollable Scrollable instance to be registered.\r\n */\r\n register(scrollable: CoScrollableDirective): void {\r\n const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());\r\n\r\n this.scrollableReferences.set(scrollable, scrollSubscription);\r\n }\r\n\r\n /**\r\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\r\n * @param scrollable Scrollable instance to be deregistered.\r\n */\r\n deregister(scrollable: CoScrollableDirective): void {\r\n if (this.scrollableReferences.has(scrollable)) {\r\n this.scrollableReferences.get(scrollable).unsubscribe();\r\n this.scrollableReferences.delete(scrollable);\r\n }\r\n }\r\n\r\n /**\r\n * Subscribes to an observable that emits an event whenever any of the registered Scrollable\r\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\r\n * to override the default \"throttle\" time.\r\n */\r\n scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME, callback: () => any): Subscription {\r\n // In the case of a 0ms delay, use an observable without auditTime\r\n // since it does add a perceptible delay in processing overhead.\r\n let observable: any = auditTimeInMs > 0 ?\r\n auditTime(auditTimeInMs) :\r\n this._scrolled.asObservable();\r\n\r\n this._scrolledCount++;\r\n\r\n if (!this._globalSubscription) {\r\n this._globalSubscription = merge(\r\n fromEvent(window.document, 'scroll'),\r\n fromEvent(window, 'resize')\r\n ).subscribe(() => this._notify());\r\n }\r\n\r\n // Note that we need to do the subscribing from here, in order to be able to remove\r\n // the global event listeners once there are no more subscriptions.\r\n return observable.subscribe(callback).add(() => {\r\n this._scrolledCount--;\r\n\r\n if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {\r\n this._globalSubscription.unsubscribe();\r\n this._globalSubscription = null;\r\n }\r\n });\r\n }\r\n\r\n /** Returns all registered Scrollables that contain the provided element. */\r\n getScrollContainers(elementRef: ElementRef): CoScrollableDirective[] {\r\n const scrollingContainers: CoScrollableDirective[] = [];\r\n\r\n this.scrollableReferences.forEach((subscription: Subscription, scrollable: CoScrollableDirective) => {\r\n if (this.scrollableContainsElement(scrollable, elementRef)) {\r\n scrollingContainers.push(scrollable);\r\n }\r\n });\r\n\r\n return scrollingContainers;\r\n }\r\n\r\n /** Returns true if the element is contained within the provided Scrollable. */\r\n scrollableContainsElement(scrollable: CoScrollableDirective, elementRef: ElementRef): boolean {\r\n let element = elementRef.nativeElement;\r\n let scrollableElement = scrollable.getElementRef().nativeElement;\r\n\r\n // Traverse through the element parents until we reach null, checking if any of the elements\r\n // are the scrollable's element.\r\n do {\r\n if (element == scrollableElement) {\r\n return true;\r\n }\r\n } while (element = element.parentElement);\r\n }\r\n\r\n /** Sends a notification that a scroll event has been fired. */\r\n _notify() {\r\n this._scrolled.next();\r\n }\r\n}\r\n\r\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher: CoScrollDispatcherService) {\r\n return parentDispatcher || new CoScrollDispatcherService();\r\n}\r\n\r\nexport const SCROLL_DISPATCHER_PROVIDER = {\r\n // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\r\n provide: CoScrollDispatcherService,\r\n deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],\r\n useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\r\n};\r\n","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\r\n\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n/**\r\n * Simple utility for getting the bounds of the browser viewport.\r\n * @docs-private\r\n */\r\n@Injectable()\r\nexport class CoViewportRulerService {\r\n\r\n /** Cached document client rectangle. */\r\n private _documentRect?: ClientRect;\r\n\r\n constructor(scrollDispatcher: CoScrollDispatcherService) {\r\n // Initially cache the document rectangle.\r\n this._cacheViewportGeometry();\r\n\r\n // Subscribe to scroll and resize events and update the document rectangle on changes.\r\n scrollDispatcher.scrolled(null, () => this._cacheViewportGeometry());\r\n }\r\n\r\n /** Gets a ClientRect for the viewport's bounds. */\r\n getViewportRect(documentRect = this._documentRect): ClientRect {\r\n // Use the document element's bounding rect rather than the window scroll properties\r\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\r\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\r\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\r\n // can disagree when the page is pinch-zoomed (on devices that support touch).\r\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\r\n // We use the documentElement instead of the body because, by default (without a css reset)\r\n // browsers typically give the document body an 8px margin, which is not included in\r\n // getBoundingClientRect().\r\n const scrollPosition = this.getViewportScrollPosition(documentRect);\r\n const height = window.innerHeight;\r\n const width = window.innerWidth;\r\n\r\n return {\r\n top: scrollPosition.top,\r\n left: scrollPosition.left,\r\n bottom: scrollPosition.top + height,\r\n right: scrollPosition.left + width,\r\n height,\r\n width,\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Gets the (top, left) scroll position of the viewport.\r\n * @param documentRect\r\n */\r\n getViewportScrollPosition(documentRect = this._documentRect) {\r\n // The top-left-corner of the viewport is determined by the scroll position of the document\r\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\r\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\r\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\r\n // `document.documentElement` works consistently, where the `top` and `left` values will\r\n // equal negative the scroll position.\r\n const top = -documentRect.top || document.body.scrollTop || window.scrollY || 0;\r\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX || 0;\r\n\r\n return {top, left};\r\n }\r\n\r\n /** Caches the latest client rectangle of the document element. */\r\n _cacheViewportGeometry() {\r\n this._documentRect = document.documentElement.getBoundingClientRect();\r\n }\r\n\r\n}\r\n\r\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: CoViewportRulerService,\r\n scrollDispatcher: CoScrollDispatcherService) {\r\n return parentRuler || new CoViewportRulerService(scrollDispatcher);\r\n}\r\n\r\nexport const VIEWPORT_RULER_PROVIDER = {\r\n // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\r\n provide: CoViewportRulerService,\r\n deps: [[new Optional(), new SkipSelf(), CoViewportRulerService], CoScrollDispatcherService],\r\n useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\r\n};","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\n\r\n/** Possible states for a ripple element. */\r\nexport enum CoRippleState {\r\n FADING_IN, VISIBLE, FADING_OUT, HIDDEN\r\n}\r\n\r\n/**\r\n * Reference to a previously launched ripple element.\r\n */\r\nexport class CoRippleRef {\r\n\r\n /** Current state of the ripple reference. */\r\n state: CoRippleState = CoRippleState.HIDDEN;\r\n\r\n constructor(\r\n private _renderer: CoRippleRenderer,\r\n public element: HTMLElement,\r\n public config: CoRippleConfig) {\r\n }\r\n\r\n /** Fades out the ripple element. */\r\n fadeOut() {\r\n this._renderer.fadeOutRipple(this);\r\n }\r\n}","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {ElementRef, NgZone} from '@angular/core';\r\n\r\nimport {CoRippleRef, CoRippleState} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** Fade-in duration for the ripples. Can be modified with the speedFactor option. */\r\nexport const RIPPLE_FADE_IN_DURATION = 450;\r\n\r\n/** Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor. */\r\nexport const RIPPLE_FADE_OUT_DURATION = 400;\r\n\r\nexport type CoRippleConfig = {\r\n color?: string;\r\n centered?: boolean;\r\n radius?: number;\r\n speedFactor?: number;\r\n persistent?: boolean;\r\n};\r\n\r\n/**\r\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\r\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\r\n * event handlers to be installed on the element that triggers ripple animations.\r\n * This will eventually become a custom renderer once Angular support exists.\r\n * @docs-private\r\n */\r\nexport class CoRippleRenderer {\r\n\r\n /** Element where the ripples are being added to. */\r\n private _containerElement: HTMLElement;\r\n\r\n /** Element which triggers the ripple elements on mouse events. */\r\n private _triggerElement: HTMLElement;\r\n\r\n /** Whether the mouse is currently down or not. */\r\n private _isMousedown: boolean = false;\r\n\r\n /** Events to be registered on the trigger element. */\r\n private _triggerEvents = new Map<string, any>();\r\n\r\n /** Set of currently active ripple references. */\r\n private _activeRipples = new Set<CoRippleRef>();\r\n\r\n /** Ripple config for all ripples created by events. */\r\n rippleConfig: CoRippleConfig = {};\r\n\r\n /** Whether mouse ripples should be created or not. */\r\n rippleDisabled: boolean = false;\r\n\r\n constructor(_elementRef: ElementRef, private _ngZone: NgZone, private _ruler: CoViewportRulerService) {\r\n this._containerElement = _elementRef.nativeElement;\r\n\r\n // Specify events which need to be registered on the trigger.\r\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\r\n this._triggerEvents.set('mouseup', this.onMouseup.bind(this));\r\n this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));\r\n\r\n // By default use the host element as trigger element.\r\n this.setTriggerElement(this._containerElement);\r\n }\r\n\r\n /** Fades in a ripple at the given coordinates. */\r\n fadeInRipple(pageX: number, pageY: number, config: CoRippleConfig = {}): CoRippleRef {\r\n let containerRect = this._containerElement.getBoundingClientRect();\r\n\r\n if (config.centered) {\r\n pageX = containerRect.left + containerRect.width / 2;\r\n pageY = containerRect.top + containerRect.height / 2;\r\n } else {\r\n // Subtract scroll values from the coordinates because calculations below\r\n // are always relative to the viewport rectangle.\r\n let scrollPosition = this._ruler.getViewportScrollPosition();\r\n pageX -= scrollPosition.left;\r\n pageY -= scrollPosition.top;\r\n }\r\n\r\n let radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);\r\n let duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\r\n let offsetX = pageX - containerRect.left;\r\n let offsetY = pageY - containerRect.top;\r\n\r\n let ripple = document.createElement('div');\r\n ripple.classList.add('mat-ripple-element');\r\n\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n\r\n // If the color is not set, the default CSS color will be used.\r\n ripple.style.backgroundColor = config.color;\r\n ripple.style.transitionDuration = `${duration}ms`;\r\n\r\n this._containerElement.appendChild(ripple);\r\n\r\n // By default the browser does not recalculate the styles of dynamically created\r\n // ripple elements. This is critical because then the `scale` would not animate properly.\r\n enforceStyleRecalculation(ripple);\r\n\r\n ripple.style.transform = 'scale(1)';\r\n\r\n // Exposed reference to the ripple that will be returned.\r\n let rippleRef = new CoRippleRef(this, ripple, config);\r\n\r\n rippleRef.state = CoRippleState.FADING_IN;\r\n\r\n // Add the ripple reference to the list of all active ripples.\r\n this._activeRipples.add(rippleRef);\r\n\r\n // Wait for the ripple element to be completely faded in.\r\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.VISIBLE;\r\n\r\n if (!config.persistent && !this._isMousedown) {\r\n rippleRef.fadeOut();\r\n }\r\n }, duration);\r\n\r\n return rippleRef;\r\n }\r\n\r\n /** Fades out a ripple reference. */\r\n fadeOutRipple(rippleRef: CoRippleRef) {\r\n // For ripples that are not active anymore, don't re-un the fade-out animation.\r\n if (!this._activeRipples.delete(rippleRef)) {\r\n return;\r\n }\r\n\r\n let rippleEl = rippleRef.element;\r\n\r\n rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;\r\n rippleEl.style.opacity = '0';\r\n\r\n rippleRef.state = CoRippleState.FADING_OUT;\r\n\r\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.HIDDEN;\r\n rippleEl.parentNode.removeChild(rippleEl);\r\n }, RIPPLE_FADE_OUT_DURATION);\r\n }\r\n\r\n /** Fades out all currently active ripples. */\r\n fadeOutAll() {\r\n this._activeRipples.forEach(ripple => ripple.fadeOut());\r\n }\r\n\r\n /** Sets the trigger element and registers the mouse events. */\r\n setTriggerElement(element: HTMLElement) {\r\n // Remove all previously register event listeners from the trigger element.\r\n if (this._triggerElement) {\r\n this._triggerEvents.forEach((fn, type) => this._triggerElement.removeEventListener(type, fn));\r\n }\r\n\r\n if (element) {\r\n // If the element is not null, register all event listeners on the trigger element.\r\n this._ngZone.runOutsideAngular(() => {\r\n this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));\r\n });\r\n }\r\n\r\n this._triggerElement = element;\r\n }\r\n\r\n /** Listener being called on mousedown event. */\r\n private onMousedown(event: MouseEvent) {\r\n if (!this.rippleDisabled) {\r\n this._isMousedown = true;\r\n this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);\r\n }\r\n }\r\n\r\n /** Listener being called on mouseup event. */\r\n private onMouseup() {\r\n this._isMousedown = false;\r\n\r\n // Fade-out all ripples that are completely visible and not persistent.\r\n this._activeRipples.forEach(ripple => {\r\n if (!ripple.config.persistent && ripple.state === CoRippleState.VISIBLE) {\r\n ripple.fadeOut();\r\n }\r\n });\r\n }\r\n\r\n /** Listener being called on mouseleave event. */\r\n private onMouseLeave() {\r\n if (this._isMousedown) {\r\n this.onMouseup();\r\n }\r\n }\r\n\r\n /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\r\n private runTimeoutOutsideZone(fn: Function, delay: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\r\n }\r\n\r\n}\r\n\r\n/** Enforces a style recalculation of a DOM element by computing its styles. */\r\nfunction enforceStyleRecalculation(element: HTMLElement) {\r\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\r\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\r\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\r\n window.getComputedStyle(element).getPropertyValue('opacity');\r\n}\r\n\r\n/**\r\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\r\n */\r\nfunction distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n}","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {Directive, ElementRef, Inject, InjectionToken, Input, NgZone, OnChanges, OnDestroy, Optional, SimpleChanges} from '@angular/core';\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\nimport {CoRippleRef} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** OpaqueToken that can be used to specify the global ripple options. */\r\nexport const MD_RIPPLE_GLOBAL_OPTIONS: InjectionToken<CoRippleGlobalOptions> = new InjectionToken('CoRippleGlobalOptions');\r\n\r\nexport type CoRippleGlobalOptions = {\r\n disabled?: boolean;\r\n baseSpeedFactor?: number;\r\n};\r\n\r\n@Directive({\r\n selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',\r\n exportAs: 'mdRipple',\r\n host: {\r\n '[class.mat-ripple]': 'true',\r\n '[class.mat-ripple-unbounded]': 'unbounded'\r\n }\r\n})\r\nexport class CoRippleDirective implements OnChanges, OnDestroy {\r\n\r\n /**\r\n * The element that triggers the ripple when click events are received. Defaults to the\r\n * directive's host element.\r\n */\r\n // Prevent TS metadata emit from referencing HTMLElement in ripple.js\r\n // Otherwise running this code in a Node environment (e.g Universal) will not work.\r\n @Input('mdRippleTrigger') trigger: HTMLElement | HTMLElement;\r\n\r\n /**\r\n * Whether the ripple always originates from the center of the host element's bounds, rather\r\n * than originating from the location of the click event.\r\n */\r\n @Input('mdRippleCentered') centered: boolean;\r\n\r\n /**\r\n * Whether click events will not trigger the ripple. It can still be triggered by manually\r\n * calling createRipple()\r\n */\r\n @Input('mdRippleDisabled') disabled: boolean;\r\n\r\n /**\r\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\r\n * will be the distance from the center of the ripple to the furthest corner of the host element's\r\n * bounding rectangle.\r\n */\r\n @Input('mdRippleRadius') radius: number = 0;\r\n\r\n /**\r\n * If set, the normal duration of ripple animations is divided by this value. For example,\r\n * setting it to 0.5 will cause the animations to take twice as long.\r\n * A changed speedFactor will not modify the fade-out duration of the ripples.\r\n */\r\n @Input('mdRippleSpeedFactor') speedFactor: number = 1;\r\n\r\n /** Custom color for ripples. */\r\n @Input('mdRippleColor') color: string;\r\n\r\n /** Whether foreground ripples should be visible outside the component's bounds. */\r\n @Input('mdRippleUnbounded') unbounded: boolean;\r\n\r\n /** Renderer for the ripple DOM manipulations. */\r\n private _rippleRenderer: CoRippleRenderer;\r\n\r\n /** Options that are set globally for all ripples. */\r\n private _globalOptions: CoRippleGlobalOptions;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n ngZone: NgZone,\r\n ruler: CoViewportRulerService,\r\n // Type needs to be `any` because of https://github.com/angular/angular/issues/12631\r\n @Optional() @Inject(MD_RIPPLE_GLOBAL_OPTIONS) globalOptions: any\r\n ) {\r\n this._rippleRenderer = new CoRippleRenderer(elementRef, ngZone, ruler);\r\n this._globalOptions = globalOptions ? globalOptions : {};\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['trigger'] && this.trigger) {\r\n this._rippleRenderer.setTriggerElement(this.trigger);\r\n }\r\n\r\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\r\n this._rippleRenderer.rippleConfig = this.rippleConfig;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // Set the trigger element to null to cleanup all listeners.\r\n this._rippleRenderer.setTriggerElement(null);\r\n }\r\n\r\n /** Launches a manual ripple at the specified position. */\r\n launch(pageX: number, pageY: number, config: CoRippleConfig = this.rippleConfig): CoRippleRef {\r\n return this._rippleRenderer.fadeInRipple(pageX, pageY, config);\r\n }\r\n\r\n /** Fades out all currently showing ripple elements. */\r\n fadeOutAll(): void {\r\n this._rippleRenderer.fadeOutAll();\r\n }\r\n\r\n /** Ripple configuration from the directive's input values. */\r\n get rippleConfig(): CoRippleConfig {\r\n return {\r\n centered: this.centered,\r\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\r\n radius: this.radius,\r\n color: this.color\r\n };\r\n }\r\n}","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport { Directive, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { CoScrollDispatcherService } from './scroll-dispatcher.service';\r\nimport { fromEvent, Observable } from 'rxjs';\r\n\r\n/**\r\n * Sends an event when the directive's element is scrolled. Registers itself with the\r\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\r\n * can be listened to through the service.\r\n */\r\n@Directive({\r\n selector: '[cdk-scrollable]'\r\n})\r\nexport class CoScrollableDirective implements OnInit, OnDestroy {\r\n constructor(private _elementRef: ElementRef, private _scroll: CoScrollDispatcherService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._scroll.register(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._scroll.deregister(this);\r\n }\r\n\r\n /**\r\n * Returns observable that emits when a scroll event is fired on the host element.\r\n */\r\n elementScrolled(): Observable<any> {\r\n return fromEvent(this._elementRef.nativeElement, 'scroll');\r\n }\r\n\r\n getElementRef(): ElementRef {\r\n return this._elementRef;\r\n }\r\n}\r\n","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {NgModule} from \"@angular/core\";\r\n\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\nimport {CoRippleDirective} from \"./ripple.directive\";\r\nimport {CoScrollableDirective} from \"./scrollable.directive\";\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CoRippleDirective,\r\n CoScrollableDirective\r\n ],\r\n providers: [\r\n CoScrollDispatcherService,\r\n CoViewportRulerService\r\n ],\r\n exports: [\r\n CoRippleDirective\r\n ]\r\n})\r\nexport class RippleModule {\r\n}","import {isNill} from \"../function/is-nill.function\";\r\n\r\n// @dynamic\r\nexport class EventUtils {\r\n public static get passiveSupported(): boolean {\r\n if (isNill(EventUtils._passiveSupported)) {\r\n EventUtils._CheckPassiveSupported();\r\n }\r\n return EventUtils._passiveSupported;\r\n }\r\n\r\n public static get passiveBubble(): boolean {\r\n if (isNill(EventUtils._passiveBubble)) {\r\n EventUtils._passiveBubble = EventUtils.passiveSupported ? {passive: true, capture: false} : false;\r\n }\r\n return EventUtils._passiveBubble;\r\n }\r\n\r\n public static get passiveCapture(): boolean {\r\n if (isNill(EventUtils._passiveCapture)) {\r\n EventUtils._passiveCapture = EventUtils.passiveSupported ? {passive: true, capture: true} : true;\r\n }\r\n return EventUtils._passiveCapture;\r\n }\r\n\r\n private static _passiveSupported: boolean = undefined;\r\n\r\n private static _passiveCapture: any = undefined;\r\n\r\n private static _passiveBubble: any = undefined;\r\n\r\n public static KillEvent(event: Event): void {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n public static StopEvent(event: Event): void {\r\n this.KillEvent(event);\r\n }\r\n\r\n public static GetMouseEventOrTouch(originalEvent: MouseEvent | TouchEvent): MouseEvent | Touch {\r\n return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];\r\n }\r\n\r\n private static _CheckPassiveSupported(): void {\r\n let passiveSupported: boolean = false;\r\n try {\r\n const options: any = Object.defineProperty({}, \"passive\", {\r\n get: function (): void {\r\n passiveSupported = true;\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options);\r\n } catch (e) {\r\n }\r\n this._passiveSupported = passiveSupported;\r\n }\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\nimport {ScreenConfigAdapterComponent} from \"./screen-config-adapter.component.interface\";\r\n\r\n// Enables \"DI for interfaces\" (see ConfigNameDirective injected .hostComponent).\r\nexport const SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME: InjectionToken<ScreenConfigAdapterComponent> =\r\n new InjectionToken<ScreenConfigAdapterComponent>(\"ScreenConfigAdapterComponent\");\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter, forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {EventUtils} from '../../core/utils/event-utils';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {ScreenConfigAdapterComponent} from '../../interfaces/screen-config-adapter.component.interface';\r\n\r\n@Component({\r\n selector: 'co-button',\r\n template: `\r\n <co-icon *ngIf=\"!!iconData\" [iconData]=\"iconData\"></co-icon>\r\n <span *ngIf=\"!!label\" class=\"label\">{{ label }}</span>\r\n <co-icon *ngIf=\"!!iconDataRight\" [iconData]=\"iconDataRight\"></co-icon>\r\n <div class=\"rippler\" md-ripple [mdRippleDisabled]=\"disabled\"></div>\r\n `,\r\n host: {\r\n tabindex: '0'\r\n },\r\n providers: [{\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => ButtonComponent)\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ButtonComponent implements ScreenConfigAdapterComponent, OnDestroy {\r\n @HostBinding('class.has-label')\r\n @Input()\r\n public label: string;\r\n\r\n @HostBinding('class.has-left-icon')\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @HostBinding('class.has-right-icon')\r\n @Input()\r\n public iconDataRight: SafeHtml | undefined;\r\n\r\n @Input()\r\n public isToggleButton: boolean;\r\n\r\n @Input()\r\n @HostBinding('class.toggled')\r\n public isToggled: boolean;\r\n\r\n @Input()\r\n @HostBinding('class.co-hidden')\r\n public hidden: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.disabled')\r\n public disabled: boolean = false;\r\n\r\n @HostBinding('class.co-button')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Output()\r\n public readonly onClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly clickedWhileDisabled: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly isToggledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.has-icon')\r\n public get hasIcon(): boolean {\r\n return !!this.iconData;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onHostClick(event: MouseEvent): void {\r\n if (this.readonly || this.disabled) {\r\n this.clickedWhileDisabled.emit(event);\r\n EventUtils.KillEvent(event);\r\n } else {\r\n this.onClick.emit(event);\r\n if (this.isToggleButton) {\r\n this.isToggled = !this.isToggled;\r\n this.isToggledChange.emit(this.isToggled);\r\n }\r\n }\r\n }\r\n\r\n public objectConfigName: string;\r\n public required: boolean;\r\n public forceReadonly: boolean;\r\n @HostBinding(\"class.read-only\")\r\n public readonly: boolean;\r\n public maxLength: number;\r\n public decimals: number;\r\n public redErrorBackground: boolean;\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {RippleModule} from \"../../directives/ripple/ripple.module\";\r\nimport {ButtonComponent} from \"./button.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n RippleModule\r\n ],\r\n declarations: [ButtonComponent],\r\n exports: [ButtonComponent]\r\n})\r\nexport class ButtonModule {\r\n}","import {Component, HostBinding, Input, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: \"co-image\",\r\n template: `\r\n <ng-container *ngIf=\"!error\">\r\n <img *ngIf=\"!!source\" [src]=\"source\" (error)=\"handleImageError($event)\">\r\n </ng-container>\r\n <ng-container *ngIf=\"error || !source\">\r\n <div class=\"no-image-wrapper\">\r\n <co-icon [iconData]=\"innerPlaceHolder\"></co-icon>\r\n <span [textContent]=\"'geen afbeelding'\"></span>\r\n </div>\r\n </ng-container>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ImageComponent implements OnInit {\r\n /**\r\n * Source of the image, can be an URL or a base64 data string\r\n */\r\n @Input()\r\n public source: string;\r\n\r\n /**\r\n * Placeholder svg source to show when there is no image\r\n */\r\n @Input()\r\n public placeHolder: string;\r\n\r\n @HostBinding(\"class.co-image\")\r\n public showClass: boolean = true;\r\n\r\n public error: boolean = false;\r\n public innerPlaceHolder: SafeHtml | undefined;\r\n\r\n private _defaultPlaceholder: string = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M35,18l-3-4H22l-3,4H16V36H40V18ZM24,16h6v2H24Zm2.5,18A6.5,6.5,0,1,1,33,27.5,6.51,6.51,0,0,1,26.5,34ZM38,22H36V20h2Z\" fill=\"#484f60\"/><rect x=\"10\" y=\"18\" width=\"5\" height=\"18\" fill=\"#484f60\"/><rect x=\"11\" y=\"15\" width=\"3\" height=\"2\" fill=\"#484f60\"/><path d=\"M26.5,32A4.5,4.5,0,1,1,31,27.5,4.51,4.51,0,0,1,26.5,32Z\" fill=\"#484f60\"/></svg>';\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.innerPlaceHolder = this._sanitizer.bypassSecurityTrustHtml(this.placeHolder ? this.placeHolder : this._defaultPlaceholder);\r\n }\r\n\r\n public handleImageError(event: any): void {\r\n this.error = true;\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ImageComponent} from \"./image.component\";\r\nimport {IconModule} from '../icon/icon.module';\r\n\r\n@NgModule({\r\n imports: [CommonModule, IconModule],\r\n declarations: [ImageComponent],\r\n exports: [ImageComponent]\r\n})\r\nexport class ImageModule {\r\n}\r\n","import {Directive, ElementRef, Input, NgZone, OnDestroy, OnInit} from \"@angular/core\";\r\n\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\n\r\n@Directive({\r\n selector: '[stopClick]'\r\n})\r\nexport class StopClickDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public stopClick: boolean;\r\n\r\n constructor(private _elementRef: ElementRef, private _ngZone: NgZone) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._elementRef.nativeElement.addEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('mousedown', this._killEventHandler);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef.nativeElement.removeEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('mousedown', this._killEventHandler);\r\n }\r\n\r\n private _killEventHandler: EventListener = (event: MouseEvent): void => {\r\n if (this.stopClick) {\r\n EventUtils.KillEvent(event);\r\n }\r\n };\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {StopClickDirective} from \"./stop-click.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n StopClickDirective\r\n ],\r\n exports: [\r\n StopClickDirective\r\n ]\r\n})\r\nexport class StopClickModule {\r\n}","import {ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\r\n\r\nimport {LevelIndicatorLevel} from './level-indicator-level.enum';\r\n\r\n@Component({\r\n selector: \"co-level-indicator\",\r\n template: `\r\n <div [ngClass]=\"modelAsString\">\r\n <div class=\"square-1\"></div>\r\n <div class=\"square-2\"></div>\r\n <div class=\"square-3\"></div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LevelIndicatorComponent {\r\n @Input()\r\n set model(value: LevelIndicatorLevel) {\r\n this._model = value;\r\n this._modelAsString = \"\" + value;\r\n }\r\n\r\n get model(): LevelIndicatorLevel {\r\n return this._model;\r\n }\r\n\r\n @HostBinding('class.co-level-indicator')\r\n public showClass: boolean = true;\r\n\r\n get modelAsString(): string {\r\n return this._modelAsString;\r\n }\r\n\r\n private _model: LevelIndicatorLevel;\r\n\r\n // to prevent hard crashes on [ngClass] when this component was given a non-string model @Input\r\n private _modelAsString: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {LevelIndicatorComponent} from \"./level-indicator.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [LevelIndicatorComponent],\r\n exports: [LevelIndicatorComponent]\r\n})\r\nexport class LevelIndicatorModule {\r\n}","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {NumberUtils} from \"../core/utils/number-utils\";\r\nimport {notNill} from \"../core/function/not-nill.function\";\r\n\r\n@Pipe({name: \"priceDisplay\"})\r\nexport class PriceDisplayPipe implements PipeTransform {\r\n transform(value: number | string): string {\r\n let priceStr: string = \"\";\r\n\r\n if (notNill(value) && value !== 0 && value !== \"\") {\r\n value = NumberUtils.ParseFloat(value, 2);\r\n priceStr = \"€ \" + NumberUtils.AddThousandsCommasTo(value);\r\n if (NumberUtils.GetDecimalPlaces(priceStr) === 0) {\r\n priceStr += \",-\";\r\n }\r\n }\r\n\r\n return priceStr;\r\n }\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {PriceDisplayPipe} from \"./price-display.pipe\";\r\n\r\n@NgModule({\r\n declarations: [\r\n PriceDisplayPipe\r\n ],\r\n exports: [\r\n PriceDisplayPipe\r\n ]\r\n})\r\nexport class PriceDisplayPipeModule {\r\n}","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from '@angular/core';\r\nimport {IconCacheService} from '../icon/icon-cache.service';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {InputBoolean} from '../../core/decorator/input-boolean.decorator';\r\n\r\n@Component({\r\n selector: 'co-tile',\r\n template: `\r\n <div class=\"tile-wrapper\">\r\n <div class=\"tile-top\">\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </div>\r\n <div class=\"image\" (click)=\"onImageClick.emit()\">\r\n <co-image *ngIf=\"image\" [source]=\"image\"></co-image>\r\n <div class=\"no-image-wrapper\" *ngIf=\"!image && !noImagePlaceholder\">\r\n <co-icon class=\"no-image\" [iconData]=\"imagePlaceHolder\"></co-icon>\r\n <span [textContent]=\"'Geen afbeelding'\"></span>\r\n </div>\r\n <ng-content select=\"[tile-over-image]\"></ng-content>\r\n </div>\r\n <div class=\"tile-bottom\">\r\n <ng-content select=\"[tile-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extra-bottom\">\r\n <div class=\"main\">\r\n <ng-content select=\"[tile-extra-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extended-shadow-wrapper\" *ngIf=\"mouseOverExtended\">\r\n <div class=\"shodow-masque\"></div>\r\n <div class=\"extended\">\r\n <ng-content select=\"[tile-extended-content]\"></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TileComponent {\r\n\r\n public readonly icon: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public image: string;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public mouseOverExtended: boolean = false;\r\n\r\n @HostBinding('class.small')\r\n @Input()\r\n @InputBoolean()\r\n public small: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public noImagePlaceholder: boolean = false;\r\n\r\n @Output()\r\n public onImageClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding('class.co-tile')\r\n public showClass: boolean = true;\r\n\r\n public imagePlaceHolder: null | SafeHtml;\r\n\r\n constructor(private _iconCache: IconCacheService) {\r\n this.imagePlaceHolder = this._iconCache.getIcon(this.icon.Camera);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TileComponent } from './tile.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\nimport { ImageModule } from '../image/image.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n ImageModule\r\n ],\r\n declarations: [TileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [TileComponent]\r\n})\r\nexport class TileModule {\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output} from \"@angular/core\";\r\n\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {LevelIndicatorLevel} from \"../level-indicator/level-indicator-level.enum\";\r\n\r\n@Component({\r\n selector: \"co-article-tile\",\r\n template: `\r\n <co-tile [image]=\"imageData\" [small]=\"isSmallModus\">\r\n <ng-container tile-top-content>\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-over-image>\r\n <ng-content select=\"[over-image]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-bottom-content>\r\n <div class=\"bottom-content-wrapper\">\r\n <div class=\"left-buttons\">\r\n <co-button class=\"card-button square white\" *ngIf=\"hasConfigureButton\" [iconData]=\"icons.getIcon(Icons.MagicWand)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"configureButtonClick.emit($event)\"></co-button>\r\n <co-button class=\"card-button square white\" *ngIf=\"hasThreeDButton\" [iconData]=\"icons.getIcon(Icons.ThreeD)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"threeDButtonClick.emit($event)\"></co-button>\r\n </div>\r\n <co-level-indicator *ngIf=\"!!level\" [model]=\"level\" [class.small]=\"isSmallModus\"></co-level-indicator>\r\n <co-button class=\"card-button\" *ngIf=\"hasCartButton\" [iconData]=\"icons.getIcon(Icons.AddToCartDrop)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"cartButtonClick.emit($event)\"></co-button>\r\n </div>\r\n </ng-container>\r\n <ng-container tile-extra-bottom-content>\r\n <span *ngIf=\"!!description\" class=\"description\" [innerText]=\"description\"></span>\r\n <span *ngIf=\"!!price\" class=\"price\" [innerText]=\"price | priceDisplay\"></span>\r\n <ng-content select=\"[card-extra-content]\"></ng-content>\r\n </ng-container>\r\n </co-tile>\r\n `,\r\n styleUrls: [\r\n \"article-tile.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ArticleTileComponent {\r\n @Input()\r\n public imageData: string;\r\n\r\n @Input()\r\n public description: string;\r\n\r\n @Input()\r\n public price: number | string;\r\n\r\n @Input()\r\n public level: LevelIndicatorLevel;\r\n\r\n @Input()\r\n public isSelected: boolean = false;\r\n\r\n @Input() @HostBinding(\"class.small-modus\")\r\n public isSmallModus: boolean = false;\r\n\r\n @Input()\r\n public hasConfigureButton: boolean = false;\r\n\r\n @Input()\r\n public hasThreeDButton: boolean = false;\r\n\r\n @Input()\r\n public hasCartButton: boolean = false;\r\n\r\n // does not emit when you click one of the predefined buttons, but emits on a click on any of our other content\r\n @Output()\r\n public readonly contentClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly configureButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly threeDButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly cartButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n constructor(public icons: IconCacheService) {\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n this.contentClick.emit(event);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {HttpClientModule} from \"@angular/common/http\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\nimport {ImageModule} from \"../image/image.module\";\r\nimport {StopClickModule} from \"../../directives/stopclick/stop-click.module\";\r\nimport {LevelIndicatorModule} from \"../level-indicator/level-indicator.module\";\r\nimport {PriceDisplayPipeModule} from \"../../pipes/price-display-pipe.module\";\r\nimport { TileModule } from '../tile/tile.module';\r\nimport { ArticleTileComponent } from './article-tile.component';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IconModule,\r\n ButtonModule,\r\n ImageModule,\r\n StopClickModule,\r\n LevelIndicatorModule,\r\n PriceDisplayPipeModule,\r\n TileModule\r\n ],\r\n declarations: [ArticleTileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [ArticleTileComponent]\r\n})\r\nexport class ArticleTileModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport {IconCacheService} from '../icon/icon-cache.service';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {LevelIndicatorLevel} from '../level-indicator/level-indicator-level.enum';\r\n\r\n@Component({\r\n selector: 'co-card',\r\n template: `\r\n <div class=\"co-card-wrapper\">\r\n <div class=\"content-wrapper\">\r\n <co-icon *ngIf=\"isSelected\" [iconData]=\"icons.getIcon(Icons.Check)\" class=\"check light circle\"></co-icon>\r\n <co-button *ngIf=\"hasMagnifierButton\" [iconData]=\"icons.getIcon(Icons.MagnifierPlus)\" class=\"magnify white small circle\"\r\n [stopClick]=\"true\" (click)=\"magnifierButtonClick.emit($event)\"></co-button>\r\n <div class=\"image\">\r\n <co-image [source]=\"imageData\"></co-image>\r\n <ng-content select=\"[over-image]\"></ng-content>\r\n </div>\r\n <co-level-indicator class=\"co-level-indicator\" *ngIf=\"!!level\" [model]=\"level\"></co-level-indicator>\r\n <co-button *ngIf=\"hasInfoButton\" [iconData]=\"icons.getIcon(Icons.Information)\" class=\"info white small circle\"\r\n [class.small]=\"!isSmallModus\" [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"infoButtonClick.emit($event)\"></co-button>\r\n </div>\r\n <div class=\"description-wrapper\">\r\n <span *ngIf=\"!!description\" class=\"description\" [innerText]=\"description\"></span>\r\n <span *ngIf=\"!!price\" class=\"price\" [innerText]=\"price | priceDisplay\"></span>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CardComponent {\r\n @Input()\r\n public imageData: string;\r\n\r\n @Input()\r\n public description: string;\r\n\r\n @Input()\r\n public price: number | string;\r\n\r\n @Input()\r\n public level: LevelIndicatorLevel;\r\n\r\n @Input()\r\n public isSelected: boolean = false;\r\n\r\n @Input() @HostBinding('class.small-modus')\r\n public isSmallModus: boolean = false;\r\n\r\n @Input()\r\n public hasMagnifierButton: boolean = false;\r\n\r\n @Input()\r\n public hasInfoButton: boolean = false;\r\n\r\n // does not emit when you click one of the predefined buttons, but emits on a click on any of our other content\r\n @Output()\r\n public readonly contentClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly infoButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly magnifierButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @HostBinding('class.co-card')\r\n public showClass: boolean = true;\r\n\r\n @HostListener('click', ['$event'])\r\n public onHostClick(event: MouseEvent): void {\r\n this.contentClick.emit(event);\r\n }\r\n\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n public heightCard: number = 150;\r\n\r\n constructor(public icons: IconCacheService, private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {HttpClientModule} from \"@angular/common/http\";\r\n\r\nimport {CardComponent} from \"./card.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\nimport {ImageModule} from \"../image/image.module\";\r\nimport {StopClickModule} from \"../../directives/stopclick/stop-click.module\";\r\nimport {LevelIndicatorModule} from \"../level-indicator/level-indicator.module\";\r\nimport {PriceDisplayPipeModule} from \"../../pipes/price-display-pipe.module\";\r\nimport { TileModule } from '../tile/tile.module';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IconModule,\r\n ButtonModule,\r\n ImageModule,\r\n StopClickModule,\r\n LevelIndicatorModule,\r\n PriceDisplayPipeModule,\r\n TileModule\r\n ],\r\n declarations: [CardComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [CardComponent]\r\n})\r\nexport class CardModule {\r\n}\r\n","import {CSS3DObject} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport {Mesh, PlaneBufferGeometry, Vector2, Vector3} from \"three\";\r\n\r\nexport class CarouselItem {\r\n\r\n public object: CSS3DObject;\r\n public mesh: Mesh;\r\n public index: number;\r\n\r\n private _options: {\r\n tileSize: Vector2,\r\n tileBackgroundColor: any,\r\n textSelectable: boolean,\r\n tileBorderColor: any\r\n };\r\n private _element: HTMLDivElement;\r\n\r\n constructor(options, index, onClick) {\r\n this._options = options || {};\r\n this.index = index;\r\n\r\n const width = this._options.tileSize?.x || 0;\r\n const height = this._options.tileSize?.y || 0;\r\n\r\n this._element = document.createElement('div');\r\n // this._element.style.backgroundColor = this._options.tileBackgroundColor;\r\n this._element.style.width = width + \"px\";\r\n this._element.style.height = height + \"px\";\r\n\r\n this._element.addEventListener(\"click\", () => {\r\n if (onClick) {\r\n onClick(this.index);\r\n }\r\n }, false);\r\n\r\n this.object = new CSS3DObject(this._element);\r\n\r\n const geometry = new PlaneBufferGeometry(width, height);\r\n this.mesh = new Mesh(geometry, options.tileMaterial);\r\n this.mesh.castShadow = true;\r\n }\r\n\r\n public setPosition(position: Vector3): void {\r\n if (this.mesh) {\r\n this.mesh.position.copy(position);\r\n }\r\n if (this.object) {\r\n this.object.position.copy(position);\r\n }\r\n }\r\n\r\n public setContent(content): void {\r\n if (this._element) {\r\n\r\n // remove any exising tile content before setting new content\r\n while (this._element.lastElementChild) {\r\n this._element.removeChild(this._element.lastElementChild);\r\n }\r\n\r\n try {\r\n this._element.appendChild(content);\r\n }\r\n catch (err) {\r\n }\r\n }\r\n }\r\n\r\n public setVisible(visible: boolean): void {\r\n if (this.mesh) {\r\n this.mesh.visible = visible;\r\n }\r\n\r\n if (this.object) {\r\n this.object.visible = visible;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {\r\n AmbientLight,\r\n Box3,\r\n Color,\r\n Fog,\r\n Mesh,\r\n MeshPhongMaterial,\r\n PerspectiveCamera,\r\n PlaneGeometry,\r\n Scene,\r\n SpotLight,\r\n Vector2,\r\n Vector3,\r\n WebGLRenderer\r\n} from \"three\";\r\nimport {CarouselItem} from \"./carouselItem\";\r\nimport {CSS3DObject, CSS3DRenderer} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport * as TWEEN from \"@tweenjs/tween.js\";\r\n\r\n@Component({\r\n selector: \"co-carousel-3d\",\r\n template: `\r\n <div class=\"carousel-3d-canvas-wrapper\" #canvasContainer>\r\n <div class=\"carousel-wrapper\" #carouselWrapper>\r\n <div class=\"carousel-navigate-button left\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateLeft\" (click)=\"handleButtonLeftClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"carousel-navigate-button right\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateRight\" (click)=\"handleButtonRightClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class Carousel3dComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild(\"canvasContainer\", {read: ElementRef})\r\n public canvasContainer: ElementRef;\r\n\r\n @ViewChild(\"carouselWrapper\", {read: ElementRef})\r\n public carouselWrapper: ElementRef;\r\n\r\n @ContentChildren(\"carouselItem\", {read: ElementRef, descendants: true}) set children(children) {\r\n this._elementsCreated = false;\r\n this._tileElements = children.toArray();\r\n this._buildCarousel();\r\n }\r\n\r\n @Input()\r\n public tileWidth: number;\r\n\r\n @Input()\r\n public tileHeight: number;\r\n\r\n @Input()\r\n public cameraHeight: number = 50;\r\n\r\n @Input()\r\n public shadow: boolean = false;\r\n\r\n @Input()\r\n public selectedIndex: number = 0;\r\n\r\n @Output()\r\n public indexSelected: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @HostBinding(\"class.co-carousel-3d\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n private _camera: PerspectiveCamera;\r\n private _cameraZoom: number = 0;\r\n private _backgroundColor = 0xffffff;\r\n private _sceneCss: Scene;\r\n private _scene: Scene;\r\n private _rendererCss: CSS3DRenderer;\r\n private _renderer: WebGLRenderer;\r\n private _ambientLight: boolean = true;\r\n private _tileSize: Vector2 = new Vector2();\r\n private _tileMargin: number = 20;\r\n private _targetPositions = [];\r\n private _tileElements: ElementRef[] = [];\r\n private _tileOffset = 0;\r\n private _tiles3D: CarouselItem[] = [];\r\n private _planeColor = 0xffffff;\r\n private _planeHeight = -46;\r\n private _spotLightPosition: Vector3 = new Vector3(0, 250, -200);\r\n private _fullCircle: boolean = false;\r\n private _initialized: boolean = false;\r\n private _elementsCreated: boolean = false;\r\n\r\n public canNavigateLeft: boolean = false;\r\n public canNavigateRight: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n this._buildCarousel();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.canvasContainer = undefined;\r\n this.carouselWrapper = undefined;\r\n this._clearScenes();\r\n }\r\n\r\n public handleButtonLeftClick(): void {\r\n this._tileOffset -= 1;\r\n this._rotate(400);\r\n }\r\n\r\n public handleButtonRightClick(): void {\r\n this._tileOffset += 1;\r\n this._rotate(400);\r\n }\r\n\r\n private _buildCarousel(): void {\r\n if (!this._initialized) {\r\n this._init();\r\n }\r\n if (this._initialized && !this._elementsCreated) {\r\n this._createTiles();\r\n }\r\n this._checkNavigationButtons();\r\n this._resizeCanvasToDisplaySize();\r\n }\r\n\r\n private _init(): void {\r\n if (!this.canvasContainer || !this.canvasContainer.nativeElement) {\r\n return;\r\n }\r\n\r\n this._initCamera();\r\n this._initScene();\r\n this._initRenderer();\r\n\r\n if (this.shadow) {\r\n const geometry = new PlaneGeometry(10000, 10000);\r\n const material = new MeshPhongMaterial({color: this._planeColor, shininess: 100});\r\n const plane = new Mesh(geometry, material);\r\n plane.receiveShadow = true;\r\n plane.rotation.x = -Math.PI / 2;\r\n plane.position.y = this._planeHeight;\r\n this._scene.add(plane);\r\n\r\n const spotLight = new SpotLight(0xffffff, 0.5);\r\n spotLight.position.copy(this._spotLightPosition);\r\n spotLight.castShadow = true;\r\n spotLight.shadow.mapSize.width = 512;\r\n spotLight.shadow.mapSize.height = 512;\r\n spotLight.shadow.camera.near = 50;\r\n spotLight.shadow.camera.far = 1200;\r\n spotLight.shadow.camera.fov = 30;\r\n spotLight.penumbra = 1;\r\n this._scene.add(spotLight);\r\n }\r\n\r\n this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);\r\n this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);\r\n this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);\r\n\r\n this._render();\r\n this._animate();\r\n\r\n window.addEventListener(\"resize\", () => {\r\n this._resizeCanvasToDisplaySize();\r\n }, false);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n private _initCamera(): void {\r\n this._camera = new PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);\r\n this._camera.position.z = 600 - this._cameraZoom;\r\n this._camera.position.y = this.cameraHeight;\r\n this._camera.lookAt(new Vector3());\r\n }\r\n\r\n private _initScene(): void {\r\n this._sceneCss = new Scene();\r\n this._scene = new Scene();\r\n this._scene.background = new Color(this._backgroundColor);\r\n\r\n if (this._ambientLight) {\r\n const light = new AmbientLight(0xaaaaaa); // soft white light\r\n this._scene.add(light);\r\n\r\n this._scene.fog = new Fog(this._backgroundColor, 70, 2500);\r\n }\r\n }\r\n\r\n private _initRenderer(): void {\r\n this._rendererCss = new CSS3DRenderer();\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._rendererCss.domElement.style.position = \"absolute\";\r\n\r\n this._renderer = new WebGLRenderer({antialias: true});\r\n this._renderer.setPixelRatio(window.devicePixelRatio);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.shadowMap.enabled = true;\r\n }\r\n\r\n private _disposeObject(obj: Mesh | CSS3DObject): void {\r\n if (obj instanceof Mesh) {\r\n if (obj.geometry) {\r\n obj.geometry.dispose();\r\n }\r\n if (obj.material) {\r\n Array.isArray(obj.material)? obj.material.map(m => m.dispose()) : obj.material.dispose();\r\n }\r\n obj = undefined;\r\n } else {\r\n obj.element = undefined;\r\n obj = undefined;\r\n }\r\n }\r\n\r\n private _clearScenes(): void {\r\n const meshes: Mesh[] = this._tiles3D.map(t => t.mesh);\r\n const cssObjs: CSS3DObject[] = this._tiles3D.map(t => t.object);\r\n this._scene.remove(...meshes);\r\n meshes.map(m => this._disposeObject(m));\r\n meshes.length = 0;\r\n this._sceneCss.remove(...cssObjs);\r\n cssObjs.map(o => this._disposeObject(o));\r\n cssObjs.length = 0;\r\n this._tiles3D.length = 0;\r\n this._targetPositions.length = 0;\r\n }\r\n\r\n private _createTiles(): void {\r\n this._clearScenes();\r\n this._tileSize.x = this.tileWidth;\r\n this._tileSize.y = this.tileHeight;\r\n const tileWidth = this._tileSize.x + this._tileMargin;\r\n const numItems: number = Math.max(this._tileElements.length, 20);\r\n this._fullCircle = this._tileElements.length >= 20;\r\n let angleTileDeg: number = 360 / numItems;\r\n const circumference: number = numItems * tileWidth;\r\n const radius: number = circumference / (Math.PI * 2);\r\n const y = this.shadow ? 75 : 45;\r\n\r\n const len: number = numItems;\r\n let angleDeg: number = 90;\r\n const position: Vector3 = new Vector3();\r\n for (var i = 0; i < len; i++) {\r\n const angle = angleDeg * ( Math.PI / 180 ); // Radians\r\n const x = radius * Math.cos(angle);\r\n const z = -radius + radius * Math.sin(angle);\r\n position.set(x, y, z);\r\n this._targetPositions.push(position.clone());\r\n if (i < this._tileElements.length) {\r\n const tile: CarouselItem = new CarouselItem({tileSize: this._tileSize}, i, (idx: number) => this._rotateTo(idx));\r\n tile.setPosition(position);\r\n tile.setContent(this._tileElements[i].nativeElement);\r\n this._scene.add(tile.mesh);\r\n this._sceneCss.add(tile.object);\r\n this._tiles3D.push(tile);\r\n }\r\n angleDeg = angleDeg - angleTileDeg; // CW instead of CCW\r\n }\r\n this._adjustCameraZoom();\r\n this._tileOffset = this.selectedIndex;\r\n this._rotate(0);\r\n this._render();\r\n }\r\n\r\n private _adjustCameraZoom(): void {\r\n if (this._tiles3D.length === 0) {\r\n return;\r\n }\r\n const object = this._tiles3D[0].mesh;\r\n // offset = offset || 1.15;\r\n\r\n // get bounding box of object - this will be used to setup controls and camera\r\n const boundingBox = new Box3();\r\n boundingBox.setFromObject(object);\r\n const center: Vector3 = new Vector3();\r\n boundingBox.getCenter(center);\r\n const size: Vector3 = new Vector3();\r\n boundingBox.getSize(size);\r\n\r\n // get the max side of the bounding box (fits to width OR height as needed )\r\n const maxDim = Math.max(size.x, size.y, size.z);\r\n this._camera.position.z = Math.abs((maxDim / 2) * Math.atan(this._camera.fov / 2));\r\n this._camera.lookAt(center);\r\n }\r\n\r\n private _checkNavigationButtons(): void {\r\n const currentIdx: number = this._getSelectedIndex();\r\n this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;\r\n this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;\r\n }\r\n\r\n private _animate() {\r\n TWEEN.update();\r\n setTimeout(() => {\r\n this._renderer.setAnimationLoop(() => this._animate());\r\n }, 200);\r\n }\r\n\r\n private _getSelectedIndex() {\r\n return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));\r\n }\r\n\r\n private _rotate(duration) {\r\n TWEEN.removeAll();\r\n\r\n for (let i: number = 0; i < this._tiles3D.length; i++) {\r\n const tile = this._tiles3D[i];\r\n\r\n if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle\r\n this._tileOffset = this._tileOffset > 0 ? 1 : -1;\r\n }\r\n\r\n let positionIdx: number = i - this._tileOffset;\r\n if (positionIdx > this._targetPositions.length - 1) {\r\n positionIdx = positionIdx - this._targetPositions.length;\r\n } else if (positionIdx < 0) {\r\n positionIdx = this._targetPositions.length + positionIdx;\r\n }\r\n const target = this._targetPositions[positionIdx];\r\n\r\n new TWEEN.Tween(tile.object.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n new TWEEN.Tween(tile.mesh.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n }\r\n\r\n new TWEEN.Tween()\r\n .to({}, duration * 2)\r\n .onUpdate(() => {\r\n this._render();\r\n })\r\n .start();\r\n\r\n this.selectedIndex = this._tileOffset;\r\n this._checkNavigationButtons();\r\n this.indexSelected.next(this._getSelectedIndex());\r\n }\r\n\r\n private _rotateTo(index: number) {\r\n const current = this._getSelectedIndex();\r\n this._tileOffset += index - current;\r\n this._rotate(800);\r\n }\r\n\r\n private _resizeCanvasToDisplaySize() {\r\n setTimeout(() => {\r\n if (!this.canvasContainer || !this.canvasContainer.nativeElement) {\r\n return;\r\n }\r\n this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;\r\n this._camera.updateProjectionMatrix();\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._render();\r\n });\r\n }\r\n\r\n private _render() {\r\n this._rendererCss.render(this._sceneCss, this._camera);\r\n this._renderer.render(this._scene, this._camera);\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {Carousel3dComponent} from \"./carousel-3d.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n Carousel3dComponent\r\n ],\r\n exports: [\r\n Carousel3dComponent\r\n ]\r\n})\r\nexport class Carousel3dModule {\r\n}\r\n","import {Component, ContentChildren, ElementRef, HostBinding, OnDestroy, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport 'hammerjs';\r\n\r\n@Component({\r\n selector: 'co-carousel',\r\n template: `\r\n <div class=\"carousel-wrapper\" #container (swipeleft)=\"handleButtonRightClick()\" (swiperight)=\"handleButtonLeftClick()\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"carousel-navigate-button left\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateLeft\" (click)=\"handleButtonLeftClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"carousel-navigate-button right\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateRight\" (click)=\"handleButtonRightClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CarouselComponent implements OnDestroy {\r\n @ViewChild('container', { read: ElementRef }) set containerChild(child) {\r\n if (child) {\r\n this.container = child;\r\n this._checkNavigationButtons();\r\n this.ro.observe(this.container.nativeElement);\r\n }\r\n }\r\n\r\n @ContentChildren('carouselItem', { read: ElementRef, descendants: true }) set contentChildren(content) {\r\n if (content) {\r\n this.carouselItems = content.toArray();\r\n }\r\n this._checkNavigationButtons();\r\n }\r\n\r\n @HostBinding('class.co-carousel')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public carouselItems: ElementRef[];\r\n public canNavigateLeft: boolean = false;\r\n public canNavigateRight: boolean = false;\r\n public container: ElementRef;\r\n public activeIndex: number = 0;\r\n public ro: ResizeObserver = new ResizeObserver(entries => {\r\n this._checkNavigationButtons();\r\n });\r\n\r\n private _disableButtons: boolean = false;\r\n\r\n ngOnDestroy(): void {\r\n for (let i = this.carouselItems.length - 1; i >= 0; i--) {\r\n this.carouselItems[i] = undefined;\r\n }\r\n this.container = undefined;\r\n }\r\n\r\n public handlePress(event): void {\r\n console.log(event);\r\n }\r\n\r\n public handleSwipe(event): void {\r\n const x = Math.abs(event.deltaX) > 40 ? (event.deltaX > 0 ? 'right' : 'left'):'';\r\n const y = Math.abs(event.deltaY) > 40 ? (event.deltaY > 0 ? 'down' : 'up') : '';\r\n\r\n console.log(`${x} ${y}`);\r\n }\r\n\r\n public async handleButtonLeftClick(): Promise<void> {\r\n this._navigate();\r\n }\r\n\r\n public async handleButtonRightClick(): Promise<void> {\r\n this._navigate(true);\r\n }\r\n\r\n private async _navigate(right: boolean = false): Promise<void> {\r\n if (this._disableButtons) {\r\n return;\r\n }\r\n this._disableButtons = true;\r\n const wantedIndex: number = this.activeIndex + (right ? 1 : -1);\r\n const left: number = this._getLeftPositionFromActiveItem(wantedIndex);\r\n if (left !== null) {\r\n if (await this._scrollWrapper(left)) {\r\n this.activeIndex = wantedIndex;\r\n }\r\n }\r\n this._checkNavigationButtons();\r\n this._disableButtons = false;\r\n }\r\n\r\n private _checkNavigationButtons(): void {\r\n if (this.container && this.container.nativeElement) {\r\n this.canNavigateLeft = this.container.nativeElement.scrollLeft > 0;\r\n this.canNavigateRight = this.container.nativeElement.scrollLeft + this.container.nativeElement.clientWidth < this.container.nativeElement.scrollWidth;\r\n }\r\n }\r\n\r\n private _getLeftPositionFromActiveItem(index: number): number {\r\n const element = this.carouselItems[index];\r\n return element ? element.nativeElement.offsetLeft : null;\r\n }\r\n\r\n private async _scrollWrapper(left: number): Promise<boolean> {\r\n return new Promise((resolve: Function) => {\r\n if (this.container && this.container.nativeElement) {\r\n const oldScroll: number = this.container.nativeElement.scrollLeft;\r\n this.container.nativeElement.scrollLeft = left;\r\n setTimeout(() => {\r\n return resolve(oldScroll !== this.container.nativeElement.scrollLeft);\r\n }, 400)\r\n } else {\r\n return resolve(false);\r\n }\r\n });\r\n }\r\n}\r\n","import {Injectable, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CarouselComponent} from './carousel.component';\r\nimport {HAMMER_GESTURE_CONFIG, HammerGestureConfig, HammerModule} from '@angular/platform-browser';\r\n\r\nexport class CarouselHammerConfig extends HammerGestureConfig {\r\n overrides = <any> {\r\n swipe: { direction: Hammer.DIRECTION_HORIZONTAL },\r\n };\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HammerModule\r\n ],\r\n declarations: [\r\n CarouselComponent\r\n ],\r\n exports: [\r\n CarouselComponent\r\n ],\r\n providers: [\r\n {provide: HAMMER_GESTURE_CONFIG, useClass: CarouselHammerConfig},\r\n ]\r\n})\r\nexport class CarouselModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\nimport {animate, animateChild, AnimationTriggerMetadata, query, state, style, transition, trigger} from '@angular/animations';\n\nexport const showHideDialog = [\n window.innerWidth > 700 ?\n trigger('showHideDialog', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void <=> *', animate(200))\n ]) :\n trigger('showHideDialog', [\n state('*', style({bottom: 0})),\n state('void', style({bottom: '-100%'})),\n transition('void <=> *', animate(200))\n ])\n]\n\n@Component({\n selector: 'co-dialog',\n template: `\n <div class=\"co-dialog-overlay\" (click)=\"handleOverlayClick($event)\"></div>\n <div class=\"co-dialog-placeholder\">\n <div class=\"co-dialog-wrapper\" [ngClass]=\"customCssClass ? customCssClass : undefined\" @showHideDialog cdkDrag>\n <div *ngIf=\"!borderless\" class=\"dialog-drag-handle\" cdkDragHandle></div>\n <div class=\"dialog-header\" *ngIf=\"!borderless\">\n <div class=\"dialog-header-caption\" *ngIf=\"headerTemplate\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n </div>\n <div class=\"dialog-close-button\" *ngIf=\"showCloseIcon\" (click)=\"handleCloseDialog($event)\">\n <co-icon [icon]=\"icons.CrossSkinny\"></co-icon>\n </div>\n </div>\n <div class=\"dialog-content co-small-scrollbar\" [ngClass]=\"customCssClass ? customCssClass : undefined\">\n <ng-content></ng-content>\n </div>\n <div class=\"dialog-footer\" *ngIf=\"footerTemplate\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\"></ng-container>\n </div>\n </div>\n </div>\n `,\n animations: [\n trigger('showHideCoDialog', [\n transition('void => *', [\n query('.co-dialog-overlay', style({opacity: 0})),\n // query('.co-dialog-wrapper', style({bottom: '-100%'})),\n query('.co-dialog-overlay', animate(200, style({opacity: 1}))),\n query('@showHideDialog', animateChild())\n\n ]),\n transition('* => void', [\n // query('.co-dialog-wrapper', style({bottom: 0})),\n query('@showHideDialog', animateChild()),\n query('.co-dialog-overlay', animate(200, style({opacity: 0})))\n ]),\n ]),\n showHideDialog\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoDialogComponent implements OnInit {\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\n\n @Input()\n public customCssClass: string;\n\n @Input()\n public headerTemplate: TemplateRef<any>;\n\n @Input()\n public footerTemplate: TemplateRef<any>;\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Input()\n public modal: boolean = false;\n\n @HostBinding('class.borderless')\n @Input()\n public borderless: boolean = false;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostBinding('class.co-dialog')\n public showClass(): boolean {\n return true;\n }\n\n @HostListener('window:keydown', ['$event'])\n public handleKeyDown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'Escape':\n this.handleCloseDialog();\n }\n }\n\n @HostBinding('class.is-touch')\n public isTouch: boolean = false;\n\n @HostBinding('class.is-mobile')\n public mobile: boolean = false;\n\n public state: string = 'closed';\n\n @HostBinding('@showHideCoDialog')\n\n ngOnInit(): void {\n this._checkDevice();\n }\n\n public handleCloseDialog(event?: MouseEvent): void {\n this.closeClick.emit(event);\n }\n\n public handleOverlayClick(event: MouseEvent): void {\n if (!this.modal) {\n this.closeClick.emit(event);\n }\n }\n\n private _checkDevice(): void {\n this.isTouch = ('ontouchstart' in window) ||\n (navigator.maxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0);\n this.mobile = window.innerWidth < 700;\n }\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogComponent} from \"./co-dialog.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n DragDropModule\r\n ],\r\n declarations: [CoDialogComponent],\r\n exports: [CoDialogComponent]\r\n})\r\nexport class CoDialogModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\n\n@Component({\n selector: 'co-dialog-wizard',\n template: `\n <div class=\"co-dialog-wizard-wrapper\" [@showHideDialog]=\"animation\">\n <div class=\"dialog-header\">\n <ng-content select=\"[header]\"></ng-content>\n <div class=\"dialog-close-button\" *ngIf=\"showCloseIcon\" (click)=\"closeClick.emit($event)\">\n <co-icon [icon]=\"icons.Cancel\"></co-icon>\n </div>\n </div>\n\n <hr class=\"co-dialog-wizard-divider\">\n\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n animations: [\n trigger('showHideDialog', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void => *', animate('200ms 200ms')),\n transition('* => void', animate(200))\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoDialogWizardComponent {\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Input()\n public animation: boolean = true;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostBinding(\"class.co-dialog-wizard\")\n public showClass(): boolean {\n return true;\n }\n\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogWizardComponent} from \"./co-dialog-wizard.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [CoDialogWizardComponent],\r\n exports: [CoDialogWizardComponent]\r\n})\r\nexport class CoDialogWizardModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output, TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport { SafeHtml } from \"@angular/platform-browser\";\r\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\r\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\r\n\r\n@Component({\r\n selector: \"co-collapsible\",\r\n template: `\r\n <div class=\"collapsible-header\" [class.end]=\"expandButtonLast\" (click)=\"changeExpanded()\">\r\n <div class=\"collapsible-header-start\">\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"!expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n <div class=\"collapsible-title\" *ngIf=\"customHeaderContent\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </div>\r\n <div *ngIf=\"!customHeaderContent\" class=\"collapsible-title\" [textContent]=\"headerTitle\"></div>\r\n </div>\r\n <div class=\"collapsible-header-end\">\r\n <div class=\"collapsible-button-wrapper\" *ngIf=\"showButton !== undefined\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"collapsible-button\" *ngIf=\"showButton\" [textContent]=\"buttonText\"\r\n (click)=\"onButtonClick()\"></button>\r\n </div>\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-content\" *ngIf=\"expanded\" @showHideContent>\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n animations: [\r\n trigger('showHideContent', [\r\n state('*', style({height: '*'})),\r\n state('void', style({height: 0})),\r\n transition('void <=> *', animate(200))\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CollapsibleComponent implements OnDestroy {\r\n @Input()\r\n public headerContent: TemplateRef<any>;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public customHeaderContent: boolean = false;\r\n\r\n @Input()\r\n public headerTitle: string;\r\n\r\n @Input()\r\n public buttonText: string;\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public expandButtonLast: boolean = false;\r\n\r\n @Input()\r\n public showButton: boolean;\r\n\r\n @Input()\r\n public expanded: boolean = false;\r\n\r\n @Output()\r\n public expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public buttonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-collapsible\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n public ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n\r\n public changeExpanded(): void {\r\n this.expanded = !this.expanded;\r\n this.expandedChange.next(this.expanded);\r\n }\r\n\r\n public onButtonClick(): void {\r\n this.buttonClicked.emit();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { ButtonModule } from \"../button/button.module\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CollapsibleComponent} from \"./collapsible.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n ButtonModule\r\n ],\r\n declarations: [CollapsibleComponent],\r\n exports: [CollapsibleComponent]\r\n})\r\nexport class CollapsibleModule {\r\n}\r\n","// Represents a positional model\r\nexport class ElementPosition {\r\n public top: number;\r\n public right: number;\r\n public bottom: number;\r\n public left: number;\r\n\r\n constructor (top?: number, right?: number, bottom?: number, left?: number) {\r\n this.top = top;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.left = left;\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport { FormComponent } from '../../components/form/form.component';\r\nimport { ArrayUtils } from '../utils/array-utils';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\n/**\r\n * Service to use inside [providers] of some leaf component that contains multiple <co-form>'s inside, possibly nested. Gives the master\r\n * full control over submits etc. of all its inner co-forms with just one service.\r\n */\r\n@Injectable()\r\nexport class FormMasterService implements OnDestroy {\r\n // emits when ALL slaves valid-submitted\r\n public readonly validSlavesSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _slaveForms: FormComponent[] = [];\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n private _slaveHoldingFirstInvalidField: FormComponent;\r\n private _keyOfFirstInvalidFieldInDom: string;\r\n private _positionOfFirstInvalidFieldInDom: ElementPosition = new ElementPosition(9999, 9999, 9999, 9999);\r\n\r\n private _firstErrorTooltipSpawned: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._slaveForms.length = 0;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public addSlave(coFormComp: FormComponent): void {\r\n this._slaveForms.push(coFormComp);\r\n this._subs.push(coFormComp.invalidSubmit.subscribe(() => {\r\n this._handleFormCompInvalidity();\r\n }));\r\n this._subs.push(coFormComp.anySubmit.subscribe(() => {\r\n this._resetFirstInvalidFieldProps();\r\n }));\r\n }\r\n\r\n public removeSlave(coFormComp: FormComponent): void {\r\n ArrayUtils.RemoveElement(coFormComp, this._slaveForms);\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n // Returns true if ALL submits were succesful, false if at least one submit failed. Returns undefined if we had no slaves.\r\n public submitSlaves(): boolean {\r\n this._resetFirstInvalidFieldProps();\r\n let success: boolean = true;\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].submit(true)) {\r\n success = false;\r\n }\r\n }\r\n }\r\n\r\n if (success) {\r\n this.validSlavesSubmit.next();\r\n } else {\r\n this._handleFormCompInvalidity();\r\n }\r\n return success;\r\n }\r\n\r\n public resetSlaves(): void {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n this._slaveForms[i].reset();\r\n }\r\n }\r\n }\r\n\r\n public setFirstInvalidField(form: FormComponent, key: string, element: HTMLElement): void {\r\n if (!element) {\r\n return;\r\n }\r\n const clientRect: ClientRect = element.getBoundingClientRect(),\r\n scrollLeft: number = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop: number = window.pageYOffset || document.documentElement.scrollTop,\r\n top: number = clientRect.top + scrollTop,\r\n left: number = clientRect.left + scrollLeft;\r\n if (this._positionOfFirstInvalidFieldInDom.top >= top && this._positionOfFirstInvalidFieldInDom.left >= left) {\r\n this._slaveHoldingFirstInvalidField = form;\r\n this._keyOfFirstInvalidFieldInDom = key;\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(top, clientRect.right, clientRect.bottom, left);\r\n }\r\n }\r\n\r\n public allSlavesValid(): boolean {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].isValid()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n private _resetFirstInvalidFieldProps(): void {\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(9999, 9999, 9999, 9999);\r\n this._keyOfFirstInvalidFieldInDom = \"\";\r\n this._slaveHoldingFirstInvalidField = undefined;\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n private _handleFormCompInvalidity(): void {\r\n if (this._slaveHoldingFirstInvalidField && !this._firstErrorTooltipSpawned) {\r\n this._slaveHoldingFirstInvalidField.showErrorTooltipOnFormGroupControl(this._keyOfFirstInvalidFieldInDom);\r\n this._firstErrorTooltipSpawned = true;\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {FormControl, FormGroup} from \"@angular/forms\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormMasterService} from \"../../core/service/form-master.service\";\r\n\r\nconst FormGroupStatus: any = {\r\n VALID: \"VALID\",\r\n INVALID: \"INVALID\",\r\n PENDING: \"PENDING\",\r\n DISABLED: \"DISABLED\"\r\n};\r\n\r\n@Component({\r\n selector: \"co-form\",\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n// The iOneJS version of the form tag, representing a form with controls.\r\nexport class FormComponent implements AfterViewInit, OnDestroy, OnInit {\r\n @Input()\r\n set readonly(value: boolean) {\r\n this._readonly = value;\r\n this.readonlyChange.emit(value);\r\n }\r\n\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n\r\n @Input()\r\n public keepInView: Element;\r\n\r\n @Output()\r\n public onChange: EventEmitter<FormControl> = new EventEmitter<FormControl>();\r\n\r\n @HostBinding(\"class.co-form\")\r\n public showClass: boolean = true;\r\n\r\n @HostBinding(\"class.submitted\")\r\n public submitted: boolean = false;\r\n\r\n // Emits true after every valid submit.\r\n @Output()\r\n public readonly validSubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // Emits void after every 'submit' (either valid or invalid, eg a submit attempt)\r\n @Output()\r\n public readonly anySubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // note: a disabled control is considered valid\r\n @Output()\r\n public readonly validityChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly readonlyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n // The Angular in-memory representation of the form controls on this form. Performs actual logic, emits 'input field' (Control) state change events, etc.\r\n public formGroup: FormGroup = new FormGroup({});\r\n\r\n @Output()\r\n public invalidSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _readonly: boolean = false;\r\n private _valueChangeSub: Subscription;\r\n private _statusChangeSub: Subscription;\r\n\r\n private _init: boolean;\r\n\r\n // key: name of form inputs, values: the component for that name\r\n private _componentMap: Map<string, BaseInputComponent<any>> = new Map<string, BaseInputComponent<any>>([]);\r\n\r\n constructor(\r\n private _formMaster: FormMasterService\r\n ) {\r\n this._formMaster.addSlave(this);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._init = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._valueChangeSub = this.formGroup.valueChanges.subscribe((e) => {\r\n this.onChange.emit(e);\r\n });\r\n this._statusChangeSub = this.formGroup.statusChanges.subscribe((e) => {\r\n if (e === FormGroupStatus.VALID || e === FormGroupStatus.DISABLED) {\r\n this.validityChange.emit(true);\r\n } else if (e === FormGroupStatus.INVALID) {\r\n this.validityChange.emit(false);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._valueChangeSub) {\r\n this._valueChangeSub.unsubscribe();\r\n }\r\n if (this._statusChangeSub) {\r\n this._statusChangeSub.unsubscribe();\r\n }\r\n this._componentMap.clear();\r\n this._componentMap = undefined;\r\n this._formMaster.removeSlave(this);\r\n this.keepInView = undefined;\r\n }\r\n\r\n public addFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.addControl(formInput.name, formInput.control);\r\n if (formInput.elementRef) {\r\n this._componentMap.set(formInput.name, formInput);\r\n }\r\n }\r\n\r\n public removeFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.removeControl(formInput.name);\r\n this._componentMap.delete(formInput.name);\r\n }\r\n\r\n public updateFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.setControl(formInput.name, formInput.control);\r\n }\r\n\r\n // Marks form as touched, checks validity and returns true if indeed valid, else false. Visuals of form inputs can change after calling this.\r\n public checkUpdateValidity(): boolean {\r\n this.formGroup.markAsTouched();\r\n this.formGroup.updateValueAndValidity();\r\n if (!this.isValid()) {\r\n this._setFirstInvalidElementOnMaster();\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public isTouched(): boolean {\r\n return this.formGroup.touched;\r\n }\r\n\r\n public isValid(): boolean {\r\n return this._init && this.formGroup.valid;\r\n }\r\n\r\n // @HostListener('keyup.enter', ['$event'])\r\n // onEnterKey(event: KeyboardEvent): void {\r\n // const target: HTMLElement = <HTMLElement>event.target;\r\n // if (['TEXTAREA', 'SELECT'].indexOf(target.tagName) !== -1) {\r\n // return;\r\n // }\r\n // if (target.isContentEditable) {\r\n // return;\r\n // }\r\n // if (target.tagName === 'BUTTON-COLIJN' && target.getAttribute('type') === 'submit') {\r\n // return;\r\n // }\r\n // this.submit();\r\n // }\r\n\r\n public reset(): void {\r\n this.submitted = false;\r\n this.formGroup.markAsUntouched();\r\n }\r\n\r\n // returns validity\r\n public submit(throughFormMaster: boolean = false): boolean {\r\n this.submitted = true;\r\n if (!throughFormMaster) {\r\n this.anySubmit.emit();\r\n }\r\n if (this.checkUpdateValidity()) {\r\n this.validSubmit.emit();\r\n } else {\r\n if (!throughFormMaster) {\r\n this.invalidSubmit.next();\r\n }\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public showErrorTooltipOnFormGroupControl(key: string): void {\r\n for (const controlKey in this.formGroup.controls) {\r\n if (this.formGroup.controls.hasOwnProperty(controlKey)) {\r\n if (this._componentMap.has(controlKey)) {\r\n const comp: BaseInputComponent<any> = this._componentMap.get(controlKey);\r\n for (const errorKey in this.formGroup.controls[controlKey].errors) {\r\n if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {\r\n const error: any = this.formGroup.controls[controlKey].errors[errorKey];\r\n if (controlKey === key) {\r\n comp.showValidationError(error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _setFirstInvalidElementOnMaster(): void {\r\n const elements: any = Array.from(this._componentMap);\r\n const len: number = elements.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const key: string = elements[i][0];\r\n const value: BaseInputComponent<any> = elements[i][1];\r\n if (this.formGroup.controls.hasOwnProperty(key) && this.formGroup.controls[key].status.toLowerCase() === \"invalid\") {\r\n this._formMaster.setFirstInvalidField(this, key, value.elementRef ? value.elementRef.nativeElement : undefined);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {FormComponent} from \"./form.component\";\r\nimport {FormMasterService} from \"../../core/service/form-master.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n FormComponent\r\n ],\r\n providers: [\r\n FormMasterService\r\n ],\r\n exports: [\r\n FormComponent\r\n ]\r\n})\r\nexport class FormModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from '@angular/core';\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {InputBoolean} from '../../core/decorator/input-boolean.decorator';\r\n\r\n@Component({\r\n selector: \"co-grid-toolbar\",\r\n template: `\r\n <div class=\"grid-toolbar-wrapper\">\r\n <co-icon *ngIf=\"showEdit\" [iconData]=\"iconsService.getIcon(icons.PenToSquareSolid)\" [title]=\"'edit'\" (click)=\"editClick.emit($event)\"></co-icon>\r\n <co-icon *ngIf=\"showEdit\" [iconData]=\"iconsService.getIcon(icons.RotateLeftSolid)\" [title]=\"'cancel'\" (click)=\"cancelClick.emit()\"></co-icon>\r\n <co-icon *ngIf=\"showEdit\" [iconData]=\"iconsService.getIcon(icons.FloppyDiskSolid)\" [title]=\"'save'\" (click)=\"saveClick.emit()\"></co-icon>\r\n <co-icon *ngIf=\"showAdd || showEdit\" [iconData]=\"iconsService.getIcon(icons.PlusSolid)\" [title]=\"'add'\" (click)=\"addClick.emit()\"></co-icon>\r\n <co-icon *ngIf=\"showDelete\" [iconData]=\"iconsService.getIcon(icons.TrashCanSolid)\" [title]=\"'delete'\" [class.disabled]=\"!deleteEnabled\" (click)=\"handleDeleteClick()\"></co-icon>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GridToolbarComponent {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public showEdit: boolean = false;\r\n\r\n @Input()\r\n public showAdd: boolean = false;\r\n\r\n @Input()\r\n public showDelete: boolean = false;\r\n\r\n @Input()\r\n public deleteEnabled: boolean = false;\r\n\r\n @Output()\r\n public editClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public cancelClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public saveClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public addClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public deleteClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-grid-toolbar\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(public iconsService: IconCacheService) {\r\n }\r\n\r\n public handleDeleteClick(): void {\r\n if (this.deleteEnabled) {\r\n this.deleteClick.next();\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {GridToolbarComponent} from \"./grid-toolbar.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\nimport {CommonModule} from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n IconModule,\r\n ButtonModule,\r\n CommonModule\r\n ],\r\n declarations: [\r\n GridToolbarComponent\r\n ],\r\n exports: [\r\n GridToolbarComponent\r\n ]\r\n})\r\nexport class GridToolbarModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"co-grid-toolbar-button\",\r\n template: `\r\n <div class=\"grid-toolbar-button-wrapper\" [class.disabled]=\"disabled\" (click)=\"buttonClick.next()\">\r\n <co-icon [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GridToolbarButtonComponent {\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public disabled: boolean = false;\r\n\r\n @Output()\r\n public buttonClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-grid-toolbar-button\")\r\n public showClass() {\r\n return true;\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {GridToolbarButtonComponent} from \"./grid-toolbar-button.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n IconModule,\r\n ],\r\n declarations: [\r\n GridToolbarButtonComponent\r\n ],\r\n exports: [\r\n GridToolbarButtonComponent\r\n ]\r\n})\r\nexport class GridToolbarButtonModule {\r\n}\r\n","// Direction type for regular straight directions.\r\nexport enum CoDirection {\r\n Right = \"right\",\r\n Left = \"left\",\r\n Up = \"top\",\r\n Down = \"bottom\",\r\n}","import {CoDirection} from \"./co-direction\";\r\n\r\n// Represents a bi-directional orientation.\r\nexport enum CoOrientation {\r\n Horizontal = \"horizontal\",\r\n Vertical = \"vertical\",\r\n}\r\n\r\nconst _orientationsOfDirections: Map<CoDirection, CoOrientation> = new Map<CoDirection, CoOrientation>([\r\n [CoDirection.Right, CoOrientation.Vertical],\r\n [CoDirection.Left, CoOrientation.Vertical],\r\n [CoDirection.Up, CoOrientation.Horizontal],\r\n [CoDirection.Down, CoOrientation.Horizontal]\r\n]);\r\n\r\nexport function OrientationOfDirection(direction: CoDirection): CoOrientation {\r\n return _orientationsOfDirections.get(direction);\r\n}","import { CoDirection } from \"../enum/co-direction\";\r\n\r\n// @dynamic\r\nexport class DirectionEnumUtils {\r\n private static readonly _OppositeDirections: Map<CoDirection, CoDirection> = new Map<CoDirection, CoDirection>([\r\n [CoDirection.Right, CoDirection.Left],\r\n [CoDirection.Left, CoDirection.Right],\r\n [CoDirection.Up, CoDirection.Down],\r\n [CoDirection.Down, CoDirection.Up]\r\n ]);\r\n\r\n public static OppositeOf(direction: CoDirection): CoDirection {\r\n return this._OppositeDirections.get(direction);\r\n }\r\n}\r\n","import { Component, HostBinding, Input, ViewEncapsulation } from \"@angular/core\";\r\nimport { InputBoolean } from \"../../core/decorator/input-boolean.decorator\";\r\nimport { CoDirection } from \"../../core/enum/co-direction\";\r\nimport { CoOrientation, OrientationOfDirection } from \"../../core/enum/co-orientation\";\r\nimport { CoreComponentsIcon } from \"../../core/enum/core-components-icon.enum\";\r\nimport { DirectionEnumUtils } from \"../../core/utils/direction-enum-utils\";\r\n\r\n@Component({\r\n selector: \"co-icon-collapse-handle\",\r\n template: `\r\n <div class=\"wrap\">\r\n <co-icon [icon]=\"Icons.ArrowPointUp\" [class]=\"'first ' + arrowDirection + ' ' + iconColorClass\"></co-icon>\r\n <co-icon *ngIf=\"twoArrows\" [icon]=\"Icons.ArrowPointUp\"\r\n [class]=\"'second ' + oppositeArrowDirection + ' ' + iconColorClass\"></co-icon>\r\n </div>\r\n <div class=\"absolute-fill-parent\" md-ripple></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class IconCollapseHandleComponent {\r\n\r\n @HostBinding(\"class.co-icon-collapse-handle\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Input()\r\n public orientation: CoOrientation = CoOrientation.Horizontal;\r\n\r\n @Input()\r\n public set arrowDirection(arrowDirection: CoDirection) {\r\n this._arrowDirection = arrowDirection;\r\n this._oppositeArrowDirection = DirectionEnumUtils.OppositeOf(this._arrowDirection);\r\n }\r\n\r\n public get arrowDirection(): CoDirection {\r\n return this._arrowDirection;\r\n }\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.two-arrows\")\r\n public twoArrows: boolean = false;\r\n\r\n @HostBinding(\"class.vertical\")\r\n public get isVertical(): boolean {\r\n return this.orientation === CoOrientation.Vertical;\r\n }\r\n\r\n @HostBinding(\"class.arrows-orientated-horizontally\")\r\n public get arrowsOrientatedHorizontally(): boolean {\r\n return OrientationOfDirection(this._arrowDirection) === CoOrientation.Horizontal;\r\n }\r\n\r\n public get oppositeArrowDirection(): CoDirection {\r\n return this._oppositeArrowDirection;\r\n }\r\n\r\n public readonly iconColorClass: string = \"action-color\";\r\n\r\n @HostBinding(\"class.hidden\")\r\n public hidden: boolean;\r\n\r\n public required: boolean;\r\n public readonly: boolean;\r\n\r\n\r\n public readonly Icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n private _arrowDirection: CoDirection = CoDirection.Up;\r\n private _oppositeArrowDirection: CoDirection = CoDirection.Down;\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RippleModule } from \"../../directives/ripple/ripple.module\";\r\nimport { IconModule } from \"../icon/icon.module\";\r\nimport { IconCollapseHandleComponent } from \"./icon-collapse-handle.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n RippleModule\r\n ],\r\n declarations: [\r\n IconCollapseHandleComponent\r\n ],\r\n exports: [\r\n IconCollapseHandleComponent\r\n ]\r\n})\r\nexport class IconCollapseHandleModule {\r\n}\r\n","export enum FilterItemMode {\r\n\r\n //This mode makes the Filter display a multi select list\r\n // Input will be passed along directly as a string with the following syntax: \"?>='choice 1', ?<='choice2'\"\r\n Filterlist = 'filterlist',\r\n\r\n //This mode makes the Filter display a single select list\r\n // Input will be passed along directly as a simple string.\r\n SingleSelectList = 'singleSelectList',\r\n\r\n //This mode makes the Filter display a multi select list\r\n // Input will be passed along directly as a simple string.\r\n SelectListWithStringCollectionOutput = 'selectListWithStringCollectionOutput',\r\n\r\n //This mode makes the Filter display a multi select list\r\n // Available choices will need to have their identifying value be a number. The summation of all these numbers will be passed along.\r\n SelectListWithNumberOutput = 'selectListWithNumberOutput',\r\n\r\n //This mode makes the Filter display a min and max field. This should eventually be a slider.\r\n // input is passed along as \"min - max\"\r\n Slider = 'slider',\r\n\r\n //This mode makes the Filter display a min and max field. This should eventually be a slider.\r\n // input is passed along as \"min - max\" This version can be emptied.\r\n NullableSlider = 'nullableSlider',\r\n\r\n //This mode makes the Filter display a simple textfield.\r\n // The value typed into the field will be passed along directly as a string.\r\n TextField = 'textField',\r\n\r\n //This mode makes the Filter display a simple dateField.\r\n // Field input will be passed along directly as a date object.\r\n DateField = 'dateField',\r\n\r\n //This mode makes the Filter display a dateRange field.\r\n // Field input will be passed along directly as a string with the following syntax: \"?>='01-08-2022'& ?<='31-08-2022'\"\r\n DateRangeField = 'dateRangeField',\r\n\r\n //This mode makes the Filter display a simple checkBox.\r\n // It's value will be passed along directly as a boolean.\r\n Checkbox = 'checkbox',\r\n\r\n //This mode makes the Filter display a simple checkBox.\r\n // It's value will be passed along as either a 'T' or and 'F'.\r\n CheckboxToSimpleText = 'checkboxToSimpleText',\r\n\r\n //This mode makes the Filter display a simple checkBox.\r\n // It's value will be passed along as either a \"?='T'\" or and \"?='F'\".\r\n CheckboxToText = 'checkboxToText',\r\n\r\n //This mode makes the Filter display a simple checkBox.\r\n // It's value will be passed along as either a 1 or and 0.\r\n CheckboxToBinary = 'checkboxToBinary',\r\n\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';\r\nimport { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n\r\n ],\r\n exports: [],\r\n providers: [\r\n FormInputUserModelChangeListenerService,\r\n NgZoneWrapperService\r\n ]\r\n})\r\nexport class BaseModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding, HostListener,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {FormComponent} from '../form/form.component';\r\nimport {FormInputUserModelChangeListenerService} from '../../core/service/form-input-user-change-listener.service';\r\nimport {NgZoneWrapperService} from '../../core/service/ng-zone-wrapper.service';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {IconCacheService} from '../icon/icon-cache.service';\r\nimport {OverlayService} from '../../service/overlay.service';\r\n\r\n@Component({\r\n selector: 'co-input-checkbox',\r\n template: `\r\n <div class=\"checkbox\" (click)=\"handleModelChange($event)\" [class.checked]=\"model\">\r\n <div class=\"checkmark\" [class.show]=\"model\"></div>\r\n </div>\r\n <div class=\"label\" [class.clickable]=\"clickableLabel\" *ngIf=\"label\" [textContent]=\"label\"\r\n (click)=\"clickableLabel ? handleModelChange($event) : true\"></div>\r\n <input #input [ngModel]=\"model\" [readonly]=\"readonly\" [disabled]=\"disabled\" type=\"hidden\">\r\n `,\r\n providers: [\r\n OverlayService,\r\n {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputCheckboxComponent)\r\n }, {\r\n provide: BaseInputComponent,\r\n useExisting: InputCheckboxComponent\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputCheckboxComponent extends BaseInputComponent<boolean> {\r\n @Input()\r\n public cssClass: string;\r\n\r\n @Input()\r\n public clickableLabel: boolean = true;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-input-checkbox')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public handleClick(event: MouseEvent) {\r\n this.handleModelChange(event);\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n public iconCacheService: IconCacheService,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected overlayService: OverlayService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);\r\n }\r\n\r\n public handleModelChange(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (!this.readonly && !this.disabled) {\r\n this.setModel(!this.model);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputCheckboxComponent } from './input-checkbox.component';\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [InputCheckboxComponent],\r\n exports: [InputCheckboxComponent]\r\n})\r\nexport class InputCheckboxModule {\r\n}\r\n","import {Directive, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\n\r\n@Directive()\r\nexport abstract class BaseInputDatePickerDirective extends BaseInputComponent<any> implements OnInit {\r\n public readonly rightIcon: CoreComponentsIcon = CoreComponentsIcon.CalendarDayRegular;\r\n\r\n @ViewChild(\"parentForOverlay\", {read: ElementRef})\r\n public parentForOverlay: ElementRef;\r\n\r\n @Input()\r\n public locale: string = 'en-EN';\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public leftIcon: CoreComponentsIcon;\r\n\r\n @Input()\r\n public leftIconData: SafeHtml;\r\n\r\n @Output()\r\n public leftIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Input()\r\n public closeAfterDateSelection: boolean = true;\r\n\r\n public showCalendar: boolean;\r\n}\r\n","import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"co-calendar\",\r\n template: `\r\n <div class=\"date-picker-container\" [overlay]=\"parentForOverlay\" (clickOutside)=\"clickedOutside.next()\">\r\n <calendar-template\r\n [locale]=\"locale\"\r\n [highlightDaysBetweenDates]=\"highlightDaysBetweenDates\"\r\n [selectedDate]=\"selectedDate\"\r\n [secondSelectedDate]=\"secondSelectedDate\"\r\n [secondHoveringDate]=\"secondHoveringDate\"\r\n (dateSelected)=\"dateSelected.next($event)\"\r\n (hoveringDate)=\"hoveringDate.next($event)\"\r\n ></calendar-template>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarComponent {\r\n\r\n @Input()\r\n public locale: string = \"nl-NL\";\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n @Input()\r\n public highlightDaysBetweenDates: boolean = false;\r\n\r\n @Input()\r\n public selectedDate: Date;\r\n\r\n @Input()\r\n public secondSelectedDate: Date;\r\n\r\n @Input()\r\n public secondHoveringDate: Date;\r\n\r\n @Output()\r\n public dateSelected: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public hoveringDate: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public clickedOutside: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-calendar\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ComponentRef,\r\n forwardRef,\r\n HostBinding,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {OverlayService} from '../../service/overlay.service';\r\nimport {BaseInputDatePickerDirective} from \"../base-input-date-picker/base-input-date-picker.directive\";\r\nimport {CalendarComponent} from \"../calendar/calendar.component\";\r\n\r\n@Component({\r\n selector: 'co-input-date',\r\n template: `\r\n <co-input-text (clickOutside)=\"toggleCalendar(false)\" overlayParent #parentForOverlay=\"overlayParent\"\r\n [hidden]=\"hidden\"\r\n [readonly]=\"readonly\"\r\n [(model)]=\"modelAsString\"\r\n [rightIcon]=\"rightIcon\"\r\n [leftIcon]=\"leftIcon\"\r\n [leftIconData]=\"leftIconData\"\r\n [pattern]=\"'yyyy-MM-dd'\"\r\n [type]=\"'date'\"\r\n [placeholder]=\"placeholder\"\r\n (leftIconClick)=\"leftIconClick.emit($event)\"\r\n (rightIconClick)=\"toggleCalendar(true)\"\r\n (blur)=\"handleDateChange(modelAsString)\"\r\n (clearIconClick)=\"handleClearIconClicked()\"\r\n ></co-input-text>\r\n `,\r\n providers: [\r\n OverlayService, {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputDatePickerComponent)\r\n }, {\r\n provide: BaseInputDatePickerDirective,\r\n useExisting: InputDatePickerComponent\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputDatePickerComponent extends BaseInputDatePickerDirective {\r\n\r\n public modelAsString: string;\r\n\r\n private _calendarComponentRef: ComponentRef<CalendarComponent>;\r\n\r\n @HostBinding('class.co-input-date')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public handleDateSelected(date: Date): void {\r\n this.setModel(date);\r\n if (this.closeAfterDateSelection) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n\r\n public toggleCalendar(show: boolean): void {\r\n if (this.readonly) {\r\n return;\r\n }\r\n\r\n this.showCalendar = show;\r\n\r\n if (this.showCalendar) {\r\n this._calendarComponentRef = this.overlayService.createComponent(CalendarComponent, {\r\n parentForOverlay: this.parentForOverlay,\r\n selectedDate: this.model\r\n }, {\r\n dateSelected: (event) => this.handleDateSelected(event),\r\n clickedOutside: () => this.toggleCalendar(false)\r\n });\r\n } else {\r\n this.overlayService.removeComponent(this._calendarComponentRef);\r\n }\r\n }\r\n\r\n public handleDateChange(value: string): void {\r\n if (value) {\r\n this.setModel(new Date(value));\r\n }\r\n }\r\n\r\n protected modelSet(): void {\r\n this.setModelAsString();\r\n }\r\n\r\n private setModelAsString(): void {\r\n if (this.model) {\r\n const year = this.model.toLocaleString(\"default\", { year: \"numeric\" });\r\n const month = this.model.toLocaleString(\"default\", { month: \"2-digit\" });\r\n const day = this.model.toLocaleString(\"default\", { day: \"2-digit\" });\r\n this.modelAsString = `${year}-${month}-${day}`;\r\n } else {\r\n this.modelAsString = null;\r\n }\r\n }\r\n\r\n public handleClearIconClicked() {\r\n this.setModel(undefined);\r\n }\r\n}\r\n","import {Directive, ElementRef, OnDestroy} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[overlayParent]',\r\n exportAs: 'overlayParent'\r\n})\r\nexport class OverlayParentDirective implements OnDestroy {\r\n\r\n public elementRef: ElementRef;\r\n\r\n constructor(\r\n elementRef: ElementRef\r\n ) {\r\n this.elementRef = elementRef;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.elementRef = undefined;\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {OverlayParentDirective} from './overlay-parent.directive';\r\n\r\n@Directive({\r\n selector: \"[overlay]\"\r\n})\r\nexport class OverlayDirective implements OnDestroy, OnInit {\r\n\r\n @Input(\"overlay\")\r\n public set parent(value: OverlayParentDirective | ElementRef | HTMLElement) {\r\n if (value) {\r\n if (value instanceof ElementRef) {\r\n this._parent = value.nativeElement;\r\n } else if (value instanceof OverlayParentDirective) {\r\n this._parent = value.elementRef.nativeElement;\r\n } else {\r\n this._parent = value;\r\n }\r\n } else {\r\n if (this._parent && this._resizeObserver) {\r\n this._resizeObserver.disconnect();\r\n }\r\n }\r\n }\r\n\r\n @Input()\r\n public view: HTMLElement;\r\n\r\n /**\r\n * true; Element is added to the parent template\r\n * false; Element is added to the bottom of the DOM\r\n */\r\n @Input()\r\n public inline: boolean = false;\r\n\r\n @Input()\r\n public keepInView: boolean = false;\r\n\r\n @Input()\r\n public inheritWidth: boolean = false;\r\n\r\n @Input()\r\n public rightAlign: boolean = false;\r\n\r\n @Input()\r\n public fullSize: boolean = false;\r\n\r\n private _elementRef: ElementRef;\r\n private _resizeObserver: ResizeObserver;\r\n private _intersectionObserver: IntersectionObserver;\r\n private _parent: HTMLElement;\r\n\r\n constructor(\r\n elementRef: ElementRef\r\n ) {\r\n this._elementRef = elementRef;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n document.removeEventListener(\"scroll\", this.handleScroll, true);\r\n if (this._intersectionObserver) {\r\n this._intersectionObserver.disconnect();\r\n }\r\n if (this._resizeObserver) {\r\n this._resizeObserver.disconnect();\r\n }\r\n this._elementRef = undefined;\r\n this._parent = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this._elementRef || !this._elementRef.nativeElement) {\r\n return;\r\n }\r\n document.addEventListener(\"scroll\", this.handleScroll, true);\r\n this._checkAndPlaceElement();\r\n this._resizeObserver = new ResizeObserver(\r\n (entries) => {\r\n this._checkAndPlaceElement();\r\n }\r\n );\r\n this._intersectionObserver = new IntersectionObserver(\r\n (entries: IntersectionObserverEntry[]) => {\r\n if (entries && entries.length > 0) {\r\n if (entries[0].isIntersecting === false) {\r\n this._elementRef.nativeElement.style.opacity = 0; // hide cause parent is not visible\r\n } else {\r\n this._elementRef.nativeElement.style.opacity = 1;\r\n }\r\n }\r\n }, {\r\n root: null\r\n }\r\n );\r\n if (this._parent) {\r\n this._intersectionObserver.observe(this._parent); // observe parent for visibility\r\n }\r\n this._resizeObserver.observe(document.body);\r\n }\r\n\r\n public handleScroll = (event: Event) => {\r\n this._checkAndPlaceElement();\r\n }\r\n\r\n private _checkAndPlaceElement(): void {\r\n if (this._elementRef && this._elementRef.nativeElement && this._parent) {\r\n const elementRect: ClientRect = this._elementRef.nativeElement.getBoundingClientRect();\r\n const parentBoundingRect: ClientRect = this._parent.getBoundingClientRect();\r\n let parentRect: {} = {};\r\n if (!this.inline) {\r\n parentRect = {\r\n bottom: parentBoundingRect.bottom,\r\n right: parentBoundingRect.right,\r\n left: parentBoundingRect.left,\r\n top: parentBoundingRect.top,\r\n width: parentBoundingRect.width\r\n }\r\n } else {\r\n parentRect = {\r\n bottom: this._parent.offsetTop + parentBoundingRect.height,\r\n right: this._parent.offsetLeft + parentBoundingRect.width,\r\n left: this._parent.offsetLeft,\r\n top: this._parent.offsetTop,\r\n width: parentBoundingRect.width\r\n }\r\n }\r\n this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);\r\n }\r\n }\r\n\r\n private _placeElement(bottom: number, right: number, parentRect: any, elementRect: ClientRect): void {\r\n this._elementRef.nativeElement.style.position = \"fixed\";\r\n if (bottom < parentRect.bottom + elementRect.height) { // make sure it fits at the bottom\r\n this._elementRef.nativeElement.style.top = (parentRect.top - elementRect.height) + \"px\";\r\n this._elementRef.nativeElement.classList.add('top');\r\n } else {\r\n this._elementRef.nativeElement.classList.remove('top');\r\n this._elementRef.nativeElement.style.top = parentRect.bottom + \"px\";\r\n }\r\n if (this.inheritWidth) {\r\n this._elementRef.nativeElement.style.width = parentRect.width + \"px\";\r\n }\r\n if (this.rightAlign) {\r\n let left: number = (parentRect.right - elementRect.width);\r\n if (this.keepInView) {\r\n const viewToKeepIn: any = this.view ? this.view : window;\r\n const viewLeft: number = viewToKeepIn.offsetLeft || 0;\r\n left = Math.max(left, viewLeft);\r\n }\r\n this._elementRef.nativeElement.style.left = left + \"px\";\r\n } else if (this.fullSize) {\r\n this._elementRef.nativeElement.style.left = \"0px\";\r\n } else {\r\n this._elementRef.nativeElement.style.left = parentRect.left + \"px\";\r\n }\r\n if (this.keepInView) {\r\n const viewToKeepIn: any = this.view ? this.view : window;\r\n const viewWidth: number = viewToKeepIn.innerWidth || viewToKeepIn.clientWidth;\r\n if (elementRect.right > viewWidth) {\r\n //see if we can move it to the left\r\n if (((viewWidth - elementRect.width) > 0) && !this.fullSize) {\r\n this._elementRef.nativeElement.style.left = (viewWidth - elementRect.width) + \"px\";\r\n } else { //resize so it fits into view\r\n this._elementRef.nativeElement.style.width = viewWidth + \"px\";\r\n this._elementRef.nativeElement.style.left = viewToKeepIn.offsetLeft + \"px\";\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {OverlayDirective} from './overlay.directive';\r\nimport {OverlayParentDirective} from './overlay-parent.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n OverlayDirective,\r\n OverlayParentDirective\r\n ],\r\n exports: [\r\n OverlayDirective,\r\n OverlayParentDirective\r\n ]\r\n})\r\nexport class OverlayModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef, EventEmitter,\r\n forwardRef,\r\n HostBinding, HostListener,\r\n Input,\r\n Optional, Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {KeyboardCode} from '../../core/enum/keyboard-code.enum';\r\nimport {FormInputUserModelChangeListenerService} from '../../core/service/form-input-user-change-listener.service';\r\nimport {NgZoneWrapperService} from '../../core/service/ng-zone-wrapper.service';\r\nimport {FormComponent} from '../form/form.component';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {OverlayService} from '../../service/overlay.service';\r\n\r\n@Component({\r\n selector: 'co-input-text',\r\n template: `\r\n <div class=\"input-text-wrapper\" overlayParent #parentForOverlay=\"overlayParent\">\r\n <co-icon *ngIf=\"leftIcon || leftIconData\" class=\"input-text-left-icon\" [icon]=\"leftIcon\" [iconData]=\"leftIconData\"\r\n (click)=\"handleLeftIconClick($event)\" (mousedown)=\"handleLeftIconMouseDown($event)\"\r\n (mouseup)=\"handleLeftIconMouseUp($event)\"></co-icon>\r\n <div *ngIf=\"leftIcon || leftIconData\" class=\"spacer left-icon\"></div>\r\n <div class=\"input-wrapper\">\r\n <label *ngIf=\"showPlaceholderOnFocus || (!showPlaceholderOnFocus && !hasValue && !focused)\"\r\n [textContent]=\"placeholder\"></label>\r\n <input #input\r\n [class.input-input-hidden]=\"useContent\"\r\n [ngClass]=\"align\"\r\n [type]=\"digitsOnly ? 'number' : type\"\r\n [pattern]=\"type === 'date' ? pattern : undefined\"\r\n [ngModel]=\"model\"\r\n [min]=\"(type === 'number' || type === 'date') && this.min ? this.min : undefined\"\r\n [max]=\"(type === 'number' || type === 'date') && this.max ? this.max : undefined\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (keydown)=\"digitsOnly ? excludeNonDigitChars($event) : true\"\r\n (keyup)=\"keyUp.emit($event)\"\r\n (focusin)=\"handleInputFocus($event)\"\r\n (focusout)=\"handleBlur($event)\"\r\n >\r\n <ng-container *ngIf=\"useContent\">\r\n <div class=\"input-content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-container>\r\n <co-icon [class.show]=\"showClearButton && hasValue && focused && !readonly\" class=\"input-text-clear-button\" [icon]=\"icons.CrossSkinny\" (click)=\"clearInput($event)\"></co-icon>\r\n <div class=\"required-indicator\"></div>\r\n </div>\r\n <div *ngIf=\"rightIcon || rightIconData\" class=\"spacer right-icon\"></div>\r\n <co-icon *ngIf=\"rightIcon || rightIconData\" class=\"input-text-right-icon\" [icon]=\"rightIcon\" [iconData]=\"rightIconData\"\r\n (click)=\"handleRightIconClick($event)\" (mousedown)=\"handleRightIconMouseDown($event)\" (mouseup)=\"handleRightIconMouseUp($event)\"></co-icon>\r\n </div>\r\n <!--\r\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\r\n [committing]=\"committing\"\r\n [commitFinished]=\"commitFinished\"\r\n (commitClick)=\"commitClick($event)\"\r\n (cancelClick)=\"cancelClick($event)\"\r\n >\r\n </co-commit-buttons>\r\n -->\r\n `,\r\n providers: [\r\n OverlayService, {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextComponent)\r\n }, {\r\n provide: BaseInputComponent,\r\n useExisting: InputTextComponent\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n\r\n @Input()\r\n public useContent: boolean = false;\r\n\r\n @Input()\r\n public placeholder: string = '';\r\n\r\n @Input()\r\n public align: string = 'left';\r\n\r\n @Input()\r\n public type: string = 'text';\r\n\r\n @Input()\r\n public min: number;\r\n\r\n @Input()\r\n public max: number;\r\n\r\n @Input()\r\n public pattern: string = 'dd-MM-yyyy';\r\n\r\n @Input()\r\n public digitsOnly: boolean = false;\r\n\r\n @Input()\r\n public excludePlusMinus: boolean = true;\r\n\r\n @Input()\r\n public showClearButton: boolean = true;\r\n\r\n @Input()\r\n public keyDownWhiteList: KeyboardCode[];\r\n\r\n @Input()\r\n public showPlaceholderOnFocus: boolean = true;\r\n\r\n @Input()\r\n public leftIcon: CoreComponentsIcon;\r\n\r\n @Input()\r\n public rightIcon: CoreComponentsIcon;\r\n\r\n @Input()\r\n public leftIconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public rightIconData: SafeHtml | undefined;\r\n\r\n @HostBinding('class.no-style')\r\n @Input()\r\n public noStyle: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.hide-arrows')\r\n public hideArrowButtons: boolean = false;\r\n\r\n @HostBinding(\"class.isDate\")\r\n public get isDate(): boolean {\r\n return this.type === \"date\";\r\n }\r\n\r\n @Output()\r\n public leftIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public leftIconMouseDown: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public leftIconMouseUp: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public rightIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public rightIconMouseDown: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public rightIconMouseUp: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public clearIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public isFocused: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-input-text')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding('class.has-left-icon')\r\n public get hasLeftIcon(): boolean {\r\n return this.leftIcon !== undefined && this.leftIcon !== null;\r\n }\r\n\r\n @HostBinding('class.has-right-icon')\r\n public get hasRightIcon(): boolean {\r\n return this.rightIcon !== undefined && this.rightIcon !== null;\r\n }\r\n\r\n @HostBinding('class.has-own-label')\r\n public hasOwnLabel: boolean = true;\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n public handleDocumentMouseUp(event: MouseEvent) {\r\n if (this._isLeftIconMouseDown) {\r\n this.leftIconMouseUp.next(event);\r\n }\r\n if (this._isRightIconMouseDown) {\r\n this.rightIconMouseUp.next(event);\r\n }\r\n }\r\n\r\n @Input()\r\n public set model(value: any) {\r\n if (this.type === 'number' && !isNaN(value)) {\r\n if (this.min && value < this.min || this.max && value > this.max) {\r\n super.model = this._initialModel;\r\n } else {\r\n super.model = value;\r\n }\r\n } else {\r\n super.model = value;\r\n }\r\n }\r\n\r\n public get model() {\r\n return super.model;\r\n }\r\n\r\n private _isLeftIconMouseDown: boolean = false;\r\n private _isRightIconMouseDown: boolean = false;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected overlayService: OverlayService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n // exclude some non-digit characters, since input type 'number' still allows the characters -, + and e\r\n public excludeNonDigitChars(event): boolean {\r\n const excludedKeys = this.excludePlusMinus ? ['e', '-', '+'] : ['e'];\r\n\r\n return !excludedKeys.includes(event.key);\r\n }\r\n\r\n public handleLeftIconClick(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.leftIconClick.emit(event);\r\n }\r\n\r\n public handleLeftIconMouseDown(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._isLeftIconMouseDown = true;\r\n this.leftIconMouseDown.emit(event);\r\n }\r\n\r\n public handleLeftIconMouseUp(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._isLeftIconMouseDown = false;\r\n this.leftIconMouseUp.emit(event);\r\n }\r\n\r\n public handleRightIconClick(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.rightIconClick.emit(event);\r\n }\r\n\r\n public handleRightIconMouseDown(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._isRightIconMouseDown = true;\r\n this.rightIconMouseDown.emit(event);\r\n }\r\n\r\n public handleRightIconMouseUp(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._isRightIconMouseDown = false;\r\n this.rightIconMouseUp.emit(event);\r\n }\r\n\r\n public handleInputFocus(event: FocusEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isFocused.emit(this.focused);\r\n }\r\n\r\n public handleBlur(event: FocusEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.focused = false;\r\n this.isFocused.emit(false);\r\n }\r\n\r\n public clearInput(event: MouseEvent) {\r\n this.setModel(null);\r\n this.clearIconClick.emit(event);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n// A pipe for appending strings to other strings in view templates.\r\n@Pipe({name: \"append\"})\r\nexport class AppendPipe implements PipeTransform {\r\n transform(value: string, append?: string): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n if (!append) {\r\n return value;\r\n }\r\n\r\n return value + append;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { AppendPipe } from './append.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppendPipe\r\n ],\r\n exports: [\r\n AppendPipe\r\n ]\r\n})\r\nexport class AppendPipeModule {\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\n\r\n// The localization service, providing peers with text translation functionality.\r\n@Injectable()\r\nexport class CoreDictionaryService {\r\n // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.\r\n private readonly _placeholder: string = \"|~\";\r\n\r\n public translation: {};\r\n /**\r\n * Returns the localized text for the given dictionary key.\r\n * @param {string} key\r\n * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val\r\n * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value\r\n * @returns {string} The translated text for given dictionary key\r\n */\r\n public get(key: string, upperCaseFirst: boolean = true, ...replacementTexts: string[]): string {\r\n let text: string = key;\r\n if (this.translation && this.translation.hasOwnProperty(key)) {\r\n text = this.translation[key].toLowerCase();\r\n if (upperCaseFirst) {\r\n text = text.charAt(0).toUpperCase() + text.slice(1);\r\n }\r\n }\r\n return text;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {CoreDictionaryService} from './core-dictionary.service';\r\n\r\n@Injectable()\r\nexport class CoreComponentsTranslationService {\r\n\r\n constructor(\r\n private _dictionaryService: CoreDictionaryService\r\n ) {\r\n }\r\n\r\n public setTranslation(translation: {}): void {\r\n this._dictionaryService.translation = translation;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {CoreDictionaryService} from './core-dictionary.service';\r\n\r\n@Pipe({\r\n name: \"coreLocalize\"\r\n})\r\nexport class CoreLocalizePipe implements PipeTransform {\r\n\r\n constructor(private _dictionaryService: CoreDictionaryService) {}\r\n\r\n transform(value: string, upperCaseFirst: boolean = true, replace: string|string[] = []): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n replace = (replace !== undefined && replace !== null) ? replace : [];\r\n if (!Array.isArray(replace)) {\r\n replace = [replace];\r\n }\r\n return this._dictionaryService.get(value, upperCaseFirst, ...replace);\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CoreComponentsTranslationService} from './core-components-translation.service';\r\nimport {CoreDictionaryService} from './core-dictionary.service';\r\nimport {CoreLocalizePipe} from './core-localize.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n CoreLocalizePipe\r\n ],\r\n providers: [\r\n CoreComponentsTranslationService,\r\n CoreDictionaryService\r\n ],\r\n exports: [\r\n CoreLocalizePipe\r\n ]\r\n})\r\nexport class CoreComponentsTranslationModule {\r\n static forRoot(): ModuleWithProviders<CoreComponentsTranslationModule> {\r\n return {\r\n ngModule: CoreComponentsTranslationModule,\r\n providers: [\r\n CoreComponentsTranslationService\r\n ]\r\n };\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ValidationErrorComponent} from \"./validation-error.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {OverlayModule} from '../../directives/overlay/overlay.module';\r\nimport {CoreComponentsTranslationModule} from '../../translation/core-components-translation.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n OverlayModule,\r\n CoreComponentsTranslationModule\r\n ],\r\n declarations: [\r\n ValidationErrorComponent\r\n ],\r\n exports: [\r\n ValidationErrorComponent\r\n ]\r\n})\r\nexport class ValidationErrorModule {\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {CommitButtonsComponent} from \"./commit-buttons.component\";\r\nimport {OverlayModule} from '../../../directives/overlay/overlay.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule\r\n ],\r\n declarations: [\r\n CommitButtonsComponent\r\n ],\r\n exports: [\r\n CommitButtonsComponent\r\n ]\r\n})\r\nexport class CommitButtonsModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {InputTextComponent} from \"./input-text.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {BaseModule} from \"../base/base.module\";\r\nimport {AppendPipeModule} from \"../../pipes/append.pipe.module\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\nimport {CommitButtonsModule} from \"../base/commit-buttons/commit-buttons.module\";\r\nimport {OverlayModule} from '../../directives/overlay/overlay.module';\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n ValidationErrorModule,\r\n CommitButtonsModule,\r\n OverlayModule\r\n ],\r\n declarations: [\r\n InputTextComponent\r\n ],\r\n exports: [\r\n InputTextComponent\r\n ]\r\n})\r\nexport class InputTextModule {\r\n}\r\n","// Human-readable JS keyboard codes, as in KeyboardEvent.key string values.\r\nexport enum KeyboardKey {\r\n Down = \"ArrowDown\",\r\n Up = \"ArrowUp\",\r\n Left = \"ArrowLeft\",\r\n Right = \"ArrowRight\",\r\n Tab = \"Tab\",\r\n Escape = \"Escape\",\r\n Enter = \"Enter\",\r\n Home = \"Home\",\r\n End = \"End\",\r\n Delete = \"Delete\",\r\n Insert = \"Insert\",\r\n ShiftLeft = \"ShiftLeft\",\r\n ShiftRight = \"ShiftRight\",\r\n Backspace = \"Backspace\",\r\n SpaceBar = \"Space\",\r\n Period = \"Period\",\r\n DecimalPoint = \"NumpadDecimal\",\r\n\r\n SemiColon = \"Semicolon\",\r\n ControlRight = \"ControlRight\",\r\n ControlLeft = \"ControlLeft\",\r\n Comma = \"Comma\",\r\n\r\n ////Minus,\r\n ////MinusFireFox,\r\n ////Substract,\r\n\r\n Zero = \"Digit0\",\r\n One = \"Digit1\",\r\n Two = \"Digit2\",\r\n Three = \"Digit3\",\r\n Four = \"Digit4\",\r\n Five = \"Digit5\",\r\n Six = \"Digit6\",\r\n Seven = \"Digit7\",\r\n Eight = \"Digit8\",\r\n Nine = \"Digit9\",\r\n NumpadZero = \"Numpad0\",\r\n NumpadOne = \"Numpad1\",\r\n NumpadTwo = \"Numpad2\",\r\n NumpadThree = \"Numpad3\",\r\n NumpadFour = \"Numpad4\",\r\n NumpadFive = \"Numpad5\",\r\n NumpadSix = \"Numpad6\",\r\n NumpadSeven = \"Numpad7\",\r\n NumpadEight = \"Numpad8\",\r\n NumpadNine = \"Numpad9\",\r\n NumpadEnter = \"NumpadEnter\",\r\n\r\n A = \"KeyA\",\r\n B = \"KeyB\",\r\n C = \"KeyC\",\r\n D = \"KeyD\",\r\n E = \"KeyE\",\r\n F = \"KeyF\",\r\n G = \"KeyG\",\r\n H = \"KeyH\",\r\n I = \"KeyI\",\r\n J = \"KeyJ\",\r\n K = \"KeyK\",\r\n L = \"KeyL\",\r\n M = \"KeyM\",\r\n N = \"KeyN\",\r\n O = \"KeyO\",\r\n P = \"KeyP\",\r\n Q = \"KeyQ\",\r\n R = \"KeyR\",\r\n S = \"KeyS\",\r\n T = \"KeyT\",\r\n U = \"KeyU\",\r\n V = \"KeyV\",\r\n W = \"KeyW\",\r\n X = \"KeyX\",\r\n Y = \"KeyY\",\r\n Z = \"KeyZ\",\r\n}\r\n","import {Injectable, NgZone, OnDestroy} from \"@angular/core\";\r\nimport {ClickOutsideDirective} from \"./click-outside.directive\";\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\nimport {KeyboardKey} from \"../../core/enum/keyboard-key.enum\";\r\nimport {ArrayUtils} from \"../../core/utils/array-utils\";\r\n\r\n\r\n@Injectable()\r\nexport class ClickOutsideMasterService implements OnDestroy {\r\n\r\n public get currentClick(): MouseEvent {\r\n return this._currentClick;\r\n }\r\n\r\n private _clickOutsideRefs: ClickOutsideDirective[] = [];\r\n\r\n private _currentClick: MouseEvent;\r\n\r\n constructor(private readonly _ngZone: NgZone) {\r\n document.addEventListener('click', this.onClick, true);\r\n window.addEventListener('keydown', this.onKeyDown, EventUtils.passiveBubble);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n document.removeEventListener('click', this.onClick, true);\r\n window.removeEventListener('keydown', this.onKeyDown, EventUtils.passiveBubble);\r\n }\r\n\r\n public onClick = (event: MouseEvent): void => {\r\n this._currentClick = event;\r\n const first: ClickOutsideDirective = this._clickOutsideRefs[0];\r\n const targets: ClickOutsideDirective[] = this._clickOutsideRefs.filter(co => co.alwaysTrigger);\r\n if (first) {\r\n targets.push(first);\r\n }\r\n setTimeout(() => {\r\n targets.forEach(clickOutside => this.checkEmit(clickOutside, event));\r\n });\r\n }\r\n\r\n public checkEmit(clickOutside: ClickOutsideDirective, event: Event, force?: boolean): void {\r\n if (clickOutside && (clickOutside.currentClick !== this.currentClick || force) && this._clickOutsideRefs.indexOf(clickOutside) !== -1) {\r\n this._ngZone.run(() => clickOutside.clickOutside.emit(event));\r\n }\r\n }\r\n\r\n public onKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === KeyboardKey.Escape) {\r\n const first: ClickOutsideDirective = this._clickOutsideRefs[0];\r\n if (first) {\r\n this.checkEmit(first, event, true);\r\n }\r\n }\r\n }\r\n\r\n public addClickOutside(clickOutside: ClickOutsideDirective): void {\r\n this.removeClickOutside(clickOutside);\r\n this._clickOutsideRefs.unshift(clickOutside);\r\n }\r\n\r\n public removeClickOutside(clickOutside: ClickOutsideDirective): void {\r\n ArrayUtils.RemoveElement(clickOutside, this._clickOutsideRefs);\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output} from \"@angular/core\";\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\nimport {ClickOutsideMasterService} from \"./click-outside-master.service\";\r\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\r\n\r\n@Directive({\r\n selector: \"[clickOutside]\",\r\n exportAs: 'clickOutside'\r\n})\r\nexport class ClickOutsideDirective implements OnDestroy, AfterViewInit {\r\n\r\n public get currentClick(): MouseEvent {\r\n return this._currentClick;\r\n }\r\n\r\n @Input(\"clickOutside\")\r\n public set enabled(enabled: boolean) {\r\n enabled = enabled === undefined || enabled;\r\n // noinspection SuspiciousTypeOfGuard\r\n if (typeof enabled === 'boolean' && this._enabled !== enabled) {\r\n this._enabled = enabled;\r\n if (this._initialized) {\r\n this._enabled ? this._master.addClickOutside(this) : this._master.removeClickOutside(this);\r\n }\r\n }\r\n }\r\n\r\n @InputBoolean()\r\n @Input()\r\n public alwaysTrigger: boolean;\r\n\r\n @Output()\r\n public readonly clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n private _currentClick: MouseEvent;\r\n\r\n private _enabled: boolean = true;\r\n\r\n private _initialized: boolean = false;\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private _ngZone: NgZone,\r\n private _master: ClickOutsideMasterService\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this._ngZone.runOutsideAngular(() => {\r\n if (this.elementRef && this.elementRef.nativeElement) {\r\n this.elementRef.nativeElement.addEventListener('click', this.onClick, EventUtils.passiveCapture);\r\n if (this._enabled) {\r\n this._master.addClickOutside(this);\r\n }\r\n this._initialized = true;\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._master.removeClickOutside(this);\r\n this.elementRef.nativeElement.removeEventListener('click', this.onClick, EventUtils.passiveCapture);\r\n this.elementRef = undefined;\r\n }\r\n\r\n public onClick = (event: MouseEvent): void => {\r\n if (this._enabled) {\r\n this._currentClick = event;\r\n }\r\n };\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {ClickOutsideDirective} from \"./click-outside.directive\";\r\nimport {ClickOutsideMasterService} from \"./click-outside-master.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ClickOutsideDirective\r\n ],\r\n providers: [\r\n ClickOutsideMasterService\r\n ],\r\n exports: [\r\n ClickOutsideDirective\r\n ]\r\n})\r\nexport class ClickoutsideModule {\r\n}","import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\n\r\n@Component({\r\n selector: \"calendar-template\",\r\n template: `\r\n <div class=\"calendar\">\r\n <div class=\"calendar-header\" *ngIf=\"monthSelection || yearSelection\">\r\n <co-icon class=\"calendar-change-month-button\" [icon]=\"icons.ArrowPointLeft\" (click)=\"prevMonth()\"></co-icon>\r\n\r\n <div class=\"calendar-header-title-wrapper\">\r\n <span class=\"calendar-header-title\" [textContent]=\"monthSelection ? monthHeader : yearHeader\"\r\n (click)=\"monthSelection ? openMonthSelection() : openYearSelection()\"\r\n ></span>\r\n </div>\r\n\r\n <co-icon class=\"calendar-change-month-button\" [icon]=\"icons.ArrowPointRight\" (click)=\"nextMonth()\"></co-icon>\r\n </div>\r\n\r\n <div class=\"selection-grid month\" *ngIf=\"showMonthSelection\">\r\n <div *ngFor=\"let month of monthSelectionNames\"\r\n class=\"calendar-month-or-year\"\r\n (click)=\"selectMonth(month)\">\r\n <ng-container *ngIf=\"month\">\r\n <div class=\"month\" [textContent]=\"month\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"selection-grid year\" *ngIf=\"showYearSelection\">\r\n <div *ngFor=\"let year of yearSelectionYears\"\r\n class=\"calendar-month-or-year\"\r\n (click)=\"selectYear(year)\"\r\n [textContent]=\"year\">\r\n <ng-container *ngIf=\"year\">\r\n <div class=\"year\" [textContent]=\"year\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"calendar-wrapper\">\r\n <div class=\"week-wrapper\" *ngIf=\"showWeekNumbers && showCalendarBody\">\r\n <div class=\"week-number\" [textContent]=\"'W'\"></div>\r\n <div class=\"week-number\" *ngFor=\"let weekNumber of weekNumbers\">\r\n {{ weekNumber }}\r\n </div>\r\n </div>\r\n <div class=\"calendar-body\" *ngIf=\"showCalendarBody\">\r\n <div class=\"day-names\">\r\n <div class=\"weekday\" *ngFor=\"let dayName of dayNames\" [textContent]=\"dayName\"></div>\r\n </div>\r\n <div *ngFor=\"let day of daysInMonth\" class=\"calendar-day\"\r\n [class.highlighted-day]=\"daysToHighlight.includes(day)\"\r\n [class.selected-day]=\"selectedDate && (day && day.getTime() === selectedDate.getTime()) ||\r\n secondSelectedDate && (day && day.getTime() === secondSelectedDate.getTime()) ||\r\n temporarySelectedSecondaryDate && (day && day.getTime() === temporarySelectedSecondaryDate.getTime())\"\r\n (click)=\"selectDate(day)\"\r\n (mouseover)=\"handleMouseOverDay(day)\">\r\n <!-- Day number -->\r\n <ng-container *ngIf=\"day\">\r\n <div class=\"day-number\" [textContent]=\"day.getDate()\"></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarTemplateComponent {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public showWeekNumbers: boolean = true;\r\n\r\n public weekNumbers: number[] = [];\r\n @Input()\r\n public locale: string = \"nl-NL\";\r\n\r\n @Input()\r\n public highlightDaysBetweenDates: boolean = false;\r\n\r\n @Input()\r\n public set selectedDate(date: Date) {\r\n this._selectedDate = !!date ? new Date(date.getFullYear(), date.getMonth(), date.getDate()) : date;\r\n if (this.secondSelectedDate && date && this.secondSelectedDate.getTime() < this.selectedDate.getTime() && this.temporarySelectedSecondaryDate) {\r\n this.daysToHighlight = [];\r\n }\r\n }\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n @Input()\r\n public set secondSelectedDate(date: Date) {\r\n this._secondSelectedDate = !!date ? new Date(date.getFullYear(), date.getMonth(), date.getDate()) : date;\r\n if (!this.selectedDate) {\r\n this.daysToHighlight = [];\r\n } else {\r\n this._fillDatesBetweenSelected();\r\n }\r\n }\r\n\r\n public get secondSelectedDate(): Date {\r\n return this._secondSelectedDate;\r\n }\r\n\r\n @Input()\r\n public set secondHoveringDate(date : Date) {\r\n this._secondHoveringDate = date;\r\n if (!!date) {\r\n this.temporarySelectedSecondaryDate = null;\r\n }\r\n if (this.selectedDate && !this.secondSelectedDate) {\r\n this.temporarySelectedSecondaryDate = new Date(date);\r\n }\r\n this.handleMouseOverDay(date);\r\n }\r\n\r\n public get secondHoveringDate(): Date {\r\n return this._secondHoveringDate;\r\n }\r\n\r\n @Output()\r\n public dateSelected: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public hoveringDate: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public showCalendarBody: boolean = true;\r\n public showMonthSelection: boolean = false;\r\n public showYearSelection: boolean = false;\r\n public showSelectedMonth: string;\r\n\r\n public workingDay: Date;\r\n public workingYear: number;\r\n public workingMonth: number;\r\n\r\n public monthHeader: string = '';\r\n public yearHeader: string = '';\r\n\r\n public monthSelection: boolean = true;\r\n public yearSelection: boolean = false;\r\n\r\n public dayNames = [];\r\n public monthNames = [];\r\n public monthSelectionNames: string[] = [];\r\n public yearSelectionYears: number[] = [];\r\n public daysInMonth: Date[] = [];\r\n\r\n public daysUnixTimestamps: number[] = [];\r\n public daysToHighlight: Date[] = [];\r\n public temporarySelectedSecondaryDate: Date;\r\n\r\n private _secondHoveringDate: Date;\r\n private _secondSelectedDate: Date;\r\n private _selectedDate: Date;\r\n\r\n @HostBinding(\"class.calendar-template\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._setInitialValues();\r\n this.generateMonthNames();\r\n this.generateCalendar();\r\n this._fillDatesBetweenSelected();\r\n }\r\n\r\n public prevMonth(): void {\r\n if (this.workingMonth === 0) {\r\n this.workingMonth = 11;\r\n this.workingYear--;\r\n } else {\r\n this.workingMonth--;\r\n }\r\n this.generateCalendar();\r\n this._fillDatesBetweenSelected();\r\n this.calculateWeekNumbers();\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.workingMonth === 11) {\r\n this.workingMonth = 0;\r\n this.workingYear++;\r\n } else {\r\n this.workingMonth++;\r\n }\r\n this.generateCalendar();\r\n this._fillDatesBetweenSelected();\r\n this.calculateWeekNumbers();\r\n }\r\n\r\n public prevYear(): void {\r\n this.workingYear--;\r\n this.generateCalendar();\r\n }\r\n\r\n public nextYear(): void {\r\n this.workingYear++;\r\n this.generateCalendar();\r\n }\r\n\r\n public generateCalendar(): void {\r\n this._setMonthDaysForDate(this.workingMonth);\r\n\r\n // Update the displayed month\r\n const month = this.monthNames[this.workingMonth];\r\n const year = this.workingYear;\r\n\r\n // Update headerText\r\n this.monthHeader = `${month} ${year}`;\r\n this.yearHeader = `${year}`;\r\n\r\n this.generateYearSelectionYears();\r\n this.calculateWeekNumbers();\r\n }\r\n\r\n private _setInitialValues(): void {\r\n this.workingDay = this.selectedDate ? this.selectedDate : new Date();\r\n this.workingYear = this.workingDay.getFullYear();\r\n this.workingMonth = this.workingDay.getMonth();\r\n }\r\n\r\n private _setMonthDaysForDate(monthNumber: number): void {\r\n this.daysInMonth = [];\r\n\r\n const firstDayOfMonth = new Date(this.workingYear, monthNumber, 0).getDay();\r\n const lastDayOfMonth = new Date(this.workingYear, monthNumber + 1, 0).getDate();\r\n\r\n // Add null values to the beginning of the array to align the first day with the correct day of the week\r\n for (let i = 0; i < firstDayOfMonth; i++) {\r\n this.daysInMonth.push(null);\r\n }\r\n\r\n // Add the days of the current month to the array\r\n for (let i = 1; i <= lastDayOfMonth; i++) {\r\n const date = new Date(this.workingYear, this.workingMonth, i);\r\n this.daysInMonth.push(date);\r\n }\r\n\r\n // Add null values to the end of the array to fill out the grid\r\n // const remainingCells = 42 - this.daysInMonth.length;\r\n // for (let i = 0; i < remainingCells; i++) {\r\n // this.daysInMonth.push(null);\r\n // }\r\n\r\n this.daysUnixTimestamps = this.daysInMonth.map(day => { return day ? day.getTime() : undefined });\r\n }\r\n\r\n public generateYearSelectionYears(): void {\r\n const pastYears = 5;\r\n const futureYears = 3;\r\n const years = [];\r\n\r\n for (let i = pastYears; i >= 1; i--) {\r\n\r\n years.push(this.workingYear - i);\r\n }\r\n\r\n years.push(this.workingYear);\r\n\r\n for (let i = 1; i <= futureYears; i++) {\r\n years.push(this.workingYear + i);\r\n }\r\n\r\n this.yearSelectionYears = years.reverse();\r\n }\r\n\r\n public openMonthSelection(): void {\r\n this.showCalendarBody = false;\r\n this.monthSelection = false;\r\n this.yearSelection = true;\r\n this.showMonthSelection = true;\r\n }\r\n\r\n public openYearSelection(): void {\r\n this.showMonthSelection = false;\r\n this.showYearSelection = true;\r\n }\r\n\r\n public selectDate(day: Date): void {\r\n this.selectedDate = day;\r\n this._fillDatesBetweenSelected();\r\n this.dateSelected.emit(new Date(this.selectedDate));\r\n }\r\n\r\n public selectMonth(month: string): void {\r\n this.showSelectedMonth = month;\r\n this.workingMonth = this.monthSelectionNames.indexOf(month);\r\n this.showMonthSelection = false;\r\n this.yearSelection = false;\r\n this.monthSelection = true;\r\n this.showCalendarBody = true;\r\n this.generateCalendar();\r\n }\r\n\r\n public selectYear(year: number): void {\r\n this.workingYear = year;\r\n this.showYearSelection = false;\r\n this.showMonthSelection = true;\r\n this.generateCalendar();\r\n }\r\n\r\n public generateMonthNames(): void {\r\n for (let i = 0; i < 12; i++) {\r\n const date = new Date(2000, i, 1);\r\n const monthNameShort = date.toLocaleString(this.locale, {month: 'short'});\r\n const monthNameFull = date.toLocaleString(this.locale, {month: 'long'});\r\n this.monthSelectionNames.push(this._capitalizeFirstLetter(monthNameShort));\r\n this.monthNames.push(this._capitalizeFirstLetter(monthNameFull));\r\n }\r\n\r\n for (let i = 1; i <= 7; i++) {\r\n const date = new Date(2018, 0, i);\r\n const weekdayName = date.toLocaleString(this.locale, { weekday: 'short' });\r\n this.dayNames.push(this._capitalizeFirstLetter(weekdayName));\r\n }\r\n }\r\n\r\n public handleMouseOverDay(day: Date): void {\r\n if (this.highlightDaysBetweenDates && day && (this.selectedDate || this.secondSelectedDate) && !(this.selectedDate && this.secondSelectedDate) && !(this.selectedDate && !this.temporarySelectedSecondaryDate && !this.secondSelectedDate)) {\r\n this.daysToHighlight = [];\r\n if (this.daysUnixTimestamps.includes(day.getTime())) {\r\n this.daysToHighlight.push(...this.daysInMonth.map((dayInMonth: Date) => {\r\n if (this.selectedDate) {\r\n if (dayInMonth &&\r\n // day in the month is after selected date and day in the month is before the hovering day\r\n (dayInMonth.getTime() > this.selectedDate.getTime() && dayInMonth.getTime() < day.getTime()) ||\r\n // second date is after selected date and day in the month is before hovering day and day in month is after selected date\r\n (this._secondHoveringDate && this._secondHoveringDate.getTime() > this.selectedDate.getTime() && day && dayInMonth && dayInMonth.getTime() < day.getTime() && dayInMonth.getTime() > this.selectedDate.getTime())) {\r\n return dayInMonth;\r\n }\r\n } else {\r\n if (dayInMonth &&\r\n // day in the month is after second date and day in the month is before the hovering day\r\n (dayInMonth.getTime() > this.secondSelectedDate.getTime() && dayInMonth.getTime() < day.getTime())) {\r\n return dayInMonth;\r\n }\r\n }\r\n }));\r\n } else {\r\n this.daysToHighlight.push(...this.daysInMonth.map((day) => {\r\n if (day > this.selectedDate) {\r\n return day;\r\n }\r\n }));\r\n }\r\n }\r\n this.hoveringDate.next(day);\r\n }\r\n\r\n private _fillDatesBetweenSelected(): void {\r\n if (this.selectedDate && this.secondSelectedDate) {\r\n this.daysToHighlight = [];\r\n this.daysToHighlight.push(...this.daysInMonth.map((dayInMonth: Date) => {\r\n if (dayInMonth && (dayInMonth > this.selectedDate && dayInMonth < this.secondSelectedDate) || (dayInMonth > this.secondSelectedDate && dayInMonth < this.selectedDate)) {\r\n return dayInMonth;\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private _capitalizeFirstLetter(value: string): string {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n private calculateWeekNumbers(): void {\r\n this.weekNumbers = [];\r\n let weekNumber: number | null = null;\r\n for (let i = 0; i < this.daysInMonth.length; i++) {\r\n const day = this.daysInMonth[i];\r\n if (day) {\r\n // Start of a new week or first day of the month, calculate and set weekNumber\r\n weekNumber = this.getISOWeek(day);\r\n // Check if the weekNumber is not already in the array\r\n if (!this.weekNumbers.includes(weekNumber)) {\r\n this.weekNumbers.push(weekNumber);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public getISOWeek(date: Date): number {\r\n const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\r\n d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));\r\n const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));\r\n const weekNumber = Math.ceil(((d.valueOf() - yearStart.valueOf()) / 86400000 + 1) / 7);\r\n return weekNumber;\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {CalendarComponent} from \"./calendar.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {OverlayModule} from \"../../directives/overlay/overlay.module\";\r\nimport {ClickoutsideModule} from \"../../directives/clickoutside/clickoutside.module\";\r\nimport {CalendarTemplateComponent} from \"./calendar-template.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n OverlayModule,\r\n ClickoutsideModule\r\n ],\r\n declarations: [\r\n CalendarComponent,\r\n CalendarTemplateComponent\r\n ],\r\n exports: [\r\n CalendarComponent,\r\n CalendarTemplateComponent\r\n ]\r\n})\r\nexport class CalendarModule {\r\n}\r\n","import {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputDatePickerComponent } from './input-date-picker.component';\r\nimport {OverlayModule} from '../../directives/overlay/overlay.module';\r\nimport {InputTextModule} from \"../input-text/input-text.module\";\r\nimport {CalendarModule} from \"../calendar/calendar.module\";\r\nimport {ClickoutsideModule} from \"../../directives/clickoutside/clickoutside.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n CalendarModule,\r\n ClickoutsideModule,\r\n OverlayModule\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\r\n declarations: [InputDatePickerComponent],\r\n exports: [InputDatePickerComponent]\r\n})\r\nexport class InputDatePickerModule {\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputDatePickerDirective} from \"../base-input-date-picker/base-input-date-picker.directive\";\r\n\r\n@Component({\r\n selector: \"co-double-calendar\",\r\n template: `\r\n <div class=\"dual-calendar-wrapper\" [overlay]=\"parentForOverlay\" (clickOutside)=\"clickedOutside.next()\">\r\n <calendar-template\r\n [selectedDate]=\"selectedFirstDate\"\r\n [secondSelectedDate]=\"selectedSecondDate\"\r\n [secondHoveringDate]=\"secondHoveringDate\"\r\n [highlightDaysBetweenDates]=\"true\"\r\n (dateSelected)=\"handleFirstDateSelected($event)\"\r\n ></calendar-template>\r\n <calendar-template\r\n [selectedDate]=\"selectedSecondDate\"\r\n [secondSelectedDate]=\"selectedFirstDate\"\r\n [highlightDaysBetweenDates]=\"true\"\r\n (hoveringDate)=\"handleSecondHoveringDate($event)\"\r\n (dateSelected)=\"handleSecondDateSelected($event)\"\r\n ></calendar-template>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DoubleCalendarComponent extends BaseInputDatePickerDirective implements OnInit {\r\n\r\n @Input()\r\n public selectedDates: Date[] = [undefined, undefined];\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n @Output()\r\n public datesSelected: EventEmitter<Date[]> = new EventEmitter<Date[]>();\r\n\r\n @Output()\r\n public secondDateSelected: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public clickedOutside: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public selectedFirstDate: Date;\r\n public selectedSecondDate: Date;\r\n public secondHoveringDate: Date;\r\n\r\n @HostBinding(\"class.co-double-calendar\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.selectedFirstDate = this.selectedDates[0];\r\n this.selectedSecondDate = this.selectedDates[1];\r\n }\r\n\r\n public handleFirstDateSelected(date: Date): void {\r\n this.selectedFirstDate = date;\r\n this.selectedDates[0] = date;\r\n\r\n if (this.selectedSecondDate && this.selectedFirstDate.getTime() > this.selectedSecondDate.getTime()) {\r\n this.selectedSecondDate = null;\r\n }\r\n\r\n this.outputRangeIfValid();\r\n }\r\n\r\n public handleSecondDateSelected(date: Date): void {\r\n this.selectedSecondDate = date;\r\n this.selectedDates[1] = date;\r\n\r\n if (this.selectedFirstDate && this.selectedSecondDate.getTime() < this.selectedFirstDate.getTime()) {\r\n this.selectedFirstDate = null;\r\n this.selectedSecondDate = null;\r\n this.secondHoveringDate = null;\r\n }\r\n\r\n if (this.selectedSecondDate && this.selectedDates[0] instanceof Date) {\r\n this.outputRangeIfValid();\r\n this.secondDateSelected.next();\r\n }\r\n }\r\n\r\n public outputRangeIfValid(): void {\r\n if (this.selectedDates[0] instanceof Date && this.selectedDates[1] instanceof Date) {\r\n this.datesSelected.next(this.selectedDates);\r\n }\r\n }\r\n\r\n public handleSecondHoveringDate(day: Date): void {\r\n this.secondHoveringDate = day;\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {DoubleCalendarComponent} from \"./double-calendar.component\";\r\nimport {CalendarModule} from \"../calendar/calendar.module\";\r\nimport {OverlayModule} from \"../../directives/overlay/overlay.module\";\r\nimport {ClickoutsideModule} from \"../../directives/clickoutside/clickoutside.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CalendarModule,\r\n OverlayModule,\r\n ClickoutsideModule\r\n ],\r\n declarations: [\r\n DoubleCalendarComponent\r\n ],\r\n exports: [\r\n DoubleCalendarComponent\r\n ]\r\n})\r\nexport class DoubleCalendarModule {\r\n}\r\n","import {\r\n Component,\r\n ComponentRef, ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {\r\n SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME\r\n} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {OverlayService} from '../../service/overlay.service';\r\nimport {BaseInputDatePickerDirective} from \"../base-input-date-picker/base-input-date-picker.directive\";\r\nimport {DoubleCalendarComponent} from \"../double-calendar/double-calendar.component\";\r\n\r\n@Component({\r\n selector: 'co-input-date-range',\r\n template: `\r\n <div class=\"inputs-wrapper\" overlayParent #parentForOverlay=\"overlayParent\">\r\n <co-input-text #firstInput class=\"no-focus-line custom-height\"\r\n [(model)]=\"firstDateAsString\"\r\n [noClickFocus]=\"true\"\r\n [pattern]=\"'yyyy-MM-dd'\"\r\n [type]=\"'date'\"\r\n [leftIcon]=\"leftIcon\"\r\n [leftIconData]=\"leftIconData\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"handleFirstDateChanged(firstDateAsString)\"\r\n (clearIconClick)=\"clearDate(0)\"\r\n (click)=\"handleFirstInputClick($event)\"\r\n ></co-input-text>\r\n <co-input-text #secondInput class=\"no-focus-line custom-height\"\r\n [(model)]= \"secondDateAsString\"\r\n [noClickFocus]=\"true\"\r\n [pattern]=\"'yyyy-MM-dd'\"\r\n [type]=\"'date'\"\r\n [rightIcon]=\"rightIcon\"\r\n (rightIconClick)=\"toggleCalendar()\"\r\n (blur)=\"handleSecondDateChanged(secondDateAsString)\"\r\n (clearIconClick)=\"clearDate(1)\"\r\n (click)=\"handleSecondInputClick($event)\"\r\n ></co-input-text>\r\n </div>\r\n `,\r\n providers: [\r\n OverlayService,\r\n {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputDateRangePickerComponent)\r\n }, {\r\n provide: BaseInputDatePickerDirective,\r\n useExisting: InputDateRangePickerComponent\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputDateRangePickerComponent extends BaseInputDatePickerDirective {\r\n\r\n public firstDateAsString;\r\n public secondDateAsString;\r\n\r\n private _doubleCalendarComponentRef: ComponentRef<DoubleCalendarComponent>;\r\n\r\n @ViewChild('firstInput') firstInput: ElementRef;\r\n @ViewChild('secondInput') secondInput: ElementRef;\r\n @HostBinding('class.co-input-date-range')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n handleFirstInputClick(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n handleSecondInputClick(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n public handleDatesSelected(dates: Date[]): void {\r\n this.setModel(dates);\r\n }\r\n\r\n public handleSecondDateSelected(): void {\r\n if (this.closeAfterDateSelection) {\r\n this.toggleCalendar();\r\n }\r\n }\r\n\r\n public clearDate(index: number): void {\r\n this.model[index] = undefined;\r\n }\r\n\r\n public toggleCalendar(): void {\r\n if (this.readonly) {\r\n return;\r\n }\r\n\r\n this.showCalendar = !this.showCalendar;\r\n\r\n if (this.showCalendar) {\r\n this._doubleCalendarComponentRef = this.overlayService.createComponent(DoubleCalendarComponent, {\r\n parentForOverlay: this.parentForOverlay,\r\n selectedDates: this.model\r\n }, {\r\n datesSelected: (event) => this.handleDatesSelected(event),\r\n secondDateSelected: () => this.handleSecondDateSelected(),\r\n clickedOutside: () => this.toggleCalendar()\r\n });\r\n } else {\r\n this.overlayService.removeComponent(this._doubleCalendarComponentRef);\r\n }\r\n }\r\n\r\n public handleFirstDateChanged(value: string): void {\r\n if (value) {\r\n if (!this.model) {\r\n this.setModel([]);\r\n }\r\n this.setModel([new Date(value), this.model[1] ? this.model[1] : null]);\r\n }\r\n }\r\n\r\n public handleSecondDateChanged(value: string): void {\r\n if (value) {\r\n if (!this.model) {\r\n this.setModel([]);\r\n }\r\n this.setModel([this.model[0] ? this.model[0] : null, new Date(value)]);\r\n }\r\n }\r\n\r\n protected modelSet(): void {\r\n this.setModelAsString();\r\n }\r\n\r\n private setModelAsString(): void {\r\n if (this.model[0]) {\r\n const year = this.model[0].toLocaleString(\"default\", { year: \"numeric\" });\r\n const month = this.model[0].toLocaleString(\"default\", { month: \"2-digit\" });\r\n const day = this.model[0].toLocaleString(\"default\", { day: \"2-digit\" });\r\n this.firstDateAsString = `${year}-${month}-${day}`;\r\n } else {\r\n this.firstDateAsString = ``;\r\n }\r\n if (this.model[1]) {\r\n const year = this.model[1].toLocaleString(\"default\", { year: \"numeric\" });\r\n const month = this.model[1].toLocaleString(\"default\", { month: \"2-digit\" });\r\n const day = this.model[1].toLocaleString(\"default\", { day: \"2-digit\" });\r\n this.secondDateAsString = `${year}-${month}-${day}`;\r\n } else {\r\n this.secondDateAsString = ``;\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {InputDateRangePickerComponent} from \"./input-date-range-picker.component\";\r\nimport {OverlayModule} from '../../directives/overlay/overlay.module';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {InputTextModule} from \"../input-text/input-text.module\";\r\nimport {ClickoutsideModule} from \"../../directives/clickoutside/clickoutside.module\";\r\nimport {DoubleCalendarModule} from \"../double-calendar/double-calendar.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n ClickoutsideModule,\r\n OverlayModule,\r\n DoubleCalendarModule\r\n ],\r\n declarations: [\r\n InputDateRangePickerComponent\r\n ],\r\n exports: [\r\n InputDateRangePickerComponent\r\n ]\r\n})\r\nexport class InputDateRangePickerModule {\r\n}\r\n","export const JAVA_MAX_INT: number = 2147483647;","import {JAVA_MAX_INT} from \"./java-max-int\";\r\n\r\nexport const DEFAULT_LOWER_BOUND_FOR_RANGE_COMPONENTS: number = -JAVA_MAX_INT;\r\nexport const DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS: number = JAVA_MAX_INT;\r\n","import {Subject} from \"rxjs\";\r\n\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport {\r\n DEFAULT_LOWER_BOUND_FOR_RANGE_COMPONENTS,\r\n DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS\r\n} from '../constant/default-upper-bound-for-range-components';\r\nimport {NumberUtils} from \"../utils/number-utils\";\r\n\r\n\r\n// A data type class that represents a stepped-bounds numerical value, with min max and step size. Value is always within these bounds and is auto corrected for incoming manipulation requests.\r\nexport class BoundsConstrainedNumberValue {\r\n public set value(value: number) {\r\n this.setValue(value, true);\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n // Returns a display string of our .value number (NaN and undefined become the empty string).\r\n public get valueAsSting(): string {\r\n return this._valueAsString;\r\n }\r\n\r\n public set min(min: number) {\r\n if (isNill(min)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._min !== min);\r\n\r\n this._min = min;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get min(): number {\r\n return this._min;\r\n }\r\n\r\n public set max(max: number) {\r\n if (isNill(max)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._max !== max);\r\n\r\n this._max = max;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get max(): number {\r\n return this._max;\r\n }\r\n\r\n public get trueMax(): number {\r\n return this._trueMax;\r\n }\r\n\r\n // The step interval size for allowed numbers Y = min + N * step, where N is integer or 0.\r\n public set step(step: number) {\r\n if (isNill(step)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMaxAndStepDecimals: boolean = (this._step !== step);\r\n\r\n this._step = step;\r\n\r\n if (shouldUpdateTrueMaxAndStepDecimals) {\r\n this._updateTrueMax();\r\n this._updateStepDecimals();\r\n }\r\n }\r\n\r\n public set decimals(decimals: number) {\r\n if (decimals > 0) {\r\n this._decimals = decimals;\r\n }\r\n }\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public get stepDecimals(): number {\r\n return this._stepDecimals;\r\n }\r\n\r\n public get constraintsEnabled(): boolean {\r\n return this._constraintsEnabled;\r\n }\r\n\r\n // emits when the value changed (e.g. after it was corrected for bounds)\r\n public valueChange: Subject<number> = new Subject<number>();\r\n\r\n // the actual numeric current value, which we ensure always complies to our current min, max and step\r\n protected _value: number = 0;\r\n protected _decimals: number; // number of decimals of the value.\r\n protected _valueAsString: string = \"0\";\r\n protected _min: number = DEFAULT_LOWER_BOUND_FOR_RANGE_COMPONENTS;\r\n protected _max: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS;\r\n protected _step: number = 1; // stepsize before the decimal.\r\n protected _stepDecimals: number = 0; // derived from step\r\n protected _trueMax: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS; // derived from min, max and step\r\n\r\n private _constraintsEnabled: boolean = true;\r\n\r\n private _precision?: number;\r\n private _scale?: number;\r\n\r\n constructor() {\r\n }\r\n\r\n public roundedDecimals(value: number): number {\r\n if (value >= 0) {\r\n return 1 / Math.pow(10, value);\r\n }\r\n return 0;\r\n }\r\n\r\n public putPrecision(precision: number): void {\r\n this._precision = precision;\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n public putScale(scale: number): void {\r\n this._scale = scale;\r\n this.step = NumberUtils.DecimalsToStepIncrement(this._scale);\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n // possibly corrects value for bounds\r\n public init(silent: boolean = false): void {\r\n this.setValue(this._value, silent);\r\n }\r\n\r\n // returns whether value really changed\r\n public setValueByUserInputText(text: string, silent: boolean = false): boolean {\r\n const prevVal: any = this.value;\r\n\r\n if (NumberUtils.IsParsableNumberInput(text)) {\r\n this.setValue(NumberUtils.ParseNumberInputOrDefault(text), silent);\r\n } else {\r\n this.setValue(undefined);\r\n }\r\n\r\n return prevVal !== this.value;\r\n }\r\n\r\n /**\r\n * Makes sure current value adheres to our stepped bounds. Returns true if inner value really changed (after sanitizing), false if not.\r\n * Returns whether value really changed.\r\n */\r\n public setValue(newValue: number, silent: boolean = false): boolean {\r\n const oldValue: number = this._value;\r\n\r\n if (!this._constraintsEnabled) {\r\n this._setValue(newValue);\r\n } else {\r\n // cut off given newValue float excesses for cases such as \"13.1000000000000000000001\"\r\n //newValue = NumberUtils.ParseFloat(newValue, NumberUtils.GetDecimalPlaces(this._step));\r\n\r\n if (this._decimals === undefined) {\r\n this._decimals = NumberUtils.GetDecimalPlaces(newValue);\r\n }\r\n\r\n newValue = NumberUtils.ParseFloat(newValue, this._decimals);\r\n // dont perform bounds check if no min or max set.\r\n if (isNaN(this._min) || isNaN(this._max)) {\r\n this._setValue(newValue);\r\n } else if (newValue >= this._min && newValue <= this._max) {\r\n this._setValue(NumberUtils.GetNearestNumberWithinSteppedBounds(newValue, this._min, this._max, this.roundedDecimals(this._decimals)));\r\n }\r\n }\r\n\r\n if (isNaN(this._value)) {\r\n this._setValue(undefined);\r\n }\r\n\r\n if (!silent) {\r\n this.valueChange.next(this._value);\r\n }\r\n\r\n return oldValue !== this._value;\r\n }\r\n\r\n public increment(steps: number = 1): void {\r\n this.setValue(this._value + this._step * steps);\r\n }\r\n\r\n public decrement(steps: number = 1): void {\r\n this.setValue(this._value - this._step * steps);\r\n }\r\n\r\n // afterwards, you may set any value, it won't be checked against our bounds anymore\r\n public disableConstraints(): void {\r\n this._constraintsEnabled = false;\r\n }\r\n\r\n public enableConstraints(): void {\r\n this._constraintsEnabled = true;\r\n }\r\n\r\n private _updateTrueMax(): void {\r\n this._trueMax = NumberUtils.GetTrueSteppedBoundsMax(this._min, this._max, this._step);\r\n }\r\n\r\n private _updateStepDecimals(): void {\r\n this._stepDecimals = NumberUtils.GetDecimalPlaces(this._step);\r\n }\r\n\r\n private _setValue(value: number): void {\r\n this._value = value;\r\n this._valueAsString = NumberUtils.ToString(this._value);\r\n }\r\n}\r\n","// human-readable JS keyboard codes, as found in KeyboardEvent.which numeric values\r\nexport enum KeyboardCode {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Escape = 27,\r\n SpaceBar = 32,\r\n End = 35,\r\n Home = 36,\r\n Left = 37,\r\n Up = 38,\r\n Right = 39,\r\n Down = 40,\r\n Insert = 45,\r\n Delete = 46,\r\n Zero = 48,\r\n One = 49,\r\n Two = 50,\r\n Three = 51,\r\n Four = 52,\r\n Five = 53,\r\n Six = 54,\r\n Seven = 55,\r\n Eight = 56,\r\n Nine = 57,\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n e =\t69,\r\n F =\t70,\r\n G =\t71,\r\n H =\t72,\r\n I =\t73,\r\n J =\t74,\r\n K =\t75,\r\n L =\t76,\r\n M =\t77,\r\n N =\t78,\r\n O =\t79,\r\n P =\t80,\r\n Q =\t81,\r\n R =\t82,\r\n S =\t83,\r\n T =\t84,\r\n U =\t85,\r\n V =\t86,\r\n W =\t87,\r\n X =\t88,\r\n Y =\t89,\r\n Z =\t90,\r\n NumpadZero = 96,\r\n NumpadOne = 97,\r\n NumpadTwo = 98,\r\n NumpadThree = 99,\r\n NumpadFour = 100,\r\n NumpadFive = 101,\r\n NumpadSix = 102,\r\n NumpadSeven = 103,\r\n NumpadEight = 104,\r\n NumpadNine = 105,\r\n Substract = 109,\r\n DecimalPoint = 110,\r\n Add = 107,\r\n MinusFireFox = 173,\r\n Equal = 187,\r\n Comma = 188,\r\n Minus = 189,\r\n Period = 190,\r\n Tilde = 192\r\n}\r\n","import {KeyboardCode} from \"../enum/keyboard-code.enum\";\r\n\r\nexport const NUMBER_INPUTS_KEY_DOWN_WHITE_LIST: KeyboardCode[] = [\r\n /* navigation and functional utility buttons */\r\n KeyboardCode.Left,\r\n KeyboardCode.Up,\r\n KeyboardCode.Right,\r\n KeyboardCode.Down,\r\n KeyboardCode.Up,\r\n KeyboardCode.Tab,\r\n KeyboardCode.Enter,\r\n KeyboardCode.Home,\r\n KeyboardCode.End,\r\n KeyboardCode.Delete,\r\n KeyboardCode.Insert,\r\n KeyboardCode.Shift,\r\n KeyboardCode.Backspace,\r\n\r\n /* actual number input part */\r\n KeyboardCode.Comma,\r\n KeyboardCode.Period,\r\n KeyboardCode.DecimalPoint,\r\n KeyboardCode.Zero,\r\n KeyboardCode.One,\r\n KeyboardCode.Two,\r\n KeyboardCode.Three,\r\n KeyboardCode.Four,\r\n KeyboardCode.Five,\r\n KeyboardCode.Six,\r\n KeyboardCode.Seven,\r\n KeyboardCode.Eight,\r\n KeyboardCode.Nine,\r\n KeyboardCode.Minus,\r\n KeyboardCode.MinusFireFox,\r\n KeyboardCode.Substract,\r\n KeyboardCode.NumpadZero,\r\n KeyboardCode.NumpadOne,\r\n KeyboardCode.NumpadTwo,\r\n KeyboardCode.NumpadThree,\r\n KeyboardCode.NumpadFour,\r\n KeyboardCode.NumpadFive,\r\n KeyboardCode.NumpadSix,\r\n KeyboardCode.NumpadSeven,\r\n KeyboardCode.NumpadEight,\r\n KeyboardCode.NumpadNine\r\n];\r\n","// Input values for 'buttonShowMode' of NumberPickerComponent.\r\nexport enum InputNumberPickerButtonShowMode {\r\n Always = \"always\",\r\n OnFocusOnly = \"onFocusOnly\",\r\n Never = \"never\"\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver, ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {BaseInputComponent} from '../base/base-input.component';\nimport {InputBoolean} from '../../core/decorator/input-boolean.decorator';\nimport {Subscription} from 'rxjs';\nimport {BoundsConstrainedNumberValue} from '../../core/model/bounds-constrained-number-value';\nimport {NUMBER_INPUTS_KEY_DOWN_WHITE_LIST} from '../../core/constant/number-inputs-key-down-white-list';\nimport {KeyboardCode} from '../../core/enum/keyboard-code.enum';\nimport {InputTextComponent} from '../input-text/input-text.component';\nimport {FormInputUserModelChangeListenerService} from '../../core/service/form-input-user-change-listener.service';\nimport {InputNumberPickerButtonShowMode} from '../../core/enum/input-number-picker-show-mode.enum';\nimport {IconCacheService} from '../icon/icon-cache.service';\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\nimport {FormComponent} from '../form/form.component';\nimport {OverlayService} from '../../service/overlay.service';\nimport {SafeHtml} from '@angular/platform-browser';\nimport {NgZoneWrapperService} from '../../core/service/ng-zone-wrapper.service';\n\n@Component({\n selector: 'co-input-number-picker',\n template: `\n <div class=\"icon-wrapper\" *ngIf=\"leftIconData\">\n <co-icon class=\"input-number-picker-icon\" [iconData]=\"leftIconData\" (click)=\"iconClick.emit($event)\"></co-icon>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator\" [class.select]=\"minSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [tabIndex]=\"readonly ? -1 : 0\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (ngModelChange)=\"handleChangeModel($event)\"\n (keydown)=\"handleInputKeyDown($event)\"\n (blur)=\"handleBlur()\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator\" [class.select]=\"plusSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n `,\n providers: [\n OverlayService, {\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputNumberPickerComponent)\n }, {\n provide: BaseInputComponent,\n useExisting: InputNumberPickerComponent\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n// A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.\nexport class InputNumberPickerComponent extends BaseInputComponent<number> implements OnInit, OnDestroy {\n\n // @override\n @Input()\n public set model(model: number) {\n this.setValue(model, true);\n super.model = model;\n }\n\n public get model(): number {\n return super.model;\n }\n\n @Input()\n public modelChangeOnEnter: boolean = true;\n\n @HostBinding('class.has-icon')\n @Input()\n public leftIconData: SafeHtml | undefined;\n\n @Input()\n public set min(min: number) {\n this.numberLogic.min = min;\n }\n\n @Input()\n public set step(step: number) {\n this.numberLogic.step = step;\n }\n\n @Input()\n public set max(max: number) {\n this.numberLogic.max = max;\n }\n\n @Input()\n public ngModelOptions: any;\n\n @Input()\n public minusIcon: CoreComponentsIcon = CoreComponentsIcon.MinusSimple;\n\n @Input()\n public plusIcon: CoreComponentsIcon = CoreComponentsIcon.PlusSimple;\n\n // Whether to show buttons 'always', 'onFocusOnly', or 'never'\n @Input()\n public buttonShowMode: InputNumberPickerButtonShowMode = InputNumberPickerButtonShowMode.Always;\n\n // @override Default true for us.\n @Input() @InputBoolean()\n public noValidation: boolean = true;\n\n @Input()\n public set decimals(decimals: number) {\n this.numberLogic.decimals = decimals;\n }\n\n // @override\n @Output()\n public readonly modelChange: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n public readonly iconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostBinding('class.show-buttons-on-focus-only')\n public get showButtonsOnFocusOnly(): boolean {\n return this.buttonShowMode === InputNumberPickerButtonShowMode.OnFocusOnly;\n }\n\n @HostBinding('class.has-label')\n public get hasLabel(): boolean {\n return !!this.label;\n }\n\n @HostBinding('class.co-input-number-picker')\n public showClass(): boolean {\n return true;\n }\n\n public showButtons: boolean;\n\n public readonly myKeyDownWhiteList: KeyboardCode[] = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;\n\n public readonly numberLogic: BoundsConstrainedNumberValue = new BoundsConstrainedNumberValue();\n\n public minSelected: boolean = false;\n public plusSelected: boolean = false;\n\n private _numberInputHasFocus: boolean = false;\n private _changeFromButton: boolean = false;\n\n private _numberLogicValueChangeSub: Subscription;\n private readonly _delayBeforeStartAutoCountMs: number = 666;\n // the 'speed gears' for auto counting\n private readonly _stepFactors: number[] = [1, 10, 20];\n // increase step size timing\n private readonly _msChangeStepFactor: number = 1000;\n // step speed\n private readonly _msDoStep: number = 5;\n // hold the mouse down and this increases for a faster auto increment\n private _stepFactor: number = this._stepFactors[0];\n private _mayAutoCount: boolean = false;\n\n private _autoCountTimeout: number;\n private _stepIncrementTimeout: number;\n private _startAutocountTimeout: number;\n\n constructor(\n @Optional() public formComponent: FormComponent,\n @Inject(IconCacheService) public iconCacheService: IconCacheService,\n protected overlayService: OverlayService,\n private _ngZone: NgZone,\n protected componentFactoryResolver: ComponentFactoryResolver,\n changeDetector: ChangeDetectorRef,\n formUserChangeListener: FormInputUserModelChangeListenerService,\n protected ngZoneWrapper?: NgZoneWrapperService,\n public elementRef?: ElementRef,\n ) {\n super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);\n\n this._numberLogicValueChangeSub = this.numberLogic.valueChange.subscribe((value: number) => {\n if (!this._mayAutoCount) {\n this.model = value;\n if (!this.modelChangeOnEnter || this._changeFromButton) {\n this.modelChange.emit(value);\n }\n // custom form user chagne listener .next because we don't user super.updateModel() which normally does that for us\n if (this._markedAsUserTouched) {\n this.formUserChangeListener.userModelChange.next(value);\n this.userModelChange.next(value);\n }\n }\n });\n }\n\n ngOnInit(): void {\n // this.numberLogic.setValue(this.model, true);\n // this.numberLogic.init(true);\n this._updateButtonsShowState();\n }\n\n ngOnDestroy(): void {\n this._numberLogicValueChangeSub.unsubscribe();\n clearTimeout(this._autoCountTimeout);\n clearTimeout(this._stepIncrementTimeout);\n clearTimeout(this._startAutocountTimeout);\n }\n\n // Note: recursive through setTimeout().\n public doIncrementAuto(): void {\n this._mayAutoCount = true;\n\n this.increment(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public handleInputKeyDown(event: KeyboardEvent): boolean {\n // event.preventDefault();\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.modelChange.next(this.model);\n return false;\n }\n if (this.myKeyDownWhiteList.find((k) => k === event.keyCode) === undefined) {\n return false;\n }\n }\n\n public handleBlur(): void {\n this.modelChange.next(this.model);\n }\n\n public handleChangeModel(value: number): void {\n this._changeFromButton = false;\n this.numberLogic.setValue(value);\n }\n\n // Note: recursive through setTimeout().\n public doDecrementAuto(): void {\n this._mayAutoCount = true;\n\n this.decrement(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public stopAutoCounting(): void {\n this.minSelected = false;\n this.plusSelected = false;\n this._mayAutoCount = false;\n this._stepFactor = this._stepFactors[0];\n }\n\n // Sets the current number value with given newValue, optionally silent (no valueChange event fired).\n public setValue(newValue: number, silent: boolean = false): void {\n this.numberLogic.setValue(newValue, silent);\n }\n\n public increment(steps: number = 1): void {\n this._changeFromButton = true;\n this.numberLogic.increment(steps);\n }\n\n public decrement(steps: number = 1): void {\n this._changeFromButton = true;\n this.numberLogic.decrement(steps);\n }\n\n public onPlusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.plusSelected = true;\n this._markedAsUserTouched = true;\n\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.increment();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n public onMinusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.minSelected = true;\n this._markedAsUserTouched = true;\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.decrement();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n // Note: recursive.\n private _doIncreaseStepFactor(): void {\n this._stepIncrementTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this._stepFactor = this._getNextStepFactorMouseDown();\n this._doIncreaseStepFactor();\n }\n }, this._msChangeStepFactor);\n }\n\n private _getNextStepFactorMouseDown(): number {\n const curIdx: number = this._stepFactors.indexOf(this._stepFactor);\n if (curIdx < this._stepFactors.length - 1) {\n return this._stepFactors[curIdx + 1];\n }\n return this._stepFactor;\n }\n\n // Show or hide + and - buttons. Might hide buttons if number input lost focus and button show mode is on focus only.\n private _updateButtonsShowState(): void {\n switch (this.buttonShowMode) {\n case InputNumberPickerButtonShowMode.Always:\n default:\n this.showButtons = true;\n break;\n case InputNumberPickerButtonShowMode.OnFocusOnly:\n this.showButtons = this._numberInputHasFocus;\n break;\n case InputNumberPickerButtonShowMode.Never:\n this.showButtons = false;\n break;\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {InputNumberPickerComponent} from \"./input-number-picker.component\";\nimport {ButtonModule} from \"../button/button.module\";\nimport {InputTextModule} from \"../input-text/input-text.module\";\nimport {FormsModule} from \"@angular/forms\";\nimport {IconModule} from '../icon/icon.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonModule,\n InputTextModule,\n IconModule\n ],\n declarations: [InputNumberPickerComponent],\n exports: [InputNumberPickerComponent]\n})\nexport class InputNumberPickerModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding, HostListener,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {FormComponent} from '../form/form.component';\r\nimport {FormInputUserModelChangeListenerService} from '../../core/service/form-input-user-change-listener.service';\r\nimport {NgZoneWrapperService} from '../../core/service/ng-zone-wrapper.service';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {OverlayService} from '../../service/overlay.service';\r\n\r\n@Component({\r\n selector: 'co-input-radio-button',\r\n template: `\r\n <div class=\"outer-circle\" [class.selected]=\"model\">\r\n <div class=\"inner-circle\" *ngIf=\"model\" @showSelected></div>\r\n </div>\r\n <div class=\"label\" *ngIf=\"label\" [textContent]=\"label\"></div>\r\n <input #input [ngModel]=\"model\" type=\"hidden\">\r\n `,\r\n providers: [\r\n OverlayService, {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputRadioButtonComponent)\r\n }, {\r\n provide: BaseInputComponent,\r\n useExisting: InputRadioButtonComponent\r\n }],\r\n animations: [\r\n trigger('showSelected', [\r\n state('void', style({transform: 'scale(0)'})),\r\n state('*', style({transform: 'scale(1)'})),\r\n transition('void <=> *', animate('200ms ease-in-out')),\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputRadioButtonComponent extends BaseInputComponent<any> {\r\n\r\n @HostBinding('class.selected')\r\n public get isModelSelected(): boolean {\r\n return this.model;\r\n }\r\n\r\n @HostBinding('class.co-radio-button')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public handleClick(event: MouseEvent): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (!this.readonly) {\r\n this.model = true;\r\n this.modelChange.next(this.model);\r\n if (this.control) {\r\n this.control.markAsDirty({onlySelf: true});\r\n }\r\n if (this.formComponent) {\r\n this.formComponent.formGroup.markAsDirty({onlySelf: true});\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected overlayService: OverlayService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputRadioButtonComponent } from './input-radio-button.component';\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [InputRadioButtonComponent],\r\n exports: [InputRadioButtonComponent]\r\n})\r\nexport class InputRadioButtonModule {\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewEncapsulation} from '@angular/core';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {InputBoolean} from '../../core/decorator/input-boolean.decorator';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {OverlayService} from '../../service/overlay.service';\r\n\r\n@Component({\r\n selector: 'co-input-search',\r\n template: `\r\n <co-input-text\r\n [ngClass]=\"customCssClass\"\r\n [model]=\"model\"\r\n [leftIcon]=\"useLeftIcon ? searchIcon : null\"\r\n [rightIcon]=\"useRightIcon ? searchIcon : null\"\r\n [leftIconData]=\"useLeftIcon && leftIconData ? leftIconData : undefined\"\r\n [rightIconData]=\"useRightIcon && rightIconData ? rightIconData : undefined\"\r\n [placeholder]=\"placeholder\"\r\n [customHeight]=\"true\"\r\n [showPlaceholderOnFocus]=\"false\"\r\n (modelChange)=\"handleModelChange($event)\"\r\n (leftIconClick)=\"leftIconClick.emit($event)\"\r\n (rightIconClick)=\"rightIconClick.emit($event)\"\r\n (keyup)=\"keyUp.emit($event)\"\r\n (isFocused)=\"isFocused.emit($event)\"\r\n ></co-input-text>\r\n `,\r\n providers: [\r\n OverlayService\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputSearchComponent extends BaseInputComponent<string> implements OnDestroy {\r\n\r\n public readonly searchIcon: CoreComponentsIcon = CoreComponentsIcon.Magnifier;\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Output()\r\n public search: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public isFocused: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public leftIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public rightIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Input()\r\n @InputBoolean()\r\n public useLeftIcon: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public useRightIcon: boolean = false;\r\n\r\n @Input()\r\n public leftIconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public rightIconData: SafeHtml | undefined;\r\n\r\n @HostBinding('class.center-label')\r\n @Input()\r\n public centerLabel: boolean = false;\r\n\r\n @HostBinding('class.co-input-search')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public handleKeyDown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'Enter':\r\n case 'NumpadEnter':\r\n event.preventDefault();\r\n this.search.next(this.model);\r\n return;\r\n }\r\n }\r\n\r\n public handleModelChange(model: string): void {\r\n this.model = model;\r\n this.modelChange.next(this.model);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {InputSearchComponent} from \"./input-search.component\";\r\nimport {FormsModule} from '@angular/forms';\r\nimport {InputTextModule} from '../input-text/input-text.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n FormsModule,\r\n InputTextModule\r\n ],\r\n declarations: [InputSearchComponent],\r\n exports: [InputSearchComponent]\r\n})\r\nexport class InputSearchModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {FormInputUserModelChangeListenerService} from '../../core/service/form-input-user-change-listener.service';\r\nimport {NgZoneWrapperService} from '../../core/service/ng-zone-wrapper.service';\r\nimport {FormComponent} from '../form/form.component';\r\nimport {OverlayService} from '../../service/overlay.service';\r\n\r\n@Component({\r\n selector: 'co-input-textarea',\r\n template: `\r\n <div class=\"input-textarea-wrapper\" overlayParent #parentForOverlay=\"overlayParent\">\r\n <label [textContent]=\"placeholder\"></label>\r\n <textarea\r\n #input\r\n type=\"textarea\"\r\n [ngModel]=\"model\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></textarea>\r\n </div>\r\n<!--\r\n <co-commit-buttons *ngIf=\"showSaveCancel && focused && canSaveOrCancel\"\r\n [committing]=\"committing\"\r\n [commitFinished]=\"commitFinished\"\r\n (commitClick)=\"commitClick($event)\"\r\n (cancelClick)=\"cancelClick($event)\"\r\n >\r\n </co-commit-buttons>\r\n-->\r\n <div class=\"required-indicator\"></div>\r\n `,\r\n providers: [\r\n OverlayService, {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextareaComponent)\r\n }, {\r\n provide: BaseInputComponent,\r\n useExisting: InputTextareaComponent\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextareaComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n @Input()\r\n public placeholder: string = '';\r\n\r\n @HostBinding('class.co-input-textarea')\r\n @HostBinding('class.custom-height')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding('class.has-own-label')\r\n public hasOwnLabel: boolean = true;\r\n\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected overlayService: OverlayService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\nimport {InputTextareaComponent} from \"./input-textarea.component\";\r\nimport {CommitButtonsModule} from '../base/commit-buttons/commit-buttons.module';\r\nimport {OverlayModule} from '../../directives/overlay/overlay.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ValidationErrorModule,\r\n CommitButtonsModule,\r\n OverlayModule\r\n ],\r\n declarations: [\r\n InputTextareaComponent\r\n ],\r\n exports: [\r\n InputTextareaComponent\r\n ]\r\n})\r\nexport class InputTextareaModule {\r\n}\r\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy} from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-text-input-popup\",\r\n template: `\r\n <co-input-text [(model)]=\"text\" [label]=\"label\" [noValidation]=\"true\" [initFocus]=\"true\"></co-input-text>\r\n `\r\n})\r\n// A popup component that lets the user type and submit a text string.\r\nexport class TextInputPopupComponent implements Popup<string>, AfterViewInit, OnDestroy {\r\n // The user-changeable text content of the input text.\r\n @Input()\r\n public text: string;\r\n\r\n // The label text for the input text. Localized.\r\n @Input()\r\n public label: string;\r\n\r\n constructor(private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._changeDetector = undefined;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._changeDetector.detectChanges(); // fixes some changed-after-checked bug (popup service could have manipulated our text and label @Input's ..)\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<string> {\r\n return this.text;\r\n }\r\n}\r\n","/**\r\n * Represents the enumeration of file types of files that the application can recognize. Used, for instance, in\r\n * document view components to show an Excel, Pdf or Word icon for the documents file type.\r\n */\r\nexport enum FileTypeInternal {\r\n Test,\r\n Image,\r\n Swf,\r\n ExcelSheet,\r\n WordDocument,\r\n Pdf,\r\n TextFile,\r\n Executable,\r\n Undefined\r\n}\r\n","// DOM_BESTANDSSOORT\r\nexport enum FileType {\r\n // DOC: Document\r\n Document = \"DOC\",\r\n // IMG: Afbeelding\r\n Image = \"IMG\",\r\n // SDWEB: Digitale handtekening\r\n DigitalSignature = \"SDWEB\",\r\n}\r\n","export enum CoDocumentImageDisplayKind {\r\n NormalImage = \"N\",\r\n LayeredImage = \"L\",\r\n Avatar = \"A\"\r\n}\r\n","export enum ObjectRightType {\r\n NoAccess = 0,\r\n ReadOnly = 1,\r\n ReadWrite = 2\r\n}\r\n","import { TableName } from '../enum/table-name.enum';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { FileUtils } from '../utils/file-utils';\r\nimport { CoDocumentImageDisplayKind } from '../enum/co-document-image-display-kind.enum';\r\nimport { ObjectRightType } from '../enum/object-right-type.enum';\r\nimport { Subject } from 'rxjs';\r\nimport { CoDocumentRight } from './co-document-right.bo';\r\n// See DocumentDTO.\r\nexport class CoDocument {\r\n public set documentId(value: number) {\r\n this._documentId = value;\r\n // this._idObject.docId = value;\r\n }\r\n\r\n public get documentId(): number {\r\n return this._documentId;\r\n }\r\n\r\n // @DateField()\r\n public creationDate: Date;\r\n // @DateField()\r\n public modifiedDate: Date;\r\n // public creationUser: string;\r\n // public modifiedUser: string;\r\n public description: string;\r\n public thumbnailBody: string;\r\n public table: TableName;\r\n public key: string;\r\n public filePath: string;\r\n public documentType: CoDocumentType;\r\n /**\r\n * The database-fetched mimetype of this document. Note: is barely set to a value, and when it's set, it's usually garbage data.\r\n * Use .mimeTypeInternal if you want the best educated guess of the true mime type of this document.\r\n */\r\n public mimeType: string;\r\n public publication: number;\r\n public fileSize: string;\r\n public fileType: FileType;\r\n public isLoaded: boolean;\r\n public index: number;\r\n public imageDimensions: string;\r\n public title: string;\r\n // @BooleanText(\"T\")\r\n // public downloadable: boolean;\r\n // @BooleanText(\"T\")\r\n // public attachToNotification: boolean;\r\n // @BooleanText(\"T\")\r\n // @DefaultSendValue(\"F\")\r\n // public pathIsUrl: boolean = false;\r\n // public imageType: string;\r\n public imageDisplayKind: CoDocumentImageDisplayKind;\r\n // @ComplexArray(Tag)\r\n // public tags: Tag[] = [];\r\n public rightLevel: ObjectRightType;\r\n // @ComplexArray(CoDocumentRight)\r\n public rights: CoDocumentRight[] = [];\r\n\r\n public set documentBody(documentBody: string) {\r\n const prev: string = this._documentBody;\r\n\r\n this._documentBody = documentBody;\r\n\r\n if (prev !== this._documentBody) {\r\n this.documentBodyChange.next(this._documentBody);\r\n }\r\n }\r\n\r\n public get documentBody(): string {\r\n return this._documentBody;\r\n }\r\n\r\n // @DefaultSendValue([])\r\n // @ComplexArray(ArticleSeoValue)\r\n // public seoTitles: ArticleSeoValue[] = [];\r\n public fileName: string;\r\n public retailFormulas: string[] = [];\r\n\r\n // @NoDbField()\r\n // public idForLink: number;\r\n\r\n // The internal file type of this document (the MimeType iOneJS uses internally)\r\n public get fileTypeInternal(): FileTypeInternal {\r\n if (!this._fileTypeInternal) {\r\n const fileType: FileTypeInternal = FileUtils.FileNameToFileTypeInternal(this.fileName);\r\n if (fileType) {\r\n this._fileTypeInternal = fileType;\r\n }\r\n }\r\n return this._fileTypeInternal;\r\n }\r\n\r\n /**\r\n * The mimetype of this document: uses database-fetched this.mimeType, or calculates / guesses the mime type of the document\r\n * if that was not set.\r\n */\r\n public get mimeTypeInternal(): string {\r\n if (this._mimeTypeInternal) {\r\n return this._mimeTypeInternal;\r\n } else {\r\n this._initMimetypeInternal();\r\n return this._mimeTypeInternal;\r\n }\r\n }\r\n\r\n public set mimeTypeInternal(value: string) {\r\n this._mimeTypeInternal = value;\r\n }\r\n\r\n // Gives either the document-(prio) or the thumbnail body. Or undefined if not exist.\r\n public get bodyAsDataUri(): string {\r\n if (this._documentBody) {\r\n return this.documentBodyAsDataUri;\r\n } else if (this.thumbnailBody) {\r\n return this.thumbnailBodyAsDataUri;\r\n }\r\n }\r\n\r\n // The body of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get documentBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.documentBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n // The Thumbnailbody of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get thumbnailBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.thumbnailBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get isAvatar(): boolean {\r\n return this.imageDisplayKind === CoDocumentImageDisplayKind.Avatar;\r\n }\r\n\r\n // @DbFieldAlias(\"documentBody\")\r\n private _documentBody: string;\r\n //\r\n // @DbFieldAlias(\"documentId\")\r\n private _documentId: number;\r\n //\r\n // @NoDbField()\r\n // @ComplexField(Subject)\r\n public readonly documentBodyChange: Subject<string> = new Subject<string>();\r\n\r\n // The internal representation of the MimeType, see enum MimeType (actual mimeType field is not filled in db often)\r\n // @NoDbField()\r\n private _fileTypeInternal: FileTypeInternal;\r\n // eg \"image/jpeg\"\r\n // @NoDbField()\r\n private _mimeTypeInternal: string;\r\n //\r\n // @NoDbField()\r\n // private _idObject: any = {};\r\n\r\n public get readonly(): boolean {\r\n return this.rightLevel === ObjectRightType.ReadOnly;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public getId(): any {\r\n return this.documentId;\r\n }\r\n\r\n // Returns whether this is an image document or not.\r\n public isImageDocument(): boolean {\r\n return (this.fileTypeInternal === FileTypeInternal.Image);\r\n }\r\n\r\n // @BoSerializerStep()\r\n public preventOverridingThumbnailToEmpty(): void {\r\n if (!this.thumbnailBody) {\r\n this.thumbnailBody = this._documentBody;\r\n }\r\n }\r\n\r\n // POSTCONDITION: this._mimeTypeInternal contains, to our best abilities, the true mimeType of this document, a-la \"image/jpg\"\r\n private _initMimetypeInternal(): void {\r\n // if no fileType, default to FileType.Image for internal mimetype initialization\r\n if ((this.fileType === FileType.Image || !this.fileType) && this.fileName) {\r\n const fileExtension: string = this.fileName.substr(this.fileName.lastIndexOf(\".\") + 1);\r\n this._mimeTypeInternal = \"image/\" + fileExtension;\r\n }\r\n }\r\n}\r\n","// for refcode CV_DOCUMENTATIE.DOC_TYPE\r\nexport enum CoDocumentType {\r\n // BN: Document opslaan als bestand, locatie niet van toepassing\r\n SaveAsDocument = \"BN\",\r\n // LS: Document opslaan als link op willekeurige locatie\r\n SaveAsLinkOnRandomLocation = \"LS\",\r\n // LW: Document opslaan als link op standaardloactie\r\n SaveAsLinkOnDefaultLocation = \"LW\",\r\n}\r\n","import { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { CoDocument } from '../model/co-document.bo';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { StringUtils } from './string-utils';\r\nimport { NumberUtils } from './number-utils';\r\n\r\nconst MaxUploadSize: number = 3145728; // 3Mb\r\n\r\n// @dynamic\r\nexport class FileUtils {\r\n\r\n // Returns MaxUploadSize in Megabytes.\r\n public static get MaxUploadSizeInMb(): number {\r\n return MaxUploadSize / 1024 / 1024;\r\n }\r\n\r\n public static DocumentBodyToDataUri(documentBody: string, mimeType: string): string {\r\n return StringUtils.IsStringWithLength(documentBody) ? \"data:\" + mimeType + \";base64,\" + documentBody : \"\";\r\n }\r\n\r\n // Returns the file type of the given file, by looking at its extension. Returns FileType.Undefined if not recognised.\r\n public static FileNameToFileTypeInternal(fileName: string): FileTypeInternal {\r\n if (!fileName) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n const stringParts: string[] = fileName.split(\".\");\r\n const extension: string = stringParts[stringParts.length - 1];\r\n switch (extension.toLowerCase()) {\r\n case \"pdn\":\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"jpg\":\r\n case \"jpeg\":\r\n case \"jpe\":\r\n case \"jfif\":\r\n case \"png\":\r\n case \"tif\":\r\n case \"tiff\":\r\n case \"tga\":\r\n case \"dds\":\r\n return FileTypeInternal.Image;\r\n case \"swf\":\r\n return FileTypeInternal.Swf;\r\n case \"xls\":\r\n case \"xlsx\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"doc\":\r\n case \"docx\":\r\n return FileTypeInternal.WordDocument;\r\n case \"pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"txt\":\r\n return FileTypeInternal.TextFile;\r\n case \"exe\":\r\n return FileTypeInternal.Executable;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n }\r\n\r\n // Checks if filetype of given file is of type image. Possible filetypes: image/png, image/bmp, image/jpeg, etc.\r\n public static IsImageFile(file: File | CoDocument): boolean {\r\n if (!file) {\r\n return false;\r\n }\r\n let fileName: string;\r\n let mimeType: string;\r\n if (file instanceof CoDocument) {\r\n fileName = file.fileName;\r\n mimeType = file.mimeTypeInternal;\r\n } else {\r\n fileName = file.name;\r\n mimeType = file.type;\r\n }\r\n if (mimeType !== \"\") {\r\n return mimeType.startsWith('image/');\r\n } else {\r\n return (FileUtils.FileNameToFileTypeInternal(fileName) === FileTypeInternal.Image);\r\n }\r\n }\r\n\r\n // Try to determine the file type of given document. First attempt is by filetype, second by file name.\r\n public static GetGlobalFileType(document: CoDocument): FileTypeInternal {\r\n if (!document) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n if (document.mimeType !== \"\") {\r\n switch (document.mimeType) {\r\n case \"application/pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"application/msword\":\r\n return FileTypeInternal.WordDocument;\r\n case \"application/excel\":\r\n case \"application/vnd.ms-excel\":\r\n case \"application/x-excel\":\r\n case \"application/x-msexcel\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"text/plain\":\r\n case \"application/plain\":\r\n return FileTypeInternal.TextFile;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n } else {\r\n return FileUtils.FileNameToFileTypeInternal(document.fileName);\r\n }\r\n }\r\n\r\n // Checks filesize of given file and returns false if size exceeds maximum upload size.\r\n public static CheckMaxUploadSize(file: CoDocument | File): boolean {\r\n let fileSize: number = 0;\r\n if (file instanceof CoDocument) {\r\n fileSize = NumberUtils.ParseInt(file.fileSize);\r\n } else {\r\n fileSize = file.size;\r\n }\r\n return (fileSize <= MaxUploadSize);\r\n }\r\n\r\n public static async ConvertFileToDataUri(file: File): Promise<string> {\r\n if (file) {\r\n return new Promise<string>((resolve) => {\r\n const fileReader: FileReader = new FileReader();\r\n fileReader.onload = () => {\r\n resolve(<string> fileReader.result);\r\n };\r\n fileReader.readAsDataURL(file);\r\n });\r\n }\r\n }\r\n\r\n // Returns the given dataUri string stripped of the mimetype part.\r\n public static StripMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n const mimeString: string = this.GetMimeStringFromDataUri(dataUri);\r\n return dataUri.substr(mimeString.length + 1);\r\n }\r\n\r\n public static GetMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n return dataUri.split(',')[0];\r\n }\r\n\r\n // Converts given string data to an ArrayBuffer.\r\n public static ConvertStringToArrayBuffer(stringData: string): Uint8Array {\r\n if (!stringData) {\r\n return undefined;\r\n }\r\n const arrayBuffer: ArrayBuffer = new ArrayBuffer(stringData.length);\r\n const bufView: Uint8Array = new Uint8Array(arrayBuffer);\r\n for (let i: number = 0, len: number = stringData.length; i < len; i++) {\r\n bufView[i] = stringData.charCodeAt(i);\r\n }\r\n return bufView;\r\n }\r\n\r\n public static ConvertByteArrayToString(byteArray: number[]): string {\r\n let str: string = \"\";\r\n if (byteArray) {\r\n for (let i: number = 0, len: number = byteArray.length; i < len; i++) {\r\n str += String.fromCharCode(byteArray[i]);\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n // Returns true if given string contains a data-uri/base64.\r\n public static StringContainsDataUri(str: string): boolean {\r\n if (!str) {\r\n return false;\r\n }\r\n const mimeString: string = str.split(',')[0];\r\n return mimeString.indexOf('base64') > -1;\r\n }\r\n\r\n /**\r\n * There is some discrepancy regarding locations of h3d objects\r\n * Therefor we need to (temporarily?!) fix the content url\r\n * Also we need to change some additionals\r\n */\r\n public static FixAssetUrl(assetUrl: string): string {\r\n if (!assetUrl) {\r\n return \"\";\r\n }\r\n let fixedUrl: string;\r\n if (assetUrl.indexOf('_webplayer') === -1) {\r\n fixedUrl = assetUrl.replace('.unity3d', '_webplayer.ione3d');\r\n } else {\r\n fixedUrl = assetUrl.replace('_webplayer.unity3d', '_webplayer.ione3d');\r\n }\r\n fixedUrl = fixedUrl.replace('content/', 'content43/');\r\n if (!fixedUrl.endsWith('.gz')) {\r\n fixedUrl = fixedUrl.concat('.gz');\r\n }\r\n return fixedUrl;\r\n }\r\n\r\n // Return the mimetype of the given filename.\r\n public static MimeTypeFromFilename(fileName: string): string {\r\n const regEx: RegExp = /(?:\\.([^.]+))?$/; // regex to find extension\r\n const extension: any = regEx.exec(fileName)[1];\r\n switch (extension) {\r\n case \"jpg\":\r\n case \"jpeg\":\r\n return \"image/jpeg\";\r\n case \"png\":\r\n return \"image/png\";\r\n case \"bmp\":\r\n return \"image/bmp\";\r\n }\r\n }\r\n\r\n public static DownloadFile(\r\n fileName: string,\r\n content: string,\r\n mimeType: string = \"text/plain\"\r\n ): void {\r\n const element: HTMLAnchorElement = document.createElement('a');\r\n element.setAttribute(\"href\", \"data:\" + mimeType + \";charset=utf-8,\" + encodeURIComponent(content));\r\n element.setAttribute(\"download\", fileName);\r\n\r\n element.style.display = \"none\";\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n // Returns the contents of given file as a text string.\r\n public static ReadAsText(file: File): Promise<string> {\r\n return new Promise<string>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsText(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n resolve(event.target.result);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static ReadFileAsNewCoDocument(file: File): Promise<CoDocument> {\r\n return new Promise<CoDocument>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n const coDocument: CoDocument = new CoDocument();\r\n\r\n coDocument.fileSize = file.size.toString();\r\n coDocument.mimeTypeInternal = file.type;\r\n coDocument.mimeType = file.type;\r\n coDocument.fileName = file.name;\r\n coDocument.documentType = CoDocumentType.SaveAsDocument;\r\n coDocument.fileType = FileUtils.IsImageFile(file) ? FileType.Image : FileType.Document;\r\n coDocument.description = file.name;\r\n coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(event.target.result);\r\n\r\n resolve(coDocument);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static GetExtensionFromDataUri(dataUri: string): string {\r\n const data: string = dataUri;\r\n return data.replace(/(data:image\\/)(.*?)(;base64.*)/gi, '$2');\r\n }\r\n\r\n public static CreateDownloadFileNameFromBase64(dataUri: string): string {\r\n const ext: string = this.GetExtensionFromDataUri(dataUri);\r\n return 'preview.' + ext;\r\n }\r\n\r\n public static DownloadFromDataUri(dataUri: string, fileName: string): void {\r\n const link: any = document.createElement(\"a\");\r\n link.download = fileName;\r\n link.href = dataUri;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\nexport class BrowserUtils {\r\n public static ScrollToTop(nativeElement: any, milliSeconds: number = 200): void {\r\n return BrowserUtils._ScrollTo(\"scrollTop\", nativeElement, milliSeconds, 0);\r\n }\r\n\r\n public static DownloadFile(encodedUri: string, fileType: string): void {\r\n const link: HTMLAnchorElement = document.createElement(\"a\");\r\n const date: string = new Date().toDateString();\r\n\r\n link.href = encodedUri;\r\n link.target = '_blank';\r\n link.download = \"export_\" + date + fileType;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n public static CopyToClipboard(data: string): void {\r\n\r\n const textArea: any = document.createElement(\"TEXTAREA\");\r\n const textNode: any = document.createTextNode(data);\r\n\r\n textArea.appendChild(textNode);\r\n document.body.appendChild(textArea); // Required for FF\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(textArea);\r\n }\r\n\r\n public static TabFocusNextElement(): void {\r\n const nextTabStop: any = BrowserUtils._FindNextTabStop(document.activeElement);\r\n if (nextTabStop) {\r\n nextTabStop.focus();\r\n }\r\n }\r\n\r\n public static AreDimensionsInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;\r\n }\r\n\r\n public static HorizontalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.left >= vp.left && dimensions.right <= vp.right;\r\n }\r\n\r\n public static VerticalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;\r\n }\r\n\r\n public static GetViewport(): ElementPosition {\r\n\r\n let viewPortWidth: number;\r\n let viewPortHeight: number;\r\n\r\n // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight\r\n if (typeof window.innerWidth !== 'undefined') {\r\n viewPortWidth = window.innerWidth;\r\n viewPortHeight = window.innerHeight;\r\n } else if (typeof document.documentElement !== 'undefined' &&\r\n typeof document.documentElement.clientWidth !== 'undefined' &&\r\n document.documentElement.clientWidth !== 0) {\r\n viewPortWidth = document.documentElement.clientWidth;\r\n viewPortHeight = document.documentElement.clientHeight;\r\n } else {\r\n viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;\r\n viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;\r\n }\r\n\r\n return {left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight};\r\n }\r\n\r\n public static GetDimensions(view?: ElementRef): ElementPosition {\r\n if (!view) {\r\n return this.GetViewport();\r\n } else {\r\n const elem: HTMLElement = view instanceof HTMLElement ? view : view.nativeElement;\r\n const cr: ClientRect = elem.getBoundingClientRect();\r\n return {left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom};\r\n }\r\n }\r\n\r\n // Recursive.\r\n private static _ScrollTo(elementScrollProp: string, element: any, milliSeconds: number, toScrollEnd: number): void {\r\n if (!element || milliSeconds <= 0) {\r\n return;\r\n }\r\n\r\n const difference: number = toScrollEnd - element[elementScrollProp];\r\n const scrollPerTick: number = difference / milliSeconds * 10;\r\n\r\n setTimeout(() => {\r\n element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;\r\n if (element[elementScrollProp] === toScrollEnd) {\r\n return;\r\n }\r\n BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);\r\n }, 10);\r\n }\r\n\r\n private static _FindNextTabStop(element: Element): Element {\r\n const tabStopElements: NodeListOf<Element> = document.querySelectorAll(\r\n 'a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)'\r\n );\r\n const actualStopEls: Element[] = [];\r\n for (let i: number = 0, len: number = tabStopElements.length; i < len; i++) {\r\n const tabEl: any = tabStopElements[i];\r\n if (tabEl.tabIndex >= 0) {\r\n actualStopEls.push(tabEl);\r\n }\r\n }\r\n const elIdx: number = actualStopEls.indexOf(element);\r\n return actualStopEls[elIdx + 1] || undefined;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { FileUtils } from '../../core/utils/file-utils';\r\nimport { BrowserUtils } from '../../core/utils/browser-utils';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-popup-message-display\",\r\n template: `\r\n <span *ngIf=\"!image\" class=\"message\" [textContent]=\"message\"></span>\r\n <img *ngIf=\"image\" [src]=\"message\"/>\r\n <ng-container *ngIf=\"details\" label=\"DETAILS\">\r\n <div class=\"overflow-y-auto overflow-x-hidden details\">\r\n <span class=\"message wrap\" [textContent]=\"details\" style=\"overflow-wrap: break-word;\"></span>\r\n </div>\r\n <span class=\"details-link\" [textContent]=\"'COPY_MESSAGE_TO_CLIPBOARD'\" (click)=\"handleCopyClick()\"></span>\r\n </ng-container>\r\n `\r\n})\r\nexport class PopupMessageDisplayComponent implements Popup<PopupButtonType> {\r\n @Input()\r\n public set message(value: string) {\r\n this._message = value;\r\n this.image = FileUtils.StringContainsDataUri(value);\r\n }\r\n\r\n public get message(): string {\r\n return this._message;\r\n }\r\n\r\n @Input()\r\n public details: string;\r\n\r\n public image: boolean = false;\r\n\r\n private _message: string = \"\";\r\n\r\n constructor() {\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<PopupButtonType> {\r\n return eventType;\r\n }\r\n\r\n public handleCopyClick(): void {\r\n BrowserUtils.CopyToClipboard(this.details);\r\n }\r\n}\r\n","// the different types of buttons for the app window component\r\nexport enum PopupButtonType {\r\n Ok,\r\n Open,\r\n Save,\r\n Cancel,\r\n Yes,\r\n No,\r\n NoButton\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupButton {\r\n public label: string;\r\n public cssClass: string;\r\n public closeType: PopupButtonType;\r\n public disabled: boolean;\r\n\r\n constructor(label: string, cssClass: string, closeType: PopupButtonType) {\r\n this.label = label;\r\n this.cssClass = cssClass;\r\n this.closeType = closeType;\r\n }\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { PopupButton } from '../interface/popup-button';\r\n\r\nexport class PopupButtonGlobals {\r\n public static readonly Ok: PopupButton = new PopupButton('OK', 'ok-button', PopupButtonType.Ok);\r\n public static readonly Open: PopupButton = new PopupButton('OPEN', 'open-button', PopupButtonType.Open);\r\n public static readonly Save: PopupButton = new PopupButton('SAVE', 'save-button', PopupButtonType.Save);\r\n public static readonly Cancel: PopupButton = new PopupButton('CANCEL', 'cancel-button', PopupButtonType.Cancel);\r\n public static readonly Yes: PopupButton = new PopupButton('JA', 'ok-button', PopupButtonType.Yes);\r\n public static readonly No: PopupButton = new PopupButton('NEE', 'cancel-button', PopupButtonType.No);\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from \"@angular/core\";\r\nimport {ButtonComponent} from \"../button/button.component\";\r\nimport {PopupButtonGlobals} from \"./model/popup-button-globals\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\n\r\n@Component({\r\n selector: 'co-popup-buttons',\r\n template: `\r\n <div class=\"popup-buttons\">\r\n <co-button\r\n *ngFor=\"let button of buttons\"\r\n [label]=\"button.label\"\r\n [class]=\"button.cssClass\"\r\n [disabled]=\"button.disabled\"\r\n (click)=\"handleClick($event, button)\"\r\n ></co-button>\r\n </div>\r\n `,\r\n styleUrls: [\r\n './popup-buttons.component.scss'\r\n ]\r\n})\r\n// Component that is part of the WindowComponent, and represents the panel with buttons on the bottom of app popups.\r\nexport class PopupButtonsComponent implements OnInit {\r\n\r\n @Input()\r\n public popupWindow: any;\r\n\r\n @Output()\r\n public readonly buttonClick: EventEmitter<PopupButton> = new EventEmitter<PopupButton>();\r\n\r\n @ViewChild(ButtonComponent)\r\n public firstButton: ButtonComponent;\r\n\r\n public buttons: PopupButton[] = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.popupWindow || !this.popupWindow.settings) {\r\n return;\r\n }\r\n if (this.popupWindow.settings.buttons) {\r\n this.buttons = this.popupWindow.settings.buttons;\r\n }\r\n }\r\n\r\n public handleClick(event: MouseEvent, button: PopupButton): void {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n this.buttonClick.emit(button);\r\n }\r\n\r\n public focusFirstButton(): void {\r\n if (this.firstButton) {\r\n this.firstButton.focus();\r\n }\r\n }\r\n}\r\n","export enum PopupType {\r\n Notification,\r\n Warning,\r\n Error,\r\n Question,\r\n Blank,\r\n FullScreen,\r\n Confirmation\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentRef,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {PopupButtonsComponent} from \"./popup-buttons.component\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {PopupButtonType} from \"../../core/enum/popup-button-type.enum\";\r\nimport {FileUtils} from \"../../core/utils/file-utils\";\r\nimport {ObjectUtils} from \"../../core/utils/object-utils\";\r\nimport {PopupType} from \"../../core/enum/popup-type.enum\";\r\nimport {PopupMessageDisplayComponent} from \"./popup-message-display.component\";\r\nimport {PopupWindowModel} from \"./model/popup-window\";\r\nimport {Popup} from \"./interface/popup\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\nimport {POPUP_WINDOW_DATA} from \"./const/popup-window-token\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"co-popup-window-shell\",\r\n template: `\r\n <ng-container *ngIf=\"!isBlank\">\r\n <co-button *ngIf=\"popupWindow?.settings.downloadable\" class=\"circle shadowed popup-downloadable\" [iconData]=\"downloadIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onDownloadClick()\"></co-button>\r\n <co-button *ngIf=\"!popupWindow?.settings.hideCloseIcon\" class=\"circle shadowed popup-close\" [iconData]=\"closeIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onCloseClick()\"></co-button>\r\n <div class=\"popup-wrapper\" *ngIf=\"!isBlank\">\r\n <div class=\"popup-title\"><h2 [textContent]=\"popupWindow?.settings.title\"></h2></div>\r\n <div class=\"popup-content\" (mousedown)=\"$event.stopImmediatePropagation()\">\r\n <ng-template #popupContent></ng-template>\r\n </div>\r\n <co-popup-buttons [popupWindow]=\"popupWindow\" (buttonClick)=\"onButtonClick($event)\"></co-popup-buttons>\r\n </div>\r\n </ng-container>\r\n <ng-template #popupContent *ngIf=\"isBlank\"></ng-template>\r\n `,\r\n styleUrls: [\r\n \"popup-window-shell.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// The main component for app popups. Visually represents the outer edges of the components.\r\nexport class PopupWindowShellComponent implements AfterViewInit, OnDestroy, OnInit {\r\n\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public popupWindow: PopupWindowModel;\r\n\r\n @Input()\r\n @HostBinding(\"class.mobile-sizings\")\r\n public hasMobileSizings: boolean;\r\n\r\n @ViewChild(\"popupContent\", {read: ViewContainerRef})\r\n protected _viewContainer: ViewContainerRef;\r\n\r\n @ViewChild(PopupButtonsComponent)\r\n protected _appPopupButtons: PopupButtonsComponent;\r\n\r\n @HostBinding(\"class.popup-error\")\r\n public isError: boolean;\r\n\r\n @HostBinding(\"class.popup-warning\")\r\n public isWarning: boolean;\r\n\r\n @HostBinding(\"class.popup-notification\")\r\n public isNotification: boolean;\r\n\r\n @HostBinding(\"class.popup-question\")\r\n public isQuestion: boolean;\r\n\r\n @HostBinding(\"class.movable\")\r\n public isMovable: boolean;\r\n\r\n public isBlank: boolean;\r\n\r\n public closeIcon: SafeHtml;\r\n public downloadIcon: SafeHtml;\r\n\r\n // @HostBinding('style.top.px')\r\n // public top: number = -1000; //start off-screen\r\n //\r\n // @HostBinding('style.left.px')\r\n // public left: number = -1000; //start off-screen\r\n\r\n private _popupCompRef: ComponentRef<Popup>;\r\n\r\n private _filterClickSub: Subscription;\r\n\r\n private _popupCloseRequestSub: Subscription;\r\n\r\n constructor(\r\n private _iconCache: IconCacheService,\r\n private _changeDetector: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.closeIcon = this._iconCache.getIcon(this.icons.CrossSkinny);\r\n this.downloadIcon = this._iconCache.getIcon(this.icons.Download);\r\n this._setHostBindings();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.popupWindow.popupWindowComponent = this;\r\n this._createPopupComponent();\r\n this._initOnClickAutoClose();\r\n this._initAppPopupCloseRequestHandler();\r\n\r\n if (!this.popupWindow.settings.noButtonFocus && this._appPopupButtons) {\r\n setTimeout(() => {\r\n this._appPopupButtons.focusFirstButton();\r\n });\r\n }\r\n\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._close();\r\n this._viewContainer.clear();\r\n this._popupCompRef = undefined;\r\n this._viewContainer = undefined;\r\n this._changeDetector = undefined;\r\n }\r\n\r\n public async close(eventType: PopupButtonType): Promise<void> {\r\n if (this._popupCompRef && this._popupCompRef.instance && this._popupCompRef.instance.onClose) {\r\n const onCloseOutput: any = await this._popupCompRef.instance.onClose(eventType);\r\n this.popupWindow.onClose(eventType, onCloseOutput);\r\n } else {\r\n this.popupWindow.onClose(eventType);\r\n }\r\n }\r\n\r\n public onButtonClick(button: PopupButton): void {\r\n if (!button.disabled) {\r\n this.close(button.closeType);\r\n }\r\n }\r\n\r\n public onDownloadClick(): void {\r\n try {\r\n const dataUri: string = (this._popupCompRef.instance as PopupMessageDisplayComponent).message;\r\n FileUtils.DownloadFromDataUri(dataUri, FileUtils.CreateDownloadFileNameFromBase64(dataUri));\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n public onCloseClick(): void {\r\n this.close(PopupButtonType.Cancel);\r\n }\r\n\r\n private _close = (): void => {\r\n this.onCloseClick();\r\n };\r\n\r\n private _createPopupComponent(): void {\r\n this._popupCompRef = this._viewContainer.createComponent(this.popupWindow.factory);\r\n ObjectUtils.ForOwnProperty(this.popupWindow.inputs, (value: any, key: string) => {\r\n this._popupCompRef.instance[key] = value;\r\n });\r\n // give the concrete popup component access to its underlying model (with settings etc, e.g. for dynamic disabling/enabling of popup buttons on bottom)\r\n this._popupCompRef.instance.popupModel = this.popupWindow;\r\n if (this._popupCompRef.instance.onOpen) {\r\n this._popupCompRef.instance.onOpen();\r\n }\r\n }\r\n\r\n private _initOnClickAutoClose(): void {\r\n if (this.popupWindow && this.popupWindow.settings && this.popupWindow.settings.autoClose) {\r\n if (this._filterClickSub) {\r\n this._filterClickSub.unsubscribe();\r\n }\r\n // this._filterClickSub = this._filterService.onClick.subscribe(() => {\r\n // this.onCloseClick();\r\n // });\r\n }\r\n }\r\n\r\n private _initAppPopupCloseRequestHandler(): void {\r\n if (!this._popupCompRef || !this._popupCompRef.instance || !this._popupCompRef.instance.closeRequest) {\r\n return;\r\n }\r\n\r\n if (this._popupCloseRequestSub) {\r\n this._popupCloseRequestSub.unsubscribe();\r\n }\r\n this._popupCloseRequestSub = this._popupCompRef.instance.closeRequest.subscribe((closeButton: PopupButtonType) => {\r\n if (!closeButton) {\r\n closeButton = PopupButtonType.NoButton;\r\n }\r\n this.close(closeButton);\r\n });\r\n }\r\n\r\n private _setHostBindings(): void {\r\n if (this.popupWindow) {\r\n this.isError = this.popupWindow.type === PopupType.Error;\r\n this.isWarning = this.popupWindow.type === PopupType.Warning;\r\n this.isNotification = this.popupWindow.type === PopupType.Notification;\r\n this.isQuestion = this.popupWindow.type === PopupType.Question;\r\n this.isBlank = this.popupWindow.type === PopupType.Blank;\r\n this.isMovable = !this.popupWindow.settings.fixed;\r\n }\r\n }\r\n}\r\n","import {ComponentFactory} from \"@angular/core\";\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\n\r\n// Represent the base for app popup windows, with common fields and methods that each popup window has.\r\nexport class PopupWindowModel {\r\n public static readonly closeDefaultOutputStr: string = \"PopupWindowModel.closeDefault()\";\r\n\r\n public get type(): PopupType {\r\n return this.settings ? this.settings.type : undefined;\r\n }\r\n\r\n public uuid: string = StringUtils.CreateGuid();\r\n\r\n // Reference to the actual popup window component.\r\n public popupWindowComponent?: PopupWindowShellComponent;\r\n\r\n constructor(public factory: ComponentFactory<Popup>, public settings: PopupSettings, public inputs: any) {\r\n }\r\n\r\n public closeDefault(): void {\r\n this.onClose(PopupButtonType.NoButton, PopupWindowModel.closeDefaultOutputStr);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.enableOpenButton();\r\n }\r\n }\r\n\r\n public disableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.disableOpenButton();\r\n }\r\n }\r\n\r\n public getTitle(): string {\r\n if (this.settings) {\r\n return this.settings.title;\r\n }\r\n }\r\n\r\n //noinspection JSUnusedLocalSymbols\r\n onClose(eventType: PopupButtonType, output?: any): void {\r\n return;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\n\r\nexport const POPUP_WINDOW_DATA: InjectionToken<PopupWindowModel> = new InjectionToken<PopupWindowModel>('POPUP_WINDOW_DATA');\r\n","import {\r\n ApplicationRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Injectable,\r\n Injector\r\n} from \"@angular/core\";\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { POPUP_WINDOW_DATA } from '../const/popup-window-token';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\n// Class responsible for showing popups throughout the application and returning results from user interaction with those popups.\r\n@Injectable({providedIn: \"root\"})\r\nexport class PopupShowerService {\r\n\r\n constructor(\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n private _overlay: Overlay,\r\n private _injector: Injector) {\r\n }\r\n\r\n public async showPopup<T = any>(popupCompClazz: any, popupSettings: PopupSettings, inputs: any = {}): Promise<PopupCloseEvent<T>> {\r\n const popupShellRef: ComponentRef<PopupWindowShellComponent> = this._createWindowShell();\r\n const popupShell: PopupWindowShellComponent = popupShellRef.instance;\r\n const config: OverlayConfig = this._getConfig();\r\n const popupCompFactory: ComponentFactory<Popup<T>> = this._compFactoryResolver.resolveComponentFactory(popupCompClazz);\r\n\r\n return new Promise<PopupCloseEvent>((resolve: Function) => {\r\n\r\n const popupWindow: PopupWindowModel = new PopupWindowModel(popupCompFactory, popupSettings, inputs);\r\n // the generic onClose handler: remove the closed popup and resolve our original createPopup call with its output data\r\n popupWindow.onClose = (eventType: PopupButtonType, output: any) => {\r\n this._appRef.detachView(popupShellRef.hostView);\r\n popupShellRef.destroy();\r\n resolve({\r\n eventType: eventType,\r\n output: output\r\n });\r\n };\r\n popupShell.popupWindow = popupWindow;\r\n });\r\n }\r\n\r\n private _createWindowShell(): ComponentRef<PopupWindowShellComponent> {\r\n const componentRef = this._compFactoryResolver\r\n .resolveComponentFactory(PopupWindowShellComponent)\r\n .create(this._injector);\r\n this._appRef.attachView(componentRef.hostView);\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n return componentRef;\r\n }\r\n\r\n private _createOverlay(config: OverlayConfig): OverlayRef {\r\n return this._overlay.create(config);\r\n }\r\n\r\n private _getConfig(): OverlayConfig {\r\n const positionStrategy: GlobalPositionStrategy = this._overlay.position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n\r\n return new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'message-overlay-backdrop',\r\n panelClass: 'message-overlay',\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy\r\n });\r\n }\r\n\r\n private _attachDialogContainer(overlayRef: OverlayRef, popupWindow: PopupWindowModel /*, dialogRef: FilePreviewOverlayRef*/): PopupWindowShellComponent {\r\n const injector: Injector = this._createInjector(popupWindow);\r\n const containerPortal: ComponentPortal<PopupWindowShellComponent> = new ComponentPortal(PopupWindowShellComponent, null, injector);\r\n const containerRef: ComponentRef<PopupWindowShellComponent> = overlayRef.attach(containerPortal);\r\n return containerRef.instance;\r\n }\r\n\r\n private _createInjector(popupWindow: PopupWindowModel): Injector {\r\n const injectionTokens: any = new WeakMap();\r\n injectionTokens.set(POPUP_WINDOW_DATA, popupWindow);\r\n const options = {\r\n parent: this._injector,\r\n providers: injectionTokens\r\n };\r\n return Injector.create(options);\r\n }\r\n}\r\n","import { PopupButtonType } from '../../enum/popup-button-type.enum';\r\n\r\n// for PromptService.promptString\r\nexport class StringPromptResultEvent {\r\n constructor(\r\n public eventType: PopupButtonType,\r\n public output: string\r\n ) {\r\n }\r\n}\r\n","import { PopupButton } from './popup-button';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupSettings {\r\n // Title text for the header of a popup window. Will be localized.\r\n public title: string;\r\n // Whether to close the popup automatically when the user clicks outside of it.\r\n public autoClose: boolean;\r\n // Kind of popup to adjust styling.\r\n public type: PopupType;\r\n // Defines which buttons are shown.\r\n public buttons?: PopupButton[];\r\n // Set to true to hide the 'X' close icon in the top-right corner of the popup.\r\n public hideCloseIcon?: boolean;\r\n // Do not focus on first button when popping up (default behavior is to focus on the first button)\r\n public noButtonFocus?: boolean;\r\n // Whether the popup can be moved around\r\n public fixed?: boolean;\r\n // Whether content of the popup can be downloaded\r\n public downloadable?: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n public enableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = false;\r\n }\r\n }\r\n\r\n public disableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = true;\r\n }\r\n }\r\n\r\n public enableSaveButton(): void {\r\n this.enableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public disableSaveButton(): void {\r\n this.disableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n this.enableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n public disableOpenButton(): void {\r\n this.disableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n private _getButtonByType(buttonType: PopupButtonType): PopupButton {\r\n let button: PopupButton = undefined;\r\n\r\n if (this.buttons) {\r\n for (let i: number = 0, len: number = this.buttons.length; i < len; i++) {\r\n if (this.buttons[i].closeType === buttonType) {\r\n button = this.buttons[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return button;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PopupShowerService } from './popup-shower.service';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupMessageDisplayComponent } from '../popup-message-display.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { StringPromptResultEvent } from '../../../core/model/event/string-prompt-result-event';\r\nimport { TextInputPopupComponent } from '../text-input-popup.component';\r\nimport { PopupButtonGlobals } from '../model/popup-button-globals';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\n\r\n// Service responsible for delivering small popup windows (string input promps, alerts, etc.) to the user.\r\n@Injectable({providedIn: \"root\"})\r\nexport class PromptService {\r\n\r\n constructor(private _popupShower: PopupShowerService) {\r\n }\r\n\r\n // Spawns a text input popup with given title and initial text, and resolves the returned promise with the user-entered text as output.\r\n public async promptString(title: string, label?: string, initialText?: string): Promise<StringPromptResultEvent> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title;\r\n const popupResult: PopupCloseEvent<string> = await this._popupShower.showPopup(TextInputPopupComponent, popupSettings, {\r\n text: initialText,\r\n label: label\r\n });\r\n return new StringPromptResultEvent(popupResult.eventType, popupResult.output);\r\n }\r\n\r\n // Shows given error text in an error popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showError(textOrImageDataUri: string, title?: string, details?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"ERROR\";\r\n popupSettings.type = PopupType.Error;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri),\r\n details: details\r\n });\r\n }\r\n\r\n // Shows given warning text in a warning popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showWarning(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"WARNING\";\r\n popupSettings.type = PopupType.Warning;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n public async showNotification(\r\n textOrImageDataUri: string,\r\n title?: string,\r\n showOk: boolean = true,\r\n autoClose: boolean = false,\r\n hideCloseIcon: boolean = false,\r\n downloadable: boolean = false\r\n ): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"NOTIFICATION\";\r\n popupSettings.type = PopupType.Notification;\r\n popupSettings.buttons = (showOk ? [PopupButtonGlobals.Ok] : []);\r\n popupSettings.downloadable = downloadable;\r\n if (autoClose) {\r\n popupSettings.autoClose = true;\r\n }\r\n if (hideCloseIcon) {\r\n popupSettings.hideCloseIcon = true;\r\n }\r\n const popupResult: PopupCloseEvent<void> = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings,\r\n {message: StringUtils.ToStringOrDefault(textOrImageDataUri)});\r\n return popupResult.eventType === PopupButtonType.Ok;\r\n }\r\n\r\n public showImage(imageDataUri: string, title?: string): Promise<any> {\r\n return this.showNotification(imageDataUri, title, false, true, false, true);\r\n }\r\n\r\n public async showYesNo(textOrImageDataUri: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No];\r\n const popupResult: any = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n return popupResult.eventType === PopupButtonType.Yes;\r\n }\r\n\r\n // Spawns a modal 'yes, no or cancel' question prompt. Returns the chosen exit button through AppPopupCloseEvent.eventType.\r\n public async showModalYesNoCancel(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n // Used by AS-copied code. We call it showNotification.\r\n public showOk(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title);\r\n }\r\n\r\n public async showOkCancel(text: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n const closeEvent: PopupCloseEvent = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(text)\r\n });\r\n return (closeEvent.eventType === PopupButtonType.Ok);\r\n }\r\n\r\n public showOkModal(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title, true, false, true);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { InputTextModule } from '../input-text/input-text.module';\r\nimport { TextInputPopupComponent } from './text-input-popup.component';\r\nimport { PopupMessageDisplayComponent } from './popup-message-display.component';\r\nimport { PopupWindowShellComponent } from './popup-window-shell.component';\r\nimport { PopupButtonsComponent } from './popup-buttons.component';\r\nimport { ButtonModule } from '../button/button.module';\r\nimport { PromptService } from './service/prompt.service';\r\nimport { PopupShowerService } from './service/popup-shower.service';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n ButtonModule\r\n ],\r\n declarations: [\r\n TextInputPopupComponent,\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent,\r\n PopupButtonsComponent\r\n ],\r\n entryComponents: [\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent\r\n ],\r\n exports: [\r\n TextInputPopupComponent,\r\n PopupWindowShellComponent\r\n ]\r\n})\r\nexport class PopupModule {\r\n static forRoot(): ModuleWithProviders<PopupModule> {\r\n return {\r\n ngModule: PopupModule,\r\n providers: [\r\n PromptService,\r\n PopupShowerService,\r\n Overlay,\r\n IconCacheService\r\n ]\r\n };\r\n }\r\n}\r\n","import {ContentChild, Directive, ElementRef, Input, OnDestroy, OnInit, TemplateRef} from '@angular/core';\r\n\r\nexport enum ColumnAlign {\r\n Left = \"left-align\",\r\n Center = \"center-align\",\r\n Right = \"right-align\"\r\n}\r\n\r\n@Directive({\r\n selector: \"co-simple-grid-column\"\r\n})\r\nexport class SimpleGridColumnDirective implements OnInit, OnDestroy {\r\n private static _MinManualResizeWidthPx: number = 50;\r\n\r\n @ContentChild('headerTemplate')\r\n public set headerTemplate(template: TemplateRef<any>) {\r\n if (template) {\r\n this._headerTemplate = template;\r\n }\r\n }\r\n\r\n public get headerTemplate(): TemplateRef<any> {\r\n return this._headerTemplate;\r\n }\r\n\r\n @ContentChild('template')\r\n public set template(template: TemplateRef<any>) {\r\n if (template) {\r\n this._template = template;\r\n }\r\n }\r\n\r\n public get template(): TemplateRef<any> {\r\n return this._template;\r\n }\r\n\r\n @ContentChild('editTemplate')\r\n public set editTemplate(template: TemplateRef<any>) {\r\n if (template) {\r\n this._editTemplate = template;\r\n }\r\n }\r\n\r\n public get editTemplate(): TemplateRef<any> {\r\n return this._editTemplate;\r\n }\r\n\r\n @Input()\r\n public headerText: string;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n @Input()\r\n public codeField: string;\r\n\r\n @Input()\r\n public displayField: string;\r\n\r\n @Input()\r\n public textAlign: ColumnAlign;\r\n\r\n @Input()\r\n public format: string;\r\n\r\n @Input()\r\n public resizable: boolean = true;\r\n\r\n @Input()\r\n public required: boolean = false;\r\n\r\n @Input()\r\n public autoFit: boolean = false;\r\n\r\n @Input()\r\n public set width(value: number | string) {\r\n if (typeof value === 'string') {\r\n if (value.indexOf('%')) {\r\n this.widthPercentage = value;\r\n } else {\r\n this._width = value;\r\n }\r\n } else {\r\n this._width = value;\r\n }\r\n }\r\n\r\n public get width(): number | string {\r\n return this._width;\r\n }\r\n\r\n @Input()\r\n public readonly: boolean = false;\r\n\r\n @Input()\r\n public collection: {}[];\r\n\r\n @Input()\r\n public order: number = 0;\r\n\r\n @Input()\r\n public singleColumn: boolean = false;\r\n\r\n public originalWidth: number | string;\r\n public widthPercentage: string;\r\n\r\n private _width: number | string;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._setSingleColumnProps()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._headerTemplate = undefined;\r\n this._template = undefined;\r\n this._editTemplate = undefined;\r\n }\r\n\r\n public getFieldValue(value: any): string {\r\n if (this.collection && this.displayField) {\r\n const result = this.collection.find(c => c[this.codeField] === value);\r\n if (result) {\r\n return result[this.displayField];\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n private _headerTemplate: TemplateRef<any>;\r\n private _template: TemplateRef<any>;\r\n private _editTemplate: TemplateRef<any>;\r\n\r\n private _setSingleColumnProps(){\r\n if (this.singleColumn){\r\n this.resizable = false;\r\n this.readonly = true;\r\n this.width = 0;\r\n }\r\n }\r\n}\r\n","import {ContentChildren, Directive, EventEmitter, HostListener, Input, Output, QueryList, ViewChildren} from \"@angular/core\";\r\nimport {SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {Subject} from \"rxjs\";\r\n\r\n@Directive()\r\nexport abstract class BaseSimpleGridComponent {\r\n public readonly MIN_COLUMN_WIDTH: number = 50;\r\n public readonly dataChanged: Subject<void> = new Subject<void>();\r\n\r\n @ContentChildren(SimpleGridColumnDirective) set content(columnComponents: QueryList<SimpleGridColumnDirective>) {\r\n this._setColumns(columnComponents.toArray());\r\n this._prepareData();\r\n }\r\n\r\n @Input()\r\n public set data(value: Object[]) {\r\n this._data = value;\r\n this._prepareData();\r\n this.dataChanged.next();\r\n }\r\n\r\n public get data(): Object[] {\r\n return this._data;\r\n }\r\n\r\n @Input()\r\n public dragDropEnabled: boolean = false;\r\n\r\n @Input()\r\n public resizable: boolean = false;\r\n\r\n @Input()\r\n public inlineEdit: boolean = false;\r\n\r\n @Input()\r\n public showEdit: boolean = false;\r\n\r\n @Input()\r\n public showToolbar: boolean = false;\r\n\r\n @Input()\r\n public autoAddRow: boolean = false;\r\n\r\n /**\r\n * Should component emit drag and drop actions instead of handle\r\n * (update collection) by itself\r\n */\r\n @Input()\r\n public emitDragDrop: boolean = false;\r\n\r\n @Input()\r\n public set extraColumns(value: SimpleGridColumnDirective[]) {\r\n this._setColumns(value);\r\n }\r\n\r\n @Output()\r\n public onDrop: EventEmitter<{from: number, to: number}> = new EventEmitter<{from: number; to: number}>();\r\n\r\n @Output()\r\n public selectRow: EventEmitter<{}> = new EventEmitter<{}>();\r\n\r\n @Output()\r\n public dblClickRow: EventEmitter<{}> = new EventEmitter<{}>();\r\n\r\n @Output()\r\n public saveRow: EventEmitter<{}> = new EventEmitter<{}>();\r\n\r\n @Output()\r\n public deleteRow: EventEmitter<{}> = new EventEmitter<{}>();\r\n\r\n @Output()\r\n public addRow: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public rowVisible: EventEmitter<{}> = new EventEmitter<{}>();\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n public handleMouseMove(event: MouseEvent): void {\r\n if (this.resizable && event.buttons === 1 && this._columnForResize) {\r\n // this._columnForResize.width = this._columnForResize.originalWidth - (this._startMousePositionX - event.clientX);\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n public handleMouseUp(event: MouseEvent): void {\r\n this._startMousePositionX = undefined;\r\n this._columnForResize = undefined;\r\n }\r\n\r\n public columns: SimpleGridColumnDirective[] = [];\r\n public headerColumns: SimpleGridColumnDirective[] = [];\r\n\r\n protected _data: Object[] = [];\r\n protected disabledRows: number[] = [];\r\n\r\n private _columnForResize: SimpleGridColumnDirective;\r\n private _prepared: boolean = false;\r\n private _startMousePositionX: number;\r\n\r\n public handleSizerMouseDown(event: MouseEvent, column: SimpleGridColumnDirective): void {\r\n this._setWidthOfAllColumns();\r\n this._startMousePositionX = event.clientX;\r\n this._columnForResize = column;\r\n this._columnForResize.originalWidth = this._columnForResize.width;\r\n }\r\n\r\n public handleCanDragDrop(drag: CdkDrag, drop: CdkDropList): boolean {\r\n return true;\r\n }\r\n\r\n public handleDrop(event: CdkDragDrop<Object[]>): void {\r\n try {\r\n const from: number = event.previousIndex;\r\n const to: number = event.currentIndex;\r\n if (from === to) {\r\n return;\r\n }\r\n if (this.emitDragDrop) {\r\n this.onDrop.next({from: from, to: to});\r\n } else {\r\n moveItemInArray(this.data, from, to);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n public isSingleColumnRow(row: Object): boolean {\r\n return row.hasOwnProperty('singleColumnIndex');\r\n }\r\n\r\n public singleColumnIndex(row: Object): number {\r\n return (row as any).singleColumnIndex;\r\n }\r\n\r\n protected prepareDataRow(row: any, index: number): void {\r\n\r\n }\r\n\r\n private _setColumns(columns: SimpleGridColumnDirective[]): void {\r\n this.columns.push(...columns);\r\n this.columns.sort((a, b) => a.order < b.order ? -1 : 1);\r\n }\r\n\r\n private _prepareData(): void {\r\n if (this._prepared) {\r\n return;\r\n }\r\n this.disabledRows.length = 0;\r\n\r\n if (this.columns && this.columns.length > 0) {\r\n this.headerColumns = this.columns.filter(c => !c.singleColumn);\r\n let singleColumnIndex: number = -1;\r\n for (let i = 0; i < this.columns.length; i++) {\r\n if (this.columns[i].singleColumn) {\r\n singleColumnIndex = i;\r\n break;\r\n }\r\n }\r\n // first check if there's single column data\r\n if (singleColumnIndex > -1 && this.data && this.data.length > 0) {\r\n const field: string = this.columns[singleColumnIndex].field;\r\n for (let i = 0; i < this.data.length; i++) { // then mark row as single column row\r\n if (this.data[i][field] !== undefined && this.data[i][field] !== null && this.data[i][field] !== \"\") {\r\n // bit nasty to add prop, but cool for now\r\n (this.data[i] as any).singleColumnIndex = singleColumnIndex;\r\n }\r\n this.prepareDataRow(this.data[i], i);\r\n }\r\n }\r\n\r\n this._prepared = true;\r\n }\r\n this._resizeColumnsToFit();\r\n }\r\n\r\n private _resizeColumnsToFit(): void {\r\n const calculateColumns: SimpleGridColumnDirective[] = this.columns.filter(c => !c.autoFit && !c.width);\r\n for (let i = 0; i < calculateColumns.length; i++) {\r\n calculateColumns[i].width = `${100 / calculateColumns.length}%`;\r\n }\r\n }\r\n\r\n private _setWidthOfAllColumns(): void {\r\n this.columns.forEach((column: SimpleGridColumnDirective) => {\r\n if ((column.width === undefined || column.width === null) && column.elementRef && column.elementRef.nativeElement) {\r\n const rect: ClientRect = column.elementRef.nativeElement.getBoundingClientRect();\r\n column.width = rect.width;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n ViewChildren,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormMasterService } from '../../core/service/form-master.service';\r\nimport { BaseSimpleGridComponent } from './base-simple-grid.component';\r\nimport { ColumnAlign } from './simple-grid-column.directive';\r\n\r\n@Component({\r\n selector: 'co-simple-grid',\r\n template: `\r\n <co-grid-toolbar *ngIf=\"showToolbar\" [class.right]=\"rightToolbar\"\r\n [showEdit]=\"showEdit\"\r\n [showAdd]=\"showAdd\"\r\n [showDelete]=\"showDelete\"\r\n [deleteEnabled]=\"selectedRowIndex > -1\"\r\n (addClick)=\"addNewRow()\"\r\n (editClick)=\"editRow($event)\"\r\n (saveClick)=\"validateAndSave()\"\r\n (cancelClick)=\"cancelEditRow()\"\r\n (deleteClick)=\"removeRow()\"\r\n ></co-grid-toolbar>\r\n <table class=\"simple-grid-table\" [clickOutside]=\"editing\" (clickOutside)=\"handleClickOutsideRow()\">\r\n <colgroup>\r\n <col *ngFor=\"let column of headerColumns; let index = index\"\r\n [class.simple-grid-column-auto-fit]=\"column.autoFit\"\r\n [style.width.px]=\"column.width\"\r\n [style.min-width.px]=\"MIN_COLUMN_WIDTH\">\r\n </colgroup>\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" #headerCell class=\"simple-grid-column-header\" *ngFor=\"let column of headerColumns; let index = index\">\r\n <div class=\"simple-grid-column-header-wrapper\" [class.resizable]=\"resizable\"\r\n [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\r\n <ng-container *ngIf=\"column.headerTemplate; else noHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #noHeaderTemplate>\r\n <div class=\"simple-grid-column-header-label\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\r\n [textContent]=\"column.headerText || '&nbsp;'\"\r\n ></div>\r\n </ng-template>\r\n <div *ngIf=\"resizable && column.resizable\" class=\"simple-grid-column-sizer\"\r\n (mousedown)=\"handleSizerMouseDown($event, column)\"\r\n ></div>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody #dropList cdkDropList cdkDropListOrientation=\"vertical\"\r\n class=\"simple-grid-drag-drop-list\"\r\n [cdkDropListDisabled]=\"!dragDropEnabled || editing\"\r\n [cdkDropListData]=\"data\"\r\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\r\n (cdkDropListDropped)=\"handleDrop($event)\">\r\n <tr class=\"simple-grid-row\" [class.selected]=\"rowIndex === selectedRowIndex && !editing\" observeVisibility\r\n [class.disabled]=\"getIsRowDisabled(rowIndex)\"\r\n [class.editing]=\"rowIndex === editRowIndex\" *ngFor=\"let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index\" cdkDrag\r\n (click)=\"handleClickRow($event, rowIndex, row)\" (dblclick)=\"handleDblClickRow($event, rowIndex, row)\" (visibilityChange)=\"rowVisible.next(row)\">\r\n <co-form class=\"simple-grid-row-form\">\r\n <ng-container *ngIf=\"isSingleColumnRow(row)\">\r\n <td class=\"simple-grid-single-column-cell\" [attr.colspan]=\"headerColumns.length\">\r\n <co-simple-grid-cell\r\n [column]=\"columns[singleColumnIndex(row)]\"\r\n [row]=\"row\"\r\n [editMode]=\"false\"\r\n ></co-simple-grid-cell>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isSingleColumnRow(row)\">\r\n <ng-container *ngFor=\"let column of headerColumns; let columnIndex = index\">\r\n <td class=\"simple-grid-column-cell\" *ngIf=\"columnIndex !== singleColumnIndex(row)\">\r\n <co-simple-grid-cell\r\n [column]=\"column\"\r\n [row]=\"row\"\r\n [editMode]=\"inlineEdit && editing && rowIndex === editRowIndex\"\r\n [fieldEditMode]=\"editCellIndex === columnIndex && rowIndex === editRowIndex\"\r\n (cellClick)=\"handleCellClick($event, row, rowIndex, columnIndex)\"\r\n ></co-simple-grid-cell>\r\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n </co-form>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <co-pagination-bar *ngIf=\"data?.length > rowsPerPage\" class=\"pagination-bar\"\r\n [itemsPerPage]=\"rowsPerPage\"\r\n [currentPage]=\"currentPage\"\r\n [totalItems]=\"data.length\"\r\n [autoHide]=\"true\"\r\n (previousClick)=\"goToPreviousPage()\"\r\n (nextClick)=\"goToNextPage()\"\r\n (pageClick)=\"setCurrentPage($event)\"\r\n ></co-pagination-bar>\r\n `,\r\n providers: [\r\n FormMasterService\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SimpleGridComponent extends BaseSimpleGridComponent {\r\n public readonly defaultTextAlign: ColumnAlign = ColumnAlign.Left;\r\n\r\n @ViewChildren('headerCell') set headerCells(cells) {\r\n const headerElements = cells.toArray();\r\n for (let i = 0; i < headerElements.length; i++) {\r\n this.columns[i].elementRef = headerElements[i];\r\n }\r\n }\r\n\r\n @Input()\r\n public showAdd: boolean = false;\r\n\r\n @Input()\r\n public showDelete: boolean = false;\r\n\r\n @Input()\r\n public editOnCellClick: boolean = true;\r\n\r\n @Input()\r\n public rightToolbar: boolean = false;\r\n\r\n @Input()\r\n public rowsPerPage: number = 1000;\r\n\r\n @Input()\r\n public rowDisabledFn: Function;\r\n\r\n /**\r\n * Promise function, if provided should return boolean\r\n */\r\n @Input()\r\n public canRowBeEdittedFn: Function;\r\n\r\n @HostBinding('class.co-simple-grid')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n public handleKeyDown(event: KeyboardEvent): void {\r\n if (!this.inlineEdit) {\r\n return;\r\n }\r\n if (event.code === 'Tab') {\r\n event.preventDefault();\r\n this._nextAvailableCellToEdit(!event.shiftKey, this.editCellIndex)\r\n .then((index: number) => {\r\n this.editCellIndex = index;\r\n this._changeDetection.markForCheck();\r\n })\r\n this._detectChanges();\r\n }\r\n if (event.code === 'Escape') {\r\n this.cancelEditRow();\r\n }\r\n if (event.code === 'Enter') {\r\n this.validateAndSave();\r\n }\r\n }\r\n\r\n public editing: boolean = false;\r\n public editRowIndex: number = -1;\r\n public editCellIndex: number = -1;\r\n public selectedRowIndex: number = -1;\r\n public rowToEdit: any;\r\n public currentPage: number = 1;\r\n\r\n private _doubleClicked: boolean = false;\r\n private _newRow: boolean = false;\r\n\r\n constructor(\r\n private _changeDetection: ChangeDetectorRef,\r\n private _formMaster: FormMasterService\r\n ) {\r\n super();\r\n this.dataChanged.subscribe(() => {\r\n this.currentPage = 1;\r\n })\r\n }\r\n\r\n public handleClickOutsideRow(): void {\r\n this.validateAndSave();\r\n }\r\n\r\n public getIsRowDisabled(idx: number): boolean {\r\n return this.disabledRows.indexOf(idx) > -1;\r\n }\r\n\r\n public async isRowDisabled(row: any, index: number): Promise<boolean> {\r\n if (this.rowDisabledFn && (typeof this.rowDisabledFn === 'function')) {\r\n const disabled = await this.rowDisabledFn.call(this, row);\r\n const idxRow: number = this.disabledRows.indexOf(index);\r\n if (disabled) {\r\n if (idxRow < 0) {\r\n this.disabledRows.push(index);\r\n }\r\n } else {\r\n if (idxRow > -1) {\r\n this.disabledRows.splice(idxRow, 1);\r\n }\r\n }\r\n return disabled;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public isSingleColumn(column): boolean {\r\n return column.singleColumn;\r\n }\r\n\r\n public rowContainsSingleColumn(row, columns): boolean {\r\n const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);\r\n return !!singleColumn;\r\n }\r\n\r\n public async addNewRow(): Promise<void> {\r\n if (this.inlineEdit) {\r\n const valid: boolean = this.validateAndSave();\r\n // this._detectChanges();\r\n if (valid) {\r\n this.data.push({});\r\n this._detectChanges();\r\n this._newRow = true;\r\n this.editing = true;\r\n this.editRowIndex = this.data.length - 1;\r\n this.rowToEdit = this.data[this.editRowIndex];\r\n this.editCellIndex = await this._nextAvailableCellToEdit(true);\r\n this._detectChanges();\r\n }\r\n } else {\r\n this.addRow.next();\r\n }\r\n }\r\n\r\n public validateAndSave(stopediting: boolean = true): boolean {\r\n if (!this.editing) {\r\n return true;\r\n }\r\n const valid: boolean = this._formMaster.submitSlaves();\r\n this._detectChanges();\r\n if (valid) {\r\n this._saveRow(stopediting);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public cancelEditRow(): void {\r\n if (!this.editing) {\r\n return;\r\n }\r\n if (this._newRow) {\r\n this.data.splice(this.data.length - 1, 1);\r\n } else {\r\n this.data[this.editRowIndex] = this.rowToEdit;\r\n }\r\n this._resetEdit();\r\n this._detectChanges();\r\n }\r\n\r\n public removeRow(): void {\r\n this.deleteRow.next(this.data[this.selectedRowIndex]);\r\n }\r\n\r\n public handleClickRow(event: MouseEvent, index: number, row: any): void {\r\n setTimeout(() => {\r\n if (this._doubleClicked) {\r\n return;\r\n }\r\n this.selectTheRow(index);\r\n }, 200);\r\n }\r\n\r\n public selectTheRow(index: number, emit: boolean = true): void {\r\n if (this.selectedRowIndex === -1 || (this.selectedRowIndex !== index && ((this.editing && this.validateAndSave()) || !this.editing))) {\r\n this.selectedRowIndex = index;\r\n }\r\n if (emit) {\r\n this.selectRow.next(this.data[this.selectedRowIndex]);\r\n }\r\n this._detectChanges();\r\n }\r\n\r\n public async handleDblClickRow(event: MouseEvent, index: number, row: any): Promise<void> {\r\n if (await this.isRowDisabled(row, index)) {\r\n this.selectedRowIndex = -1;\r\n return;\r\n }\r\n let canEdit: boolean = true;\r\n if (this.canRowBeEdittedFn && typeof this.canRowBeEdittedFn === 'function') {\r\n canEdit = await this.canRowBeEdittedFn.call(this, row);\r\n }\r\n if (canEdit) {\r\n this._doubleClicked = true;\r\n this.dblClickRow.next(this.data[index]);\r\n this.selectTheRow(index, false);\r\n if (this.inlineEdit) {\r\n this.editRow(event);\r\n }\r\n }\r\n this._resetDblClick();\r\n }\r\n\r\n public editRow(event: MouseEvent, selectCell: boolean = true): void {\r\n this.editRowIndex = this.selectedRowIndex;\r\n this.rowToEdit = this.data[this.editRowIndex];\r\n this.editing = true;\r\n if (selectCell) {\r\n this._nextAvailableCellToEdit(true).then((index: number) => {\r\n this.editCellIndex = index;\r\n });\r\n }\r\n this._detectChanges();\r\n }\r\n\r\n public async handleCellClick(event: MouseEvent, row: any, rowIndex: number, cellIndex: number): Promise<void> {\r\n if (this.editOnCellClick) {\r\n if (await this.isRowDisabled(row, rowIndex)) {\r\n this.selectedRowIndex = -1;\r\n return;\r\n }\r\n this.selectTheRow(rowIndex, false);\r\n if (this.inlineEdit) {\r\n this.editRowIndex = rowIndex;\r\n this.editCellIndex = cellIndex;\r\n this.editing = true;\r\n this.editRow(event, false);\r\n }\r\n } else {\r\n this.editCellIndex = cellIndex;\r\n }\r\n this._detectChanges();\r\n }\r\n\r\n protected prepareDataRow(row: any, index: number): void {\r\n this.isRowDisabled(row, index);\r\n }\r\n\r\n private _resetDblClick(): void {\r\n setTimeout(() => {\r\n this._doubleClicked = false;\r\n }, 500);\r\n }\r\n\r\n /**\r\n *\r\n * @param next; Move to next or previous cell\r\n * @param start; Start from cellindex\r\n * @private\r\n */\r\n private _nextAvailableCellToEdit(next: boolean, start: number = -1): Promise<number> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n const numEditableColumns: number = this.columns.filter(c => !c.readonly).length;\r\n const wantedIndex = start + (next ? 1 : -1);\r\n if (wantedIndex >= numEditableColumns) {\r\n this._getNextEditRowIndex()\r\n .then((index: number) => {\r\n this.editRowIndex = index;\r\n resolve(this._getNextEditCellIndex(0));\r\n })\r\n .catch((e) => {\r\n reject();\r\n });\r\n } else if (wantedIndex < 0) {\r\n this._getPreviousEditRowIndex()\r\n .then((index: number) => {\r\n this.editRowIndex = index;\r\n resolve(this._getPreviousEditCellIndex(this.columns.length - 1));\r\n })\r\n .catch((e) => {\r\n reject();\r\n });\r\n } else {\r\n resolve(next ? this._getNextEditCellIndex(start + 1) : this._getPreviousEditCellIndex(start - 1));\r\n }\r\n });\r\n }\r\n\r\n private _getNextEditCellIndex(start: number): number {\r\n for (let i: number = start; i < this.columns.length; i++) {\r\n if (!this.columns[i].readonly) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n private _getPreviousEditCellIndex(start: number): number {\r\n for (let i: number = start; i >= 0; i--) {\r\n if (!this.columns[i].readonly) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n private _getNextEditRowIndex(): Promise<number> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n let newRowIndex: number = 0;\r\n if (this.editRowIndex + 1 >= this.data.length) {\r\n if (this.autoAddRow) {\r\n this.addNewRow();\r\n newRowIndex = this.editRowIndex;\r\n } else {\r\n newRowIndex = 0;\r\n }\r\n } else {\r\n newRowIndex = this.editRowIndex + 1;\r\n }\r\n if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first\r\n if (this.validateAndSave(false)) {\r\n this.rowToEdit = this.data[newRowIndex];\r\n resolve(newRowIndex);\r\n } else {\r\n reject();\r\n }\r\n } else {\r\n resolve(newRowIndex);\r\n }\r\n });\r\n }\r\n\r\n private _getPreviousEditRowIndex(): Promise<number> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n let newRowIndex: number = 0;\r\n if (this.editRowIndex - 1 < 0) {\r\n newRowIndex = this.data.length - 1;\r\n } else {\r\n newRowIndex = this.editRowIndex - 1;\r\n }\r\n if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first\r\n if (this.validateAndSave(false)) {\r\n this.rowToEdit = this.data[newRowIndex];\r\n resolve(newRowIndex);\r\n } else {\r\n reject();\r\n }\r\n } else {\r\n resolve(newRowIndex);\r\n }\r\n });\r\n }\r\n\r\n private _saveRow(stopediting: boolean = true): void {\r\n // emit saveEvent\r\n if (this.rowToEdit) {\r\n this.saveRow.next(this.rowToEdit);\r\n }\r\n this._newRow = false;\r\n if (stopediting) {\r\n this._resetEdit();\r\n }\r\n this._detectChanges();\r\n }\r\n\r\n public goToPreviousPage(): void {\r\n this.currentPage -= 1;\r\n }\r\n\r\n public goToNextPage(): void {\r\n this.currentPage += 1;\r\n }\r\n\r\n public setCurrentPage(page: number): void {\r\n this.currentPage = page;\r\n }\r\n\r\n private _detectChanges(): void {\r\n this._changeDetection.detectChanges();\r\n }\r\n\r\n private _resetEdit(): void {\r\n this._newRow = false;\r\n this.selectedRowIndex = -1;\r\n this.editRowIndex = -1;\r\n this.editCellIndex = -1;\r\n this.editing = false;\r\n this.rowToEdit = undefined;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\nexport interface IPage {\r\n label: string;\r\n value: any;\r\n}\r\n\r\n@Component({\r\n selector: \"co-pagination-bar\",\r\n template: `\r\n <ul class=\"pagination\" *ngIf=\"!shouldBeHidden()\">\r\n <li class=\"pagination-previous\" [class.disabled]=\"isOnFirstPage()\" (click)=\"onPreviousClick()\">\r\n <div class=\"pagination-previous-arrow\"></div>\r\n <a *ngIf=\"directionLinks\" [class.disabled]=\"isOnFirstPage()\">{{ previousLabel }}</a>\r\n </li>\r\n <li *ngFor=\"let page of pages\" [class.current]=\"currentPage === page.value\" (click)=\"onPageClick(page.value)\">\r\n <span>{{page.label}}</span>\r\n </li>\r\n <li class=\"pagination-next\" [class.disabled]=\"isOnLastPage()\" (click)=\"onNextClick()\" >\r\n <a *ngIf=\"directionLinks\" [class.disabled]=\"isOnLastPage()\">{{ nextLabel }}</a>\r\n <div class=\"pagination-next-arrow\"></div>\r\n </li>\r\n </ul>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PaginationBarComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n public directionLinks: boolean = true;\r\n\r\n @Input()\r\n public previousLabel: string = 'Vorige pagina';\r\n\r\n @Input()\r\n public nextLabel: string = 'Volgende pagina';\r\n\r\n @Input()\r\n public currentPage: number = 1;\r\n\r\n @Input()\r\n public itemsPerPage: number = 20;\r\n\r\n @Input()\r\n public set totalItems(value: number){\r\n this._totalItems = value;\r\n this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);\r\n }\r\n\r\n public get totalItems(): number {\r\n return this._totalItems;\r\n }\r\n\r\n @Input()\r\n public paginationRange: number = 8;\r\n\r\n @Input()\r\n public autoHide: boolean = false;\r\n\r\n @Output()\r\n public previousClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public nextClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public pageClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding(\"class.co-pagination-bar\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n private _totalItems: number = 20;\r\n public pages: IPage[] = [];\r\n public totalPages: number;\r\n\r\n public ngOnInit(): void {\r\n this.pages = this._createPageArray();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.pages = this._createPageArray();\r\n }\r\n\r\n public isOnFirstPage(): boolean {\r\n return this.currentPage === 1;\r\n }\r\n\r\n public isOnLastPage(): boolean {\r\n return this.totalPages === this.currentPage;\r\n }\r\n\r\n public onPreviousClick(): void {\r\n if (!this.isOnFirstPage()) {\r\n this.previousClick.emit();\r\n }\r\n }\r\n\r\n public onNextClick(): void {\r\n if (!this.isOnLastPage()) {\r\n this.nextClick.emit();\r\n }\r\n }\r\n\r\n public onPageClick(value: any): void {\r\n this.currentPage = value;\r\n this.pageClick.emit(value);\r\n }\r\n\r\n public shouldBeHidden(): boolean {\r\n if (!this.autoHide) {\r\n return false;\r\n } else {\r\n return (this.totalItems <= this.itemsPerPage);\r\n }\r\n }\r\n\r\n // Returns an array of IPage objects to use in the pagination controls.\r\n private _createPageArray(): IPage[] {\r\n // paginationRange could be a string if passed from attribute, so cast to number.\r\n this.paginationRange = +this.paginationRange;\r\n let pages: IPage[] = [];\r\n const halfWay: number = Math.ceil(this.paginationRange / 2);\r\n const isStart: boolean = this.currentPage <= halfWay;\r\n const isEnd: boolean = this.totalPages - halfWay < this.currentPage;\r\n const isMiddle: boolean = !isStart && !isEnd;\r\n let ellipsesNeeded: boolean = this.paginationRange < this.totalPages;\r\n let i: number = 1;\r\n while (i <= this.totalPages && i <= this.paginationRange) {\r\n let label: string;\r\n let pageNumber: number = this._calculatePageNumber(i);\r\n let openingEllipsesNeeded: boolean = (i === 2 && (isMiddle || isEnd));\r\n let closingEllipsesNeeded: boolean = (i === this.paginationRange - 1 && (isMiddle || isStart));\r\n if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {\r\n label = '...';\r\n } else {\r\n label = '' + pageNumber;\r\n }\r\n pages.push({\r\n label: label,\r\n value: pageNumber\r\n });\r\n i++;\r\n }\r\n return pages;\r\n }\r\n\r\n // Given the position in the sequence of pagination links [i], figure out what page number corresponds to that position.\r\n private _calculatePageNumber(i: number): number {\r\n let halfWay: number = Math.ceil(this.paginationRange / 2);\r\n if (i === this.paginationRange) {\r\n return this.totalPages;\r\n } else if (i === 1) {\r\n return i;\r\n } else if (this.paginationRange < this.totalPages) {\r\n if (this.totalPages - halfWay < this.currentPage) {\r\n return this.totalPages - this.paginationRange + i;\r\n } else if (halfWay < this.currentPage) {\r\n return this.currentPage - halfWay + i;\r\n } else {\r\n return i;\r\n }\r\n } else {\r\n return i;\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { PaginationBarComponent } from \"./pagination-bar.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n PaginationBarComponent\r\n ],\r\n exports: [\r\n PaginationBarComponent\r\n ]\r\n})\r\nexport class PaginationBarModule {\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\nimport {PaginationService} from \"./pagination.service\";\r\nimport {IPaginationInstance} from \"./pagination-instance\";\r\n\r\nconst LARGE_NUMBER: number = 999999999;\r\n\r\ninterface IPipeState {\r\n collection: any[];\r\n size: number;\r\n start: number;\r\n end: number;\r\n slice: any[];\r\n}\r\n\r\n@Pipe({\r\n name: 'paginate',\r\n pure: false\r\n})\r\nexport class PaginatePipe implements PipeTransform {\r\n\r\n // store the values from the last time the pipe\r\n private state: { [id: string]: IPipeState } = {};\r\n\r\n public transform(collection: any[], args: any): any {\r\n // When an observable is passed through the AsyncPipe, it will output\r\n // `null` until the subscription resolves. In this case, we want to\r\n // use the cached data from the `state` object to prevent the NgFor\r\n // from flashing empty until the real values arrive.\r\n if (!(collection instanceof Array)) {\r\n let _id: any = args.id;\r\n if (this.state[_id]) {\r\n return this.state[_id].slice;\r\n } else {\r\n return collection;\r\n }\r\n }\r\n\r\n let serverSideMode: boolean = args.totalItems !== undefined;\r\n let instance: IPaginationInstance = this._createInstance(collection, args);\r\n let id: string = instance.id;\r\n let start: number;\r\n let end: number;\r\n let perPage: number = instance.itemsPerPage;\r\n\r\n if (!serverSideMode && collection instanceof Array) {\r\n perPage = perPage || LARGE_NUMBER;\r\n start = (instance.currentPage - 1) * perPage;\r\n end = start + perPage;\r\n\r\n let isIdentical: boolean = this._stateIsIdentical(id, collection, start, end);\r\n if (isIdentical) {\r\n return this.state[id].slice;\r\n } else {\r\n let slice: any[] = collection.slice(start, end);\r\n this._saveState(id, collection, slice, start, end);\r\n return slice;\r\n }\r\n }\r\n\r\n // save the state for server-side collection to avoid null\r\n // flash as new data loads.\r\n this._saveState(id, collection, collection, start, end);\r\n return collection;\r\n }\r\n\r\n // Create an IPaginationInstance object, using defaults for any optional properties not supplied.\r\n private _createInstance(collection: any[], args: any): IPaginationInstance {\r\n let config: any = args;\r\n this._checkConfig(config);\r\n\r\n return {\r\n id: config.id,\r\n itemsPerPage: config.itemsPerPage || 0,\r\n currentPage: config.currentPage || 1,\r\n totalItems: config.totalItems || collection.length\r\n };\r\n }\r\n\r\n // Ensure the argument passed to the filter contains the required properties.\r\n private _checkConfig(config: any): void {\r\n const required: String[] = [\"itemsPerPage\", \"currentPage\"];\r\n const missing: String[] = required.filter((prop: any) => !config.hasOwnProperty(prop));\r\n if (0 < missing.length) {\r\n throw new Error(`PaginatePipe: Argument is missing the following required properties: ${missing.join(\", \")}`);\r\n }\r\n }\r\n\r\n /**\r\n * To avoid returning a brand new array each time the pipe is run, we store the state of the sliced\r\n * array for a given id. This means that the next time the pipe is run on this collection & id, we just\r\n * need to check that the collection, start and end points are all identical, and if so, return the\r\n * last sliced array.\r\n */\r\n private _saveState(id: string, collection: any[], slice: any[], start: number, end: number): void {\r\n this.state[id] = {\r\n collection,\r\n size: collection.length,\r\n slice,\r\n start,\r\n end\r\n };\r\n }\r\n\r\n // For a given id, returns true if the collection, size, start and end values are identical.\r\n private _stateIsIdentical(id: string, collection: any[], start: number, end: number): boolean {\r\n let state: any = this.state[id];\r\n if (!state) {\r\n return false;\r\n }\r\n return state.collection === collection &&\r\n state.size === collection.length &&\r\n state.start === start &&\r\n state.end === end;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {Subject} from \"rxjs\";\r\n\r\nimport {IPaginationInstance} from \"./pagination-instance\";\r\nimport {ObjectUtils} from \"../../core/utils/object-utils\";\r\n\r\n@Injectable()\r\nexport class PaginationService {\r\n private static readonly DEFAULT_ID: string = \"DEFAULT_PAGINATION_ID\";\r\n\r\n public change: Subject<string> = new Subject<string>();\r\n\r\n public get DEFAULT_ID(): string {\r\n return PaginationService.DEFAULT_ID;\r\n }\r\n\r\n private readonly instances: { [id: string]: IPaginationInstance } = {};\r\n\r\n constructor() {\r\n }\r\n\r\n public register(instance: IPaginationInstance): void {\r\n if (!instance.id) {\r\n instance.id = PaginationService.DEFAULT_ID;\r\n }\r\n\r\n if (!this.instances[instance.id]) {\r\n this.instances[instance.id] = instance;\r\n this.change.next(instance.id);\r\n } else {\r\n let changed: boolean = this.updateInstance(instance);\r\n if (changed) {\r\n this.change.next(instance.id);\r\n }\r\n }\r\n }\r\n\r\n // Returns the current page number.\r\n public getCurrentPage(id: string): number {\r\n if (this.instances[id]) {\r\n return this.instances[id].currentPage;\r\n }\r\n }\r\n\r\n // Sets the current page number.\r\n public setCurrentPage(id: string, page: number): void {\r\n if (this.instances[id]) {\r\n let instance: IPaginationInstance = this.instances[id];\r\n let maxPage: number = Math.ceil(instance.totalItems / instance.itemsPerPage);\r\n if (page <= maxPage && 1 <= page) {\r\n this.instances[id].currentPage = page;\r\n this.change.next(id);\r\n }\r\n }\r\n }\r\n\r\n // Sets the value of instance.totalItems\r\n public setTotalItems(id: string, totalItems: number): void {\r\n if (this.instances[id] && 0 <= totalItems) {\r\n this.instances[id].totalItems = totalItems;\r\n this.change.next(id);\r\n }\r\n }\r\n\r\n // Sets the value of instance.itemsPerPage.\r\n public setItemsPerPage(id: string, itemsPerPage: number): void {\r\n if (this.instances[id]) {\r\n this.instances[id].itemsPerPage = itemsPerPage;\r\n this.change.next(id);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns a clone of the pagination instance object matching the id. If no\r\n * id specified, returns the instance corresponding to the default id.\r\n */\r\n public getInstance(id: string = PaginationService.DEFAULT_ID): IPaginationInstance {\r\n if (this.instances[id]) {\r\n return ObjectUtils.GetShallowClone(this.instances[id]);\r\n }\r\n return <IPaginationInstance>{};\r\n }\r\n\r\n /**\r\n * Check each property of the instance and update any that have changed. Return\r\n * true if any changes were made, else return false.\r\n */\r\n private updateInstance(instance: IPaginationInstance): boolean {\r\n let changed: boolean = false;\r\n for (let prop in this.instances[instance.id]) {\r\n if (instance[prop] !== this.instances[instance.id][prop]) {\r\n this.instances[instance.id][prop] = instance[prop];\r\n changed = true;\r\n }\r\n }\r\n return changed;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { IPaginationInstance } from './pagination-instance';\r\nimport { PaginationService } from './pagination.service';\r\n\r\n@Component({\r\n selector: 'co-pagination',\r\n template: `\r\n <div class=\"pagination-component-main-wrapper\" *ngIf=\"!shouldBeHidden()\">\r\n <div>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <co-pagination-bar\r\n [currentPage]=\"getCurrentPage()\"\r\n [totalItems]=\"totalItems\"\r\n [itemsPerPage]=\"itemsPerPage\"\r\n [directionLinks]=\"directionLinks\"\r\n [previousLabel]=\"previousLabel\"\r\n [nextLabel]=\"nextLabel\"\r\n (previousClick)=\"goToPreviousPage()\"\r\n (nextClick)=\"goToNextPage()\"\r\n (pageClick)=\"setCurrentPage($event)\"\r\n ></co-pagination-bar>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PaginationComponent implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild('template')\r\n public readonly template: ElementRef;\r\n\r\n @Input()\r\n public id: string;\r\n\r\n @Input()\r\n public maxSize: number = 7;\r\n\r\n @Input()\r\n public directionLinks: boolean = true;\r\n\r\n @Input()\r\n public previousLabel: string = 'Vorige pagina';\r\n\r\n @Input()\r\n public nextLabel: string = 'Volgende pagina';\r\n\r\n @Input()\r\n public autoHide: boolean = false;\r\n\r\n // Emits the new page number.\r\n @Output()\r\n public readonly pageChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @HostBinding('class.co-pagination')\r\n public showClass: boolean = true;\r\n\r\n public totalItems: number = 1;\r\n public itemsPerPage: number = 20;\r\n\r\n private changeSub: Subscription;\r\n\r\n\r\n constructor(private _paginationService: PaginationService) {\r\n this.changeSub = this._paginationService.change.subscribe((id: string) => {\r\n if (this.id === id) {\r\n this._updatePageLinks();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n this.id = this._paginationService.DEFAULT_ID;\r\n }\r\n this._updatePageLinks();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this._updatePageLinks();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changeSub.unsubscribe();\r\n }\r\n\r\n public goToFirstPage(): void {\r\n this.setCurrentPage(1);\r\n }\r\n\r\n public goToPreviousPage(): void {\r\n this.setCurrentPage(this.getCurrentPage() - 1);\r\n }\r\n\r\n public goToNextPage(): void {\r\n this.setCurrentPage(this.getCurrentPage() + 1);\r\n }\r\n\r\n public setCurrentPage(page: number): void {\r\n this.pageChange.emit(page);\r\n }\r\n\r\n public shouldBeHidden(): boolean {\r\n if (!this.autoHide) {\r\n return false;\r\n } else {\r\n let instance: IPaginationInstance = this._paginationService.getInstance();\r\n return (instance.totalItems <= instance.itemsPerPage);\r\n }\r\n }\r\n\r\n /**\r\n * Updates the page links and checks that the current page is valid. Should run whenever the\r\n * PaginationService.change stream emits a value matching the current ID, or when any of the\r\n * input values changes.\r\n */\r\n private _updatePageLinks(): void {\r\n let paginationInstance: IPaginationInstance = this._paginationService.getInstance(this.id);\r\n\r\n const correctedCurrentPage: number = this.outOfBoundCorrection(paginationInstance);\r\n if (correctedCurrentPage !== paginationInstance.currentPage) {\r\n this.setCurrentPage(correctedCurrentPage);\r\n }\r\n\r\n this.totalItems = paginationInstance.totalItems;\r\n this.itemsPerPage = paginationInstance.itemsPerPage;\r\n }\r\n\r\n public getCurrentPage(): number {\r\n return this._paginationService.getCurrentPage(this.id);\r\n }\r\n\r\n\r\n /**\r\n * Checks that the instance.currentPage property is within bounds for the current page range.\r\n * If not, return a correct value for currentPage, or the current value if OK.\r\n */\r\n private outOfBoundCorrection(instance: IPaginationInstance): number {\r\n const totalPages: number = Math.ceil(instance.totalItems / instance.itemsPerPage);\r\n if (totalPages < instance.currentPage && 0 < totalPages) {\r\n return totalPages;\r\n } else if (instance.currentPage < 1) {\r\n return 1;\r\n }\r\n\r\n return instance.currentPage;\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { PaginationBarModule } from \"../pagination-bar/pagination-bar.module\";\r\nimport { PaginatePipe } from \"./paginate.pipe\";\r\nimport { PaginationComponent } from \"./pagination.component\";\r\nimport { PaginationService } from \"./pagination.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PaginationBarModule\r\n ],\r\n providers: [\r\n PaginationService\r\n ],\r\n declarations: [\r\n PaginationComponent,\r\n PaginatePipe\r\n ],\r\n exports: [\r\n PaginationComponent,\r\n PaginatePipe\r\n ]\r\n})\r\nexport class PaginationModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input, OnChanges,\r\n Output, SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ColumnAlign, SimpleGridColumnDirective } from \"./simple-grid-column.directive\";\r\nimport { BaseInputComponent } from \"../base/base-input.component\";\r\n\r\n@Component({\r\n selector: \"co-simple-grid-cell\",\r\n template: `\r\n <div class=\"simple-grid-column-cell-value\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\r\n <ng-container *ngIf=\"editMode; else noInlineEdit\">\r\n <div class=\"simple-grid-column-cell-field\">\r\n <ng-container #editTemplate *ngIf=\"column.editTemplate; else noEditTemplate\"\r\n [ngTemplateOutlet]=\"column.editTemplate\"\r\n [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\r\n <ng-template #noEditTemplate>\r\n <ng-container *ngIf=\"column.template; else noTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"column.template\"\r\n [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\r\n </ng-container>\r\n <ng-template #noTemplate>\r\n <co-input-text [(model)]=\"row[column.field]\" [required]=\"column.required\"></co-input-text>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <ng-template #noInlineEdit>\r\n <div class=\"simple-grid-column-cell-field\">\r\n <ng-container *ngIf=\"column.template; else noTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"column.template\"\r\n [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\r\n </ng-container>\r\n <ng-template #noTemplate>\r\n <span [textContent]=\"column.getFieldValue(row[column.field])\"></span>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SimpleGridCellComponent {\r\n get editMode(): boolean {\r\n return this._editMode;\r\n }\r\n @Input()\r\n set editMode(value: boolean) {\r\n this._editMode = value;\r\n }\r\n public readonly defaultTextAlign: ColumnAlign = ColumnAlign.Left;\r\n\r\n @ViewChild(\"editTemplate\", {read: BaseInputComponent}) set editTemplateContent(template) {\r\n if (template) {\r\n this._editTemplate = template;\r\n this._setFocusComponent();\r\n }\r\n }\r\n\r\n @ViewChild(\"noEditTemplate\") set noEditTemplateContent(template) {\r\n if (template) {\r\n this._template = template;\r\n this._setFocusComponent();\r\n }\r\n }\r\n\r\n @ViewChild(\"noTemplate\") set noTemplateContent(template) {\r\n if (template) {\r\n this._inputTemplate = template;\r\n this._setFocusComponent();\r\n }\r\n }\r\n\r\n @Input()\r\n public column: SimpleGridColumnDirective;\r\n\r\n @Input()\r\n public row: {};\r\n\r\n private _editMode: boolean = false;\r\n\r\n @Input()\r\n public set fieldEditMode(value: boolean) {\r\n this._fieldEditMode = value;\r\n this._setFocusComponent();\r\n }\r\n\r\n public get fieldEditMode(): boolean {\r\n return this._fieldEditMode;\r\n }\r\n\r\n @Output()\r\n public cellClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @HostBinding(\"class.co-simple-grid-cell\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public handleClick(event: MouseEvent): void {\r\n if (this.column && !this.column.readonly) {\r\n this.cellClick.next();\r\n }\r\n }\r\n\r\n private _fieldEditMode: boolean = false;\r\n private _focused: boolean = false;\r\n private _editTemplate: TemplateRef<any>;\r\n private _template: TemplateRef<any>;\r\n private _inputTemplate: TemplateRef<any>;\r\n\r\n constructor(private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n private _setFocusComponent(): void {\r\n if (this._editMode && this.fieldEditMode) {\r\n const element = this._getElement();\r\n if (element) {\r\n const focusEvent = this._createNewEvent(element, 'focus');\r\n element.focus();\r\n element.dispatchEvent(focusEvent);\r\n this._focused = true;\r\n }\r\n } else {\r\n if (this._focused) {\r\n const element = this._getElement();\r\n if (element) {\r\n const blurEvent = this._createNewEvent(element, 'blur');\r\n element.blur();\r\n element.dispatchEvent(blurEvent);\r\n }\r\n this._focused = false;\r\n }\r\n }\r\n this._detectChanges();\r\n }\r\n\r\n private _getFirstFormInput(parent: any): any {\r\n if (parent) {\r\n const collection = Array.from(parent.getElementsByTagName('input'));\r\n const otherCollection = Array.from(parent.getElementsByTagName('textarea'));\r\n otherCollection.map(o => collection.push(o));\r\n if (collection.length > 0) {\r\n return collection[0];\r\n }\r\n }\r\n }\r\n\r\n private _createNewEvent(element: any, eventType: string): Event {\r\n let event;\r\n if (\"createEvent\" in document) {\r\n event = document.createEvent(\"Event\");\r\n event.initEvent(eventType, true, true);\r\n } else if (\"Event\" in window) {\r\n event = new Event(eventType, { bubbles: true, cancelable: true });\r\n }\r\n return event;\r\n }\r\n\r\n private _getElement(): HTMLElement {\r\n let templ: TemplateRef<any>;\r\n if (this._editTemplate) {\r\n templ = this._editTemplate;\r\n } else if (this._template) {\r\n templ = this._template;\r\n } else {\r\n templ = this._inputTemplate;\r\n }\r\n if (templ) {\r\n if (templ && templ.elementRef) {\r\n const inputElement = this._getFirstFormInput(templ.elementRef.nativeElement.parentElement);\r\n if (inputElement) {\r\n return inputElement;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _detectChanges(): void {\r\n this._changeDetector.detectChanges();\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[observeVisibility]',\r\n exportAs: 'visibilityObserve'\r\n})\r\nexport class ObserveVisibilityDirective implements OnDestroy, OnInit, AfterViewInit {\r\n\r\n @Input()\r\n public threshold: number = 0;\r\n\r\n @Output()\r\n public visibilityChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public visible: boolean = false;\r\n\r\n private _observer: IntersectionObserver | undefined;\r\n\r\n constructor(private _element: ElementRef) {}\r\n\r\n public ngOnInit(): void {\r\n this._createObserver();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this._startObservingElements();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._observer) {\r\n this._observer.disconnect();\r\n this._observer = undefined;\r\n }\r\n }\r\n\r\n private _createObserver(): void {\r\n const options = {\r\n rootMargin: '0px',\r\n threshold: this.threshold,\r\n };\r\n this._observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n this.visible = entry.isIntersecting || entry.intersectionRatio > 0;\r\n this.visibilityChange.emit(this.visible);\r\n });\r\n }, options);\r\n }\r\n\r\n private _startObservingElements(): void {\r\n if (!this._observer) {\r\n return;\r\n }\r\n this._observer.observe(this._element.nativeElement);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {ObserveVisibilityDirective} from \"./observe-visibility.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ObserveVisibilityDirective\r\n ],\r\n exports: [\r\n ObserveVisibilityDirective\r\n ]\r\n})\r\nexport class ObserveVisibilityModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport { PaginationBarModule } from \"../pagination-bar/pagination-bar.module\";\r\nimport { PaginationModule } from \"../pagination/pagination.module\";\r\nimport {SimpleGridComponent} from \"./simple-grid.component\";\r\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\r\nimport {SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\nimport {GridToolbarModule} from \"../grid-toolbar/grid-toolbar.module\";\r\nimport {InputTextModule} from \"../input-text/input-text.module\";\r\nimport {SimpleGridCellComponent} from \"./simple-grid-cell.component\";\r\nimport {FormModule} from \"../form/form.module\";\r\nimport {ObserveVisibilityModule} from \"../../directives/observe-visibility/observe-visibility.module\";\r\nimport {ClickoutsideModule} from '../../directives/clickoutside/clickoutside.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DragDropModule,\r\n GridToolbarModule,\r\n InputTextModule,\r\n FormModule,\r\n ObserveVisibilityModule,\r\n PaginationModule,\r\n PaginationBarModule,\r\n ClickoutsideModule\r\n ],\r\n declarations: [\r\n SimpleGridComponent,\r\n SimpleGridCellComponent,\r\n SimpleGridColumnDirective\r\n ],\r\n exports: [\r\n SimpleGridComponent,\r\n SimpleGridCellComponent,\r\n SimpleGridColumnDirective\r\n ]\r\n})\r\nexport class SimpleGridModule { }\r\n","// The different view modes for content, e.g. list, grid, ..\r\nexport enum ContentViewMode {\r\n List,\r\n Grid,\r\n GridExpanded,\r\n MasterDetail,\r\n Timeline,\r\n Tiles,\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { ContentViewMode} from \"./content-view-mode.enum\";\r\nimport { CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport { IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: 'co-view-mode-buttons',\r\n template: `\r\n <co-button class=\"view-button\"\r\n *ngIf=\"showViewModes.includes(viewModes.Tiles)\"\r\n [class.selected]=\"this.activeViewMode === viewModes.Tiles\"\r\n [iconData]=\"iconCacheService.getIcon(icons.ListView)\"\r\n [title]=\"'TILE_VIEW'\"\r\n (click)=\"this.activeViewMode = viewModes.Tiles\"></co-button>\r\n <co-button class=\"view-button\"\r\n *ngIf=\"showViewModes.includes(viewModes.List)\"\r\n [class.selected]=\"this.activeViewMode === viewModes.List\"\r\n [iconData]=\"iconCacheService.getIcon(icons.ThickLines)\"\r\n [title]=\"'LIST_VIEW'\"\r\n (click)=\"this.activeViewMode = viewModes.List\"></co-button>\r\n <co-button class=\"view-button\"\r\n *ngIf=\"showViewModes.includes(viewModes.Grid)\"\r\n [class.selected]=\"this.activeViewMode === viewModes.Grid\"\r\n [iconData]=\"iconCacheService.getIcon(icons.ThinLines)\"\r\n [title]=\"'GRID_VIEW'\"\r\n (click)=\"this.activeViewMode = viewModes.Grid\"></co-button>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewModeButtonsComponent implements OnInit {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n public readonly viewModes: typeof ContentViewMode = ContentViewMode;\r\n\r\n @Input()\r\n public showViewModes: ContentViewMode[] = [this.viewModes.List, this.viewModes.Grid, this.viewModes.Tiles];\r\n\r\n @Output()\r\n public viewModeChange: EventEmitter<ContentViewMode> = new EventEmitter<ContentViewMode>();\r\n\r\n @HostBinding(\"class.co-view-mode-buttons\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n public set activeViewMode(value: ContentViewMode) {\r\n this._activeViewMode = value;\r\n this.viewModeChange.emit(this._activeViewMode);\r\n }\r\n\r\n public get activeViewMode(): ContentViewMode {\r\n return this._activeViewMode;\r\n }\r\n\r\n private _activeViewMode: ContentViewMode;\r\n\r\n public ngOnInit(): void {\r\n this.activeViewMode = this.showViewModes.includes(ContentViewMode.List) ? ContentViewMode.List : this.showViewModes[0];\r\n }\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ViewModeButtonsComponent} from \"./view-mode-buttons.component\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ButtonModule,\r\n ],\r\n declarations: [\r\n ViewModeButtonsComponent\r\n ],\r\n exports: [\r\n ViewModeButtonsComponent\r\n ]\r\n})\r\nexport class ViewModeButtonsModule {\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewChildren,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {InputSearchComponent} from '../input-search/input-search.component';\r\nimport {KeyboardKey} from '../../core/enum/keyboard-key.enum';\r\n\r\nexport interface lovViewModel {\r\n checked: boolean\r\n model: any\r\n}\r\n\r\n@Component({\r\n selector: 'co-list-of-values-popup',\r\n template: `\r\n <div class=\"lov-options\" [overlay]=\"parentForOverlay\" [inheritWidth]=\"true\" [ngClass]=\"customCssClass\" id=\"lov-popup\"\r\n role=\"listbox\" [tabindex]=\"-1\"\r\n (clickOutside)=\"closePopup.emit($event)\">\r\n <co-input-search *ngIf=\"multiselect\"\r\n tabindex=\"-1\"\r\n [(model)]=\"searchTerm\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (keydown)=\"handleInputKeyDown($event)\"\r\n (modelChange)=\"filterViewModels()\"></co-input-search>\r\n <ul class=\"dropdown-list\" #dropDownList>\r\n <li #lovItem *ngFor=\"let viewModel of viewModels; let index = index\" [class.selected]=\"viewModel === highLightModel\"\r\n (click)=\"selectViewModel(viewModel, !multiselect)\" role=\"option\">\r\n <ng-container *ngIf=\"!multiselect\">\r\n <span class=\"lov-options-text\" [textContent]=\"viewModel.model[displayField]\"></span>\r\n </ng-container>\r\n <ng-container *ngIf=\"multiselect\">\r\n <co-input-checkbox [model]=\"viewModel.checked\" (modelChange)=\"selectViewModel(viewModel, false)\"></co-input-checkbox>\r\n <span class=\"lov-options-text\" [textContent]=\"viewModel.model[displayField]\"></span>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ListOfValuesPopupComponent implements OnInit {\r\n @ViewChildren('lovItem', { read: ElementRef }) set lovItems(children) {\r\n this._lovItems = children.toArray();\r\n this._scrollIntoView();\r\n }\r\n\r\n @ViewChild('dropDownList', { read: ElementRef })\r\n public dropDownList: ElementRef;\r\n\r\n @ViewChild(InputSearchComponent) set inputSearch(component: InputSearchComponent) {\r\n this._searchInput = component;\r\n if (this._searchInput) {\r\n this._searchInput.requestFocus();\r\n }\r\n }\r\n\r\n @Input()\r\n public model: any;\r\n\r\n @Input()\r\n public multiselect: boolean = false;\r\n\r\n @Input()\r\n public displayField: string = 'description';\r\n\r\n @Input()\r\n public searchPlaceholder: string;\r\n\r\n @Input()\r\n public customCssClass: string;\r\n\r\n @Input()\r\n public searchDisabled: boolean = false;\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n @Input()\r\n public set collection(value: any[]) {\r\n this._collection = value || [];\r\n this._prepareViewModelsMain();\r\n this._prepareViewModels();\r\n this.filterViewModels();\r\n }\r\n\r\n public get collection(): any[] {\r\n return this._collection;\r\n }\r\n\r\n @Output()\r\n public modelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public closePopup: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @Output()\r\n public keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\r\n\r\n @HostBinding('class.co-list-of-values-popup')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public set searchTerm(value: string) {\r\n this._searchTerm = value;\r\n this.model = undefined;\r\n this.highLightModel = undefined;\r\n this.filterViewModels();\r\n }\r\n\r\n public get searchTerm(): string {\r\n return this._searchTerm;\r\n }\r\n\r\n public viewModels: lovViewModel[] = [];\r\n public viewModelsMain: lovViewModel[] = [];\r\n public highLightModel: lovViewModel;\r\n\r\n private _collection: any[] = [];\r\n private _searchTerm: string = '';\r\n private _lovItems: ElementRef[] = [];\r\n private _searchInput: InputSearchComponent;\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.model) {\r\n if (!this.multiselect) {\r\n this._scrollIntoView();\r\n } else {\r\n for (let i = 0; i < this.model.length; i++) {\r\n const viewModel: lovViewModel = this.viewModelsMain.find(v => JSON.stringify(v.model) === JSON.stringify(this.model[i]));\r\n if (viewModel) {\r\n viewModel.checked = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public handleInputKeyDown(event: KeyboardEvent): boolean {\r\n if (event) {\r\n switch (event.code) {\r\n case KeyboardKey.Down:\r\n this.selectNextOption();\r\n return false;\r\n case KeyboardKey.Up:\r\n this.selectNextOption(true);\r\n return false;\r\n case KeyboardKey.SpaceBar:\r\n if (this.highLightModel) {\r\n this.selectViewModel(this.highLightModel, false);\r\n } else {\r\n this.keyDown.next(event);\r\n }\r\n return false;\r\n default:\r\n this.keyDown.next(event);\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public filterViewModels(): void {\r\n if (!this.collection) {\r\n return;\r\n }\r\n this._prepareViewModels();\r\n }\r\n\r\n public selectViewModel(viewModel: lovViewModel, closePopup: boolean = true): void {\r\n if (!this.multiselect) {\r\n this.selectModelByViewModel(viewModel, closePopup);\r\n } else {\r\n const idx: number = this.viewModels.findIndex(vm => vm === viewModel);\r\n this.viewModels[idx].checked = !this.viewModels[idx].checked;\r\n this.selectOptions();\r\n }\r\n }\r\n\r\n public selectModelByViewModel(viewModel: lovViewModel, closePopup: boolean = true): void {\r\n this.model = this.viewModelsMain.find(vm => vm === viewModel).model;\r\n this.modelChange.emit(this.model);\r\n this._scrollIntoView();\r\n if (closePopup) {\r\n this.closePopup.emit();\r\n }\r\n }\r\n\r\n // for single select\r\n public selectOptionAndClosePopup(): void {\r\n if (!this.model && this.searchTerm) {\r\n const wishModel: lovViewModel = this.viewModelsMain.find(vmm => vmm.model[this.displayField] === this.searchTerm);\r\n if (wishModel) {\r\n this.selectViewModel(wishModel);\r\n } else {\r\n this.model = undefined;\r\n this.modelChange.emit(this.model);\r\n this.searchTerm = '';\r\n }\r\n } else {\r\n this.closePopup.emit();\r\n }\r\n }\r\n\r\n // for multi select\r\n public selectOptions(): void {\r\n this.model = this.viewModelsMain.filter(v => v.checked).map(m => m.model);\r\n this.modelChange.emit(this.model);\r\n }\r\n\r\n public selectNextOption(back: boolean = false): void {\r\n let nextModel: any;\r\n if (!this.highLightModel) {\r\n nextModel = this.viewModels[back ? this.viewModels.length - 1 : 0];\r\n } else {\r\n const currentViewModelIdx: number = this.viewModels.findIndex(vm => vm === this.highLightModel);\r\n if (back) {\r\n nextModel = this.viewModels[currentViewModelIdx <= 0 ? this.viewModels.length - 1 : currentViewModelIdx - 1];\r\n } else {\r\n nextModel = this.viewModels[currentViewModelIdx >= this.viewModels.length - 1 ? 0 : currentViewModelIdx + 1];\r\n }\r\n }\r\n this.highLightModel = nextModel;\r\n if (!this.multiselect) {\r\n this.selectViewModel(nextModel, false);\r\n } else {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n private _prepareViewModelsMain(): void {\r\n this.viewModelsMain.length = 0;\r\n this.collection.forEach(m => {\r\n this.viewModelsMain.push({checked: false, model: m});\r\n })\r\n }\r\n\r\n private _prepareViewModels(): void {\r\n this.viewModels.length = 0;\r\n this.viewModels = this.viewModelsMain.filter(\r\n vm => vm.model[this.displayField] && vm.model[this.displayField].toLowerCase().includes(this.searchTerm ? this.searchTerm.toLowerCase() : \"\"))\r\n }\r\n\r\n private _scrollIntoView(): void {\r\n const activeIndex: number = this.viewModels.findIndex(vmm => vmm === this.highLightModel);\r\n if (!this._lovItems || this._lovItems.length <= 0 || activeIndex < 0 || !this.dropDownList) {\r\n return;\r\n }\r\n const activeItem = this._lovItems[activeIndex].nativeElement ? this._lovItems[activeIndex].nativeElement : undefined;\r\n const scrollParent = this.dropDownList.nativeElement ? this.dropDownList.nativeElement : undefined;\r\n this._scrollActiveItemIntoView(activeItem, scrollParent);\r\n }\r\n\r\n private _scrollActiveItemIntoView(activeItem: any, scrollParent: any): void {\r\n if (!activeItem || !scrollParent) {\r\n return;\r\n }\r\n let { offsetHeight, offsetTop } = activeItem;\r\n let { offsetHeight: parentOffsetHeight, scrollTop, offsetTop: parentOffsetTop } = scrollParent;\r\n offsetTop = offsetTop - parentOffsetTop;\r\n\r\n const isAbove = offsetTop < scrollTop;\r\n const isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\r\n\r\n if (isAbove) {\r\n scrollParent.scrollTo(0, offsetTop);\r\n } else if (isBelow) {\r\n scrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\r\n }\r\n }\r\n}\r\n","import {Component, ComponentRef, ElementRef, forwardRef, HostBinding, Input, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport {BaseInputComponent} from '../base/base-input.component';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {OverlayService} from '../../service/overlay.service';\r\nimport {ListOfValuesPopupComponent} from './list-of-values-popup.component';\r\nimport {KeyboardKey} from '../../core/enum/keyboard-key.enum';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\n\r\n@Component({\r\n selector: 'co-list-of-values',\r\n template: `\r\n <co-input-text aria-haspopup=\"listbox\" [attr.aria-expanded]=\"isSelectOpen\" aria-controls=\"lov-popup\" role=\"combobox\"\r\n class=\"no-focus-line\"\r\n overlayParent\r\n #parentForOverlay=\"overlayParent\" type=\"text\" [id]=\"label\"\r\n [model]=\"multiselect ? selectedModels : selectedModel\"\r\n [placeholder]=\"label\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [noClickFocus]=\"false\"\r\n [leftIconData]=\"leftIconData\"\r\n [rightIcon]=\"isSelectOpen ? icons.ChevronUpRegular : icons.ChevronDownRegular\"\r\n [showClearButton]=\"true\"\r\n [useContent]=\"multiselect\"\r\n [customHeight]=\"multiselect\"\r\n [keepFocussed]=\"keepFocussed\"\r\n (modelChange)=\"handleInputModelChange($event)\"\r\n (click)=\"openPopup()\"\r\n (rightIconClick)=\"toggleSelect()\"\r\n (keydown)=\"handleInputKeyDown($event)\"\r\n (clearIconClick)=\"clearModel($event)\"\r\n (blur)=\"checkModel()\"\r\n >\r\n <ng-container *ngIf=\"multiselect\">\r\n <div class=\"multiselect-chips-wrapper\">\r\n <div class=\"chips\" *ngFor=\"let chip of model\">\r\n <span class=\"chips-description\" [textContent]=\"chip[displayField]\"></span>\r\n <co-icon class=\"remove-chip-icon\" [icon]=\"icons.CrossSkinny\" (click)=\"removeOptionFromModel(chip)\"></co-icon>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </co-input-text>\r\n `,\r\n providers: [\r\n OverlayService,\r\n {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => ListOfValuesComponent)\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ListOfValuesComponent extends BaseInputComponent<any> implements OnInit {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public set model(value: any) {\r\n super.model = value;\r\n this._setSelectedModel();\r\n }\r\n\r\n public get model(): any {\r\n return super.model;\r\n }\r\n\r\n @ViewChild('parentForOverlay', {read: ElementRef})\r\n public parentForOverlay: ElementRef;\r\n\r\n @HostBinding('class.custom-height')\r\n @HostBinding('class.multi-select')\r\n @Input()\r\n public multiselect: boolean = false;\r\n\r\n @Input()\r\n public displayField: string = 'description';\r\n\r\n @Input()\r\n public set collection(value: any[]) {\r\n this._collection = value || [];\r\n }\r\n\r\n public get collection(): any[] {\r\n return this._collection;\r\n }\r\n\r\n @Input()\r\n public leftIconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public searchPlaceholder: string;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public customCssClass: string;\r\n\r\n @Input()\r\n public searchDisabled: boolean = false;\r\n\r\n @HostBinding('class.co-list-of-values')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public isSelectOpen: boolean = false;\r\n public state: string = 'default';\r\n public selectedModel: string;\r\n public selectedModels: string[] = [];\r\n\r\n private _collection: any[] = [];\r\n\r\n private _lovPopupComponentRef: ComponentRef<any>;\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this._setSelectedModel();\r\n }\r\n\r\n public handleInputModelChange(model: string): void {\r\n if (this._lovPopupComponentRef) {\r\n this._lovPopupComponentRef.instance.searchTerm = model;\r\n } else {\r\n if (!this.selectedModel && model) {\r\n this.openPopup();\r\n this._lovPopupComponentRef.instance.searchTerm = model;\r\n }\r\n }\r\n this.selectedModel = model;\r\n }\r\n\r\n public handleInputKeyDown(event: KeyboardEvent): boolean {\r\n if (event) {\r\n if (event.altKey && event.code === KeyboardKey.Down && !this._lovPopupComponentRef) {\r\n this.openPopup();\r\n return false;\r\n }\r\n if (this._lovPopupComponentRef) {\r\n switch (event.code) {\r\n case KeyboardKey.Down:\r\n this._lovPopupComponentRef.instance.selectNextOption();\r\n return false;\r\n case KeyboardKey.Up:\r\n this._lovPopupComponentRef.instance.selectNextOption(true);\r\n return false;\r\n case KeyboardKey.Enter:\r\n this._lovPopupComponentRef.instance.selectOptionAndClosePopup();\r\n return false;\r\n case KeyboardKey.Tab:\r\n this._lovPopupComponentRef.instance.selectOptionAndClosePopup();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public clearModel(event: MouseEvent): void {\r\n this.setModel(undefined);\r\n }\r\n\r\n public toggleSelect(): void {\r\n if (this.readonly) {\r\n return;\r\n }\r\n this.isSelectOpen = !this.isSelectOpen;\r\n if (this.isSelectOpen) {\r\n this.openPopup();\r\n } else {\r\n this.closePopup();\r\n }\r\n this.state = (this.state === 'default' ? 'rotated' : 'default');\r\n }\r\n\r\n public openPopup(): void {\r\n if (this.readonly) {\r\n return;\r\n }\r\n this.isSelectOpen = true;\r\n this._lovPopupComponentRef = this.overlayService.createComponent(ListOfValuesPopupComponent, {\r\n parentForOverlay: this.elementRef,\r\n customCssClass: this.customCssClass,\r\n searchDisabled: this.searchDisabled,\r\n searchPlaceholder: this.searchPlaceholder,\r\n displayField: this.displayField,\r\n multiselect: this.multiselect,\r\n model: this.model,\r\n collection: this.collection\r\n }, {\r\n modelChange: (value) => this.optionChosen(value),\r\n closePopup: () => this.closePopup(),\r\n keyDown: (event: KeyboardEvent) => this.handleInputKeyDown(event)\r\n });\r\n this.keepFocussed = true;\r\n }\r\n\r\n public removeOptionFromModel(chip: any): void {\r\n if (this.multiselect) {\r\n const idx: number = this.model.findIndex(m => m === chip);\r\n this.model.splice(idx, 1);\r\n this.modelChange.emit(this.model);\r\n }\r\n }\r\n\r\n public optionChosen(option: any): void {\r\n if (option) {\r\n if (this.multiselect) {\r\n this.selectedModels = option.map(o => o[this.displayField]);\r\n } else {\r\n this.selectedModel = option[this.displayField];\r\n }\r\n }\r\n this.model = option;\r\n this.modelChange.emit(this.model);\r\n this.detectChanges();\r\n }\r\n\r\n public closePopup(): void {\r\n this.keepFocussed = false;\r\n this.isSelectOpen = false;\r\n this.overlayService.removeComponent(this._lovPopupComponentRef);\r\n this._lovPopupComponentRef = undefined;\r\n this.focused = false;\r\n }\r\n\r\n public checkModel(): void {\r\n if (!this.multiselect && this.selectedModel && this.collection) {\r\n const model: any = this.collection.find(c => c[this.displayField] === this.selectedModel);\r\n if (model) {\r\n this.model = model;\r\n } else {\r\n this.model = undefined;\r\n }\r\n this.modelChange.emit(this.model);\r\n }\r\n }\r\n\r\n private _setSelectedModel(): void {\r\n if (this.multiselect) {\r\n if (this.model) {\r\n this.selectedModels.length = 0;\r\n this.model.forEach(m => {\r\n this.selectedModels.push(m[this.displayField]);\r\n });\r\n } else {\r\n this.selectedModels.length = 0;\r\n }\r\n } else {\r\n if (this.model) {\r\n this.selectedModel = this.model[this.displayField];\r\n } else {\r\n this.selectedModel = '';\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\n\r\n@Component({\r\n selector: \"co-list-of-values-multiselect-popup\",\r\n template: `\r\n <div class=\"co-list-of-values-multiselect-popup\" [overlay]=\"parentForOverlay\" [inheritWidth]=\"true\">\r\n <div class=\"list-of-values-multiselect-search-input-text\">\r\n <co-input-text [placeholder]=\"'Zoeken...'\" [(model)]=\"searchTerm\" (input)=\"searchCollection()\"></co-input-text>\r\n </div>\r\n <div class=\"list-of-values-multiselect-options\">\r\n <div class=\"list-of-values-multiselect-search-deselect\" (click)=\"onToggleSelectAll()\">\r\n <span [textContent]=\"'(De)selecteer alles'\"></span>\r\n <co-icon [icon]=\"icons.CheckRound\"></co-icon>\r\n </div>\r\n <div class=\"list-of-values-multiselect-list\">\r\n <ul>\r\n <li *ngFor=\"let option of filteredCollection\" (click)=\"onOptionClick(option)\">\r\n <co-input-checkbox class=\"lov-options-checkbox\" (modelChange)=\"onOptionClick(option)\" [model]=\"selectedCollection.includes(option)\"></co-input-checkbox>\r\n <span>{{ option[displayField] }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"list-of-values-multiselect-ok-button\" (click)=\"okClicked()\">\r\n <span [textContent]=\"'Ok'\"></span>\r\n <co-icon [icon]=\"icons.Check\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ListOfValuesMultiselectPopupComponent extends BaseInputComponent<any> implements OnInit {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @HostBinding(\"class.co-list-of-values-multiselect-popup\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Output()\r\n public chosenCollection: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Output()\r\n public closePopup: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input()\r\n public returnChosenCollection: any[];\r\n\r\n @Input()\r\n public parentForOverlay: ElementRef;\r\n\r\n\r\n @Input()\r\n public displayField: string = 'description';\r\n\r\n @Input()\r\n public set collection(value: any[]) {\r\n this._collection = value || [];\r\n this.searchCollection();\r\n }\r\n\r\n public get collection(): any[] {\r\n return this._collection;\r\n }\r\n\r\n public selectedCollection: any[] = [];\r\n public selectedOptions: any[] = [];\r\n public allOptionsSelected: boolean = false;\r\n public searchTerm = '';\r\n\r\n private _collection: any[] = [];\r\n\r\n public get filteredCollection(): any {\r\n if (this.searchTerm.trim() === '') {\r\n return this.collection;\r\n }\r\n return this.collection.filter((option: any) =>\r\n option.label.toLowerCase().includes(this.searchTerm.toLowerCase())\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if(this.returnChosenCollection) {\r\n this.selectedCollection = this.returnChosenCollection;\r\n }\r\n }\r\n\r\n public onOptionClick(option: any): void {\r\n const index = this.selectedCollection.findIndex((selectedOption) => selectedOption.value === option.value);\r\n if (index !== -1) {\r\n this.selectedCollection.splice(index, 1);\r\n } else {\r\n this.selectedCollection.push(option);\r\n }\r\n }\r\n\r\n public okClicked(): void {\r\n this.chosenCollection.emit(this.selectedCollection);\r\n this.closePopup.emit();\r\n }\r\n\r\n public onToggleSelectAll(): void {\r\n if (this.allOptionsSelected) {\r\n this.selectedCollection = [];\r\n this.allOptionsSelected = false;\r\n } else {\r\n this.selectedCollection = [...this.collection];\r\n this.allOptionsSelected = true;\r\n }\r\n }\r\n\r\n public searchCollection(): void {\r\n this.selectedOptions = this.selectedOptions.filter((option) => {\r\n if (this.collection) {\r\n return this.searchTerm.includes(option.label);\r\n } else {\r\n return this.searchTerm.includes(option.value);\r\n }\r\n });\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ListOfValuesComponent} from \"./list-of-values.component\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {InputTextModule} from \"../input-text/input-text.module\";\r\nimport {InputCheckboxModule} from \"../input-checkbox/input-checkbox.module\";\r\nimport {OverlayModule} from \"../../directives/overlay/overlay.module\";\r\nimport {ClickoutsideModule} from \"../../directives/clickoutside/clickoutside.module\";\r\nimport {ListOfValuesPopupComponent} from \"./list-of-values-popup.component\";\r\nimport {ListOfValuesMultiselectPopupComponent} from \"./list-of-values-multiselect-popup.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {InputSearchModule} from '../input-search/input-search.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n InputTextModule,\r\n InputCheckboxModule,\r\n OverlayModule,\r\n ClickoutsideModule,\r\n IconModule,\r\n InputTextModule,\r\n InputSearchModule\r\n ],\r\n declarations: [\r\n ListOfValuesComponent,\r\n ListOfValuesPopupComponent,\r\n ListOfValuesMultiselectPopupComponent\r\n ],\r\n exports: [\r\n ListOfValuesComponent\r\n ]\r\n})\r\nexport class ListOfValuesModule {}\r\n","import {Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'co-responsive-text',\r\n template: `\r\n <svg viewBox=\"0 0 100 100\">\r\n <foreignObject height=\"100%\" width=\"100%\">\r\n <div class=\"text\" [textContent]=\"text\"></div>\r\n </foreignObject> \r\n </svg>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ResponsiveTextComponent {\r\n\r\n @Input()\r\n public text: string;\r\n\r\n @HostBinding('class.co-responsive-text')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n} \r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ResponsiveTextComponent} from './responsive-text.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ResponsiveTextComponent\r\n ],\r\n exports: [\r\n ResponsiveTextComponent\r\n ]\r\n})\r\nexport class ResponsiveTextModule {\r\n}\r\n","import {\r\n Component, forwardRef, HostBinding, Input,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {OverlayService} from \"../../service/overlay.service\";\r\nimport {\r\n SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME\r\n} from \"../../interfaces/screen-config-adapter-component-interface-name\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\n\r\n@Component({\r\n selector: \"co-color-picker\",\r\n template: `\r\n <div class=\"dual-calendar-wrapper\">\r\n <label *ngIf=\"label.length > 0\" for=\"head\" [textContent]=\"label\"></label>\r\n <input type=\"color\" id=\"head\" name=\"head\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"handleModelChange($event)\"/>\r\n </div>\r\n `,\r\n providers: [\r\n OverlayService, {\r\n provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => ColorPickerComponent)\r\n }, {\r\n provide: BaseInputComponent,\r\n useExisting: ColorPickerComponent\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ColorPickerComponent extends BaseInputComponent<any> {\r\n @HostBinding('class.co-color-picker')\r\n public showClass:boolean = true;\r\n\r\n @Input()\r\n public label: string = \"\";\r\n\r\n public handleModelChange(value: string): void {\r\n this.setModel(value);\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport {ColorPickerComponent} from \"./color-picker.component\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n CommonModule\r\n ],\r\n declarations: [\r\n ColorPickerComponent,\r\n ],\r\n exports: [\r\n ColorPickerComponent\r\n ]\r\n})\r\nexport class ColorPickerModule {\r\n}\r\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injectable, Injector, StaticProvider} from \"@angular/core\";\r\nimport {DialogResponseInterface} from '../../interfaces/dialog-response.interface';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CoreDynamicComponentService {\r\n\r\n private _componentRefs: any[] = [];\r\n\r\n constructor(\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector\r\n ) { }\r\n\r\n public getComponentRefs(): ComponentRef<any>[] {\r\n return this._componentRefs;\r\n }\r\n\r\n public createAndReturnComponentRef(componentClass: any, inputs?: any): Promise<any> {\r\n return new Promise((resolve: Function) => {\r\n const componentRef: any = this._compFactoryResolver\r\n .resolveComponentFactory(componentClass)\r\n .create(this.injector);\r\n\r\n if (inputs) {\r\n for (let property in inputs) {\r\n if (inputs.hasOwnProperty(property)) {\r\n componentRef.instance[property] = inputs[property];\r\n }\r\n }\r\n }\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n document.body.appendChild(domElem);\r\n componentRef.onDestroy(() => {\r\n this.appRef.detachView(componentRef.hostView);\r\n });\r\n resolve(componentRef);\r\n })\r\n }\r\n\r\n public createComponent(componentClass: any, inputs?: any, outputs?: any, providers?: StaticProvider[]): Promise<DialogResponseInterface> {\r\n return new Promise((resolve: Function) => {\r\n if (providers) {\r\n Injector.create(providers, this.injector);\r\n }\r\n const componentRef: any = this._compFactoryResolver\r\n .resolveComponentFactory(componentClass)\r\n .create(this.injector);\r\n this._componentRefs.push(componentRef);\r\n\r\n if (inputs) {\r\n for (let property in inputs) {\r\n if (inputs.hasOwnProperty(property)) {\r\n componentRef.instance[property] = inputs[property];\r\n }\r\n }\r\n }\r\n\r\n if (outputs) {\r\n for (let event in outputs) {\r\n if (outputs.hasOwnProperty(event)) {\r\n componentRef.instance[event].subscribe(() => outputs[event]());\r\n }\r\n }\r\n }\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n document.body.appendChild(domElem);\r\n componentRef.onDestroy(() => {\r\n this.appRef.detachView(componentRef.hostView);\r\n });\r\n\r\n componentRef.instance.onClose = (button: any, output?: any, rememberChoice?: boolean) => {\r\n const idx: number = this._componentRefs.indexOf(componentRef);\r\n this.appRef.detachView(componentRef.hostView);\r\n this._componentRefs[idx] = undefined;\r\n this._componentRefs.splice(idx, 1);\r\n\r\n if (outputs) {\r\n for (let event in outputs) {\r\n if (outputs.hasOwnProperty(event)) {\r\n componentRef.instance[event].unsubscribe();\r\n }\r\n }\r\n }\r\n resolve({button: button, output: output ? output : undefined, rememberChoice: rememberChoice});\r\n }\r\n })\r\n }\r\n}\r\n","export enum AppPopupType {\r\n Error,\r\n Warning,\r\n Information,\r\n Confirmation\r\n}\r\n","export enum AppPopupButtonType {\r\n Ok,\r\n Open,\r\n Save,\r\n Cancel,\r\n Yes,\r\n No,\r\n NoButton\r\n}\r\n","import {AppPopupButtonType} from '../../model/enum/app-button-type.enum';\r\n\r\nexport abstract class DialogBaseComponent {\r\n\r\n onClose(eventType: AppPopupButtonType, output?: any, rememberChoice?: boolean): void {\r\n return;\r\n }\r\n}\r\n","import {Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\r\nimport {IconCacheService} from '../../icon/icon-cache.service';\r\nimport {CoreComponentsIcon} from '../../../core/enum/core-components-icon.enum';\r\nimport {AppPopupType} from '../../../model/enum/app-popup-type.enum';\r\nimport {AppPopupButtonType} from '../../../model/enum/app-button-type.enum';\r\nimport {DialogBaseComponent} from '../../base/dialog-base.component';\r\n\r\n@Component({\r\n selector: \"co-confirmation-dialog\",\r\n template: `\r\n <co-dialog [showCloseIcon]=\"false\" [headerTemplate]=\"headerTemplate\" [footerTemplate]=\"footerTemplate\">\r\n <div class=\"confirmation-dialog-wrapper\">\r\n <div class=\"text\" [innerHTML]=\"text\"></div>\r\n <co-collapsible [headerTitle]=\"'DETAILS' | coreLocalize\" [iconData]=\"iconCacheService.getIcon(icons.TriangleDown)\" *ngIf=\"details\">\r\n <div class=\"dialog-details\" [innerHTML]=\"details\"></div>\r\n </co-collapsible>\r\n </div>\r\n </co-dialog>\r\n <ng-template #headerTemplate>\r\n <div class=\"co-dialog-header-title\" [textContent]=\"title\"></div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div class=\"co-dialog-footer-button-wrapper\">\r\n <ng-container *ngIf=\"type === ptype.Confirmation\">\r\n <co-button class=\"save-button\"\r\n [label]=\"'YES' | coreLocalize\"\r\n (click)=\"handleYesClick($event)\"></co-button>\r\n <co-button class=\"close-button\"\r\n [label]=\"'NO' | coreLocalize\"\r\n (click)=\"handleNoClick($event)\"></co-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === ptype.Information || type === ptype.Error || type === ptype.Warning\">\r\n <co-button class=\"save-button\"\r\n [iconData]=\"iconCacheService.getIcon(icons.CheckDuotone)\"\r\n (click)=\"handleYesClick($event)\"></co-button>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"showRememberCheckbox\">\r\n <co-input-checkbox [label]=\"'REMEMBER_CHOICE' | coreLocalize\" [(model)]=\"rememberChoice\"></co-input-checkbox>\r\n </ng-container>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ConfirmationDialogComponent extends DialogBaseComponent {\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n public readonly ptype: typeof AppPopupType = AppPopupType;\r\n\r\n @Input()\r\n public title: string;\r\n\r\n @Input()\r\n public text: string;\r\n\r\n @Input()\r\n public details: string;\r\n\r\n @Input()\r\n public type: AppPopupType\r\n\r\n @Input()\r\n public showRememberCheckbox: boolean = false;\r\n\r\n @HostBinding(\"class.co-confirmation-dialog\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n public rememberChoice: boolean = false;\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n super();\r\n }\r\n\r\n public handleYesClick(event: MouseEvent): void {\r\n this.onClose(AppPopupButtonType.Yes, undefined, this.rememberChoice);\r\n }\r\n\r\n public handleNoClick(event: MouseEvent): void {\r\n this.onClose(AppPopupButtonType.No, undefined, this.rememberChoice);\r\n }\r\n\r\n public handleOkClick(event: MouseEvent): void {\r\n this.onClose(AppPopupButtonType.Ok, undefined, this.rememberChoice);\r\n }\r\n}\r\n","import {ApplicationRef, ComponentFactoryResolver, Injectable, Injector} from '@angular/core';\r\nimport {CoreDynamicComponentService} from './core-dynamic-component.service';\r\nimport {DialogResponseInterface} from '../../interfaces/dialog-response.interface';\r\nimport {AppPopupType} from '../../model/enum/app-popup-type.enum';\r\nimport {ConfirmationDialogComponent} from './confirmation-dialog/confirmation-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CoreDialogService {\r\n\r\n private _componentRefs: any[] = [];\r\n\r\n constructor(\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private dynamicComponentService: CoreDynamicComponentService\r\n ) {\r\n }\r\n\r\n public async showYesNo(title: string, text: string, showRememberChoice: boolean = false): Promise<DialogResponseInterface> {\r\n const data: {} = {\r\n title: title,\r\n text: text,\r\n type: AppPopupType.Confirmation,\r\n showRememberCheckbox: showRememberChoice\r\n };\r\n return this.dynamicComponentService.createComponent(ConfirmationDialogComponent, data);\r\n }\r\n\r\n public showError(message: string, details?: string): Promise<any> {\r\n const data: any = {\r\n title: 'ERROR',\r\n text: message,\r\n type: AppPopupType.Error\r\n };\r\n if (details) {\r\n data.details = details;\r\n }\r\n return this.dynamicComponentService.createComponent(ConfirmationDialogComponent, data);\r\n }\r\n\r\n public showInformation(message: string): Promise<any> {\r\n const data: {} = {\r\n title: 'INFORMATION',\r\n text: message,\r\n type: AppPopupType.Information\r\n };\r\n return this.dynamicComponentService.createComponent(ConfirmationDialogComponent, data);\r\n }\r\n\r\n public showWarning(message: string): Promise<any> {\r\n const data: {} = {\r\n title: 'WARNING',\r\n text: message,\r\n type: AppPopupType.Warning\r\n };\r\n return this.dynamicComponentService.createComponent(ConfirmationDialogComponent, data);\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CoreDialogService} from './core-dialog.service';\r\nimport {ConfirmationDialogComponent} from './confirmation-dialog/confirmation-dialog.component';\r\nimport {CoDialogModule} from '../co-dialog/co-dialog.module';\r\nimport {CollapsibleModule} from '../collapsible/collapsible.module';\r\nimport {CoreComponentsTranslationModule} from '../../translation/core-components-translation.module';\r\nimport {ButtonModule} from '../button/button.module';\r\nimport {InputCheckboxModule} from '../input-checkbox/input-checkbox.module';\r\nimport {CommonModule} from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoDialogModule,\r\n CollapsibleModule,\r\n CoreComponentsTranslationModule,\r\n ButtonModule,\r\n InputCheckboxModule\r\n ],\r\n declarations: [\r\n ConfirmationDialogComponent\r\n ],\r\n providers: [\r\n CoreDialogService\r\n ],\r\n exports: []\r\n})\r\nexport class CoreDialogModule {\r\n static forRoot(): ModuleWithProviders<CoreDialogModule> {\r\n return {\r\n ngModule: CoreDialogModule,\r\n providers: [\r\n CoreDialogService\r\n ]\r\n };\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy, ChangeDetectorRef,\r\n Component,\r\n EventEmitter, HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {CoreComponentsIcon} from '../../core/enum/core-components-icon.enum';\r\nimport {FilterItemViewmodel} from './filter-item-viewmodel';\r\nimport {IconCacheService} from '../icon/icon-cache.service';\r\nimport {FilterItemMode} from '../../core/enum/filterItem-mode.enum';\r\n\r\n@Component({\r\n selector: \"co-filter-item\",\r\n template: `\r\n <div class=\"co-filter-item-header\">\r\n <co-collapsible\r\n [headerTitle]=\"placeholder\"\r\n [expandButtonLast]=\"true\"\r\n [iconData]=\"iconService.getIcon(icons.ArrowPointDown)\"\r\n [expanded]=\"expanded\"\r\n [showButton]=\"showButton\"\r\n [buttonText]=\"filterButtonLabel\"\r\n (buttonClicked)=\"onButtonClicked()\"\r\n >\r\n <div class=\"co-filter-item-collapsable-content\">\r\n <div class=\"co-filter-item-custom-content\" *ngIf=\"customContent; else collectionContent\"\r\n (keydown)=\"showButton=true\" (mousedown)=\"showButton=true\">\r\n <ng-content></ng-content>\r\n </div>\r\n <ng-template #collectionContent>\r\n <div class=\"co-filter-item-collection-content\" *ngIf=\"mode === modes.Filterlist || mode === modes.SingleSelectList\r\n || mode === modes.SelectListWithNumberOutput || mode === modes.SelectListWithStringCollectionOutput\">\r\n <co-input-text\r\n *ngIf=\"collection?.length > 10 || minSearchCharsToLoadCollection\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [model]=\"filterText\"\r\n (modelChange)=\"applyFilter($event)\"\r\n >\r\n </co-input-text>\r\n <div class=\"no-results\" *ngIf=\"filteredCollection?.length === 0\">\r\n <span [textContent]=\"noResultsLabel\"></span>\r\n </div>\r\n <div class=\"co-filter-item-collection-results\">\r\n <ng-container\r\n *ngFor=\"let option of filteredCollection; let index = index\">\r\n <div class=\"co-filter-item-collection-result-item\" *ngIf=\"index < limitTo || showAllResults\">\r\n <co-input-checkbox *ngIf=\"mode !== modes.SingleSelectList\"\r\n [label]=\"option.description\"\r\n [model]=\"option.checked\"\r\n [clickableLabel]=\"false\"\r\n (modelChange)=\"handleModelChange(option)\"\r\n ></co-input-checkbox>\r\n <co-input-radio-button *ngIf=\"mode === modes.SingleSelectList\"\r\n [label]=\"option.description\"\r\n [model]=\"option.checked\"\r\n (modelChange)=\"handleModelChange(option)\"\r\n ></co-input-radio-button>\r\n <div class=\"co-filter-item-amount\" *ngIf=\"option.count\"\r\n [textContent]=\"option.count.toString() | append: ')' | prepend: ' ('\"\r\n ></div>\r\n </div>\r\n\r\n </ng-container>\r\n </div>\r\n <div class=\"co-filter-show-more-or-less\" *ngIf=\"!showAllResults\">\r\n <div class=\"co-filter-show-more clickable\"\r\n *ngIf=\"moreToShow()\">\r\n <a (click)=\"increaseLimit()\">\r\n <co-icon [iconData]=\"iconService.getIcon(icons.ArrowPointDown)\"></co-icon>\r\n <span [textContent]=\"showMoreLabel\"></span>\r\n </a>\r\n </div>\r\n <div class=\"co-filter-show-less clickable\"\r\n *ngIf=\"lessToShow()\">\r\n <a (click)=\"setToInitialLimit()\">\r\n <co-icon [iconData]=\"iconService.getIcon(icons.ArrowPointUp)\"></co-icon>\r\n <span [textContent]=\"showLessLabel\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"co-filter-item-slider-content\" *ngIf=\"mode === modes.Slider\">\r\n <co-input-text\r\n class=\"slider-from\"\r\n [type]=\"'number'\"\r\n [digitsOnly]=\"true\"\r\n [hideArrowButtons]=\"true\"\r\n [excludePlusMinus]=\"true\"\r\n [label]=\"'FROM' | coreLocalize\"\r\n [(model)]=\"sliderMin\"\r\n (focusout)=\"handleModelChange(sliderMin)\"\r\n ></co-input-text>\r\n <co-input-text\r\n class=\"slider-to\"\r\n [type]=\"'number'\"\r\n [digitsOnly]=\"true\"\r\n [hideArrowButtons]=\"true\"\r\n [excludePlusMinus]=\"true\"\r\n [label]=\"'TO' | coreLocalize\"\r\n [(model)]=\"sliderMax\"\r\n (focusout)=\"handleModelChange(sliderMax)\"\r\n ></co-input-text>\r\n </div>\r\n <div class=\"co-filter-item-slider-content\" *ngIf=\"mode === modes.NullableSlider\">\r\n <co-input-text\r\n class=\"slider-from\"\r\n [type]=\"'number'\"\r\n [digitsOnly]=\"true\"\r\n [hideArrowButtons]=\"true\"\r\n [excludePlusMinus]=\"true\"\r\n [label]=\"'FROM' | coreLocalize\"\r\n [(model)]=\"sliderMin\"\r\n (focusout)=\"handleModelChange(sliderMin)\"\r\n ></co-input-text>\r\n <co-input-text\r\n class=\"slider-to\"\r\n [type]=\"'number'\"\r\n [digitsOnly]=\"true\"\r\n [hideArrowButtons]=\"true\"\r\n [excludePlusMinus]=\"true\"\r\n [label]=\"'TO' | coreLocalize\"\r\n [(model)]=\"sliderMax\"\r\n (focusout)=\"handleModelChange(sliderMax)\"\r\n ></co-input-text>\r\n </div>\r\n <div class=\"co-filter-item-checkbox-content\" *ngIf=\"mode === modes.Checkbox \">\r\n <co-input-checkbox\r\n [(model)]=\"model\"\r\n (modelChange)=\"handleModelChange($event)\"\r\n [label]=\"placeholder\">\r\n </co-input-checkbox>\r\n </div>\r\n <div class=\"co-filter-item-checkbox-content\"\r\n *ngIf=\"mode === modes.CheckboxToText || mode === modes.CheckboxToSimpleText || mode === modes.CheckboxToBinary\">\r\n <co-input-checkbox\r\n [(model)]=\"checkBoxToTextModel\"\r\n (modelChange)=\"handleModelChange($event)\"\r\n [label]=\"placeholder\"></co-input-checkbox>\r\n </div>\r\n <div class=\"co-filter-item-textfield-content\" *ngIf=\"mode === modes.TextField\">\r\n <co-input-text\r\n [(model)]=\"model\"\r\n (modelChange)=\"handleModelChange($event)\"></co-input-text>\r\n </div>\r\n <div class=\"co-filter-item-dateField-content\" *ngIf=\"mode === modes.DateField\">\r\n <co-input-date\r\n [(model)]=\"model\"\r\n (modelChange)=\"handleModelChange($event)\"\r\n ></co-input-date>\r\n </div>\r\n <div class=\"co-filter-item-dateField-content\" *ngIf=\"mode === modes.DateRangeField\">\r\n <co-input-date-range\r\n [model]=\"[dateRangeStart, dateRangeEnd]\"\r\n (modelChange)=\"handleModelChange($event)\"\r\n [placeholder]=\"'SELECT_DATE' | coreLocalize\">\r\n </co-input-date-range>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </co-collapsible>\r\n </div>\r\n\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FilterItemComponent implements OnInit {\r\n public icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n public modes: typeof FilterItemMode = FilterItemMode;\r\n\r\n @Input()\r\n public set mode(value: FilterItemMode) {\r\n this._mode = value;\r\n this.readModelForMode(this._model);\r\n }\r\n\r\n public get mode(): FilterItemMode {\r\n return this._mode;\r\n }\r\n\r\n @Input()\r\n public set collection(value: FilterItemViewmodel[]) {\r\n this._collection = value;\r\n this.filteredCollection = this._collection?.slice();\r\n //reset the model in case there was no collection to set its values on when it was set.\r\n this.model = this._model;\r\n }\r\n\r\n public get collection(): FilterItemViewmodel[] {\r\n return this._collection;\r\n }\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public initialLimit: number = 10;\r\n\r\n @Input()\r\n public expanded: boolean = false;\r\n\r\n @Input()\r\n public minSearchCharsToLoadCollection: number;\r\n\r\n @Input()\r\n public collectionLoadFn: Function;\r\n\r\n // Set to false to use filter item with a multi selectable collection. Set to true to specify custom content\r\n @Input()\r\n public customContent: boolean = false;\r\n\r\n // Set to true to show all results. Set to false to get 'show more' and 'show less' buttons to expand and contract.\r\n @Input()\r\n public showAllResults: boolean = false;\r\n\r\n @Input()\r\n public filterButtonLabel: string = \"Search\";\r\n\r\n @Input()\r\n public searchPlaceholder: string = 'Search...';\r\n\r\n @Input()\r\n public showMoreLabel: string = 'Show more';\r\n\r\n @Input()\r\n public showLessLabel: string = 'Show less';\r\n\r\n @Input()\r\n public noResultsLabel: string = \"No results\";\r\n\r\n @Input()\r\n public sliderDefaultMin: number = 0;\r\n\r\n @Input()\r\n public sliderDefaultMax: number = 100000;\r\n\r\n @Input()\r\n public fullRangeIsNull: boolean = false;\r\n\r\n @Input()\r\n public set model(newModel: any) {\r\n this.readModelForMode(newModel);\r\n }\r\n\r\n public get model(): any {\r\n return this._model;\r\n }\r\n\r\n @Output()\r\n public modelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public collectionChange: EventEmitter<FilterItemViewmodel[]> = new EventEmitter<FilterItemViewmodel[]>();\r\n\r\n @Output()\r\n public filterButtonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-filter-item\")\r\n\r\n public filteredCollection: FilterItemViewmodel[] = [];\r\n public limitTo: number = 10;\r\n public filterText: string = \"\";\r\n public showButton: boolean = false;\r\n\r\n //models for the slider field inputs\r\n public sliderMin: number;\r\n public sliderMax: number;\r\n\r\n //models for th daterange input\r\n public dateRangeStart: Date;\r\n public dateRangeEnd: Date;\r\n\r\n //model for the textbox options that need a converted output\r\n public checkBoxToTextModel: boolean;\r\n\r\n private _collection: FilterItemViewmodel[] = [];\r\n private _mode: FilterItemMode = this.modes.Filterlist;\r\n private _model: any;\r\n\r\n constructor(public iconService: IconCacheService,\r\n private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.setToInitialLimit();\r\n this.showButton = this.valueSelected();\r\n if(this.checkBoxToTextModel === undefined || this.checkBoxToTextModel === null) {\r\n this.checkBoxToTextModel = false;\r\n }\r\n }\r\n\r\n public setToInitialLimit(): void {\r\n this.limitTo = this.initialLimit;\r\n }\r\n\r\n public increaseLimit(): void {\r\n this.limitTo += 10;\r\n }\r\n\r\n public moreToShow(): boolean {\r\n if (this.showAllResults) {\r\n return false;\r\n }\r\n return this.filteredCollection?.length > this.limitTo;\r\n }\r\n\r\n public lessToShow() {\r\n if (this.showAllResults) {\r\n return false;\r\n }\r\n return this.filteredCollection?.length <= this.limitTo && this.filteredCollection?.length > this.initialLimit;\r\n }\r\n\r\n public handleModelChange(model: any) {\r\n switch (this.mode) {\r\n case this.modes.Filterlist:\r\n this.showButton = true;\r\n model.checked = !model.checked;\r\n this._createModelForFilterList();\r\n break;\r\n case this.modes.SelectListWithStringCollectionOutput:\r\n this.showButton = true;\r\n model.checked = !model.checked;\r\n this._createModelForStringCollectionList();\r\n break;\r\n case this.modes.SingleSelectList:\r\n this.showButton = true;\r\n this.uncheckForSingleSelect(model);\r\n model.checked = !model.checked;\r\n this._createModelForSingleSelectList();\r\n break;\r\n case this.modes.SelectListWithNumberOutput:\r\n this.showButton = true;\r\n model.checked = !model.checked;\r\n this._createModelForSelectListWithNumberOutput();\r\n break;\r\n case this.modes.Slider:\r\n this.showButton = true;\r\n this._createModelForSliderMode();\r\n break;\r\n case this.modes.NullableSlider:\r\n this.showButton = true;\r\n this._createModelForNullableSliderMode();\r\n break;\r\n case this.modes.CheckboxToText:\r\n this.showButton = true;\r\n this._createModelForCheckboxToText();\r\n break;\r\n case this.modes.CheckboxToSimpleText:\r\n this.showButton = true;\r\n this._createModelForCheckboxToSimpleText();\r\n break;\r\n case this.modes.CheckboxToBinary:\r\n this.showButton = true;\r\n this._createModelForCheckboxToBinary();\r\n break;\r\n case this.modes.DateRangeField:\r\n this.showButton = true;\r\n this._createModelForDateRange(model);\r\n break;\r\n case this.modes.TextField:\r\n this.showButton = true;\r\n this._model = (typeof this._model === 'string' && this._model.length === 0) ? undefined : this._model;\r\n break;\r\n }\r\n this.modelChange.emit(this._model);\r\n this.collectionChange.emit(this.collection);\r\n }\r\n\r\n public valueSelected() {\r\n if (this.collection) {\r\n return !!this.collection.find(c => c.checked);\r\n }\r\n return false;\r\n }\r\n\r\n // Applies filter to the collection.\r\n public async applyFilter(text: string): Promise<[]> {\r\n if (!isNaN(this.minSearchCharsToLoadCollection) && this.collectionLoadFn) {\r\n if (text.length === this.minSearchCharsToLoadCollection && text.length > this.filterText.length) {\r\n this.collection = await this.collectionLoadFn(text);\r\n } else if (text.length < this.minSearchCharsToLoadCollection) {\r\n this.collection = undefined;\r\n }\r\n }\r\n this.filterText = text;\r\n if (!this.collection) {\r\n return [];\r\n }\r\n\r\n const filterText: string = this.filterText?.toString().toLowerCase();\r\n let filteredItemCount: number = 0;\r\n this.filteredCollection = this.collection?.filter((item) => {\r\n const labelText: string = item.description?.toString().toLowerCase();\r\n const isHiddenByFilter: boolean = (labelText?.indexOf(filterText) === -1);\r\n if (isHiddenByFilter) {\r\n return false;\r\n } else {\r\n filteredItemCount++;\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n public onButtonClicked(): void {\r\n this.filterButtonClicked.emit();\r\n }\r\n\r\n private uncheckForSingleSelect(model: FilterItemViewmodel): void {\r\n this.collection.forEach(m => {\r\n if (m.code !== model.code && m.description !== model.description) {\r\n m.checked = false;\r\n }\r\n });\r\n }\r\n\r\n private readModelForMode(newModel: any): void {\r\n switch (this.mode) {\r\n case this.modes.Filterlist:\r\n this._readModelForFilterList(newModel);\r\n break;\r\n case this.modes.SingleSelectList:\r\n this._readModelForSingleSelectList(newModel);\r\n break;\r\n case this.modes.SelectListWithStringCollectionOutput:\r\n this._readModelForStringCollectionList(newModel);\r\n break;\r\n case this.modes.SelectListWithNumberOutput:\r\n this._readModelForSelectListWithNumberOutput(newModel);\r\n break;\r\n case this.modes.Slider:\r\n case this.modes.NullableSlider:\r\n this._readModelForSliderMode(newModel);\r\n break;\r\n case this.modes.CheckboxToText:\r\n case this.modes.CheckboxToSimpleText:\r\n this._readModelForCheckboxToText(newModel);\r\n break;\r\n case this.modes.CheckboxToBinary:\r\n this._readModelForCheckboxToBinary(newModel);\r\n break;\r\n case this.modes.DateField:\r\n this._readModelForDateField(newModel);\r\n break;\r\n case this.modes.DateRangeField:\r\n this._readModelForDateRangeField(newModel);\r\n break;\r\n default:\r\n this._model = newModel;\r\n }\r\n }\r\n /////////////////////////////////////////////////////////////\r\n //Model creation for all of the different options available//\r\n /////////////////////////////////////////////////////////////\r\n private _createModelForFilterList(): void {\r\n let filterRange: string[] = [];\r\n if (this.collection !== null && this.collection !== undefined) {\r\n this.collection.forEach((viewModel: FilterItemViewmodel) => {\r\n if (viewModel.checked) {\r\n filterRange.push(`?='${viewModel.code}'`);\r\n }\r\n });\r\n if (filterRange.length > 0) {\r\n this._model = filterRange.join(',');\r\n } else {\r\n this._model = undefined;\r\n }\r\n }\r\n }\r\n\r\n private _createModelForStringCollectionList(): void {\r\n let filterRange: string[] = [];\r\n this.collection.forEach((viewModel: FilterItemViewmodel) => {\r\n if (viewModel.checked) {\r\n filterRange.push(viewModel.code.toString());\r\n }\r\n });\r\n if (filterRange.length > 0) {\r\n this._model = filterRange;\r\n } else {\r\n this._model = undefined;\r\n }\r\n }\r\n\r\n private _createModelForSingleSelectList(): void {\r\n let filterString: string = \"\";\r\n this.collection.forEach((viewModel: FilterItemViewmodel) => {\r\n if (viewModel.checked) {\r\n filterString = viewModel.code.toString();\r\n }\r\n });\r\n if (filterString.length > 0) {\r\n this._model = filterString;\r\n } else {\r\n this._model = undefined;\r\n }\r\n }\r\n\r\n private _createModelForSelectListWithNumberOutput(): void {\r\n let filterNumber: number = null;\r\n this.collection.forEach((viewModel: FilterItemViewmodel) => {\r\n if (viewModel.checked) {\r\n if (filterNumber == null) {\r\n filterNumber = 0;\r\n }\r\n filterNumber += Number(viewModel.code);\r\n }\r\n });\r\n this._model = filterNumber;\r\n }\r\n\r\n private _createModelForSliderMode(): void {\r\n this.sliderMin = !!this.sliderMin ? this.sliderMin : this.sliderDefaultMin;\r\n this.sliderMax = !!this.sliderMax ? this.sliderMax : this.sliderDefaultMax;\r\n\r\n let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);\r\n let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);\r\n\r\n this.sliderMin = trueLowerBound;\r\n this.sliderMax = trueUpperBound;\r\n this._model = `${trueLowerBound} - ${trueUpperBound}`;\r\n\r\n }\r\n\r\n private _createModelForNullableSliderMode(): void {\r\n\r\n if (this.sliderMin && this.sliderMax) {\r\n let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);\r\n let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);\r\n\r\n this._model = `${trueLowerBound} - ${trueUpperBound}`;\r\n } else {\r\n this._model = null;\r\n }\r\n }\r\n\r\n private _createModelForCheckboxToText(): void {\r\n if (this.checkBoxToTextModel) {\r\n this._model = \"?='J'\";\r\n } else {\r\n this._model = \"?='N'\";\r\n }\r\n }\r\n\r\n private _createModelForCheckboxToSimpleText(): void {\r\n if (this.checkBoxToTextModel) {\r\n this._model = \"J\";\r\n } else {\r\n this._model = \"N\";\r\n }\r\n }\r\n\r\n private _createModelForCheckboxToBinary(): void {\r\n if (this.checkBoxToTextModel) {\r\n this._model = 1;\r\n } else {\r\n this._model = 0;\r\n }\r\n }\r\n\r\n private _createModelForDateRange(dates: Date[]): void {\r\n if (dates) {\r\n let startDate = dates[0];\r\n let endDate = dates[1];\r\n\r\n const startDateRequest = startDate ? this._formatDateToString(startDate) : '';\r\n const endDateRequest = endDate ? this._formatDateToString(endDate) : '';\r\n\r\n this._model = `?>=\\'${startDateRequest}\\'& ?<=\\'${endDateRequest}\\'`;\r\n }\r\n }\r\n\r\n private _formatDateToString(date: Date): string {\r\n let day = date.getDate().toString().padStart(2, '0');\r\n let month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n let year = date.getFullYear();\r\n\r\n return `${day}-${month}-${year}`;\r\n }\r\n\r\n ////////////////////////////////////////////////////////////\r\n //Model reading for all of the different options available//\r\n ////////////////////////////////////////////////////////////\r\n private _readModelForFilterList(filterModel: string): void {\r\n let filterList: string[] = [];\r\n let itemsToCheck: string[] = [];\r\n this._uncheckAll();\r\n this._model = filterModel;\r\n\r\n if (filterModel !== null && filterModel !== undefined && typeof filterModel === 'string' && filterModel.length != 0 && this.collection !== null && this.collection !== undefined) {\r\n filterList = filterModel.split(\",\")\r\n filterList.forEach((filter: string) => {\r\n itemsToCheck.push(filter.substr(3, filter.length - 4));\r\n });\r\n\r\n for (const item of itemsToCheck) {\r\n let filter = this.collection.find(element => element.code.toString() === item);\r\n if (filter !== null && filter !== undefined) {\r\n filter.checked = true;\r\n }\r\n }\r\n this._model = filterModel;\r\n }\r\n\r\n }\r\n\r\n private _readModelForSingleSelectList(singleSelectModel: string) {\r\n this._uncheckAll();\r\n this._model = singleSelectModel;\r\n\r\n if (singleSelectModel !== null && singleSelectModel !== undefined && this.collection !== null && this.collection !== undefined) {\r\n let filter = this.collection.find(element => element.code.toString() === singleSelectModel);\r\n if (filter !== null && filter !== undefined) {\r\n filter.checked = true;\r\n }\r\n }\r\n }\r\n\r\n private _readModelForStringCollectionList(collectionModel: string[]): void {\r\n this._uncheckAll();\r\n this._model = collectionModel;\r\n\r\n if (collectionModel !== null && collectionModel !== undefined && this.collection !== null && this.collection !== undefined) {\r\n this.collection.forEach((viewModel: FilterItemViewmodel) => {\r\n if (collectionModel.indexOf(viewModel.code.toString()) > -1) {\r\n viewModel.checked = true;\r\n } else {\r\n viewModel.checked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _readModelForSelectListWithNumberOutput(numberModel: number) {\r\n this._uncheckAll();\r\n this._model = numberModel;\r\n\r\n if (numberModel !== null && numberModel !== undefined && this.collection !== null && this.collection !== undefined) {\r\n for (const item of this.collection) {\r\n const itemCode: number = item.code as number;\r\n const modValue = (numberModel % (2 * itemCode));\r\n item.checked = (modValue >= itemCode);\r\n }\r\n }\r\n }\r\n\r\n private _uncheckAll() {\r\n if (this.collection !== null && this.collection !== undefined) {\r\n this.collection.forEach(m => {\r\n m.checked = false;\r\n });\r\n }\r\n }\r\n\r\n private _readModelForSliderMode(sliderModel: string): void {\r\n this._model = sliderModel;\r\n if (sliderModel !== undefined && sliderModel !== null) {\r\n let sliderInputCollection = sliderModel.split(' - ');\r\n this.sliderMin = parseInt(sliderInputCollection[0]);\r\n this.sliderMax = parseInt(sliderInputCollection[1]);\r\n } else {\r\n this.sliderMin = this.sliderDefaultMin;\r\n this.sliderMax = this.sliderDefaultMax;\r\n }\r\n }\r\n\r\n private _readModelForCheckboxToText(checkboxToTextModel: string): void {\r\n this._model = checkboxToTextModel;\r\n if (checkboxToTextModel !== undefined && checkboxToTextModel !== null) {\r\n this.checkBoxToTextModel = (checkboxToTextModel.indexOf('J') > -1);\r\n } else {\r\n this.checkBoxToTextModel = false;\r\n }\r\n }\r\n\r\n private _readModelForCheckboxToBinary(checkboxToBinary: number): void {\r\n this._model = checkboxToBinary;\r\n if (checkboxToBinary !== undefined && checkboxToBinary !== null) {\r\n this.checkBoxToTextModel = (checkboxToBinary >= 1);\r\n } else {\r\n this.checkBoxToTextModel = false;\r\n }\r\n }\r\n\r\n private _readModelForDateField(dateFieldModel: string): void {\r\n this._model = dateFieldModel;\r\n if (dateFieldModel !== undefined && dateFieldModel !== null) {\r\n this._model = new Date(dateFieldModel);\r\n } else {\r\n this._model = undefined;\r\n }\r\n }\r\n\r\n private _readModelForDateRangeField(dateRangeFieldModel: string): void {\r\n this._model = dateRangeFieldModel;\r\n if (dateRangeFieldModel !== undefined && dateRangeFieldModel !== null) {\r\n let dateCollection = dateRangeFieldModel.split('&');\r\n\r\n let startString = dateCollection[0].trim().substr(4, dateCollection[0].length - 5);\r\n let endString = dateCollection[1].trim().substr(4, dateCollection[1].length - 5);\r\n\r\n let startDateComponents = startString.split('-');\r\n let endDateComponents = endString.split('-');\r\n\r\n this.dateRangeStart = new Date(parseInt(startDateComponents[2]), parseInt(startDateComponents[1]) - 1, parseInt(startDateComponents[0]));\r\n this.dateRangeEnd = new Date(parseInt(endDateComponents[2]), parseInt(endDateComponents[1]) - 1, parseInt(endDateComponents[0]));\r\n } else {\r\n this.dateRangeStart = undefined;\r\n this.dateRangeEnd = undefined;\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n// A pipe for prepending strings to other strings in view templates.\r\n@Pipe({name: \"prepend\"})\r\nexport class PrependPipe implements PipeTransform {\r\n transform(value: string, prepend?: string): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n if (!prepend) {\r\n return value;\r\n }\r\n\r\n return prepend + value;\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {PrependPipe} from './prepend.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrependPipe\r\n ],\r\n exports: [\r\n PrependPipe\r\n ]\r\n})\r\nexport class PrependPipeModule {\r\n}\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport { PrependPipeModule } from '../../pipes/prepend.pipe.module';\r\nimport { CollapsibleModule } from \"../collapsible/collapsible.module\";\r\nimport { IconModule } from \"../icon/icon.module\";\r\nimport { InputCheckboxModule } from \"../input-checkbox/input-checkbox.module\";\r\nimport { InputTextModule } from \"../input-text/input-text.module\";\r\nimport { FilterItemComponent } from \"./filter-item.component\";\r\nimport {InputRadioButtonModule} from '../input-radio-button/input-radio-button.module';\r\nimport {CoreComponentsTranslationModule} from \"../../translation/core-components-translation.module\";\r\nimport {InputDatePickerModule} from \"../input-date-picker/input-date-picker.module\";\r\nimport {InputDateRangePickerModule} from \"../input-date-range-picker/input-date-range-picker.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CollapsibleModule,\r\n InputTextModule,\r\n InputCheckboxModule,\r\n IconModule,\r\n ScrollingModule,\r\n AppendPipeModule,\r\n PrependPipeModule,\r\n InputTextModule,\r\n InputRadioButtonModule,\r\n InputTextModule,\r\n CoreComponentsTranslationModule,\r\n InputDatePickerModule,\r\n InputDateRangePickerModule\r\n ],\r\n declarations: [\r\n FilterItemComponent\r\n ],\r\n exports: [\r\n FilterItemComponent\r\n ]\r\n})\r\nexport class FilterItemModule {\r\n\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n QueryList, Renderer2,\r\n ViewChildren,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\n\r\n@Component({\r\n selector: \"co-checkmark-overlay\",\r\n template: `\r\n <div *ngIf=\"showOverlay\">\r\n <div class=\"checkmark-overlay-wrapper\" *ngIf=\"showWrapper\" @showHideSaveCancel>\r\n <div class=\"checkmark-buttons-button save\" [class.finished]=\"!visible\">\r\n <div class=\"save-button-spinner\">\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n <div #animatediv></div>\r\n </div>\r\n <div class=\"spinner-checkmark\" *ngIf=\"!visible && successful\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n trigger('showHideSaveCancel', [\r\n state('*', style({transform: 'scaleY(1)', opacity: 1})),\r\n state('void', style({transform: 'scaleY(0)', opacity: 0})),\r\n transition('void <=> *', animate(200))\r\n ]),\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CheckmarkOverlayComponent {\r\n @ViewChildren('animatediv', { read: ElementRef }) set content(children) {\r\n this.animateDivs = children.toArray();\r\n this._checkAnimation();\r\n }\r\n public animateDivs: QueryList<ElementRef>;\r\n\r\n @Input()\r\n public set visible(value: boolean) {\r\n if (value) {\r\n this.showOverlay = true;\r\n this.showWrapper = true;\r\n } else {\r\n setTimeout(() => this.showOverlay = false, 800);\r\n setTimeout(() => this.showWrapper = false, 600);\r\n }\r\n this._visible = value;\r\n this._checkAnimation();\r\n this._checkAnimationFinished();\r\n }\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n @Input()\r\n public successful: boolean;\r\n\r\n @HostBinding(\"class.co-checkmark-overlay\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showOverlay: boolean = false;\r\n public showWrapper: boolean = false;\r\n\r\n private _visible: boolean = false;\r\n\r\n constructor(\r\n private _renderer: Renderer2\r\n ) { }\r\n\r\n private _checkAnimation(): void {\r\n if (this.visible && this.animateDivs) {\r\n this.animateDivs.forEach(a => this._renderer.addClass(a.nativeElement, 'animate'));\r\n }\r\n }\r\n\r\n private _checkAnimationFinished(): void {\r\n if (!this.visible && this.animateDivs) {\r\n this.animateDivs.forEach(a => {\r\n a.nativeElement.addEventListener('animationiteration', this._handleAnimationIteration);\r\n });\r\n }\r\n }\r\n\r\n private _handleAnimationIteration = (event: AnimationEvent) => {\r\n this.animateDivs.forEach(a => this._renderer.removeClass(a.nativeElement, 'animate'));\r\n event.currentTarget.removeEventListener('animationiteration', this._handleAnimationIteration);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {CheckmarkOverlayComponent} from \"./checkmark-overlay.component\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n CheckmarkOverlayComponent\r\n ],\r\n exports: [\r\n CheckmarkOverlayComponent\r\n ]\r\n})\r\nexport class CheckmarkOverlayModule {\r\n}\r\n","import {NumberUtils} from \"../../core/utils/number-utils\";\r\n\r\nexport class FilterItemViewmodel {\r\n\r\n public checked: boolean = false;\r\n public code: string | number;\r\n public description: string;\r\n public count?: number;\r\n public valueName?: string;\r\n\r\n codeAsNumber?(): number { return NumberUtils.ParseInt(this.code);}\r\n\r\n constructor(code: string | number, description: string | number, checked: boolean, count?: number, valueName?: string) {\r\n this.code = code;\r\n this.description = description?.toString();\r\n this.checked = checked;\r\n this.count = count;\r\n this.valueName = valueName;\r\n }\r\n}\r\n","import {FilterItemViewmodel} from \"./filter-item-viewmodel\";\r\n\r\nexport class FilterViewmodel {\r\n public filterItems: FilterItemViewmodel[] = [];\r\n\r\n constructor(collection: any[], fields: {text, value} ) {\r\n collection.forEach((item: any) => {\r\n this.filterItems.push(new FilterItemViewmodel(item[fields.value], item[fields.text], item.checked ?? false, item.count ?? null, item.valueName ?? null ));\r\n });\r\n }\r\n}\r\n","export class BarCodeScanner {\r\n private _buffer: string[] = [];\r\n\r\n constructor() {\r\n document.addEventListener('keypress', this._keyPress)\r\n }\r\n\r\n public close(): void {\r\n document.removeEventListener('keypress', this._keyPress);\r\n }\r\n\r\n private _keyPress = (event: KeyboardEvent) => {\r\n if (event.key === \"Enter\") {\r\n document.dispatchEvent(this._createScanEvent());\r\n this._buffer.length = 0;\r\n } else {\r\n const str: string = event.key;\r\n this._buffer.push(str);\r\n }\r\n }\r\n\r\n private _createScanEvent(): Event {\r\n return new CustomEvent(\"barcodescanned\", {detail: this._buffer.join(\"\")});\r\n }\r\n}\r\n","import {Injectable, NgZone, OnDestroy} from '@angular/core';\r\nimport {BarCodeScanner} from './bar-code-scanner';\r\nimport {ScannerInput} from '../../interfaces/scanner-input.interface';\r\n\r\n@Injectable()\r\nexport class ScannerService implements OnDestroy {\r\n private _activeInput: ScannerInput;\r\n private barCodeScanner: BarCodeScanner = new BarCodeScanner();\r\n\r\n constructor(private _ngZone: NgZone) {\r\n document.addEventListener(\"barcodescanned\", this._barCodeScanned);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n document.removeEventListener(\"barcodescanned\", this._barCodeScanned);\r\n this.barCodeScanner.close();\r\n }\r\n\r\n public registerInput(input: ScannerInput): void {\r\n this._activeInput = input;\r\n }\r\n\r\n private _barCodeScanned = (event: any) => {\r\n if (this._activeInput) {\r\n this._activeInput.triggerCodeScanned(event.detail);\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from '@angular/core';\r\nimport {ScannerService} from './scanner.service';\r\nimport {OverlayService} from '../../service/overlay.service';\r\nimport {ScannerInput} from '../../interfaces/scanner-input.interface';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'co-input-scanner',\r\n template: `\r\n <co-input-search\r\n [(model)]=\"model\"\r\n [customCssClass]=\"customCssClass\"\r\n [placeholder]=\"placeholder\"\r\n [centerLabel]=\"centerLabel\"\r\n [useLeftIcon]=\"useLeftIcon\"\r\n [leftIconData]=\"leftIconData\"\r\n [useRightIcon]=\"useRightIcon\"\r\n [rightIconData]=\"rightIconData\"\r\n (leftIconClick)=\"leftIconClick.emit($event)\"\r\n (rightIconClick)=\"rightIconClick.emit($event)\"\r\n (search)=\"search.emit($event)\"\r\n (isFocused)=\"isFocused.emit($event)\"\r\n ></co-input-search>\r\n `,\r\n providers: [\r\n ScannerService,\r\n OverlayService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputScannerComponent implements ScannerInput {\r\n @Input()\r\n public model: string;\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public centerLabel: boolean = false;\r\n\r\n @Input()\r\n public useLeftIcon: boolean = false;\r\n\r\n @Input()\r\n public useRightIcon: boolean = false;\r\n\r\n @Input()\r\n public leftIconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public rightIconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public customCssClass: string;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public leftIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public rightIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public search: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public isFocused: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public barCodeScanned: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('class.co-input-scanner')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n private _scannerService: ScannerService,\r\n ) {\r\n this._scannerService.registerInput(this);\r\n }\r\n\r\n public triggerCodeScanned(code?: string): void {\r\n this.model = code;\r\n this.barCodeScanned.next(this.model);\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {InputScannerComponent} from './input-scanner.component';\r\nimport {InputSearchModule} from '../input-search/input-search.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputSearchModule\r\n ],\r\n declarations: [\r\n InputScannerComponent\r\n ],\r\n exports: [\r\n InputScannerComponent\r\n ]\r\n})\r\nexport class InputScannerModule {\r\n}\r\n","import {Component, HostBinding, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'co-loader',\r\n template: `\r\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n viewBox=\"0 0 200 200\" xml:space=\"preserve\">\r\n <defs>\r\n <linearGradient id=\"gradientFade\" x1=\"20%\" x2=\"50%\" y1=\"60%\" y2=\"100%\">\r\n <stop offset=\"0%\" class=\"spinner-gradient-stop\" />\r\n <stop offset=\"25%\" stop-opacity=\"75%\" class=\"spinner-gradient-stop\" />\r\n <stop offset=\"50%\" stop-opacity=\"50%\" class=\"spinner-gradient-stop\" />\r\n <stop offset=\"75%\" stop-opacity=\"25%\" class=\"spinner-gradient-stop\" />\r\n <stop offset=\"100%\" stop-opacity=\"5%\" class=\"spinner-gradient-stop\" />\r\n </linearGradient>\r\n </defs> \r\n <g id=\"mask\">\r\n <ellipse transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -41.0887 100.8995)\" class=\"circle\" cx=\"101.25\" cy=\"101.25\" rx=\"77.58\"\r\n ry=\"77.58\"/>\r\n </g>\r\n <g id=\"ring\" fill=\"none\">\r\n <circle id=\"ring-loader\" class=\"ring-color\" cx=\"100\" cy=\"100\" r=\"90\" fill=\"none\" />\r\n </g>\r\n <g id=\"js\">\r\n <path class=\"main-color\" d=\"M87.93,149.17c-0.12-0.17-0.08-0.4,0.09-0.52l0.61-0.45c2.92-2.14,4.34-4.61,4.34-7.56l0-20.64h2.47\r\n c0.74,0,1.34,0.6,1.34,1.34v18.32c0,2.97-0.65,5.4-1.93,7.23c-0.61,0.89-1.25,1.66-1.9,2.28c-0.63,0.6-1.41,1.23-2.3,1.87\r\n l-0.65,0.47c-0.18,0.12-0.42,0.08-0.54-0.1L87.93,149.17z\"/>\r\n <path class=\"main-color\" d=\"M107.12,142.92c-2.24,0-4.18-0.59-5.79-1.75l0,0c-0.47-0.34-0.59-1-0.27-1.48l1.06-1.59\r\n c0.12-0.17,0.35-0.22,0.53-0.11l0.58,0.38c1.18,0.77,2.43,1.14,3.84,1.14c1.36,0,2.39-0.25,3.05-0.75\r\n c0.59-0.44,0.86-1.04,0.86-1.92c0-0.59-0.22-1.15-0.68-1.71c-0.55-0.67-1.23-1.29-2.02-1.84c-0.85-0.58-1.74-1.22-2.66-1.88\r\n c-0.97-0.7-1.81-1.55-2.5-2.53c-0.75-1.06-1.12-2.23-1.12-3.46c0-1.67,0.63-3.02,1.89-4.01c1.17-0.93,2.74-1.4,4.66-1.4\r\n c1.83,0,3.55,0.37,5.13,1.11l0.62,0.29c0.19,0.09,0.27,0.31,0.19,0.5l-1.03,2.37c-0.08,0.19-0.31,0.28-0.5,0.2l-0.64-0.27\r\n c-1.22-0.52-2.45-0.78-3.64-0.78c-3.01,0-3.01,1.31-3.01,1.94c0,0.63,0.22,1.21,0.68,1.77c0.55,0.67,1.22,1.28,2.01,1.8\r\n c0.91,0.61,1.8,1.22,2.66,1.82c0.97,0.68,1.82,1.52,2.5,2.47c0.75,1.04,1.13,2.2,1.13,3.44c0,2.05-0.72,3.64-2.14,4.72\r\n C111.17,142.4,109.36,142.92,107.12,142.92z\"/>\r\n </g>\r\n <g id=\"i\">\r\n <path class=\"second-color\" d=\"M38.1,100.24V80.62c0-0.18,0.14-0.32,0.32-0.32h2.53c0.88,0,1.6,0.72,1.6,1.6v18.34\r\n c0,0.18-0.14,0.32-0.32,0.32h-3.8C38.25,100.56,38.1,100.42,38.1,100.24z\"/>\r\n </g>\r\n <g id=\"n\">\r\n <path class=\"second-color\" d=\"M126.95,107l-14.97-17.18c-0.19-0.22-0.56-0.09-0.56,0.21v16.62c0,0.18-0.14,0.32-0.32,0.32h-3.8\r\n c-0.18,0-0.32-0.14-0.32-0.32V82.12c0-0.88,0.72-1.6,1.6-1.6h1.07c0.09,0,0.18,0.04,0.24,0.11l14.97,17.22\r\n c0.19,0.22,0.56,0.09,0.56-0.21V80.99c0-0.18,0.14-0.32,0.32-0.32h3.8c0.18,0,0.32,0.14,0.32,0.32v25.81\r\n c0,0.18-0.14,0.32-0.32,0.32h-2.35C127.1,107.11,127.01,107.07,126.95,107z\"/>\r\n </g>\r\n <g id=\"e\">\r\n <path class=\"second-color\" d=\"M150.28,105.37V80.99c0-0.18,0.14-0.32,0.32-0.32h13.12c0.18,0,0.32,0.14,0.32,0.32v3.59\r\n c0,0.18-0.14,0.32-0.32,0.32h-8.68c-0.18,0-0.32,0.14-0.32,0.32v5.14c0,0.18,0.14,0.32,0.32,0.32h7.77c0.18,0,0.32,0.14,0.32,0.32\r\n v3.55c0,0.18-0.14,0.32-0.32,0.32h-7.77c-0.18,0-0.32,0.14-0.32,0.32v7.17c0,0.18,0.14,0.32,0.32,0.32h9.04\r\n c0.18,0,0.32,0.14,0.32,0.32v3.66c0,0.18-0.14,0.32-0.32,0.32h-12.2C151,106.97,150.28,106.25,150.28,105.37z\"/>\r\n </g>\r\n <g id=\"o\">\r\n <path class=\"second-color\" d=\"M67.44,86.2c0.59,0.54,0.68,1.43,0.23,2.09c-0.41,0.6-0.75,1.24-1.01,1.92c-0.42,1.1-0.63,2.31-0.63,3.61\r\n c0,1.3,0.21,2.51,0.63,3.61c0.42,1.1,1.04,2.1,1.88,2.98c0.82,0.87,1.75,1.53,2.8,1.97c1.04,0.44,2.19,0.66,3.44,0.66\r\n c1.25,0,2.4-0.22,3.43-0.66c1.04-0.44,1.97-1.09,2.78-1.97c0.83-0.88,1.45-1.88,1.86-2.98c0.42-1.1,0.63-2.31,0.63-3.61\r\n c0-1.3-0.21-2.51-0.63-3.62c-0.42-1.1-1.04-2.11-1.87-3c-0.81-0.87-1.74-1.53-2.78-1.97c-1.04-0.44-2.18-0.66-3.43-0.66\r\n c-0.77,0-1.49,0.08-2.18,0.25c-0.75,0.18-1.53-0.19-1.84-0.9l-1.03-2.32c-0.07-0.17,0-0.36,0.17-0.43\r\n c1.49-0.58,3.12-0.87,4.86-0.87c1.87,0,3.59,0.33,5.17,0.99c1.58,0.66,3,1.64,4.27,2.95c1.26,1.3,2.21,2.76,2.84,4.36\r\n c0.63,1.6,0.95,3.34,0.95,5.22c0,1.88-0.32,3.62-0.95,5.22c-0.63,1.6-1.58,3.06-2.84,4.36c-1.27,1.31-2.69,2.29-4.27,2.95\r\n c-1.58,0.66-3.31,0.99-5.17,0.99c-1.87,0-3.6-0.33-5.17-0.99c-1.58-0.66-3-1.64-4.27-2.95c-1.26-1.3-2.21-2.76-2.84-4.36\r\n c-0.63-1.6-0.95-3.34-0.95-5.22c0-1.88,0.32-3.62,0.95-5.22c0.6-1.51,1.47-2.88,2.63-4.13c0.12-0.13,0.32-0.13,0.45-0.02\r\n L67.44,86.2z\"/>\r\n </g>\r\n <g id=\"smile\">\r\n <path class=\"main-color\" d=\"M101.26,178.35c-3.73-0.01-7.38-0.28-10.86-0.82c-3.62-0.57-6.94-1.38-9.85-2.4c-3.01-1.05-5.69-2.3-7.94-3.73\r\n c-1.09-0.71-2.1-1.76-2.99-2.84c0.98,0.74,2.03,1.44,3.16,2.07c2.38,1.38,5.13,2.58,8.16,3.55c5.99,1.93,13.15,2.99,20.17,2.99\r\n h0.31c7.01,0,14.17-1.06,20.16-2.99c3.03-0.97,5.78-2.16,8.17-3.55c1.12-0.64,2.17-1.32,3.15-2.06c-0.89,1.08-1.89,2.13-2.99,2.83\r\n c-2.25,1.42-4.92,2.67-7.94,3.72c-2.91,1.02-6.23,1.83-9.85,2.4C108.65,178.07,105,178.35,101.26,178.35z\"/>\r\n </g>\r\n </svg>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LoaderComponent {\r\n\r\n @HostBinding('class.co-loader')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n} \r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {LoaderComponent} from './loader.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n LoaderComponent\r\n ],\r\n exports: [\r\n LoaderComponent\r\n ]\r\n})\r\nexport class LoaderModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'co-tile-select',\r\n template: `\r\n <div class=\"co-tile-wrapper\" (click)=\"selectedChange.emit(selected)\">\r\n <div class=\"co-tile-select-wrapper\" *ngIf=\"showRadioButton\">\r\n <co-input-radio-button [model]=\"selected\" [readonly]=\"selected || readonly\" (modelChange)=\"selectedChange.emit($event)\"></co-input-radio-button>\r\n </div>\r\n <div class=\"co-tile-content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TileSelectComponent {\r\n @HostBinding('class.selected')\r\n @Input()\r\n public selected: boolean = false;\r\n\r\n @Input()\r\n public readonly: boolean = false;\r\n\r\n @Input()\r\n public showRadioButton: boolean = true;\r\n\r\n @Output()\r\n public selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-tile-select')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n} \r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TileSelectComponent} from './tile-select.component';\r\nimport {InputRadioButtonModule} from '../input-radio-button/input-radio-button.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputRadioButtonModule\r\n ],\r\n declarations: [\r\n TileSelectComponent\r\n ],\r\n exports: [\r\n TileSelectComponent\r\n ]\r\n})\r\nexport class TileSelectModule {\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"filter\",\r\n pure: false\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], field: string, value: any): any {\r\n if (!items || !field) {\r\n return items;\r\n }\r\n return items.filter(item => item[field] === value);\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {FilterPipe} from './filter.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilterPipe\r\n ],\r\n exports: [\r\n FilterPipe\r\n ]\r\n})\r\nexport class FilterPipeModule {\r\n}\r\n","import {FormControl, ValidationErrors, ValidatorFn} from \"@angular/forms\";\r\n\r\nexport function equalValidator(valueGetterFn: () => any): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n\r\n if (valueGetterFn) {\r\n const mustBeEqualTo: any = valueGetterFn.call(this);\r\n isValid = control.value === mustBeEqualTo;\r\n }\r\n\r\n return isValid ? null : {\"equality\": \"MESSAGE_FIELD_WRONG_VALUE\"};\r\n };\r\n}\r\n","import {FormControl, ValidationErrors, ValidatorFn} from \"@angular/forms\";\r\nimport {StringUtils} from '../utils/string-utils';\r\n\r\nexport function passwordValidator(userNameGetterFn: () => string): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n if (control && control.value) {\r\n const username: string = userNameGetterFn.call(this);\r\n const errorString: string = getValidatePasswordErrorString(StringUtils.ToStringOrDefault(control.value), username);\r\n if (errorString) {\r\n return {\"password\": errorString};\r\n }\r\n }\r\n };\r\n}\r\n\r\n// @returns undefined if valid, or an error string if there's an error\r\nexport function getValidatePasswordErrorString(password: string, username: string): string {\r\n const minimumPasswordLength: number = 10;\r\n const lengthOk: boolean = password && minimumPasswordLength <= password.length;\r\n if (!lengthOk) {\r\n return \"PASSWORD_MUST_BE_10_CHARACTERS\";\r\n }\r\n\r\n const atLeastOneNumber: boolean = RegExp(\".*[0-9].*\").test(password);\r\n const atLeastOneLetter: boolean = RegExp(\".*[a-zA-Z].*\").test(password);\r\n const atLeastOneSpecial: boolean = RegExp(\".*[!@#$%&*()'+,\\\\-./:;<=>?\\\\[\\\\]^_`{|}\\\\\\\\].*\").test(password);\r\n if (!atLeastOneNumber || !atLeastOneLetter || !atLeastOneSpecial) {\r\n return \"PASSWORD_MUST_CONTAIN_LETTER_NUMBER_SPECIAL\";\r\n }\r\n\r\n const hasUsernameInPassword: boolean = username && RegExp(\".*\" + username.trim() + \".*\", \"i\").test(password);\r\n if (hasUsernameInPassword) {\r\n return \"PASSWORD_CONTAINS_USERNAME\";\r\n }\r\n}\r\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\r\n\r\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\r\n\r\n const emailRegex: any = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const isValid: boolean = !!emailRegex.test(control.value);\r\n\r\n return isValid ? null : {'email': 'MESSAGE_EMAIL_NOT_CORRECT'};\r\n\r\n}","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'co-tooltip',\r\n template: `\r\n <div class=\"tooltip\" [innerHTML]=\"toolTip\"></div>\r\n `,\r\n animations: [\r\n trigger(\"showHide\", [\r\n state(\"void\", style({opacity: 0})),\r\n state(\"*\", style({opacity: 1})),\r\n transition(\"void <=> *\", animate(\"200ms ease-in-out\")),\r\n ])\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class TooltipComponent implements AfterViewInit {\r\n\r\n @Input()\r\n public set hostElement(value: HTMLElement) {\r\n this._hostElement = value;\r\n // this._positionTooltip();\r\n }\r\n\r\n public get hostElement(): HTMLElement {\r\n return this._hostElement;\r\n }\r\n\r\n @Input()\r\n public toolTip: SafeHtml | string;\r\n\r\n @HostBinding('class.co-tooltip')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"style.top.px\")\r\n public top: number = -100;\r\n\r\n @HostBinding(\"style.left.px\")\r\n public left: number = -100;\r\n\r\n @HostBinding(\"class.bottom\")\r\n public bottom: boolean = false;\r\n\r\n @HostBinding('@showHide')\r\n public animate: boolean = true;\r\n\r\n private _hostElement: HTMLElement;\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _changeDetector: ChangeDetectorRef\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this._positionTooltip();\r\n });\r\n }\r\n\r\n private _positionTooltip(): void {\r\n if (this.hostElement && this._elementRef && this._elementRef.nativeElement) {\r\n const rect: ClientRect = this.hostElement.getBoundingClientRect();\r\n const ownRect: ClientRect = this._elementRef.nativeElement.getBoundingClientRect();\r\n let wantedLeft: number = rect.left;\r\n let wantedTop: number = rect.top - ownRect.height;\r\n\r\n if (wantedTop < 0) { // out of view, move to bottom\r\n this.bottom = true;\r\n wantedTop = rect.bottom;\r\n } else {\r\n this.bottom = false;\r\n }\r\n\r\n this.left = wantedLeft;\r\n this.top = wantedTop;\r\n\r\n this._changeDetector.markForCheck();\r\n this._changeDetector.detectChanges();\r\n }\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit\r\n} from '@angular/core';\r\nimport {TooltipComponent} from '../../components/tooltip/tooltip.component';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Directive({\r\n selector: \"[tooltip]\"\r\n})\r\nexport class TooltipDirective implements OnDestroy, OnInit {\r\n\r\n @Input(\"tooltip\")\r\n public set tooltip(str: string) {\r\n this._tooltipMessage = str;\r\n }\r\n\r\n private _elementRef: ElementRef;\r\n private _tooltipMessage: string;\r\n private _componentRef;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n private _injector: Injector,\r\n private _sanitizer: DomSanitizer\r\n ) {\r\n this._elementRef = elementRef;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._elementRef && this._elementRef.nativeElement) {\r\n this._elementRef.nativeElement.removeEventListener('mouseenter', (event: MouseEvent) => this._handleMouseMove(event))\r\n this._elementRef.nativeElement.removeEventListener('mouseleave', () => this._removeTooltip())\r\n }\r\n window.removeEventListener(\"scroll\", (event) => this._handleScroll);\r\n this._elementRef = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n window.addEventListener(\"scroll\", (event) => this._handleScroll);\r\n if (this._elementRef && this._elementRef.nativeElement) {\r\n this._elementRef.nativeElement.addEventListener('mouseenter', (event: MouseEvent) => this._handleMouseMove(event))\r\n this._elementRef.nativeElement.addEventListener('mouseleave', () => this._removeTooltip())\r\n }\r\n }\r\n\r\n private _handleScroll(): void {\r\n this._removeTooltip();\r\n }\r\n\r\n private _handleMouseMove(event: MouseEvent): void {\r\n this._showTooltip(event.clientY, event.clientX);\r\n }\r\n\r\n private _showTooltip(top: number, left: number): void {\r\n this._createTooltipComponent(top, left);\r\n }\r\n\r\n private _removeTooltip(): void {\r\n if (this._componentRef) {\r\n this._appRef.detachView(this._componentRef.hostView);\r\n this._componentRef.destroy();\r\n this._componentRef = undefined;\r\n }\r\n }\r\n\r\n private _createTooltipComponent(top: number, left: number): void {\r\n if (!this._tooltipMessage) {\r\n return;\r\n }\r\n if (this._componentRef) {\r\n return;\r\n }\r\n this._componentRef = this._compFactoryResolver\r\n .resolveComponentFactory(TooltipComponent)\r\n .create(this._injector);\r\n\r\n this._componentRef.instance.hostElement = this._elementRef.nativeElement;\r\n this._componentRef.instance.toolTip = this._sanitizer.bypassSecurityTrustHtml(this._tooltipMessage);\r\n\r\n this._appRef.attachView(this._componentRef.hostView);\r\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {TooltipComponent} from \"./tooltip.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n TooltipComponent\r\n ],\r\n exports: [\r\n TooltipComponent\r\n ]\r\n})\r\nexport class TooltipModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {TooltipDirective} from './tooltip.directive';\r\nimport {TooltipModule} from '../../components/tooltip/tooltip.module';\r\n\r\n@NgModule({\r\n imports: [\r\n TooltipModule\r\n ],\r\n declarations: [\r\n TooltipDirective\r\n ],\r\n exports: [\r\n TooltipDirective\r\n ]\r\n})\r\nexport class TooltipDirectiveModule {\r\n}\r\n","// Base screen configuration service for one \"screen module\", e.g. 'Crm'. Db-loads, stores and and interprets ObjectConfiguration config objects.\r\nimport {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Subject} from 'rxjs';\r\nimport {ArrayUtils} from '@colijnit/ioneconnector/build/utils/array-utils';\r\nimport {BusinessObject} from '@colijnit/ioneconnector/build/model/business-object';\r\nimport {ValidationResult} from '@colijnit/ioneconnector/build/model/validation-result';\r\nimport {ObjectConfigurationDefaultValueType} from '@colijnit/ioneconnector/build/type/object-configuration-default-value-type';\r\nimport {ObjectConfigKind} from '@colijnit/ioneconnector/build/enum/object-config-kind';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\nimport {DEFAULT_GET_OBJECT_CONFIGURATION_PARAMS} from '@colijnit/ioneconnector/build/model/default-get-object-configurations-params';\r\nimport {ObjectConfiguration} from '@colijnit/ioneconnector/build/model/object-configuration';\r\n\r\n@Injectable()\r\nexport abstract class BaseModuleScreenConfigService {\r\n // manually given module name\r\n public abstract screenModuleName: string;\r\n\r\n // emits the params of the loaded config, each time when a new config was loaded\r\n public readonly configSet: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\r\n\r\n public get configObjects(): ObjectConfiguration[] {\r\n return this._configObjects;\r\n }\r\n\r\n public controlValidityByBoMap: {bo: BusinessObject, controlKey: string, valid: boolean}[];\r\n\r\n private _configObjects: ObjectConfiguration[] = [];\r\n\r\n // key: configName, value: the ObjectConfiguration with that configName. For faster ObjectConfiguration lookups, given a configName string (vs. array).\r\n private _objectConfigsMap: Map<string, ObjectConfiguration> = new Map<string, ObjectConfiguration>();\r\n\r\n // POST: this.configObjects are loaded. Returns the loaded config objects.\r\n public async loadConfig(params: string[] = DEFAULT_GET_OBJECT_CONFIGURATION_PARAMS, insertRights?: boolean): Promise<ObjectConfiguration[]> {\r\n const configObjects: ObjectConfiguration[] = await this.loadConfigForModule(params, insertRights);\r\n this._configObjects = configObjects;\r\n if (configObjects && Array.isArray(configObjects)) {\r\n this._buildScreenConfigMap();\r\n this.configSet.next(params);\r\n }\r\n return this._configObjects;\r\n }\r\n\r\n public async lazyLoadConfig(): Promise<void> {\r\n if (!this.configObjects.length) {\r\n await this.loadConfig();\r\n }\r\n }\r\n\r\n public isActiveFieldValidationObject(configObject: ObjectConfiguration): boolean {\r\n if (configObject) {\r\n return configObject.isActiveFieldValidationObject() && !this.isDataNameHiddenByAnyOfItsParentRubrics(configObject.dataName);\r\n }\r\n }\r\n\r\n public isBoValid(bo: BusinessObject): boolean {\r\n if (this.controlValidityByBoMap && !ArrayUtils.IsEmptyArray(this.controlValidityByBoMap)) {\r\n const mapEntry: {bo: BusinessObject, controlKey: string, valid: boolean} = this.controlValidityByBoMap.find(value => value.bo === bo && value.valid === false);\r\n if (mapEntry) {\r\n return mapEntry.valid;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public getObjectConfigurationFor(configName: string): ObjectConfiguration {\r\n const configuration: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n\r\n // If configuration not found by configname, try by data name\r\n if (!!this._objectConfigsMap.size && !configuration && configName) {\r\n const configNameByDataName: string = this._getConfigNameByDataName(configName);\r\n\r\n if (this._objectConfigsMap.get(configNameByDataName)) {\r\n return this._objectConfigsMap.get(configNameByDataName);\r\n } /*else if (!environment.production) {\r\n console.warn(\"No configuration object was found by the name of: \", configName, \" or dataname \", configNameByDataName);\r\n }*/\r\n }\r\n\r\n return configuration;\r\n }\r\n\r\n public setObjectConfigurationFor(configName: string, configObject: ObjectConfiguration): void {\r\n this._objectConfigsMap.set(configName, configObject);\r\n }\r\n\r\n // Whether the user may read the component that's associated with given config object (visibility).\r\n public mayRead(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.mayRead() : false;\r\n }\r\n\r\n public isReadonly(configName: string): boolean {\r\n return !this.mayWrite(configName);\r\n }\r\n\r\n // Whether the user may write onto the component that's associated with given config object.\r\n public mayWrite(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.mayWrite() : false;\r\n }\r\n\r\n // Whether the component associated with given config object should, from the start, be visible to the user.\r\n public immediatelyVisible(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.immediatelyVisible() : false;\r\n }\r\n\r\n // Whether the component associated with given config object should, from the start, be visible to the user.\r\n public immediatelyHidden(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.immediatelyHidden() : false;\r\n }\r\n\r\n public noRights(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.noRights() : false;\r\n }\r\n\r\n public isHidden(configName: string): boolean {\r\n return !this.immediatelyVisible(configName);\r\n }\r\n\r\n public isRequired(configName: string): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? !objectConfig.nullable : false;\r\n }\r\n\r\n public getDefaultValue(configName: string): ObjectConfigurationDefaultValueType {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.getDefaultValue() : undefined;\r\n }\r\n\r\n public getDefaultStringValue(configName: string): string {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.getDefaultStringValue() : undefined;\r\n }\r\n\r\n public getDefaultNumberValue(configName: string): number {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.getDefaultNumberValue() : undefined;\r\n }\r\n\r\n public getMaxLength(configName: string): number {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.maxLength : undefined;\r\n }\r\n\r\n public getDecimals(configName: string): number {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.scale : undefined;\r\n }\r\n\r\n public hasConfigObjects(): boolean {\r\n return this._configObjects && this._configObjects.length > 0 && this._objectConfigsMap.size > 0;\r\n }\r\n\r\n public isKind(configName: string, kind: ObjectConfigKind): boolean {\r\n const objectConfig: ObjectConfiguration = this._objectConfigsMap.get(configName);\r\n return objectConfig ? objectConfig.isKind(kind) : false;\r\n }\r\n\r\n public isDataNameHiddenByItselfOrAnyOfItsParentRubrics(dataName: string): boolean {\r\n const isHiddenItself: boolean = ArrayUtils.ContainsAnElementFoundBy(this._configObjects, ((item: ObjectConfiguration) => {\r\n return item.dataName === dataName && item.isHidden();\r\n }));\r\n if (isHiddenItself) {\r\n return true;\r\n } else {\r\n return this.isDataNameHiddenByAnyOfItsParentRubrics(dataName);\r\n }\r\n }\r\n\r\n // needs to be implemented by descendants\r\n protected abstract loadConfigForModule(params: string[], insertRights?: boolean): Promise<ObjectConfiguration[]>;\r\n\r\n private isDataNameHiddenByAnyOfItsParentRubrics(dataName: string): boolean {\r\n // if (this._hardCodedConfigStructure) {\r\n // const parentConfigNames: string[] = this._hardCodedConfigStructure.getParentConfigNamesOfFieldConfigName(this._getConfigNameByDataName(dataName));\r\n // if (parentConfigNames) {\r\n // for (let i: number = 0, len: number = parentConfigNames.length; i < len; i++) {\r\n // const parentConfigObj: ObjectConfiguration = this.getObjectConfigurationFor(parentConfigNames[i]);\r\n // if (parentConfigObj && parentConfigObj.isHidden()) {\r\n // return true;\r\n // }\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n return false;\r\n }\r\n\r\n // return the first found config name for given data name\r\n private _getConfigNameByDataName(dataName: string): string {\r\n const itsConfigObject: ObjectConfiguration = this._getConfigObjectByDataName(dataName);\r\n if (itsConfigObject) {\r\n return itsConfigObject.configName;\r\n }\r\n }\r\n\r\n // return the first found config object with given data name\r\n private _getConfigObjectByDataName(dataName: string): ObjectConfiguration {\r\n return ArrayUtils.Find(this._configObjects, (cfgObj: ObjectConfiguration) => {\r\n return cfgObj.dataName === dataName;\r\n });\r\n }\r\n\r\n // PRE: this.configObjects is loaded. POST: this._objectConfigsMap contains the latest map of configName -> to -> ObjectConfiguration for a live screen module.\r\n private _buildScreenConfigMap(): void {\r\n this._objectConfigsMap.clear();\r\n this.configObjects.forEach(item => this._objectConfigsMap.set(item.configName, item));\r\n }\r\n\r\n public setScreenConfigurationObjectsReadOnly(value: boolean): void {\r\n this.configObjects.forEach((object: ObjectConfiguration) => {\r\n const copy: ObjectConfiguration = Object.assign(new ObjectConfiguration(), object);\r\n copy.variableReadOnly = value;\r\n this.setObjectConfigurationFor(object.configName, copy);\r\n });\r\n }\r\n\r\n public setScreenConfigurationObjectsRedErrorBackground(errorValidation: ValidationResult, setAllFalse: boolean = false): void {\r\n if (setAllFalse) {\r\n this.configObjects.forEach((object: ObjectConfiguration) => {\r\n const copy: ObjectConfiguration = Object.assign(new ObjectConfiguration(), object);\r\n copy.redErrorBackground = false;\r\n this.setObjectConfigurationFor(object.configName, copy);\r\n });\r\n } else if (errorValidation) {\r\n const errorMessages: ValidationMessage[] = errorValidation.getAllErrorMessagesOfMyValidationFields();\r\n for (let i: number = 0, len: number = errorMessages.length; i < len; i++) {\r\n const errorMsg: ValidationMessage = errorMessages[i];\r\n const configObject: ObjectConfiguration = this.configObjects.find(object => object.configName === errorMsg.fieldId);\r\n if (configObject) {\r\n const copy: ObjectConfiguration = Object.assign(new ObjectConfiguration(), configObject);\r\n copy.redErrorBackground = false;\r\n this.setObjectConfigurationFor(configObject.configName, copy);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject, Subscription} from 'rxjs';\r\nimport {ValidationResult} from '@colijnit/ioneconnector/build/model/validation-result';\r\nimport {BaseModuleScreenConfigService} from './base-module-screen-config.service';\r\n\r\n/**\r\n * Base class for top-level services of CRUD-style iOne modules (the Relation, Article and Transaction modules).\r\n * What sets these modules apart, is the concept of a relatively bulky, 'single businessobject' being manipulated throughout all the tabs.\r\n *\r\n * Many other (smaller?) iOne modules work with multiple LISTS of different business object types instead.\r\n */\r\n@Injectable()\r\nexport abstract class BaseModuleService implements OnDestroy {\r\n public readonly readonlyChange: Subject<boolean> = new Subject<boolean>();\r\n // Emits this each time a new error validation was received. (there will be zero error tooltips on the screen after this fires)\r\n public readonly errorValidationReceived: Subject<ValidationResult> = new Subject<ValidationResult>();\r\n // Emits once after succesful BO update (i.e. there were no errors)\r\n public readonly successfulUpdate: Subject<void> = new Subject<void>();\r\n\r\n // Whether the module is in readonly modus or not. Input fields etc. will be readonly throughout the module.\r\n public get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n\r\n public set readonly(readonly: boolean) {\r\n if (this._readonly !== readonly) {\r\n this._readonly = readonly;\r\n this.readonlyChange.next(this._readonly);\r\n }\r\n }\r\n\r\n protected _readonly: boolean = true;\r\n\r\n private _subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n protected screenConfigService: BaseModuleScreenConfigService\r\n ) {\r\n this._subscriptions.push(\r\n this.errorValidationReceived.subscribe((errorValidation: ValidationResult) => this.screenConfigService.setScreenConfigurationObjectsRedErrorBackground(errorValidation)),\r\n this.successfulUpdate.subscribe(() => this.screenConfigService.setScreenConfigurationObjectsRedErrorBackground(null, true)),\r\n this.readonlyChange.subscribe((readOnly: boolean) => this.screenConfigService.setScreenConfigurationObjectsReadOnly(readOnly))\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subscriptions.forEach((subscription: Subscription) => subscription.unsubscribe());\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, Inject, Input, OnDestroy, Renderer2} from '@angular/core';\r\nimport {InputBoolean} from '../../core/decorator/input-boolean.decorator';\r\nimport {ScreenConfigAdapterComponent} from '../../interfaces/screen-config-adapter.component.interface';\r\nimport {SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME} from '../../interfaces/screen-config-adapter-component-interface-name';\r\nimport {Subscription} from 'rxjs';\r\nimport {BaseModuleScreenConfigService} from '../../service/base-module-screen-config.service';\r\nimport {BaseModuleService} from '../../service/base-module.service';\r\nimport {ValidationResult} from '@colijnit/ioneconnector/build/model/validation-result';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\nimport {ObjectConfiguration} from '@colijnit/ioneconnector/build/model/object-configuration';\r\n\r\n// Directive to represents the marker of \"screen config name ID's\" of components within a module.\r\n// Manipulates visibility, readonly and other dynamic states of an input element according to its db-fetched screen configuration object.\r\n@Directive({\r\n selector: '[screenConfigurationObject]'\r\n})\r\nexport class ScreenConfigurationDirective implements OnDestroy {\r\n @Input('screenConfigurationObject')\r\n public set screenConfigurationObject(value: string) {\r\n if (value) {\r\n this._screenConfigurationObject = value;\r\n this._updateHost();\r\n }\r\n }\r\n\r\n public get screenConfigurationObject(): string {\r\n return this._screenConfigurationObject;\r\n }\r\n\r\n @Input()\r\n public dataName: string;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public screenConfigNativeElement: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public noModuleService: boolean = false;\r\n\r\n private _isHeader: boolean;\r\n\r\n private _screenConfigurationObject: string;\r\n\r\n // feature toggle for devs so you can see the whole screen with all inputs etc by temporarily turning off the hiding effects of this directive on its host\r\n private _isTurnedOff: boolean = false;\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n @Inject(SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME)\r\n public hostComponent: ScreenConfigAdapterComponent,\r\n private _element: ElementRef,\r\n // we must always have a config service to fetch config objects with\r\n private _configService: BaseModuleScreenConfigService,\r\n private _renderer: Renderer2,\r\n // to make host readonly when MODULE switches to readonly:\r\n private _moduleService?: BaseModuleService\r\n ) {\r\n this._subs.push(this._configService.configSet.subscribe((configObjects: string[]) => {\r\n if (configObjects && configObjects.length > 0) {\r\n this._updateHost();\r\n }\r\n }));\r\n\r\n if (this._moduleService && !this.noModuleService) {\r\n this._subs.push(\r\n this._moduleService.readonlyChange.subscribe((moduleInReadonlyState: boolean) => {\r\n if (this.hostComponent) {\r\n this.hostComponent.readonly = this.hostComponent.forceReadonly || moduleInReadonlyState;\r\n }\r\n }),\r\n this._moduleService.errorValidationReceived.subscribe((validationResult: any) => {\r\n this._setErrorRedBackgroundAfterScrCfgValidate(validationResult);\r\n }),\r\n this._moduleService.successfulUpdate.subscribe(() => {\r\n if (this.hostComponent) {\r\n this.hostComponent.redErrorBackground = false;\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._updateHost();\r\n\r\n // this._updateHeaderStateOnHostComponent(true);\r\n\r\n // show initial error message if any\r\n if (!this.noModuleService) {\r\n // this._setErrorRedBackgroundAfterScrCfgValidate(this._moduleService.lastError);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(sub => sub.unsubscribe());\r\n if (this._isHeader) {\r\n // this._doubleClickHeaders.handleCollapseableDestroy(this.screenConfigurationObject);\r\n }\r\n this._element = undefined;\r\n this.hostComponent = undefined;\r\n }\r\n\r\n // Sets host component visibility, required, readonly etc. if specified in backend screen config OR module readonly status.\r\n private _updateHost(): void {\r\n if (this._mayUpdateHost() || this.screenConfigNativeElement) {\r\n if (!this.screenConfigNativeElement) {\r\n this.hostComponent.objectConfigName = this.screenConfigurationObject;\r\n }\r\n const myCfgObj: ObjectConfiguration = this._configService.getObjectConfigurationFor(this.screenConfigurationObject);\r\n if (myCfgObj) {\r\n this._setHostVisible(myCfgObj.immediatelyVisible());\r\n // if (this.hostComponent instanceof GridColumnComponent) {\r\n // this.hostComponent.rights = myCfgObj.rights;\r\n // }\r\n if (!this.screenConfigNativeElement) {\r\n this.hostComponent.required = myCfgObj.isRequired();\r\n this.hostComponent.readonly = this.hostComponent.forceReadonly || this._moduleInReadonlyMode() || myCfgObj.isReadonly();\r\n this.hostComponent.decimals = myCfgObj.scale;\r\n this.hostComponent.maxLength = myCfgObj.maxLength;\r\n }\r\n } else {\r\n this._setHostVisible(false);\r\n if (!this.screenConfigNativeElement) {\r\n this.hostComponent.readonly = this._moduleInReadonlyMode();\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Spawn error message tooltip onto our host comp, if any error was meant for the host (found by screenConfigurationObject);\r\n * @param errorValidation A top-level full validation result, either from the backend or from some client-side validation error.\r\n */\r\n private _setErrorRedBackgroundAfterScrCfgValidate(errorValidation: ValidationResult): void {\r\n if (this.hostComponent && errorValidation) {\r\n const errorMessages: ValidationMessage[] = errorValidation.getAllErrorMessagesOfMyValidationFields();\r\n for (let i: number = 0, len: number = errorMessages.length; i < len; i++) {\r\n const errorMsg: ValidationMessage = errorMessages[i];\r\n const configName: string = this.dataName ? this.dataName : this.screenConfigurationObject;\r\n if (errorMsg.fieldId === configName && this._element /*&& this._properHost(errorMsg.boId)*/) {\r\n this.hostComponent.redErrorBackground = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _moduleInReadonlyMode(): boolean {\r\n return !this.noModuleService ? (this._moduleService ? this._moduleService.readonly : false) : false;\r\n }\r\n\r\n private _mayUpdateHost(): boolean {\r\n return !!this.hostComponent && !this._isTurnedOff && !!this.screenConfigurationObject;\r\n }\r\n\r\n private _setHostVisible(visible: boolean): void {\r\n if (!this.screenConfigNativeElement) {\r\n this.hostComponent.hidden = !visible;\r\n } else {\r\n if (this._element && this._element.nativeElement) {\r\n if (!visible) {\r\n this._renderer.addClass(this._element.nativeElement, 'hidden');\r\n } else {\r\n this._renderer.removeClass(this._element.nativeElement, 'hidden');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {ScreenConfigurationDirective} from './screen-configuration.directive';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n ScreenConfigurationDirective\n ],\n exports: [\n ScreenConfigurationDirective,\n ]\n})\nexport class ScreenConfigurationModule { }\n","import {Directive, Input, OnChanges, OnDestroy, SimpleChange, SimpleChanges, TemplateRef, ViewContainerRef, ViewRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[templateWrapper]'\r\n})\r\nexport class TemplateWrapperDirective implements OnDestroy, OnChanges {\r\n @Input()\r\n public templateWrapper: TemplateRef<any> | null = null;\r\n\r\n @Input()\r\n public templateWrapperContext: Object | null = null;\r\n\r\n private _viewRef: ViewRef;\r\n\r\n constructor(protected viewContainer: ViewContainerRef) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const recreateView: boolean = this._shouldRecreateView(changes);\r\n\r\n if (recreateView) {\r\n if (this._viewRef) {\r\n this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));\r\n }\r\n\r\n if (this.templateWrapper) {\r\n this._viewRef = this.viewContainer.createEmbeddedView(\r\n this.templateWrapper, this.templateWrapperContext);\r\n }\r\n } else {\r\n if (this._viewRef && this.templateWrapperContext) {\r\n this._updateExistingContext(this.templateWrapperContext);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._viewRef) {\r\n this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));\r\n this._viewRef = undefined;\r\n }\r\n this.templateWrapper = undefined;\r\n }\r\n\r\n private _shouldRecreateView(changes: SimpleChanges): boolean {\r\n const ctxChange: any = changes['templateWrapperContext'];\r\n return !!changes['templateWrapper'] || (ctxChange && this._hasContextShapeChanged(ctxChange));\r\n }\r\n\r\n private _hasContextShapeChanged(ctxChange: SimpleChange): boolean {\r\n const prevCtxKeys: any = Object.keys(ctxChange.previousValue || {});\r\n const currCtxKeys: any = Object.keys(ctxChange.currentValue || {});\r\n\r\n if (prevCtxKeys.length === currCtxKeys.length) {\r\n for (const propName of currCtxKeys) {\r\n if (prevCtxKeys.indexOf(propName) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n private _updateExistingContext(ctx: Object): void {\r\n for (const propName of Object.keys(ctx)) {\r\n (<any>this._viewRef).context[propName] = (<any>this.templateWrapperContext)[propName];\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {TemplateWrapperDirective} from \"./template-wrapper.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n TemplateWrapperDirective\r\n ],\r\n exports: [\r\n TemplateWrapperDirective\r\n ]\r\n})\r\nexport class TemplateWrapperModule {\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ColorSequenceService {\r\n\r\n public colors: Map<number, string> = new Map<number, string>();\r\n\r\n public getRandomColor(id: number): string {\r\n if (this.colors.has(id)) {\r\n return this.colors.get(id);\r\n }\r\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\r\n const result: string = '#' + randomColor;\r\n this.colors.set(id, result);\r\n return result;\r\n }\r\n\r\n}\r\n","/*\n * Public API Surface of corecomponents\n */\n\nexport * from './lib/components/base/base-input.component';\nexport * from './lib/components/article-tile/article-tile.module';\nexport * from './lib/components/article-tile/article-tile.component';\nexport * from './lib/components/button/button.module';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/card/card.module';\nexport * from './lib/components/carousel-3d/carousel-3d.component';\nexport * from './lib/components/carousel-3d/carousel-3d.module';\nexport * from './lib/components/carousel/carousel.component';\nexport * from './lib/components/carousel/carousel.module';\nexport * from './lib/components/co-dialog/co-dialog.module';\nexport * from './lib/components/co-dialog/co-dialog.component';\nexport * from './lib/components/co-dialog-wizard/co-dialog-wizard.module';\nexport * from './lib/components/co-dialog-wizard/co-dialog-wizard.component';\nexport * from './lib/components/collapsible/collapsible.module';\nexport * from './lib/components/collapsible/collapsible.component';\nexport * from './lib/components/form/form.module';\nexport * from './lib/components/form/form.component';\nexport * from './lib/core/service/form-master.service';\nexport * from './lib/components/grid-toolbar/grid-toolbar.component';\nexport * from './lib/components/grid-toolbar/grid-toolbar.module';\nexport * from './lib/components/grid-toolbar-button/grid-toolbar-button.component';\nexport * from './lib/components/grid-toolbar-button/grid-toolbar-button.module';\nexport * from './lib/components/icon/icon.module';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/icon-collapse-handle/icon-collapse-handle.module';\nexport * from './lib/components/icon-collapse-handle/icon-collapse-handle.component';\nexport * from './lib/core/enum/co-direction';\nexport * from './lib/core/enum/co-orientation';\nexport * from './lib/core/enum/filterItem-mode.enum';\nexport * from './lib/components/image/image.module';\nexport * from './lib/components/image/image.component';\nexport * from './lib/components/input-checkbox/input-checkbox.module';\nexport * from './lib/components/input-checkbox/input-checkbox.component';\nexport * from './lib/components/input-date-picker/input-date-picker.module';\nexport * from './lib/components/input-date-picker/input-date-picker.component';\nexport * from './lib/components/calendar/calendar.module';\nexport * from './lib/components/calendar/calendar.component';\nexport * from './lib/components/double-calendar/double-calendar.module';\nexport * from './lib/components/double-calendar/double-calendar.component';\nexport * from './lib/components/input-date-range-picker/input-date-range-picker.module';\nexport * from './lib/components/input-date-range-picker/input-date-range-picker.component';\nexport * from './lib/components/base-input-date-picker/base-input-date-picker.directive';\nexport * from './lib/components/input-number-picker/input-number-picker.module';\nexport * from './lib/components/input-number-picker/input-number-picker.component';\nexport * from './lib/components/input-radio-button/input-radio-button.module';\nexport * from './lib/components/input-radio-button/input-radio-button.component';\nexport * from './lib/components/input-search/input-search.component';\nexport * from './lib/components/input-search/input-search.module';\nexport * from './lib/components/input-text/input-text.module';\nexport * from './lib/components/input-text/input-text.component';\nexport * from './lib/components/input-textarea/input-textarea.module';\nexport * from './lib/components/input-textarea/input-textarea.component';\nexport * from './lib/components/level-indicator/level-indicator.module';\nexport * from './lib/components/level-indicator/level-indicator.component';\nexport * from './lib/components/popup/popup.module';\nexport * from './lib/components/popup/text-input-popup.component';\nexport * from './lib/components/popup/popup-window-shell.component';\nexport * from './lib/components/popup/popup-message-display.component';\nexport * from './lib/components/popup/popup-buttons.component';\nexport * from './lib/components/popup/service/prompt.service';\nexport * from './lib/components/popup/popup-buttons.component';\nexport * from './lib/components/simple-grid/simple-grid-column.directive';\nexport * from './lib/components/simple-grid/simple-grid.component';\nexport * from './lib/components/simple-grid/simple-grid.module';\nexport * from './lib/components/tile/tile.module';\nexport * from './lib/components/tile/tile.component';\nexport * from './lib/core/enum/core-components-icon.enum';\nexport * from './lib/components/icon/icon-cache.service';\nexport * from './lib/components/view-mode-buttons/view-mode-buttons.component';\nexport * from './lib/components/view-mode-buttons/view-mode-buttons.module';\nexport * from './lib/components/view-mode-buttons/content-view-mode.enum';\nexport * from './lib/components/list-of-values/list-of-values.component';\nexport * from './lib/components/list-of-values/list-of-values-popup.component';\nexport * from './lib/components/list-of-values/list-of-values.module';\nexport * from './lib/components/responsive-text/responsive-text.component';\nexport * from './lib/components/responsive-text/responsive-text.module';\nexport * from './lib/components/color-picker/color-picker.component';\nexport * from './lib/components/color-picker/color-picker.module';\nexport * from './lib/components/core-dialog/core-dialog.module';\nexport * from './lib/components/core-dialog/core-dialog.service';\nexport * from './lib/components/filter-item/filter-item.component';\nexport * from './lib/components/filter-item/filter-item.module';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/pagination/pagination.module';\nexport * from './lib/components/pagination-bar/pagination-bar.component';\nexport * from './lib/components/pagination-bar/pagination-bar.module';\nexport * from './lib/components/checkmark-overlay/checkmark-overlay.module';\nexport * from './lib/components/filter-item/filter-item-viewmodel';\nexport * from './lib/components/filter-item/filter-viewmodel';\nexport * from './lib/components/input-scanner/input-scanner.component';\nexport * from './lib/components/input-scanner/input-scanner.module';\nexport * from './lib/components/loader/loader.module';\nexport * from './lib/components/loader/loader.component';\nexport * from './lib/components/tile-select/tile-select.module';\nexport * from './lib/components/tile-select/tile-select.component';\n\nexport * from './lib/pipes/price-display.pipe';\nexport * from './lib/pipes/price-display-pipe.module';\nexport * from './lib/pipes/filter.pipe';\nexport * from './lib/pipes/filter.pipe.module';\n\nexport * from './lib/core/validator/equal.validator';\nexport * from './lib/core/validator/password.validator';\nexport * from './lib/core/validator/email.validator';\nexport * from './lib/core/validator/required.validator';\nexport * from './lib/core/validator/precision-scale.validator';\nexport * from './lib/core/validator/max-string-length.validator';\n\nexport * from \"./lib/core/service/form-input-user-change-listener.service\";\nexport * from \"./lib/core/service/ng-zone-wrapper.service\";\n\nexport * from './lib/directives/clickoutside/clickoutside.module';\nexport * from './lib/directives/observe-visibility/observe-visibility.module';\nexport * from './lib/directives/overlay/overlay.module';\nexport * from './lib/directives/tooltip/tooltip-directive.module';\nexport * from './lib/directives/screen-configuration/screen-configuration.module';\nexport * from './lib/directives/screen-configuration/screen-configuration.directive';\nexport * from './lib/directives/template-wrapper/template-wrapper.directive';\nexport * from './lib/directives/template-wrapper/template-wrapper.module';\n\nexport * from './lib/interfaces/screen-config-adapter-component-interface-name';\nexport * from './lib/interfaces/screen-config-adapter.component.interface';\nexport * from './lib/interfaces/dialog-response.interface';\n\nexport * from './lib/service/color-sequence.service';\nexport * from './lib/service/overlay.service';\nexport * from './lib/service/base-module-screen-config.service';\nexport * from './lib/service/base-module.service';\n\nexport * from './lib/translation/core-components-translation.module';\nexport * from './lib/translation/core-components-translation.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BaseModule as ɵj} from './lib/components/base/base.module';\nexport {CommitButtonsComponent as ɵt} from './lib/components/base/commit-buttons/commit-buttons.component';\nexport {CommitButtonsModule as ɵs} from './lib/components/base/commit-buttons/commit-buttons.module';\nexport {DialogBaseComponent as ɵbf} from './lib/components/base/dialog-base.component';\nexport {CalendarTemplateComponent as ɵw} from './lib/components/calendar/calendar-template.component';\nexport {CheckmarkOverlayComponent as ɵbj} from './lib/components/checkmark-overlay/checkmark-overlay.component';\nexport {ConfirmationDialogComponent as ɵbe} from './lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component';\nexport {CoreDynamicComponentService as ɵbg} from './lib/components/core-dialog/core-dynamic-component.service';\nexport {ScannerService as ɵbk} from './lib/components/input-scanner/scanner.service';\nexport {ListOfValuesMultiselectPopupComponent as ɵbd} from './lib/components/list-of-values/list-of-values-multiselect-popup.component';\nexport {PaginatePipe as ɵbb} from './lib/components/pagination/paginate.pipe';\nexport {PaginationService as ɵba} from './lib/components/pagination/pagination.service';\nexport {PopupShowerService as ɵx} from './lib/components/popup/service/popup-shower.service';\nexport {BaseSimpleGridComponent as ɵy} from './lib/components/simple-grid/base-simple-grid.component';\nexport {SimpleGridCellComponent as ɵbc} from './lib/components/simple-grid/simple-grid-cell.component';\nexport {TooltipComponent as ɵbm} from './lib/components/tooltip/tooltip.component';\nexport {TooltipModule as ɵbl} from './lib/components/tooltip/tooltip.module';\nexport {ValidationErrorComponent as ɵr} from './lib/components/validation-error/validation-error.component';\nexport {ValidationErrorModule as ɵm} from './lib/components/validation-error/validation-error.module';\nexport {InputBoolean as ɵa} from './lib/core/decorator/input-boolean.decorator';\nexport {ClickOutsideMasterService as ɵv} from './lib/directives/clickoutside/click-outside-master.service';\nexport {ClickOutsideDirective as ɵu} from './lib/directives/clickoutside/click-outside.directive';\nexport {ObserveVisibilityDirective as ɵz} from './lib/directives/observe-visibility/observe-visibility.directive';\nexport {OverlayParentDirective as ɵo} from './lib/directives/overlay/overlay-parent.directive';\nexport {OverlayDirective as ɵn} from './lib/directives/overlay/overlay.directive';\nexport {CoRippleDirective as ɵd,MD_RIPPLE_GLOBAL_OPTIONS as ɵc} from './lib/directives/ripple/ripple.directive';\nexport {RippleModule as ɵb} from './lib/directives/ripple/ripple.module';\nexport {CoScrollDispatcherService as ɵf} from './lib/directives/ripple/scroll-dispatcher.service';\nexport {CoScrollableDirective as ɵg} from './lib/directives/ripple/scrollable.directive';\nexport {CoViewportRulerService as ɵe} from './lib/directives/ripple/viewport-ruler.service';\nexport {StopClickDirective as ɵi} from './lib/directives/stopclick/stop-click.directive';\nexport {StopClickModule as ɵh} from './lib/directives/stopclick/stop-click.module';\nexport {TooltipDirective as ɵbn} from './lib/directives/tooltip/tooltip.directive';\nexport {AppendPipe as ɵl} from './lib/pipes/append.pipe';\nexport {AppendPipeModule as ɵk} from './lib/pipes/append.pipe.module';\nexport {PrependPipe as ɵbi} from './lib/pipes/prepend.pipe';\nexport {PrependPipeModule as ɵbh} from './lib/pipes/prepend.pipe.module';\nexport {CoreDictionaryService as ɵq} from './lib/translation/core-dictionary.service';\nexport {CoreLocalizePipe as ɵp} from './lib/translation/core-localize.pipe';"],"names":["ArrayUtils"],"mappings":"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AAA,MAAS,CAAA;AACT,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAAM,C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"}