@festo-ui/angular 3.1.0 → 3.2.1-pre-20220624.2

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 (292) hide show
  1. package/README.md +5 -1
  2. package/css/bundle.css +1 -0
  3. package/css/image-gallery.css +1 -0
  4. package/css/popover.css +1 -0
  5. package/esm2020/festo-ui-angular.mjs +5 -0
  6. package/esm2020/index.mjs +20 -0
  7. package/esm2020/lib/components/accordion/accordion-header/accordion-header.component.mjs +11 -0
  8. package/esm2020/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +15 -0
  9. package/esm2020/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +28 -0
  10. package/esm2020/lib/components/accordion/accordion-item/accordion-item.component.mjs +143 -0
  11. package/esm2020/lib/components/accordion/accordion.component.mjs +59 -0
  12. package/esm2020/lib/components/accordion/index.mjs +6 -0
  13. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +23 -0
  14. package/esm2020/lib/components/buttons/button/button.component.mjs +41 -0
  15. package/esm2020/lib/components/buttons/link-button/link-button.component.mjs +33 -0
  16. package/esm2020/lib/components/chips/chip/chip.component.mjs +37 -0
  17. package/esm2020/lib/components/chips/chip-container/chip-container.component.mjs +16 -0
  18. package/esm2020/lib/components/click-outside.directive.mjs +28 -0
  19. package/esm2020/lib/components/components.module.mjs +223 -0
  20. package/esm2020/lib/components/image-gallery/image-gallery.component.mjs +58 -0
  21. package/esm2020/lib/components/image-gallery/image-gallery.module.mjs +21 -0
  22. package/esm2020/lib/components/loading-indicator/loading-indicator.component.mjs +16 -0
  23. package/esm2020/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +38 -0
  24. package/esm2020/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +64 -0
  25. package/esm2020/lib/components/mobile-flyout/mobile-flyout.component.mjs +68 -0
  26. package/esm2020/lib/components/modals/alert/alert.component.mjs +52 -0
  27. package/esm2020/lib/components/modals/confirm/confirm.component.mjs +53 -0
  28. package/esm2020/lib/components/modals/custom-modal/custom-modal.component.mjs +70 -0
  29. package/esm2020/lib/components/modals/index.mjs +2 -0
  30. package/esm2020/lib/components/modals/modal.service.mjs +121 -0
  31. package/esm2020/lib/components/modals/modals.module.mjs +31 -0
  32. package/esm2020/lib/components/modals/prompt/prompt.component.mjs +102 -0
  33. package/esm2020/lib/components/pagination/pagination.component.mjs +55 -0
  34. package/esm2020/lib/components/popovers/legend/legend.component.mjs +42 -0
  35. package/esm2020/lib/components/popovers/legend/legend.directive.mjs +31 -0
  36. package/esm2020/lib/components/popovers/popover/popover.component.mjs +31 -0
  37. package/esm2020/lib/components/popovers/popover-content/popover-content.component.mjs +82 -0
  38. package/esm2020/lib/components/popovers/popover-content/popover-content.directive.mjs +39 -0
  39. package/esm2020/lib/components/popovers/popover-menu/popover-menu.component.mjs +68 -0
  40. package/esm2020/lib/components/popovers/popover-ref.mjs +25 -0
  41. package/esm2020/lib/components/popovers/popover.defaults.mjs +60 -0
  42. package/esm2020/lib/components/popovers/popover.models.mjs +23 -0
  43. package/esm2020/lib/components/popovers/popover.service.mjs +123 -0
  44. package/esm2020/lib/components/popovers/tooltip/tooltip.directive.mjs +100 -0
  45. package/esm2020/lib/components/progress/progress.component.mjs +20 -0
  46. package/esm2020/lib/components/scroll/index.mjs +2 -0
  47. package/esm2020/lib/components/scroll/scrollable.directive.mjs +72 -0
  48. package/esm2020/lib/components/search-input/safe-html.pipe.mjs +21 -0
  49. package/esm2020/lib/components/search-input/search-input.component.mjs +172 -0
  50. package/esm2020/lib/components/snackbar/snackbar-container.component.mjs +21 -0
  51. package/esm2020/lib/components/snackbar/snackbar-container.directive.mjs +83 -0
  52. package/esm2020/lib/components/snackbar/snackbar.component.mjs +79 -0
  53. package/esm2020/lib/components/snackbar/snackbar.models.mjs +2 -0
  54. package/esm2020/lib/components/snackbar/snackbar.module.mjs +26 -0
  55. package/esm2020/lib/components/snackbar/snackbar.service.mjs +23 -0
  56. package/esm2020/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +19 -0
  57. package/esm2020/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +51 -0
  58. package/esm2020/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +56 -0
  59. package/esm2020/lib/components/stepper-vertical/stepper-vertical.component.mjs +54 -0
  60. package/esm2020/lib/components/table-header-cell/table-header-cell.directive.mjs +58 -0
  61. package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +31 -0
  62. package/esm2020/lib/components/tabs/tabs.component.mjs +353 -0
  63. package/esm2020/lib/content/content.module.mjs +20 -0
  64. package/esm2020/lib/content/icon/icon.component.mjs +17 -0
  65. package/esm2020/lib/festo-angular.module.mjs +65 -0
  66. package/esm2020/lib/forms/checkbox/checkbox.component.mjs +149 -0
  67. package/esm2020/lib/forms/color-indicator/color-indicator.component.mjs +68 -0
  68. package/esm2020/lib/forms/color-picker/color-helper.mjs +121 -0
  69. package/esm2020/lib/forms/color-picker/color-picker.component.mjs +273 -0
  70. package/esm2020/lib/forms/container-host.mjs +27 -0
  71. package/esm2020/lib/forms/date-picker/date-picker.component.mjs +199 -0
  72. package/esm2020/lib/forms/date-range-picker/date-range-picker.component.mjs +224 -0
  73. package/esm2020/lib/forms/forms.module.mjs +146 -0
  74. package/esm2020/lib/forms/radio/radio.component.mjs +346 -0
  75. package/esm2020/lib/forms/segment/segment-control/segment-control.component.mjs +57 -0
  76. package/esm2020/lib/forms/segment/segment.component.mjs +109 -0
  77. package/esm2020/lib/forms/select/chip-text.pipe.mjs +34 -0
  78. package/esm2020/lib/forms/select/select-option/select-option.component.mjs +22 -0
  79. package/esm2020/lib/forms/select/select.component.mjs +257 -0
  80. package/esm2020/lib/forms/slider/slider.component.mjs +110 -0
  81. package/esm2020/lib/forms/switch/switch.component.mjs +120 -0
  82. package/esm2020/lib/forms/text-area/text-area.component.mjs +180 -0
  83. package/esm2020/lib/forms/text-editor/text-editor.component.mjs +286 -0
  84. package/esm2020/lib/forms/text-input/text-input.component.mjs +183 -0
  85. package/esm2020/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +89 -0
  86. package/esm2020/lib/forms/time-picker/time-picker.component.mjs +188 -0
  87. package/esm2020/lib/forms/unique-selection-dispatcher.mjs +39 -0
  88. package/esm2020/lib/forms/value-accessor-base.mjs +41 -0
  89. package/esm2020/lib/layout/layout.module.mjs +18 -0
  90. package/esm2020/lib/wrappers/flatpickr/flatpickr.component.mjs +59 -0
  91. package/fesm2015/festo-ui-angular.mjs +6172 -0
  92. package/fesm2015/festo-ui-angular.mjs.map +1 -0
  93. package/fesm2020/festo-ui-angular.mjs +6154 -0
  94. package/fesm2020/festo-ui-angular.mjs.map +1 -0
  95. package/index.d.ts +1 -0
  96. package/lib/components/accordion/accordion-header/accordion-header.component.d.ts +5 -0
  97. package/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.d.ts +6 -0
  98. package/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.d.ts +15 -0
  99. package/lib/components/accordion/accordion-item/accordion-item.component.d.ts +34 -0
  100. package/lib/components/accordion/accordion.component.d.ts +24 -0
  101. package/lib/components/accordion/index.d.ts +5 -0
  102. package/lib/components/components.module.d.ts +40 -20
  103. package/lib/components/image-gallery/image-gallery.component.d.ts +33 -0
  104. package/lib/components/image-gallery/image-gallery.module.d.ts +10 -0
  105. package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +15 -0
  106. package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +19 -0
  107. package/lib/components/mobile-flyout/mobile-flyout.component.d.ts +17 -0
  108. package/lib/components/modals/confirm/confirm.component.d.ts +1 -3
  109. package/lib/components/modals/custom-modal/custom-modal.component.d.ts +21 -0
  110. package/lib/components/modals/modal.service.d.ts +2 -0
  111. package/lib/components/modals/modals.module.d.ts +8 -5
  112. package/lib/components/popovers/tooltip/tooltip.directive.d.ts +5 -3
  113. package/lib/components/search-input/safe-html.pipe.d.ts +10 -0
  114. package/lib/components/search-input/search-input.component.d.ts +22 -5
  115. package/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.d.ts +7 -0
  116. package/lib/components/stepper-horizontal/stepper-horizontal.component.d.ts +14 -0
  117. package/lib/components/stepper-vertical/step-vertical/step-vertical.component.d.ts +18 -0
  118. package/lib/components/stepper-vertical/stepper-vertical.component.d.ts +14 -0
  119. package/lib/festo-angular.module.d.ts +2 -1
  120. package/package.json +41 -19
  121. package/scss/base/components/accordion/accordion-header/accordion-header.component.scss +12 -0
  122. package/scss/base/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.scss +109 -0
  123. package/scss/base/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.scss +9 -0
  124. package/scss/base/components/accordion/accordion-item/accordion-item.component.scss +71 -0
  125. package/scss/base/components/accordion/accordion.component.scss +6 -0
  126. package/scss/base/components/breadcrumb/breadcrumb.component.scss +0 -1
  127. package/scss/base/components/buttons/button/button.component.scss +5 -3
  128. package/scss/base/components/image-gallery/image-gallery.component.scss +0 -0
  129. package/scss/base/components/image-gallery/styles.scss +5 -0
  130. package/scss/base/components/modals/prompt/prompt.component.scss +0 -1
  131. package/scss/base/components/popovers/legend/legend.component.scss +2 -2
  132. package/scss/base/components/popovers/popover/styles.scss +2 -3
  133. package/scss/base/components/popovers/popover-content/popover-content.component.scss +1 -1
  134. package/scss/base/components/scroll/scroll-story-helper.scss +1 -3
  135. package/scss/base/components/search-input/search-input.component.scss +4 -0
  136. package/scss/base/components/snackbar/snackbar.component.scss +1 -1
  137. package/scss/base/components/stepper-horizontal/step-horizontal/step-horizontal.component.scss +23 -0
  138. package/scss/base/components/stepper-vertical/step-vertical/step-vertical.component.scss +6 -0
  139. package/scss/base/forms/color-indicator/color-indicator.component.scss +1 -1
  140. package/scss/base/forms/color-picker/color-picker.component.scss +15 -15
  141. package/scss/base/forms/date-picker/date-picker.component.scss +1 -1
  142. package/scss/base/forms/date-range-picker/date-range-picker.component.scss +1 -1
  143. package/scss/base/forms/text-area/text-area.component.scss +4 -4
  144. package/scss/base/forms/text-editor/text-editor.component.scss +8 -10
  145. package/scss/base/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.scss +1 -1
  146. package/bundles/festo-ui-angular.umd.js +0 -6429
  147. package/bundles/festo-ui-angular.umd.js.map +0 -1
  148. package/esm2015/festo-ui-angular.js +0 -5
  149. package/esm2015/festo-ui-angular.js.map +0 -1
  150. package/esm2015/index.js +0 -18
  151. package/esm2015/index.js.map +0 -1
  152. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -27
  153. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +0 -1
  154. package/esm2015/lib/components/buttons/button/button.component.js +0 -46
  155. package/esm2015/lib/components/buttons/button/button.component.js.map +0 -1
  156. package/esm2015/lib/components/buttons/link-button/link-button.component.js +0 -38
  157. package/esm2015/lib/components/buttons/link-button/link-button.component.js.map +0 -1
  158. package/esm2015/lib/components/chips/chip/chip.component.js +0 -42
  159. package/esm2015/lib/components/chips/chip/chip.component.js.map +0 -1
  160. package/esm2015/lib/components/chips/chip-container/chip-container.component.js +0 -21
  161. package/esm2015/lib/components/chips/chip-container/chip-container.component.js.map +0 -1
  162. package/esm2015/lib/components/click-outside.directive.js +0 -28
  163. package/esm2015/lib/components/click-outside.directive.js.map +0 -1
  164. package/esm2015/lib/components/components.module.js +0 -155
  165. package/esm2015/lib/components/components.module.js.map +0 -1
  166. package/esm2015/lib/components/loading-indicator/loading-indicator.component.js +0 -21
  167. package/esm2015/lib/components/loading-indicator/loading-indicator.component.js.map +0 -1
  168. package/esm2015/lib/components/modals/alert/alert.component.js +0 -57
  169. package/esm2015/lib/components/modals/alert/alert.component.js.map +0 -1
  170. package/esm2015/lib/components/modals/confirm/confirm.component.js +0 -73
  171. package/esm2015/lib/components/modals/confirm/confirm.component.js.map +0 -1
  172. package/esm2015/lib/components/modals/index.js +0 -2
  173. package/esm2015/lib/components/modals/index.js.map +0 -1
  174. package/esm2015/lib/components/modals/modal.service.js +0 -91
  175. package/esm2015/lib/components/modals/modal.service.js.map +0 -1
  176. package/esm2015/lib/components/modals/modals.module.js +0 -28
  177. package/esm2015/lib/components/modals/modals.module.js.map +0 -1
  178. package/esm2015/lib/components/modals/prompt/prompt.component.js +0 -110
  179. package/esm2015/lib/components/modals/prompt/prompt.component.js.map +0 -1
  180. package/esm2015/lib/components/pagination/pagination.component.js +0 -60
  181. package/esm2015/lib/components/pagination/pagination.component.js.map +0 -1
  182. package/esm2015/lib/components/popovers/legend/legend.component.js +0 -46
  183. package/esm2015/lib/components/popovers/legend/legend.component.js.map +0 -1
  184. package/esm2015/lib/components/popovers/legend/legend.directive.js +0 -31
  185. package/esm2015/lib/components/popovers/legend/legend.directive.js.map +0 -1
  186. package/esm2015/lib/components/popovers/popover/popover.component.js +0 -35
  187. package/esm2015/lib/components/popovers/popover/popover.component.js.map +0 -1
  188. package/esm2015/lib/components/popovers/popover-content/popover-content.component.js +0 -86
  189. package/esm2015/lib/components/popovers/popover-content/popover-content.component.js.map +0 -1
  190. package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js +0 -39
  191. package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js.map +0 -1
  192. package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js +0 -72
  193. package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js.map +0 -1
  194. package/esm2015/lib/components/popovers/popover-ref.js +0 -25
  195. package/esm2015/lib/components/popovers/popover-ref.js.map +0 -1
  196. package/esm2015/lib/components/popovers/popover.defaults.js +0 -60
  197. package/esm2015/lib/components/popovers/popover.defaults.js.map +0 -1
  198. package/esm2015/lib/components/popovers/popover.models.js +0 -23
  199. package/esm2015/lib/components/popovers/popover.models.js.map +0 -1
  200. package/esm2015/lib/components/popovers/popover.service.js +0 -117
  201. package/esm2015/lib/components/popovers/popover.service.js.map +0 -1
  202. package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js +0 -96
  203. package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js.map +0 -1
  204. package/esm2015/lib/components/progress/progress.component.js +0 -23
  205. package/esm2015/lib/components/progress/progress.component.js.map +0 -1
  206. package/esm2015/lib/components/scroll/index.js +0 -2
  207. package/esm2015/lib/components/scroll/index.js.map +0 -1
  208. package/esm2015/lib/components/scroll/scrollable.directive.js +0 -73
  209. package/esm2015/lib/components/scroll/scrollable.directive.js.map +0 -1
  210. package/esm2015/lib/components/search-input/search-input.component.js +0 -155
  211. package/esm2015/lib/components/search-input/search-input.component.js.map +0 -1
  212. package/esm2015/lib/components/snackbar/snackbar-container.component.js +0 -26
  213. package/esm2015/lib/components/snackbar/snackbar-container.component.js.map +0 -1
  214. package/esm2015/lib/components/snackbar/snackbar-container.directive.js +0 -83
  215. package/esm2015/lib/components/snackbar/snackbar-container.directive.js.map +0 -1
  216. package/esm2015/lib/components/snackbar/snackbar.component.js +0 -85
  217. package/esm2015/lib/components/snackbar/snackbar.component.js.map +0 -1
  218. package/esm2015/lib/components/snackbar/snackbar.models.js +0 -2
  219. package/esm2015/lib/components/snackbar/snackbar.models.js.map +0 -1
  220. package/esm2015/lib/components/snackbar/snackbar.module.js +0 -26
  221. package/esm2015/lib/components/snackbar/snackbar.module.js.map +0 -1
  222. package/esm2015/lib/components/snackbar/snackbar.service.js +0 -23
  223. package/esm2015/lib/components/snackbar/snackbar.service.js.map +0 -1
  224. package/esm2015/lib/components/stepper/stepper.component.js +0 -28
  225. package/esm2015/lib/components/stepper/stepper.component.js.map +0 -1
  226. package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js +0 -58
  227. package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js.map +0 -1
  228. package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js +0 -35
  229. package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js.map +0 -1
  230. package/esm2015/lib/components/tabs/tabs.component.js +0 -362
  231. package/esm2015/lib/components/tabs/tabs.component.js.map +0 -1
  232. package/esm2015/lib/content/content.module.js +0 -24
  233. package/esm2015/lib/content/content.module.js.map +0 -1
  234. package/esm2015/lib/content/icon/icon.component.js +0 -23
  235. package/esm2015/lib/content/icon/icon.component.js.map +0 -1
  236. package/esm2015/lib/festo-angular.module.js +0 -58
  237. package/esm2015/lib/festo-angular.module.js.map +0 -1
  238. package/esm2015/lib/forms/checkbox/checkbox.component.js +0 -156
  239. package/esm2015/lib/forms/checkbox/checkbox.component.js.map +0 -1
  240. package/esm2015/lib/forms/color-indicator/color-indicator.component.js +0 -72
  241. package/esm2015/lib/forms/color-indicator/color-indicator.component.js.map +0 -1
  242. package/esm2015/lib/forms/color-picker/color-helper.js +0 -121
  243. package/esm2015/lib/forms/color-picker/color-helper.js.map +0 -1
  244. package/esm2015/lib/forms/color-picker/color-picker.component.js +0 -280
  245. package/esm2015/lib/forms/color-picker/color-picker.component.js.map +0 -1
  246. package/esm2015/lib/forms/container-host.js +0 -27
  247. package/esm2015/lib/forms/container-host.js.map +0 -1
  248. package/esm2015/lib/forms/date-picker/date-picker.component.js +0 -205
  249. package/esm2015/lib/forms/date-picker/date-picker.component.js.map +0 -1
  250. package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js +0 -230
  251. package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js.map +0 -1
  252. package/esm2015/lib/forms/forms.module.js +0 -146
  253. package/esm2015/lib/forms/forms.module.js.map +0 -1
  254. package/esm2015/lib/forms/radio/radio.component.js +0 -353
  255. package/esm2015/lib/forms/radio/radio.component.js.map +0 -1
  256. package/esm2015/lib/forms/segment/segment-control/segment-control.component.js +0 -58
  257. package/esm2015/lib/forms/segment/segment-control/segment-control.component.js.map +0 -1
  258. package/esm2015/lib/forms/segment/segment.component.js +0 -116
  259. package/esm2015/lib/forms/segment/segment.component.js.map +0 -1
  260. package/esm2015/lib/forms/select/chip-text.pipe.js +0 -34
  261. package/esm2015/lib/forms/select/chip-text.pipe.js.map +0 -1
  262. package/esm2015/lib/forms/select/select-option/select-option.component.js +0 -29
  263. package/esm2015/lib/forms/select/select-option/select-option.component.js.map +0 -1
  264. package/esm2015/lib/forms/select/select.component.js +0 -265
  265. package/esm2015/lib/forms/select/select.component.js.map +0 -1
  266. package/esm2015/lib/forms/slider/slider.component.js +0 -116
  267. package/esm2015/lib/forms/slider/slider.component.js.map +0 -1
  268. package/esm2015/lib/forms/switch/switch.component.js +0 -127
  269. package/esm2015/lib/forms/switch/switch.component.js.map +0 -1
  270. package/esm2015/lib/forms/text-area/text-area.component.js +0 -186
  271. package/esm2015/lib/forms/text-area/text-area.component.js.map +0 -1
  272. package/esm2015/lib/forms/text-editor/text-editor.component.js +0 -294
  273. package/esm2015/lib/forms/text-editor/text-editor.component.js.map +0 -1
  274. package/esm2015/lib/forms/text-input/text-input.component.js +0 -189
  275. package/esm2015/lib/forms/text-input/text-input.component.js.map +0 -1
  276. package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js +0 -103
  277. package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js.map +0 -1
  278. package/esm2015/lib/forms/time-picker/time-picker.component.js +0 -194
  279. package/esm2015/lib/forms/time-picker/time-picker.component.js.map +0 -1
  280. package/esm2015/lib/forms/unique-selection-dispatcher.js +0 -39
  281. package/esm2015/lib/forms/unique-selection-dispatcher.js.map +0 -1
  282. package/esm2015/lib/forms/value-accessor-base.js +0 -41
  283. package/esm2015/lib/forms/value-accessor-base.js.map +0 -1
  284. package/esm2015/lib/layout/layout.module.js +0 -18
  285. package/esm2015/lib/layout/layout.module.js.map +0 -1
  286. package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js +0 -63
  287. package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js.map +0 -1
  288. package/fesm2015/festo-ui-angular.js +0 -5596
  289. package/fesm2015/festo-ui-angular.js.map +0 -1
  290. package/lib/components/stepper/stepper.component.d.ts +0 -30
  291. package/scss/base/components/stepper/stepper.component.scss +0 -118
  292. package/scss/styles.scss +0 -2056
@@ -1,29 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, Input, ViewChild, ElementRef } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class SelectOptionComponent {
5
- ngAfterViewInit() {
6
- this.el = this.elementRef.nativeElement;
7
- }
8
- update() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- return yield Promise.resolve(this.el);
11
- });
12
- }
13
- }
14
- SelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- SelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: SelectOptionComponent, selector: "fng-select-option", inputs: { value: "value" }, viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["root"], descendants: true }], ngImport: i0, template: "<span #root>\n <ng-content></ng-content>\n</span>\n", styles: [""] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SelectOptionComponent, decorators: [{
17
- type: Component,
18
- args: [{
19
- selector: 'fng-select-option',
20
- templateUrl: './select-option.component.html',
21
- styleUrls: ['./select-option.component.scss']
22
- }]
23
- }], propDecorators: { value: [{
24
- type: Input
25
- }], elementRef: [{
26
- type: ViewChild,
27
- args: ['root']
28
- }] } });
29
- //# sourceMappingURL=select-option.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-option.component.js","sourceRoot":"","sources":["../../../../../../../../libs/angular/src/lib/forms/select/select-option/select-option.component.ts","../../../../../../../../libs/angular/src/lib/forms/select/select-option/select-option.component.html"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;;AAOvF,MAAM,OAAO,qBAAqB;IAMhC,eAAe;QACb,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAC1C,CAAC;IAEK,MAAM;;YACV,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;KAAA;;kHAZU,qBAAqB;sGAArB,qBAAqB,yLCPlC,sDAGA;2FDIa,qBAAqB;kBALjC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,WAAW,EAAE,gCAAgC;oBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;iBAC9C;8BAEU,KAAK;sBAAb,KAAK;gBACa,UAAU;sBAA5B,SAAS;uBAAC,MAAM","sourcesContent":["import { Component, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'fng-select-option',\n templateUrl: './select-option.component.html',\n styleUrls: ['./select-option.component.scss']\n})\nexport class SelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @ViewChild('root') elementRef!: ElementRef;\n\n el: HTMLElement;\n\n ngAfterViewInit(): void {\n this.el = this.elementRef.nativeElement;\n }\n\n async update(): Promise<HTMLElement> {\n return await Promise.resolve(this.el);\n }\n}\n","<span #root>\n <ng-content></ng-content>\n</span>\n"]}
@@ -1,265 +0,0 @@
1
- import { Component, Input, HostBinding, ViewEncapsulation, Renderer2, Inject, forwardRef, ViewChild, ElementRef, QueryList, ContentChildren, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
- import { SelectOptionComponent } from './select-option/select-option.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/overlay";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/cdk/observers";
10
- import * as i4 from "./chip-text.pipe";
11
- export class SelectComponent {
12
- constructor(document, renderer, cd) {
13
- this.document = document;
14
- this.renderer = renderer;
15
- this.cd = cd;
16
- this._disabled = false;
17
- this._required = false;
18
- this.touched = false;
19
- this.id = `input-control-${++SelectComponent.nextId}`;
20
- this.options = [];
21
- this.label = '';
22
- this.hideLabel = false;
23
- this.hint = '';
24
- this.fngChange = new EventEmitter();
25
- this.selectPanelClasses = ['fng-select-panel'];
26
- this.showOptions = false;
27
- this.checked = new Map();
28
- this.hasProjectedOptions = false;
29
- this.projectedHtml = [];
30
- this.body = this.document.body;
31
- }
32
- get disabled() {
33
- return this._disabled;
34
- }
35
- set disabled(value) {
36
- this._disabled = coerceBooleanProperty(value);
37
- }
38
- get required() {
39
- return this._required;
40
- }
41
- set required(value) {
42
- this._required = coerceBooleanProperty(value);
43
- }
44
- get value() {
45
- return this._value;
46
- }
47
- set value(value) {
48
- if (this.multiple === true) {
49
- const index = this._value.indexOf(value);
50
- if (index === -1) {
51
- this._value.push(value);
52
- this.checked.set(value, 'checked');
53
- }
54
- else {
55
- this._value.splice(index, 1);
56
- this.checked.set(value, null);
57
- }
58
- }
59
- else {
60
- this._value = value;
61
- }
62
- if (this.onChange != null) {
63
- this.onChange(this.value);
64
- }
65
- this.fngChange.emit(this.value);
66
- }
67
- ngOnInit() {
68
- if (this.size != null) {
69
- this.selectPanelClasses.push('fng-select-panel-options-' + this.size);
70
- }
71
- if (this.multiple === true) {
72
- this._value = [];
73
- this.selectPanelClasses.push('fng-select-panel-multiple');
74
- }
75
- }
76
- ngAfterViewInit() {
77
- var _a, _b;
78
- this.triggerWidth = (_b = (_a = this.elementRef.nativeElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width;
79
- this.initProjectedOptions();
80
- }
81
- registerOnChange(fn) {
82
- this.onChange = fn;
83
- }
84
- registerOnTouched(fn) {
85
- this.onTouched = fn;
86
- }
87
- setDisabledState(shouldDisable) {
88
- this.disabled = shouldDisable;
89
- }
90
- writeValue(value) {
91
- if (value === undefined) {
92
- return;
93
- }
94
- if (this.multiple === true) {
95
- this._value = value;
96
- // set checkmarks in overlay panel, so that it is displayed correctly when user opens it
97
- value === null || value === void 0 ? void 0 : value.forEach(v => {
98
- this.checked.set(v, 'checked');
99
- });
100
- }
101
- else {
102
- this._value = value;
103
- }
104
- }
105
- getOptionText(index) {
106
- if (this.options[index] != null && this.options[index][this.optionsTextKey] != null) {
107
- return this.options[index][this.optionsTextKey];
108
- }
109
- }
110
- getOptionValue(index) {
111
- // if set to true the complete option object is returned as value
112
- if (this.optionObjectAsValue === true) {
113
- return this.options[index];
114
- }
115
- // try to access standard property 'value'
116
- const v = this.options[index]['value'];
117
- if (v !== undefined) {
118
- return v;
119
- }
120
- // try to map the value to a property of the option by given key
121
- if (this.options[index] != null && this.options[index][this.optionsValueKey] != null) {
122
- return this.options[index][this.optionsValueKey];
123
- }
124
- }
125
- removeChip(event, chip) {
126
- event.stopPropagation();
127
- if (!this._disabled) {
128
- this.markAsTouched();
129
- this.value = chip;
130
- }
131
- }
132
- onOpenedChange(isOpen) {
133
- if (isOpen) {
134
- this.renderer.addClass(this.body, 'fng-select-panel-open');
135
- }
136
- else {
137
- this.renderer.removeClass(this.body, 'fng-select-panel-open');
138
- }
139
- }
140
- close() {
141
- this.showOptions = false;
142
- this.isEmpty();
143
- }
144
- toggle() {
145
- var _a, _b;
146
- if (false === this.disabled) {
147
- this.triggerWidth = (_b = (_a = this.elementRef.nativeElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width;
148
- this.showOptions = !this.showOptions;
149
- this.onOpenedChange(this.showOptions);
150
- this.isEmpty();
151
- }
152
- }
153
- select(value, event) {
154
- if (!this._disabled) {
155
- this.markAsTouched();
156
- event.stopPropagation();
157
- this.value = value;
158
- if (this.multiple !== true) {
159
- // closes overlay panel
160
- this.toggle();
161
- }
162
- }
163
- }
164
- markAsTouched() {
165
- if (!this.touched) {
166
- if (this.onTouched != null) {
167
- this.onTouched();
168
- }
169
- this.touched = true;
170
- }
171
- }
172
- onContentChange(changes) {
173
- if (changes != null) {
174
- this.options = [];
175
- this.projectedHtml = [];
176
- this.initProjectedOptions();
177
- }
178
- }
179
- initProjectedOptions() {
180
- if (this.fngSelectOptions.length > 0) {
181
- this.hasProjectedOptions = true;
182
- this.fngSelectOptions.forEach(component => {
183
- component.update().then(el => {
184
- this.options.push({ value: component.value, text: el.textContent.trim() });
185
- this.projectedHtml.push(el.innerHTML);
186
- this.cd.detectChanges();
187
- });
188
- });
189
- }
190
- this.cd.detectChanges();
191
- }
192
- isEmpty() {
193
- if (!this.showOptions && (!this._value || '' === this._value)) {
194
- this.empty = true;
195
- }
196
- else {
197
- this.empty = false;
198
- }
199
- }
200
- }
201
- SelectComponent.nextId = 0;
202
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SelectComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
203
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: SelectComponent, selector: "fng-select", inputs: { disabled: "disabled", required: "required", multiple: "multiple", size: "size", options: "options", optionsValueKey: "optionsValueKey", optionsTextKey: "optionsTextKey", optionObjectAsValue: "optionObjectAsValue", error: "error", label: "label", hideLabel: "hideLabel", hint: "hint", resetOption: "resetOption" }, outputs: { fngChange: "fngChange" }, host: { properties: { "id": "this.id" } }, providers: [
204
- {
205
- provide: NG_VALUE_ACCESSOR,
206
- useExisting: forwardRef(() => SelectComponent),
207
- multi: true
208
- }
209
- ], queries: [{ propertyName: "fngSelectOptions", predicate: SelectOptionComponent }], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["div"], descendants: true }], ngImport: i0, template: "<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n <ng-container *ngIf=\"!multiple; else chips\">\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n </ng-container>\n <ng-template #chips>\n <div class=\"fwe-chip-container\">\n <div\n *ngFor=\"let v of value\"\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n </div>\n </ng-template>\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n <li class=\"fwe-select-option\" *ngIf=\"resetOption != null && !multiple\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n <li\n class=\"fwe-select-option\"\n *ngFor=\"let option of options; let i = index\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n <span\n *ngIf=\"multiple\"\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n <span *ngIf=\"hasProjectedOptions; else defaultTemplate\" [innerHTML]=\"projectedHtml[i]\"></span>\n <ng-template #defaultTemplate>{{ getOptionText(i) || option?.text }}</ng-template>\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n <div class=\"fwe-select-description\" *ngIf=\"hint\">\n {{ hint }}\n </div>\n <div class=\"fwe-select-invalid\" *ngIf=\"error\">\n {{ error }}\n </div>\n</div>\n<div class=\"fwe-d-none\" (cdkObserveContent)=\"onContentChange($event)\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.fng-select-panel-open .fng-select-panel{opacity:1!important}fng-select{width:auto}fng-select.ng-invalid:not(.ng-pristine) .fwe-select:hover{border-color:var(--fwe-red)}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-invalid{display:block}fng-select.ng-invalid:not(.ng-pristine) .fwe-select.fwe-required~.fwe-select-description{display:none}.fng-select-panel{opacity:0!important}.fng-select-panel.fng-select-panel-options-3 .fwe-select-options-container{max-height:162px}.fng-select-panel.fng-select-panel-options-4 .fwe-select-options-container{max-height:210px}.fng-select-panel.fng-select-panel-options-5 .fwe-select-options-container{max-height:258px}.fng-select-panel.fng-select-panel-options-6 .fwe-select-options-container{max-height:306px}.fng-select-panel.fng-select-panel-options-7 .fwe-select-options-container{max-height:354px}.fng-select-panel.fng-select-panel-options-8 .fwe-select-options-container{max-height:402px}.fng-select-panel.fng-select-panel-options-9 .fwe-select-options-container{max-height:450px}.fng-select-panel.fng-select-panel-options-10 .fwe-select-options-container{max-height:498px}.fng-select-panel .fwe-select-options-container{scrollbar-width:thin;scrollbar-color:var(--fwe-control-scrollbar) var(--fwe-gray-100)}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar{width:12px}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-track{background:transparent}.fng-select-panel .fwe-select-options-container::-webkit-scrollbar-thumb{overflow:visible;background-color:var(--fwe-control-scrollbar);border:3px solid rgba(242,243,245,0);-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:6px}.fng-select-panel-wrap{flex-basis:100%}.fwe-select-options-container{position:relative;top:4px;left:0px;max-height:258px;min-width:calc(100% + 0px)!important;max-width:280px;overflow:auto;font-size:16px;background-color:var(--fwe-white);border-radius:4px;padding:8px;margin:0;border:1px solid var(--fwe-gray-200);box-shadow:0 1px 4px #00000029;list-style:none;outline:0}.fwe-select-options-container .fwe-select-option{position:relative;line-height:24px;padding:12px 8px;min-height:24px;cursor:pointer}.fwe-select-options-container .fwe-select-option:hover{background-color:var(--fwe-gray-100)}.fwe-select-options-container .fwe-select-option:last-child{border-bottom:none}.fwe-select-options-container .fwe-select-option .fwe-select-option-content{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;line-height:24px;min-height:24px}.fng-select-pseudo-checkbox{width:16px;height:16px;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;color:var(--fwe-control-border);border:1px solid;transition:none;margin-right:12px;top:-1px}.fng-select-pseudo-checkbox:after{color:var(--fwe-white);position:absolute;display:block;opacity:0;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked{background:var(--fwe-caerul);border:1px solid var(--fwe-caerul)}.fng-select-pseudo-checkbox.fng-select-pseudo-checkbox-checked:after{top:3px;left:2px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.chip-text-truncate{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-removable:after{position:absolute;right:5px;top:4px;color:var(--fwe-text);font-family:\"festo_icons-16\";font-size:16px;content:\"\\ea1c\";line-height:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fwe-select-wrapper{display:flex;width:inherit;min-width:48px}.fwe-select-wrapper:before{bottom:unset;top:24px}.fwe-select-wrapper.fng-hide-label{margin-top:18px}.fwe-select-wrapper.fng-hide-label:before{top:6px}.fwe-select-wrapper.fwe-disabled:before{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select{cursor:pointer;height:unset;min-height:33px}.fwe-select-wrapper .fwe-select .fwe-select-content{padding-right:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5rem}.fwe-select-wrapper .fwe-select.fwe-required:not(.fwe-disabled)~.fwe-select-label:after{position:relative;left:3px;display:inline-block;content:\"*\"}.fwe-select-wrapper .fwe-select.fwe-disabled{cursor:default;border-color:var(--fwe-control-disabled)!important}.fwe-select-wrapper .fwe-select.fwe-disabled~.fwe-select-label{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-select-content{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip{color:var(--fwe-text-disabled);border:1px solid var(--fwe-control-disabled);pointer-events:none}.fwe-select-wrapper .fwe-select.fwe-disabled .fwe-chip .chip-removable:after{color:var(--fwe-text-disabled)}.fwe-select-wrapper .fwe-select-label:empty~.fwe-select-options-container,.fwe-select-wrapper .fwe-select-label.fwe-sr-only~.fwe-select-options-container{top:38px}\n"], directives: [{ type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayPositions", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayTransformOriginOn"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], pipes: { "fngChipText": i4.ChipTextPipe }, encapsulation: i0.ViewEncapsulation.None });
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SelectComponent, decorators: [{
211
- type: Component,
212
- args: [{
213
- selector: 'fng-select',
214
- templateUrl: './select.component.html',
215
- styleUrls: ['./select.component.scss'],
216
- encapsulation: ViewEncapsulation.None,
217
- providers: [
218
- {
219
- provide: NG_VALUE_ACCESSOR,
220
- useExisting: forwardRef(() => SelectComponent),
221
- multi: true
222
- }
223
- ]
224
- }]
225
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
226
- type: Inject,
227
- args: [DOCUMENT]
228
- }] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
229
- type: Input
230
- }], required: [{
231
- type: Input
232
- }], id: [{
233
- type: HostBinding
234
- }], multiple: [{
235
- type: Input
236
- }], size: [{
237
- type: Input
238
- }], options: [{
239
- type: Input
240
- }], optionsValueKey: [{
241
- type: Input
242
- }], optionsTextKey: [{
243
- type: Input
244
- }], optionObjectAsValue: [{
245
- type: Input
246
- }], error: [{
247
- type: Input
248
- }], label: [{
249
- type: Input
250
- }], hideLabel: [{
251
- type: Input
252
- }], hint: [{
253
- type: Input
254
- }], resetOption: [{
255
- type: Input
256
- }], fngSelectOptions: [{
257
- type: ContentChildren,
258
- args: [SelectOptionComponent]
259
- }], elementRef: [{
260
- type: ViewChild,
261
- args: ['div']
262
- }], fngChange: [{
263
- type: Output
264
- }] } });
265
- //# sourceMappingURL=select.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/select/select.component.ts","../../../../../../../libs/angular/src/lib/forms/select/select.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Input,\r\n HostBinding,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n Inject,\r\n forwardRef,\r\n ViewChild,\r\n ElementRef,\r\n AfterViewInit,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectOptionComponent } from './select-option/select-option.component';\r\n\r\nexport interface SelectOption {\r\n value: any;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'fng-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterViewInit {\r\n static nextId = 0;\r\n\r\n protected _disabled = false;\r\n protected _required = false;\r\n protected _value: any;\r\n protected body: HTMLElement;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n get value(): any {\r\n return this._value;\r\n }\r\n\r\n set value(value: any) {\r\n if (this.multiple === true) {\r\n const index = this._value.indexOf(value);\r\n if (index === -1) {\r\n this._value.push(value);\r\n this.checked.set(value, 'checked');\r\n } else {\r\n this._value.splice(index, 1);\r\n this.checked.set(value, null);\r\n }\r\n } else {\r\n this._value = value;\r\n }\r\n\r\n if (this.onChange != null) {\r\n this.onChange(this.value);\r\n }\r\n this.fngChange.emit(this.value);\r\n }\r\n\r\n onChange: (_: any) => void;\r\n onTouched: () => void;\r\n\r\n touched = false;\r\n\r\n @HostBinding()\r\n id = `input-control-${++SelectComponent.nextId}`;\r\n\r\n @Input() multiple: boolean;\r\n @Input() size: number;\r\n @Input() options = [];\r\n @Input() optionsValueKey: string;\r\n @Input() optionsTextKey: string;\r\n @Input() optionObjectAsValue: boolean;\r\n @Input() error: string;\r\n @Input() label = '';\r\n @Input() hideLabel = false;\r\n @Input() hint = '';\r\n @Input() resetOption: string;\r\n @ContentChildren(SelectOptionComponent) fngSelectOptions: QueryList<SelectOptionComponent>;\r\n @ViewChild('div') elementRef: ElementRef;\r\n @Output() fngChange = new EventEmitter<any>();\r\n\r\n selectPanelClasses: string[] = ['fng-select-panel'];\r\n showOptions = false;\r\n empty: boolean;\r\n triggerWidth: any;\r\n checked = new Map();\r\n hasProjectedOptions = false;\r\n projectedHtml = [];\r\n\r\n constructor(@Inject(DOCUMENT) protected document: any, protected renderer: Renderer2, protected cd: ChangeDetectorRef) {\r\n this.body = (this.document as Document).body;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.size != null) {\r\n this.selectPanelClasses.push('fng-select-panel-options-' + this.size);\r\n }\r\n\r\n if (this.multiple === true) {\r\n this._value = [];\r\n this.selectPanelClasses.push('fng-select-panel-multiple');\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.triggerWidth = this.elementRef.nativeElement?.getBoundingClientRect()?.width;\r\n this.initProjectedOptions();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(shouldDisable: boolean): void {\r\n this.disabled = shouldDisable;\r\n }\r\n\r\n writeValue(value: any | null): void {\r\n if (value === undefined) {\r\n return;\r\n }\r\n\r\n if (this.multiple === true) {\r\n this._value = value;\r\n // set checkmarks in overlay panel, so that it is displayed correctly when user opens it\r\n value?.forEach(v => {\r\n this.checked.set(v, 'checked');\r\n });\r\n } else {\r\n this._value = value;\r\n }\r\n }\r\n\r\n getOptionText(index: number) {\r\n if (this.options[index] != null && this.options[index][this.optionsTextKey] != null) {\r\n return this.options[index][this.optionsTextKey];\r\n }\r\n }\r\n\r\n getOptionValue(index: number) {\r\n // if set to true the complete option object is returned as value\r\n if (this.optionObjectAsValue === true) {\r\n return this.options[index];\r\n }\r\n\r\n // try to access standard property 'value'\r\n const v = this.options[index]['value'];\r\n\r\n if (v !== undefined) {\r\n return v;\r\n }\r\n\r\n // try to map the value to a property of the option by given key\r\n if (this.options[index] != null && this.options[index][this.optionsValueKey] != null) {\r\n return this.options[index][this.optionsValueKey];\r\n }\r\n }\r\n\r\n removeChip(event: any, chip: string) {\r\n event.stopPropagation();\r\n if (!this._disabled) {\r\n this.markAsTouched();\r\n this.value = chip;\r\n }\r\n }\r\n\r\n onOpenedChange(isOpen: boolean) {\r\n if (isOpen) {\r\n this.renderer.addClass(this.body, 'fng-select-panel-open');\r\n } else {\r\n this.renderer.removeClass(this.body, 'fng-select-panel-open');\r\n }\r\n }\r\n\r\n close() {\r\n this.showOptions = false;\r\n this.isEmpty();\r\n }\r\n\r\n toggle() {\r\n if (false === this.disabled) {\r\n this.triggerWidth = this.elementRef.nativeElement?.getBoundingClientRect()?.width;\r\n this.showOptions = !this.showOptions;\r\n this.onOpenedChange(this.showOptions);\r\n this.isEmpty();\r\n }\r\n }\r\n\r\n select(value: any, event: Event) {\r\n if (!this._disabled) {\r\n this.markAsTouched();\r\n event.stopPropagation();\r\n this.value = value;\r\n\r\n if (this.multiple !== true) {\r\n // closes overlay panel\r\n this.toggle();\r\n }\r\n }\r\n }\r\n\r\n markAsTouched() {\r\n if (!this.touched) {\r\n if (this.onTouched != null) {\r\n this.onTouched();\r\n }\r\n this.touched = true;\r\n }\r\n }\r\n\r\n onContentChange(changes: MutationRecord[]) {\r\n if (changes != null) {\r\n this.options = [];\r\n this.projectedHtml = [];\r\n this.initProjectedOptions();\r\n }\r\n }\r\n\r\n protected initProjectedOptions() {\r\n if (this.fngSelectOptions.length > 0) {\r\n this.hasProjectedOptions = true;\r\n this.fngSelectOptions.forEach(component => {\r\n component.update().then(el => {\r\n this.options.push({ value: component.value, text: el.textContent.trim() });\r\n this.projectedHtml.push(el.innerHTML);\r\n this.cd.detectChanges();\r\n });\r\n });\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n protected isEmpty() {\r\n if (!this.showOptions && (!this._value || '' === this._value)) {\r\n this.empty = true;\r\n } else {\r\n this.empty = false;\r\n }\r\n }\r\n}\r\n","<div #div class=\"fwe-select-wrapper\" [class.fwe-disabled]=\"disabled\" [class.fng-hide-label]=\"hideLabel\">\n <div\n class=\"fwe-select\"\n (click)=\"toggle()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [class.fwe-focus]=\"showOptions\"\n [class.fwe-required]=\"required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fwe-pty]=\"empty\"\n >\n <div class=\"fwe-select-content\">\n <ng-container *ngIf=\"!multiple; else chips\">\n {{ value != null && value | fngChipText: options:optionsValueKey:optionsTextKey }}\n </ng-container>\n <ng-template #chips>\n <div class=\"fwe-chip-container\">\n <div\n *ngFor=\"let v of value\"\n class=\"fwe-chip chip-text-truncate fwe-pr-4\"\n [style.max-width.px]=\"triggerWidth\"\n [title]=\"v | fngChipText: options:optionsValueKey:optionsTextKey\"\n >\n {{ v | fngChipText: options:optionsValueKey:optionsTextKey }}\n <span class=\"chip-removable\" (click)=\"removeChip($event, v)\"></span>\n </div>\n </div>\n </ng-template>\n </div>\n </div>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth\"\n [cdkConnectedOverlayOpen]=\"showOptions\"\n [cdkConnectedOverlayPanelClass]=\"selectPanelClasses\"\n (backdropClick)=\"close()\"\n >\n <div class=\"fng-select-panel-wrap\">\n <ul class=\"fwe-select-options-container\">\n <li class=\"fwe-select-option\" *ngIf=\"resetOption != null && !multiple\" (click)=\"select(null, $event)\">{{ resetOption }}</li>\n <li\n class=\"fwe-select-option\"\n *ngFor=\"let option of options; let i = index\"\n (click)=\"select(getOptionValue(i), $event)\"\n [title]=\"getOptionText(i) || option?.text\"\n >\n <span class=\"fwe-select-option-content\">\n <span\n *ngIf=\"multiple\"\n class=\"fng-select-pseudo-checkbox\"\n [ngClass]=\"{ 'fng-select-pseudo-checkbox-checked': checked.get(getOptionValue(i)) === 'checked' }\"\n ></span>\n <span *ngIf=\"hasProjectedOptions; else defaultTemplate\" [innerHTML]=\"projectedHtml[i]\"></span>\n <ng-template #defaultTemplate>{{ getOptionText(i) || option?.text }}</ng-template>\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n <label class=\"fwe-select-label\" [for]=\"id\" [class.fwe-sr-only]=\"hideLabel\">{{ label }}</label>\n <div class=\"fwe-select-description\" *ngIf=\"hint\">\n {{ hint }}\n </div>\n <div class=\"fwe-select-invalid\" *ngIf=\"error\">\n {{ error }}\n </div>\n</div>\n<div class=\"fwe-d-none\" (cdkObserveContent)=\"onContentChange($event)\">\n <ng-content></ng-content>\n</div>\n"]}
@@ -1,116 +0,0 @@
1
- import { Component, forwardRef, ViewEncapsulation, Input, ElementRef, HostListener } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
4
- import { Subject } from 'rxjs';
5
- import { debounceTime } from 'rxjs/operators';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class SliderComponent {
9
- constructor(elementRef) {
10
- this.elementRef = elementRef;
11
- this.large = false;
12
- this.min = 0;
13
- this.max = 100;
14
- this.innerDisabled = false;
15
- this.resizeSubject = new Subject();
16
- }
17
- get disabled() {
18
- return this.innerDisabled;
19
- }
20
- set disabled(value) {
21
- this.innerDisabled = coerceBooleanProperty(value);
22
- }
23
- get value() {
24
- return this.innerValue;
25
- }
26
- set value(value) {
27
- this.innerValue = coerceNumberProperty(value);
28
- if (this.onChange != null) {
29
- this.onChange(value);
30
- }
31
- if (this.onTouched != null) {
32
- this.onTouched();
33
- }
34
- this.updateValuePosition();
35
- }
36
- onResize() {
37
- this.resizeSubject.next();
38
- }
39
- ngAfterViewInit() {
40
- this.resizeSub = this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition());
41
- }
42
- ngOnDestroy() {
43
- if (this.resizeSub != null) {
44
- this.resizeSub.unsubscribe();
45
- }
46
- }
47
- writeValue(value) {
48
- this.innerValue = coerceNumberProperty(value);
49
- this.updateValuePosition();
50
- }
51
- registerOnChange(fn) {
52
- this.onChange = fn;
53
- }
54
- registerOnTouched(fn) {
55
- this.onTouched = fn;
56
- }
57
- setDisabledState(isDisabled) {
58
- this.disabled = isDisabled;
59
- }
60
- onInput(event) {
61
- this.value = coerceNumberProperty(event.target.value);
62
- }
63
- updateValuePosition() {
64
- if (this.elementRef != null && this.elementRef.nativeElement != null) {
65
- const bcr = this.elementRef.nativeElement.getBoundingClientRect();
66
- const diff = this.max - this.min;
67
- this.left = ((this.value - this.min) / diff) * (bcr.width - 16);
68
- }
69
- }
70
- }
71
- SliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SliderComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
72
- SliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: SliderComponent, selector: "fng-slider", inputs: { label: "label", large: "large", min: "min", max: "max", step: "step", digitsInfo: "digitsInfo", locale: "locale", disabled: "disabled", value: "value" }, host: { listeners: { "window:resize": "onResize()" } }, providers: [
73
- {
74
- provide: NG_VALUE_ACCESSOR,
75
- useExisting: forwardRef(() => SliderComponent),
76
- multi: true
77
- }
78
- ], ngImport: i0, template: "<label class=\"fwe-slider\" [class.fwe-slider-lg]=\"large\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{label}}</span>\n <input type=\"range\"\n class=\"fwe-slider-input\"\n [disabled]=\"disabled\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\">\n <span *ngIf=\"left != null\" class=\"fng-slider-value\" [style.left]=\"left + 'px'\">{{value | number:digitsInfo:locale}}</span>\n</label>\n", styles: ["label.fwe-slider{display:block;height:56px;position:relative}label.fwe-slider.fng-slider-label{height:83px}label.fwe-slider .fng-slider-value{color:var(--fwe-text);font-size:16px;margin-bottom:0;position:absolute;bottom:0px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "number": i1.DecimalPipe }, encapsulation: i0.ViewEncapsulation.None });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SliderComponent, decorators: [{
80
- type: Component,
81
- args: [{
82
- selector: 'fng-slider',
83
- templateUrl: './slider.component.html',
84
- styleUrls: ['./slider.component.scss'],
85
- providers: [
86
- {
87
- provide: NG_VALUE_ACCESSOR,
88
- useExisting: forwardRef(() => SliderComponent),
89
- multi: true
90
- }
91
- ],
92
- encapsulation: ViewEncapsulation.None
93
- }]
94
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { label: [{
95
- type: Input
96
- }], large: [{
97
- type: Input
98
- }], min: [{
99
- type: Input
100
- }], max: [{
101
- type: Input
102
- }], step: [{
103
- type: Input
104
- }], digitsInfo: [{
105
- type: Input
106
- }], locale: [{
107
- type: Input
108
- }], disabled: [{
109
- type: Input
110
- }], value: [{
111
- type: Input
112
- }], onResize: [{
113
- type: HostListener,
114
- args: ['window:resize']
115
- }] } });
116
- //# sourceMappingURL=slider.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slider.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/slider/slider.component.ts","../../../../../../../libs/angular/src/lib/forms/slider/slider.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAiB,YAAY,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EAAE,iBAAiB,EAAwB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAgB,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;;;AAe9C,MAAM,OAAO,eAAe;IAkD1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAhDjC,UAAK,GAAG,KAAK,CAAC;QAGvB,QAAG,GAAG,CAAC,CAAC;QAGR,QAAG,GAAG,GAAG,CAAC;QAaA,kBAAa,GAAG,KAAK,CAAC;QA2BxB,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;IAEO,CAAC;IA5B9C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IACI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IACI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAW8B,QAAQ;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,UAAmB;QAClC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,KAAU;QAChB,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,EAAE;YACpE,MAAM,GAAG,GAAI,IAAI,CAAC,UAAU,CAAC,aAA6B,CAAC,qBAAqB,EAAE,CAAC;YACnF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;SACjE;IACH,CAAC;;4GAjGU,eAAe;gGAAf,eAAe,iQATf;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC;YAC9C,KAAK,EAAE,IAAI;SACZ;KACF,0BChBH,8jBAaA;2FDMa,eAAe;kBAb3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;oBACtC,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC;4BAC9C,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACtC;iGAEU,KAAK;sBAAb,KAAK;gBACG,KAAK;sBAAb,KAAK;gBAGN,GAAG;sBADF,KAAK;gBAIN,GAAG;sBADF,KAAK;gBAIN,IAAI;sBADH,KAAK;gBAIN,UAAU;sBADT,KAAK;gBAIN,MAAM;sBADL,KAAK;gBAUF,QAAQ;sBADX,KAAK;gBAWF,KAAK;sBADR,KAAK;gBAqByB,QAAQ;sBAAtC,YAAY;uBAAC,eAAe","sourcesContent":["import { OnDestroy, Component, forwardRef, ViewEncapsulation, Input, ElementRef, AfterViewInit, HostListener } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Subscription, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'fng-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class SliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n @Input() label: string;\n @Input() large = false;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n step: number;\n\n @Input()\n digitsInfo: string;\n\n @Input()\n locale: string;\n\n left: number;\n\n protected innerDisabled = false;\n get disabled(): boolean {\n return this.innerDisabled;\n }\n @Input()\n set disabled(value: boolean) {\n this.innerDisabled = coerceBooleanProperty(value);\n }\n\n protected innerValue: number;\n get value(): number {\n return this.innerValue;\n }\n\n @Input()\n set value(value: number) {\n this.innerValue = coerceNumberProperty(value);\n if (this.onChange != null) {\n this.onChange(value);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.updateValuePosition();\n }\n\n private resizeSub: Subscription;\n private resizeSubject = new Subject();\n\n constructor(private elementRef: ElementRef) {}\n\n onChange: (value: number) => void;\n\n onTouched: () => void;\n\n @HostListener('window:resize') onResize() {\n this.resizeSubject.next();\n }\n\n ngAfterViewInit() {\n this.resizeSub = this.resizeSubject.pipe(debounceTime(25)).subscribe(() => this.updateValuePosition());\n }\n\n ngOnDestroy() {\n if (this.resizeSub != null) {\n this.resizeSub.unsubscribe();\n }\n }\n\n writeValue(value: any): void {\n this.innerValue = coerceNumberProperty(value);\n this.updateValuePosition();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(event: any) {\n this.value = coerceNumberProperty((event.target as HTMLInputElement).value);\n }\n\n updateValuePosition() {\n if (this.elementRef != null && this.elementRef.nativeElement != null) {\n const bcr = (this.elementRef.nativeElement as HTMLElement).getBoundingClientRect();\n const diff = this.max - this.min;\n this.left = ((this.value - this.min) / diff) * (bcr.width - 16);\n }\n }\n}\n","<label class=\"fwe-slider\" [class.fwe-slider-lg]=\"large\" [class.fng-slider-label]=\"label != null\">\n <span *ngIf=\"label\">{{label}}</span>\n <input type=\"range\"\n class=\"fwe-slider-input\"\n [disabled]=\"disabled\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n autocomplete=\"off\"\n [value]=\"value\"\n (input)=\"onInput($event)\">\n <span *ngIf=\"left != null\" class=\"fng-slider-value\" [style.left]=\"left + 'px'\">{{value | number:digitsInfo:locale}}</span>\n</label>\n"]}
@@ -1,127 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, ChangeDetectorRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- let nextUniqueId = 0;
7
- export class SwitchComponent {
8
- constructor(changeDetector) {
9
- this.changeDetector = changeDetector;
10
- this.name = null;
11
- this.large = false;
12
- this.labelPosition = 'before';
13
- this.innerId = `fng-switch-${++nextUniqueId}`;
14
- this.isChecked = false;
15
- this.isDisabled = false;
16
- this.change = new EventEmitter();
17
- }
18
- get id() {
19
- return this.innerId;
20
- }
21
- set id(value) {
22
- this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-switch-${++nextUniqueId}`;
23
- }
24
- get inputId() {
25
- return `${this.innerId}-input`;
26
- }
27
- get checked() {
28
- return this.isChecked;
29
- }
30
- set checked(value) {
31
- if (value !== this.checked) {
32
- this.isChecked = value;
33
- this.changeDetector.markForCheck();
34
- }
35
- }
36
- get disabled() {
37
- return this.isDisabled;
38
- }
39
- set disabled(value) {
40
- const newValue = coerceBooleanProperty(value);
41
- if (newValue !== this.disabled) {
42
- this.isDisabled = newValue;
43
- this.changeDetector.markForCheck();
44
- }
45
- }
46
- get required() {
47
- return this.isRequired;
48
- }
49
- set required(value) {
50
- this.isRequired = coerceBooleanProperty(value);
51
- }
52
- writeValue(value) {
53
- this.checked = !!value;
54
- }
55
- registerOnChange(fn) {
56
- this.controlValueAccessorChangeFn = fn;
57
- }
58
- registerOnTouched(fn) {
59
- this.onTouched = fn;
60
- }
61
- setDisabledState(isDisabled) {
62
- this.disabled = isDisabled;
63
- }
64
- onInteractionEvent(event) {
65
- event.stopPropagation();
66
- }
67
- onInputClick(event) {
68
- event.stopPropagation();
69
- if (!this.disabled) {
70
- if (this.required) {
71
- this.required = false;
72
- }
73
- this.checked = !this.checked;
74
- if (this.controlValueAccessorChangeFn != null) {
75
- this.controlValueAccessorChangeFn(this.checked);
76
- }
77
- if (this.onTouched != null) {
78
- this.onTouched();
79
- }
80
- this.change.emit(this.checked);
81
- }
82
- }
83
- }
84
- SwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SwitchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
85
- SwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: SwitchComponent, selector: "fng-switch", inputs: { name: "name", large: "large", labelPosition: "labelPosition", id: "id", checked: "checked", disabled: "disabled", value: "value", required: "required" }, outputs: { change: "change" }, providers: [
86
- {
87
- provide: NG_VALUE_ACCESSOR,
88
- useExisting: forwardRef(() => SwitchComponent),
89
- multi: true
90
- }
91
- ], ngImport: i0, template: "<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\" \n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-switch-container.fwe-switch-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-switch-container.fwe-switch-label-before .fwe-switch-label-content{margin-left:0;margin-right:8px}.fwe-switch-container.fwe-switch-label-below{flex-direction:column}.fwe-switch-container.fwe-switch-label-below .fwe-switch-label-content{margin:8px 0 0}.fwe-switch-container.fwe-switch-label-below .fwe-switch-track{margin-top:0;margin-bottom:0}.fwe-switch-container{cursor:pointer;display:flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fwe-switch-container .fwe-switch-track{box-sizing:border-box;position:relative;height:16px;width:32px;border:none;background-color:var(--fwe-control-border);border-radius:8px;margin-top:4px;margin-bottom:4px}.fwe-switch-container .fwe-switch-track:after{content:\"\";position:absolute;top:3px;left:3px;height:10px;width:10px;background:var(--fwe-white);border-radius:50%;transition:left .2s}.fwe-switch-container.fwe-switch-lg .fwe-switch-track{height:24px;width:48px;border-radius:12px;margin-top:0;margin-bottom:0}.fwe-switch-container.fwe-switch-lg .fwe-switch-track:after{top:5px;left:5px;height:14px;width:14px}.fwe-switch-container.fwe-switch-lg.fwe-checked .fwe-switch-track:after{left:29px}.fwe-switch-container .fwe-switch-label-content{line-height:24px;margin-left:8px}.fwe-switch-container input[type=checkbox]{height:0px;width:0px;opacity:0;cursor:pointer}.fwe-switch-container:hover .fwe-switch-track{background-color:var(--fwe-control-border-dark)}.fwe-switch-container:active .fwe-switch-track{background-color:var(--fwe-control-border-darker)}.fwe-switch-container.fwe-checked .fwe-switch-track{background-color:var(--fwe-caerul)}.fwe-switch-container.fwe-checked .fwe-switch-track:after{left:19px}.fwe-switch-container:hover.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-dark)}.fwe-switch-container:active.fwe-checked .fwe-switch-track{background-color:var(--fwe-hero-darker)}.fwe-switch-container.fwe-disabled .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled.fwe-checked .fwe-switch-track{background-color:var(--fwe-control-disabled);cursor:not-allowed}.fwe-switch-container.fwe-disabled{cursor:not-allowed}.fwe-switch-container.fwe-disabled .fwe-switch-label-content{color:var(--fwe-text-disabled);cursor:not-allowed}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: SwitchComponent, decorators: [{
93
- type: Component,
94
- args: [{
95
- selector: 'fng-switch',
96
- templateUrl: './switch.component.html',
97
- styleUrls: ['./switch.component.scss'],
98
- changeDetection: ChangeDetectionStrategy.OnPush,
99
- encapsulation: ViewEncapsulation.None,
100
- providers: [
101
- {
102
- provide: NG_VALUE_ACCESSOR,
103
- useExisting: forwardRef(() => SwitchComponent),
104
- multi: true
105
- }
106
- ]
107
- }]
108
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
109
- type: Input
110
- }], large: [{
111
- type: Input
112
- }], labelPosition: [{
113
- type: Input
114
- }], id: [{
115
- type: Input
116
- }], checked: [{
117
- type: Input
118
- }], disabled: [{
119
- type: Input
120
- }], value: [{
121
- type: Input
122
- }], required: [{
123
- type: Input
124
- }], change: [{
125
- type: Output
126
- }] } });
127
- //# sourceMappingURL=switch.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/switch/switch.component.ts","../../../../../../../libs/angular/src/lib/forms/switch/switch.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n forwardRef,\n ChangeDetectorRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'fng-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true\n }\n ]\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() name: string = null;\n @Input() large = false;\n @Input() labelPosition: 'before' | 'after' | 'below' = 'before';\n\n private innerId = `fng-switch-${++nextUniqueId}`;\n get id(): string {\n return this.innerId;\n }\n @Input()\n set id(value: string) {\n this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-switch-${++nextUniqueId}`;\n }\n\n get inputId(): string {\n return `${this.innerId}-input`;\n }\n\n @Input()\n get checked(): boolean {\n return this.isChecked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this.isChecked = value;\n this.changeDetector.markForCheck();\n }\n }\n private isChecked = false;\n\n @Input()\n get disabled() {\n return this.isDisabled;\n }\n set disabled(value: any) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this.isDisabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n private isDisabled = false;\n\n @Input() value: string;\n\n @Input()\n get required(): boolean {\n return this.isRequired;\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n }\n private isRequired: boolean;\n\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: (value: any) => void;\n\n onTouched: () => any;\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n\n if (!this.disabled) {\n if (this.required) {\n this.required = false;\n }\n this.checked = !this.checked;\n if (this.controlValueAccessorChangeFn != null) {\n this.controlValueAccessorChangeFn(this.checked);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.change.emit(this.checked);\n }\n }\n}\n","<label\n [ngClass]=\"{\n 'fwe-switch-container': true,\n 'fwe-checked': checked,\n 'fwe-disabled': disabled,\n 'fwe-switch-label-below': labelPosition == 'below',\n 'fwe-switch-label-before': labelPosition == 'before',\n 'fwe-switch-lg': large\n }\"\n>\n <input\n title=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\" \n [attr.value]=\"value\"\n [attr.name]=\"name\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n [disabled]=\"disabled\"\n />\n <div class=\"fwe-switch-track\"></div>\n <div class=\"fwe-switch-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n"]}