@recursyve/nice-ui-kit.v2 14.0.0-beta.98 → 15.0.0-beta.119

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 (325) hide show
  1. package/esm2020/lib/api/interceptors/transform-response.interceptor.mjs +3 -3
  2. package/esm2020/lib/components/alert/alert.component.mjs +4 -4
  3. package/esm2020/lib/components/alert/alert.module.mjs +4 -4
  4. package/esm2020/lib/components/alert/alert.service.mjs +3 -3
  5. package/esm2020/lib/components/assets-carousel/assets-carousel.component.mjs +78 -49
  6. package/esm2020/lib/components/assets-carousel/assets-carousel.module.mjs +15 -10
  7. package/esm2020/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.mjs +14 -0
  8. package/esm2020/lib/components/assets-carousel/public-api.mjs +2 -1
  9. package/esm2020/lib/components/async-typeahead/async-typeahead.component.mjs +48 -35
  10. package/esm2020/lib/components/async-typeahead/async-typeahead.module.mjs +4 -4
  11. package/esm2020/lib/components/async-typeahead/providers/async-typeahead.service.mjs +15 -4
  12. package/esm2020/lib/components/async-typeahead/public-api.mjs +2 -1
  13. package/esm2020/lib/components/base-form/base-form.component.mjs +5 -16
  14. package/esm2020/lib/components/base-form/base-form.module.mjs +4 -4
  15. package/esm2020/lib/components/base-form/form-submit.directive.mjs +3 -3
  16. package/esm2020/lib/components/card/card.component.mjs +3 -3
  17. package/esm2020/lib/components/card/card.module.mjs +4 -4
  18. package/esm2020/lib/components/carousel/carousel.component.mjs +7 -7
  19. package/esm2020/lib/components/carousel/carousel.module.mjs +4 -4
  20. package/esm2020/lib/components/carousel/picture-modal/picture-modal.component.mjs +3 -3
  21. package/esm2020/lib/components/carousel/picture-modal/picture-modal.service.mjs +3 -3
  22. package/esm2020/lib/components/carousel/pipe/carousel-layout.pipe.mjs +3 -3
  23. package/esm2020/lib/components/collapsable/collapsable.component.mjs +36 -0
  24. package/esm2020/lib/components/collapsable/collapsable.module.mjs +25 -0
  25. package/esm2020/lib/components/collapsable/index.mjs +2 -0
  26. package/esm2020/lib/components/collapsable/public-api.mjs +3 -0
  27. package/esm2020/lib/components/date-range-picker/components/header/header.component.mjs +57 -0
  28. package/esm2020/lib/components/date-range-picker/components/range-preset/range-preset.component.mjs +107 -0
  29. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +74 -0
  30. package/esm2020/lib/components/date-range-picker/date-range-picker.module.mjs +56 -0
  31. package/esm2020/lib/components/date-range-picker/index.mjs +2 -0
  32. package/esm2020/lib/components/date-range-picker/providers/date-range-picker.service.mjs +17 -0
  33. package/esm2020/lib/components/date-range-picker/public-api.mjs +3 -0
  34. package/esm2020/lib/components/drawer/drawer.component.mjs +3 -3
  35. package/esm2020/lib/components/drawer/drawer.module.mjs +4 -4
  36. package/esm2020/lib/components/drawer/drawer.service.mjs +3 -3
  37. package/esm2020/lib/components/export-bottom-sheet/export-bottom-sheet.component.mjs +5 -6
  38. package/esm2020/lib/components/export-bottom-sheet/export-bottom-sheet.module.mjs +4 -4
  39. package/esm2020/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.mjs +6 -6
  40. package/esm2020/lib/components/form-error/control-status.directive.mjs +31 -11
  41. package/esm2020/lib/components/form-error/form-error.component.mjs +12 -21
  42. package/esm2020/lib/components/form-error/form-error.module.mjs +6 -7
  43. package/esm2020/lib/components/horizontal-stepper/horizontal-stepper.component.mjs +3 -3
  44. package/esm2020/lib/components/horizontal-stepper/horizontal-stepper.module.mjs +4 -4
  45. package/esm2020/lib/components/horizontal-stepper/step.component.mjs +3 -3
  46. package/esm2020/lib/components/image-cropper/image-cropper.component.mjs +35 -35
  47. package/esm2020/lib/components/image-cropper/image-cropper.module.mjs +4 -4
  48. package/esm2020/lib/components/layout/layout.component.mjs +3 -3
  49. package/esm2020/lib/components/layout/layout.module.mjs +4 -4
  50. package/esm2020/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
  51. package/esm2020/lib/components/loading-spinner/loading-spinner.module.mjs +4 -4
  52. package/esm2020/lib/components/loading-spinner/loading.directive.mjs +10 -10
  53. package/esm2020/lib/components/lottie/lottie.component.mjs +3 -3
  54. package/esm2020/lib/components/lottie/lottie.module.mjs +4 -4
  55. package/esm2020/lib/components/navigation/components/hint-component-base.mjs +120 -0
  56. package/esm2020/lib/components/navigation/directives/show-hint.directive.mjs +187 -0
  57. package/esm2020/lib/components/navigation/horizontal/components/basic/basic.component.mjs +3 -3
  58. package/esm2020/lib/components/navigation/horizontal/components/branch/branch.component.mjs +6 -5
  59. package/esm2020/lib/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  60. package/esm2020/lib/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  61. package/esm2020/lib/components/navigation/horizontal/horizontal.component.mjs +13 -12
  62. package/esm2020/lib/components/navigation/navigation.component.mjs +3 -3
  63. package/esm2020/lib/components/navigation/navigation.module.mjs +18 -7
  64. package/esm2020/lib/components/navigation/navigation.service.mjs +3 -3
  65. package/esm2020/lib/components/navigation/navigation.types.mjs +1 -1
  66. package/esm2020/lib/components/navigation/pipes/should-hide.pipe.mjs +31 -0
  67. package/esm2020/lib/components/navigation/pipes/should-show-hint.pipe.mjs +32 -0
  68. package/esm2020/lib/components/navigation/providers/hide-item.resolver.mjs +3 -0
  69. package/esm2020/lib/components/navigation/providers/hint.resolver.mjs +3 -0
  70. package/esm2020/lib/components/navigation/providers/hint.service.mjs +20 -0
  71. package/esm2020/lib/components/navigation/public-api.mjs +4 -1
  72. package/esm2020/lib/components/navigation/vertical/components/aside/aside.component.mjs +3 -3
  73. package/esm2020/lib/components/navigation/vertical/components/basic/basic.component.mjs +8 -6
  74. package/esm2020/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +7 -5
  75. package/esm2020/lib/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
  76. package/esm2020/lib/components/navigation/vertical/components/group/group.component.mjs +6 -5
  77. package/esm2020/lib/components/navigation/vertical/components/spacer/spacer.component.mjs +3 -3
  78. package/esm2020/lib/components/navigation/vertical/vertical.component.mjs +47 -24
  79. package/esm2020/lib/components/public-api.mjs +4 -1
  80. package/esm2020/lib/components/search-bar/search-bar.component.mjs +5 -5
  81. package/esm2020/lib/components/search-bar/search-bar.module.mjs +4 -4
  82. package/esm2020/lib/components/sweet-alert/sweet-alert.component.mjs +3 -3
  83. package/esm2020/lib/components/sweet-alert/sweet-alert.directive.mjs +3 -3
  84. package/esm2020/lib/components/sweet-alert/sweet-alert.module.mjs +4 -4
  85. package/esm2020/lib/components/sweet-alert/sweet-alert.service.mjs +3 -3
  86. package/esm2020/lib/components/toast/toast.component.mjs +4 -4
  87. package/esm2020/lib/components/toast/toast.module.mjs +4 -4
  88. package/esm2020/lib/components/toast/toast.service.mjs +3 -3
  89. package/esm2020/lib/components/toggle-button-group/toggle-button-group.component.mjs +5 -5
  90. package/esm2020/lib/components/toggle-button-group/toggle-button-group.module.mjs +4 -4
  91. package/esm2020/lib/components/toggle-button-group/toggle-button.component.mjs +3 -3
  92. package/esm2020/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +37 -0
  93. package/esm2020/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +25 -0
  94. package/esm2020/lib/components/translation-form/components/translation-form.component.mjs +164 -0
  95. package/esm2020/lib/components/translation-form/components/translation-form.module.mjs +71 -0
  96. package/esm2020/lib/components/translation-form/decorators/translation-form.decorator.mjs +4 -0
  97. package/esm2020/lib/components/translation-form/directives/translation-context.directive.mjs +34 -0
  98. package/esm2020/lib/components/translation-form/index.mjs +2 -0
  99. package/esm2020/lib/components/translation-form/providers/translation-form.service.mjs +46 -0
  100. package/esm2020/lib/components/translation-form/public-api.mjs +10 -0
  101. package/esm2020/lib/components/translation-form/toggle/translation-toggle.component.mjs +26 -0
  102. package/esm2020/lib/components/translation-form/translation.form.mjs +6 -0
  103. package/esm2020/lib/components/translation-form/validators/require-for-languages.validator.mjs +42 -0
  104. package/esm2020/lib/components/typeahead/directives/options-scroll.directive.mjs +3 -3
  105. package/esm2020/lib/components/typeahead/directives/options-scroll.module.mjs +4 -4
  106. package/esm2020/lib/components/typeahead/typeahead.component.mjs +60 -60
  107. package/esm2020/lib/components/typeahead/typeahead.module.mjs +4 -4
  108. package/esm2020/lib/directives/autofocus/autofocus.directive.mjs +3 -3
  109. package/esm2020/lib/directives/autofocus/autofocus.module.mjs +4 -4
  110. package/esm2020/lib/directives/autogrow/autogrow.directive.mjs +3 -3
  111. package/esm2020/lib/directives/autogrow/autogrow.module.mjs +4 -4
  112. package/esm2020/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.mjs +3 -3
  113. package/esm2020/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.mjs +3 -3
  114. package/esm2020/lib/directives/chip-list/chip-list-items/chip-list-items.component.mjs +22 -8
  115. package/esm2020/lib/directives/chip-list/chip-list.constant.mjs +3 -0
  116. package/esm2020/lib/directives/chip-list/chip-list.directive.mjs +44 -17
  117. package/esm2020/lib/directives/chip-list/chip-list.module.mjs +24 -5
  118. package/esm2020/lib/directives/draggable-list/draggable-list.directive.mjs +94 -0
  119. package/esm2020/lib/directives/draggable-list/draggable-list.module.mjs +18 -0
  120. package/esm2020/lib/directives/draggable-list/index.mjs +2 -0
  121. package/esm2020/lib/directives/draggable-list/public-api.mjs +3 -0
  122. package/esm2020/lib/directives/dropzone/dropzone.directive.mjs +3 -3
  123. package/esm2020/lib/directives/dropzone/dropzone.module.mjs +4 -4
  124. package/esm2020/lib/directives/image-error-placeholder/image-error-placeholder.directive.mjs +3 -3
  125. package/esm2020/lib/directives/image-error-placeholder/image-error-placeholder.module.mjs +4 -4
  126. package/esm2020/lib/directives/material/material.module.mjs +4 -4
  127. package/esm2020/lib/directives/material/nice-material-style.directive.mjs +4 -4
  128. package/esm2020/lib/directives/material/nice-rounded-style.directive.mjs +4 -4
  129. package/esm2020/lib/directives/modals/modal-on-click.directive.mjs +3 -3
  130. package/esm2020/lib/directives/modals/modal-opener.directive.mjs +3 -3
  131. package/esm2020/lib/directives/public-api.mjs +4 -1
  132. package/esm2020/lib/directives/rerender/index.mjs +2 -0
  133. package/esm2020/lib/directives/rerender/public-api.mjs +2 -0
  134. package/esm2020/lib/directives/rerender/rerender.directive.mjs +22 -0
  135. package/esm2020/lib/directives/resolve/index.mjs +2 -0
  136. package/esm2020/lib/directives/resolve/public-api.mjs +2 -0
  137. package/esm2020/lib/directives/resolve/resolve.directive.mjs +32 -0
  138. package/esm2020/lib/directives/scroll-reset/scroll-reset.directive.mjs +3 -3
  139. package/esm2020/lib/directives/scroll-reset/scroll-reset.module.mjs +4 -4
  140. package/esm2020/lib/directives/scrollbar/scrollbar.directive.mjs +3 -3
  141. package/esm2020/lib/directives/scrollbar/scrollbar.module.mjs +4 -4
  142. package/esm2020/lib/directives/stop-propagation/click-stop-propagation.directive.mjs +3 -3
  143. package/esm2020/lib/directives/stop-propagation/stop-propagation.module.mjs +4 -4
  144. package/esm2020/lib/directives/window/prevent-close-window.directive.mjs +3 -3
  145. package/esm2020/lib/directives/window/window-directive.module.mjs +4 -4
  146. package/esm2020/lib/nice.module.mjs +57 -5
  147. package/esm2020/lib/pipes/boolean.pipe.mjs +3 -3
  148. package/esm2020/lib/pipes/capitalize-first-letter.pipe.mjs +3 -3
  149. package/esm2020/lib/pipes/ceil.pipe.mjs +3 -3
  150. package/esm2020/lib/pipes/entries.pipe.mjs +3 -3
  151. package/esm2020/lib/pipes/find-by-key.pipe.mjs +3 -3
  152. package/esm2020/lib/pipes/first-letter.pipe.mjs +3 -3
  153. package/esm2020/lib/pipes/floor.pipe.mjs +3 -3
  154. package/esm2020/lib/pipes/join-if-defined.pipe.mjs +3 -3
  155. package/esm2020/lib/pipes/link.pipe.mjs +3 -3
  156. package/esm2020/lib/pipes/localized-boolean.pipe.mjs +3 -3
  157. package/esm2020/lib/pipes/localized-currency.pipe.mjs +3 -3
  158. package/esm2020/lib/pipes/localized-date-only.pipe.mjs +3 -3
  159. package/esm2020/lib/pipes/localized-date.pipe.mjs +3 -3
  160. package/esm2020/lib/pipes/minutes-to-time.pipe.mjs +3 -3
  161. package/esm2020/lib/pipes/number-to-ordinal-indicator.pipe.mjs +3 -3
  162. package/esm2020/lib/pipes/pad.pipe.mjs +3 -3
  163. package/esm2020/lib/pipes/phone.pipe.mjs +9 -9
  164. package/esm2020/lib/pipes/pipes.module.mjs +14 -9
  165. package/esm2020/lib/pipes/postal-code.pipe.mjs +9 -9
  166. package/esm2020/lib/pipes/public-api.mjs +2 -1
  167. package/esm2020/lib/pipes/range.pipe.mjs +3 -3
  168. package/esm2020/lib/pipes/round.pipe.mjs +3 -3
  169. package/esm2020/lib/pipes/sanitize-bypass.pipe.mjs +3 -3
  170. package/esm2020/lib/pipes/seconds-to-time.pipe.mjs +3 -3
  171. package/esm2020/lib/pipes/track-by-prop.pipe.mjs +14 -0
  172. package/esm2020/lib/providers/config/config.module.mjs +4 -4
  173. package/esm2020/lib/providers/config/config.service.mjs +3 -3
  174. package/esm2020/lib/providers/media-watcher/media-watcher.module.mjs +4 -4
  175. package/esm2020/lib/providers/media-watcher/media-watcher.service.mjs +3 -3
  176. package/esm2020/lib/providers/overlay/dynamic-overlay-container.service.mjs +3 -3
  177. package/esm2020/lib/providers/overlay/dynamic-overlay.service.mjs +3 -3
  178. package/esm2020/lib/providers/splash-screen/splash-screen.module.mjs +4 -4
  179. package/esm2020/lib/providers/splash-screen/splash-screen.service.mjs +3 -3
  180. package/esm2020/lib/providers/utils/utils.module.mjs +4 -4
  181. package/esm2020/lib/providers/utils/utils.service.mjs +3 -3
  182. package/esm2020/lib/utils/case.utils.mjs +7 -5
  183. package/esm2020/lib/utils/keyboard.utils.mjs +2 -1
  184. package/esm2020/lib/utils/lexorank.utils.mjs +28 -0
  185. package/esm2020/lib/utils/public-api.mjs +2 -1
  186. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +3124 -1635
  187. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  188. package/fesm2020/recursyve-nice-ui-kit.v2.mjs +3072 -1591
  189. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  190. package/lib/api/nice.api.d.ts +1 -1
  191. package/lib/components/alert/alert.component.d.ts +1 -1
  192. package/lib/components/alert/alert.types.d.ts +3 -3
  193. package/lib/components/assets-carousel/assets-carousel.component.d.ts +9 -3
  194. package/lib/components/assets-carousel/assets-carousel.module.d.ts +10 -8
  195. package/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.d.ts +8 -0
  196. package/lib/components/assets-carousel/public-api.d.ts +1 -0
  197. package/lib/components/async-typeahead/async-typeahead.component.d.ts +5 -1
  198. package/lib/components/async-typeahead/public-api.d.ts +1 -0
  199. package/lib/components/base-form/base-form.component.d.ts +1 -2
  200. package/lib/components/base-form/form-submit.directive.d.ts +1 -1
  201. package/lib/components/card/card.component.d.ts +1 -1
  202. package/lib/components/card/card.types.d.ts +1 -1
  203. package/lib/components/carousel/carousel.component.d.ts +1 -1
  204. package/lib/components/carousel/picture-modal/picture-modal.component.d.ts +1 -1
  205. package/lib/components/collapsable/collapsable.component.d.ts +15 -0
  206. package/lib/components/collapsable/collapsable.module.d.ts +9 -0
  207. package/lib/components/collapsable/index.d.ts +1 -0
  208. package/lib/components/collapsable/public-api.d.ts +2 -0
  209. package/lib/components/date-range-picker/components/header/header.component.d.ts +20 -0
  210. package/lib/components/date-range-picker/components/range-preset/range-preset.component.d.ts +23 -0
  211. package/lib/components/date-range-picker/date-range-picker.component.d.ts +29 -0
  212. package/lib/components/date-range-picker/date-range-picker.module.d.ts +18 -0
  213. package/lib/components/date-range-picker/index.d.ts +1 -0
  214. package/lib/components/date-range-picker/providers/date-range-picker.service.d.ts +8 -0
  215. package/lib/components/date-range-picker/public-api.d.ts +2 -0
  216. package/lib/components/drawer/drawer.component.d.ts +1 -1
  217. package/lib/components/drawer/drawer.types.d.ts +2 -2
  218. package/lib/components/export-bottom-sheet/export-bottom-sheet.component.d.ts +1 -1
  219. package/lib/components/export-bottom-sheet/models/export-strategy.model.d.ts +1 -1
  220. package/lib/components/form-error/control-status.directive.d.ts +1 -1
  221. package/lib/components/form-error/form-error.component.d.ts +1 -1
  222. package/lib/components/horizontal-stepper/horizontal-stepper.component.d.ts +1 -1
  223. package/lib/components/horizontal-stepper/step.component.d.ts +1 -1
  224. package/lib/components/image-cropper/image-cropper.component.d.ts +2 -2
  225. package/lib/components/layout/layout.component.d.ts +1 -1
  226. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  227. package/lib/components/loading-spinner/loading.directive.d.ts +1 -1
  228. package/lib/components/lottie/lottie.component.d.ts +1 -1
  229. package/lib/components/navigation/components/hint-component-base.d.ts +65 -0
  230. package/lib/components/navigation/directives/show-hint.directive.d.ts +39 -0
  231. package/lib/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
  232. package/lib/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
  233. package/lib/components/navigation/horizontal/components/divider/divider.component.d.ts +1 -1
  234. package/lib/components/navigation/horizontal/components/spacer/spacer.component.d.ts +1 -1
  235. package/lib/components/navigation/horizontal/horizontal.component.d.ts +1 -1
  236. package/lib/components/navigation/navigation.component.d.ts +1 -1
  237. package/lib/components/navigation/navigation.module.d.ts +13 -10
  238. package/lib/components/navigation/navigation.types.d.ts +12 -5
  239. package/lib/components/navigation/pipes/should-hide.pipe.d.ts +11 -0
  240. package/lib/components/navigation/pipes/should-show-hint.pipe.d.ts +12 -0
  241. package/lib/components/navigation/providers/hide-item.resolver.d.ts +5 -0
  242. package/lib/components/navigation/providers/hint.resolver.d.ts +4 -0
  243. package/lib/components/navigation/providers/hint.service.d.ts +9 -0
  244. package/lib/components/navigation/public-api.d.ts +3 -0
  245. package/lib/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
  246. package/lib/components/navigation/vertical/components/basic/basic.component.d.ts +1 -1
  247. package/lib/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
  248. package/lib/components/navigation/vertical/components/divider/divider.component.d.ts +1 -1
  249. package/lib/components/navigation/vertical/components/group/group.component.d.ts +1 -1
  250. package/lib/components/navigation/vertical/components/spacer/spacer.component.d.ts +1 -1
  251. package/lib/components/navigation/vertical/vertical.component.d.ts +8 -2
  252. package/lib/components/public-api.d.ts +3 -0
  253. package/lib/components/search-bar/search-bar.component.d.ts +1 -1
  254. package/lib/components/sweet-alert/sweet-alert.component.d.ts +1 -1
  255. package/lib/components/sweet-alert/sweet-alert.directive.d.ts +1 -1
  256. package/lib/components/toast/toast.component.d.ts +1 -1
  257. package/lib/components/toggle-button-group/toggle-button-group.component.d.ts +2 -2
  258. package/lib/components/toggle-button-group/toggle-button.component.d.ts +1 -1
  259. package/lib/components/translation-form/components/textarea/translation-form-textarea.component.d.ts +9 -0
  260. package/lib/components/translation-form/components/textfield/translation-form-textfield.component.d.ts +6 -0
  261. package/lib/components/translation-form/components/translation-form.component.d.ts +55 -0
  262. package/lib/components/translation-form/components/translation-form.module.d.ts +16 -0
  263. package/lib/components/translation-form/decorators/translation-form.decorator.d.ts +1 -0
  264. package/lib/components/translation-form/directives/translation-context.directive.d.ts +15 -0
  265. package/lib/components/translation-form/index.d.ts +1 -0
  266. package/lib/components/translation-form/providers/translation-form.service.d.ts +12 -0
  267. package/lib/components/translation-form/public-api.d.ts +9 -0
  268. package/lib/components/translation-form/toggle/translation-toggle.component.d.ts +14 -0
  269. package/lib/components/translation-form/translation.form.d.ts +5 -0
  270. package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +14 -0
  271. package/lib/components/typeahead/directives/options-scroll.directive.d.ts +1 -1
  272. package/lib/components/typeahead/typeahead.component.d.ts +1 -1
  273. package/lib/directives/autofocus/autofocus.directive.d.ts +1 -1
  274. package/lib/directives/autogrow/autogrow.directive.d.ts +1 -1
  275. package/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.d.ts +1 -1
  276. package/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.d.ts +1 -1
  277. package/lib/directives/chip-list/chip-list-items/chip-list-items.component.d.ts +14 -2
  278. package/lib/directives/chip-list/chip-list.constant.d.ts +2 -0
  279. package/lib/directives/chip-list/chip-list.directive.d.ts +7 -4
  280. package/lib/directives/chip-list/chip-list.module.d.ts +3 -0
  281. package/lib/directives/draggable-list/draggable-list.directive.d.ts +24 -0
  282. package/lib/directives/draggable-list/draggable-list.module.d.ts +8 -0
  283. package/lib/directives/draggable-list/index.d.ts +1 -0
  284. package/lib/directives/draggable-list/public-api.d.ts +2 -0
  285. package/lib/directives/dropzone/dropzone.directive.d.ts +1 -1
  286. package/lib/directives/image-error-placeholder/image-error-placeholder.directive.d.ts +1 -1
  287. package/lib/directives/material/nice-material-style.directive.d.ts +1 -1
  288. package/lib/directives/material/nice-rounded-style.directive.d.ts +1 -1
  289. package/lib/directives/modals/modal-on-click.directive.d.ts +1 -1
  290. package/lib/directives/modals/modal-opener.directive.d.ts +1 -1
  291. package/lib/directives/public-api.d.ts +3 -0
  292. package/lib/directives/rerender/index.d.ts +1 -0
  293. package/lib/directives/rerender/public-api.d.ts +1 -0
  294. package/lib/directives/rerender/rerender.directive.d.ts +10 -0
  295. package/lib/directives/resolve/index.d.ts +1 -0
  296. package/lib/directives/resolve/public-api.d.ts +1 -0
  297. package/lib/directives/resolve/resolve.directive.d.ts +18 -0
  298. package/lib/directives/scroll-reset/scroll-reset.directive.d.ts +1 -1
  299. package/lib/directives/scrollbar/scrollbar.directive.d.ts +1 -1
  300. package/lib/directives/stop-propagation/click-stop-propagation.directive.d.ts +1 -1
  301. package/lib/directives/window/prevent-close-window.directive.d.ts +1 -1
  302. package/lib/pipes/phone.pipe.d.ts +3 -3
  303. package/lib/pipes/pipes.module.d.ts +2 -1
  304. package/lib/pipes/postal-code.pipe.d.ts +3 -3
  305. package/lib/pipes/public-api.d.ts +1 -0
  306. package/lib/pipes/track-by-prop.pipe.d.ts +7 -0
  307. package/lib/providers/config/config.model.d.ts +3 -3
  308. package/lib/types/constructor.d.ts +2 -2
  309. package/lib/utils/array.utils.d.ts +1 -1
  310. package/lib/utils/keyboard.utils.d.ts +2 -1
  311. package/lib/utils/lexorank.utils.d.ts +6 -0
  312. package/lib/utils/public-api.d.ts +1 -0
  313. package/package.json +10 -10
  314. package/src/lib/components/assets-carousel/assets-carousel.theme.scss +21 -15
  315. package/src/lib/components/collapsable/collapsable.theme.scss +48 -0
  316. package/src/lib/components/date-range-picker/date-range-picker.theme.scss +47 -0
  317. package/src/lib/components/navigation/vertical/styles/appearances/default.theme.scss +38 -0
  318. package/src/lib/components/navigation/vertical/styles/appearances/dense.theme.scss +2 -2
  319. package/src/lib/directives/chip-list/chip-list-items/chip-list-items.theme.scss +5 -1
  320. package/src/lib/nice.theme.scss +26 -9
  321. package/styles/main.scss +1 -4
  322. package/styles/overrides/angular-material.scss +505 -766
  323. package/styles/overrides/quill.scss +42 -5
  324. package/styles/tailwind.scss +47 -1
  325. package/styles/core/tailwind-config.scss +0 -6
@@ -47,9 +47,9 @@ export class NiceSweetAlertComponent {
47
47
  }
48
48
  }
49
49
  }
50
- NiceSweetAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
51
- NiceSweetAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceSweetAlertComponent, selector: "nice-alert", ngImport: i0, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.NiceLottieComponent, selector: "nice-lottie", inputs: ["options", "width", "height"], outputs: ["animCreated"] }], encapsulation: i0.ViewEncapsulation.None });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertComponent, decorators: [{
50
+ NiceSweetAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
51
+ NiceSweetAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceSweetAlertComponent, selector: "nice-alert", ngImport: i0, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.NiceLottieComponent, selector: "nice-lottie", inputs: ["options", "width", "height"], outputs: ["animCreated"] }], encapsulation: i0.ViewEncapsulation.None });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: "nice-alert", encapsulation: ViewEncapsulation.None, template: "<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n", styles: [".nice-alert-modal{width:500px}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -19,9 +19,9 @@ export class NiceSweetAlertDirective {
19
19
  }
20
20
  }
21
21
  }
22
- NiceSweetAlertDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertDirective, deps: [{ token: i1.NiceSweetAlertService }], target: i0.ɵɵFactoryTarget.Directive });
23
- NiceSweetAlertDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: NiceSweetAlertDirective, selector: "[niceSweetAlert]", inputs: { sweetAlertType: "sweetAlertType", sweetAlertOptions: "sweetAlertOptions" }, outputs: { sweetAlertAfterClosed: "sweetAlertAfterClosed" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertDirective, decorators: [{
22
+ NiceSweetAlertDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertDirective, deps: [{ token: i1.NiceSweetAlertService }], target: i0.ɵɵFactoryTarget.Directive });
23
+ NiceSweetAlertDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceSweetAlertDirective, selector: "[niceSweetAlert]", inputs: { sweetAlertType: "sweetAlertType", sweetAlertOptions: "sweetAlertOptions" }, outputs: { sweetAlertAfterClosed: "sweetAlertAfterClosed" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertDirective, decorators: [{
25
25
  type: Directive,
26
26
  args: [{ selector: "[niceSweetAlert]" }]
27
27
  }], ctorParameters: function () { return [{ type: i1.NiceSweetAlertService }]; }, propDecorators: { sweetAlertType: [{
@@ -22,10 +22,10 @@ export class NiceSweetAlertModule {
22
22
  };
23
23
  }
24
24
  }
25
- NiceSweetAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- NiceSweetAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertModule, declarations: [NiceSweetAlertComponent, NiceSweetAlertDirective], imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule], exports: [NiceSweetAlertDirective] });
27
- NiceSweetAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertModule, providers: [NiceSweetAlertService], imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertModule, decorators: [{
25
+ NiceSweetAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ NiceSweetAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertModule, declarations: [NiceSweetAlertComponent, NiceSweetAlertDirective], imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule], exports: [NiceSweetAlertDirective] });
27
+ NiceSweetAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertModule, providers: [NiceSweetAlertService], imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule],
@@ -82,9 +82,9 @@ export class NiceSweetAlertService {
82
82
  ];
83
83
  }
84
84
  }
85
- NiceSweetAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertService, deps: [{ token: NICE_ALERT_OPTIONS, optional: true }, { token: i1.MatDialog }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
86
- NiceSweetAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertService });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceSweetAlertService, decorators: [{
85
+ NiceSweetAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService, deps: [{ token: NICE_ALERT_OPTIONS, optional: true }, { token: i1.MatDialog }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ NiceSweetAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceSweetAlertService, decorators: [{
88
88
  type: Injectable
89
89
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
90
90
  type: Optional
@@ -13,11 +13,11 @@ export class NiceToastComponent {
13
13
  this.snackbarRef.dismiss();
14
14
  }
15
15
  }
16
- NiceToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component });
17
- NiceToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceToastComponent, selector: "nice-toast", ngImport: i0, template: "<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n", styles: [".message-box{background-color:transparent!important;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NiceAlertComponent, selector: "nice-alert", inputs: ["appearance", "dismissed", "dismissible", "disableAnimation", "name", "showIcon", "type", "color"], outputs: ["dismissedChanged"], exportAs: ["niceAlert"] }], encapsulation: i0.ViewEncapsulation.None });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastComponent, decorators: [{
16
+ NiceToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastComponent, deps: [{ token: MAT_SNACK_BAR_DATA }, { token: i1.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component });
17
+ NiceToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceToastComponent, selector: "nice-toast", ngImport: i0, template: "<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n", styles: [".message-box .mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NiceAlertComponent, selector: "nice-alert", inputs: ["appearance", "dismissed", "dismissible", "disableAnimation", "name", "showIcon", "type", "color"], outputs: ["dismissedChanged"], exportAs: ["niceAlert"] }], encapsulation: i0.ViewEncapsulation.None });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: "nice-toast", encapsulation: ViewEncapsulation.None, template: "<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n", styles: [".message-box{background-color:transparent!important;box-shadow:none!important}\n"] }]
20
+ args: [{ selector: "nice-toast", encapsulation: ViewEncapsulation.None, template: "<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n", styles: [".message-box .mdc-snackbar__surface{background-color:transparent!important;box-shadow:none!important}\n"] }]
21
21
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
22
22
  type: Inject,
23
23
  args: [MAT_SNACK_BAR_DATA]
@@ -44,10 +44,10 @@ export class NiceToastModule {
44
44
  };
45
45
  }
46
46
  }
47
- NiceToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
- NiceToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceToastModule, declarations: [NiceToastComponent], imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule] });
49
- NiceToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastModule, imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastModule, decorators: [{
47
+ NiceToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
+ NiceToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceToastModule, declarations: [NiceToastComponent], imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule] });
49
+ NiceToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastModule, imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastModule, decorators: [{
51
51
  type: NgModule,
52
52
  args: [{
53
53
  imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule],
@@ -53,9 +53,9 @@ export class NiceToastService {
53
53
  }
54
54
  }
55
55
  }
56
- NiceToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastService, deps: [{ token: NICE_TOAST_OPTIONS }, { token: i1.MatSnackBar }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
57
- NiceToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastService, providedIn: "any" });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToastService, decorators: [{
56
+ NiceToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, deps: [{ token: NICE_TOAST_OPTIONS }, { token: i1.MatSnackBar }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
57
+ NiceToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, providedIn: "any" });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToastService, decorators: [{
59
59
  type: Injectable,
60
60
  args: [{ providedIn: "any" }]
61
61
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -99,15 +99,15 @@ export class ToggleButtonGroupComponent {
99
99
  return this.selected.includes(values[index + 1]);
100
100
  }
101
101
  }
102
- ToggleButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ToggleButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- ToggleButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: ToggleButtonGroupComponent, selector: "nice-toggle-button-group", inputs: { selected: "selected", color: "color", multiple: "multiple" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "blur": "onBlur()" } }, providers: [
102
+ ToggleButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
+ ToggleButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ToggleButtonGroupComponent, selector: "nice-toggle-button-group", inputs: { selected: "selected", color: "color", multiple: "multiple" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "blur": "onBlur()" } }, providers: [
104
104
  {
105
105
  provide: NG_VALUE_ACCESSOR,
106
106
  useExisting: forwardRef(() => ToggleButtonGroupComponent),
107
107
  multi: true
108
108
  }
109
- ], queries: [{ propertyName: "toggleButtons", predicate: ToggleButtonComponent }], ngImport: i0, template: "<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: ["nice-toggle-button-group{overflow-x:scroll;height:44px}nice-toggle-button-group .toggle-button-group-wrapper{position:relative}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group{place-content:center flex-start;position:absolute;width:max-content;-webkit-user-select:none;user-select:none;height:44px;border-radius:12px;cursor:pointer}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button{border-radius:12px;width:100px;min-width:100px;height:44px;overflow:hidden}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button .toggle-button-inner{border-radius:12px;min-height:100%;max-height:100%;height:100%;width:100%;overflow:hidden;text-overflow:ellipsis}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.left-selected{border-top-left-radius:0!important;border-bottom-left-radius:0!important}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.right-selected{border-top-right-radius:0!important;border-bottom-right-radius:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], encapsulation: i0.ViewEncapsulation.None });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ToggleButtonGroupComponent, decorators: [{
109
+ ], queries: [{ propertyName: "toggleButtons", predicate: ToggleButtonComponent }], ngImport: i0, template: "<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: ["nice-toggle-button-group{overflow-x:scroll;height:54px}nice-toggle-button-group .toggle-button-group-wrapper{position:relative}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group{place-content:center flex-start;position:absolute;width:max-content;-webkit-user-select:none;user-select:none;height:44px;border-radius:12px;cursor:pointer}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button{border-radius:12px;width:100px;min-width:100px;height:44px;overflow:hidden}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button .toggle-button-inner{border-radius:12px;min-height:100%;max-height:100%;height:100%;width:100%;overflow:hidden;text-overflow:ellipsis}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.left-selected{border-top-left-radius:0!important;border-bottom-left-radius:0!important}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.right-selected{border-top-right-radius:0!important;border-bottom-right-radius:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], encapsulation: i0.ViewEncapsulation.None });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleButtonGroupComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: "nice-toggle-button-group", encapsulation: ViewEncapsulation.None, providers: [
113
113
  {
@@ -115,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
115
115
  useExisting: forwardRef(() => ToggleButtonGroupComponent),
116
116
  multi: true
117
117
  }
118
- ], template: "<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: ["nice-toggle-button-group{overflow-x:scroll;height:44px}nice-toggle-button-group .toggle-button-group-wrapper{position:relative}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group{place-content:center flex-start;position:absolute;width:max-content;-webkit-user-select:none;user-select:none;height:44px;border-radius:12px;cursor:pointer}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button{border-radius:12px;width:100px;min-width:100px;height:44px;overflow:hidden}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button .toggle-button-inner{border-radius:12px;min-height:100%;max-height:100%;height:100%;width:100%;overflow:hidden;text-overflow:ellipsis}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.left-selected{border-top-left-radius:0!important;border-bottom-left-radius:0!important}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.right-selected{border-top-right-radius:0!important;border-bottom-right-radius:0!important}\n"] }]
118
+ ], template: "<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: ["nice-toggle-button-group{overflow-x:scroll;height:54px}nice-toggle-button-group .toggle-button-group-wrapper{position:relative}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group{place-content:center flex-start;position:absolute;width:max-content;-webkit-user-select:none;user-select:none;height:44px;border-radius:12px;cursor:pointer}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button{border-radius:12px;width:100px;min-width:100px;height:44px;overflow:hidden}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button .toggle-button-inner{border-radius:12px;min-height:100%;max-height:100%;height:100%;width:100%;overflow:hidden;text-overflow:ellipsis}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.left-selected{border-top-left-radius:0!important;border-bottom-left-radius:0!important}nice-toggle-button-group .toggle-button-group-wrapper .toggle-button-group .toggle-button.right-selected{border-top-right-radius:0!important;border-bottom-right-radius:0!important}\n"] }]
119
119
  }], propDecorators: { toggleButtons: [{
120
120
  type: ContentChildren,
121
121
  args: [ToggleButtonComponent]
@@ -6,12 +6,12 @@ import { ToggleButtonComponent } from "./toggle-button.component";
6
6
  import * as i0 from "@angular/core";
7
7
  export class NiceToggleButtonGroupModule {
8
8
  }
9
- NiceToggleButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToggleButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- NiceToggleButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceToggleButtonGroupModule, declarations: [ToggleButtonComponent, ToggleButtonGroupComponent], imports: [CommonModule,
9
+ NiceToggleButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToggleButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NiceToggleButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceToggleButtonGroupModule, declarations: [ToggleButtonComponent, ToggleButtonGroupComponent], imports: [CommonModule,
11
11
  MatRippleModule], exports: [ToggleButtonComponent, ToggleButtonGroupComponent] });
12
- NiceToggleButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToggleButtonGroupModule, imports: [CommonModule,
12
+ NiceToggleButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToggleButtonGroupModule, imports: [CommonModule,
13
13
  MatRippleModule] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceToggleButtonGroupModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceToggleButtonGroupModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: [
@@ -2,9 +2,9 @@ import { Component, Input, TemplateRef, ViewChild } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class ToggleButtonComponent {
4
4
  }
5
- ToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- ToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: ToggleButtonComponent, selector: "nice-toggle-button", inputs: { value: "value" }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `<ng-template><ng-content></ng-content></ng-template>`, isInline: true });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ToggleButtonComponent, decorators: [{
5
+ ToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ ToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ToggleButtonComponent, selector: "nice-toggle-button", inputs: { value: "value" }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: `<ng-template><ng-content></ng-content></ng-template>`, isInline: true });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleButtonComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{
10
10
  selector: "nice-toggle-button",
@@ -0,0 +1,37 @@
1
+ import { ChangeDetectionStrategy, Component, Input, } from "@angular/core";
2
+ import { MatFormFieldControl } from "@angular/material/form-field";
3
+ import { TranslationFormComponent } from "../translation-form.component";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/input";
6
+ import * as i2 from "@angular/forms";
7
+ export class TranslationFormTextareaComponent extends TranslationFormComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.resizable = true;
11
+ this.rows = 2;
12
+ this.cols = 20;
13
+ }
14
+ }
15
+ TranslationFormTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ TranslationFormTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationFormTextareaComponent, selector: "nice-translation-form-textarea", inputs: { resizable: "resizable", rows: "rows", cols: "cols" }, providers: [
17
+ {
18
+ provide: MatFormFieldControl,
19
+ useExisting: TranslationFormTextareaComponent,
20
+ },
21
+ ], usesInheritance: true, ngImport: i0, template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n", dependencies: [{ kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextareaComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: "nice-translation-form-textarea", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
25
+ {
26
+ provide: MatFormFieldControl,
27
+ useExisting: TranslationFormTextareaComponent,
28
+ },
29
+ ], template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n" }]
30
+ }], propDecorators: { resizable: [{
31
+ type: Input
32
+ }], rows: [{
33
+ type: Input
34
+ }], cols: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RleHRhcmVhL3RyYW5zbGF0aW9uLWZvcm0tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0YXJlYS90cmFuc2xhdGlvbi1mb3JtLXRleHRhcmVhLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBYXpFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSx3QkFBd0I7SUFYOUU7O1FBYVcsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdqQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1QsU0FBSSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7NkhBVFksZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MseUhBUDlCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxnQ0FBZ0M7U0FDaEQ7S0FDSixpRENqQkwsbU9BU0E7MkZEVWEsZ0NBQWdDO2tCQVg1QyxTQUFTOytCQUNJLGdDQUFnQyxtQkFFekIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLGtDQUFrQzt5QkFDaEQ7cUJBQ0o7OEJBSU0sU0FBUztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInRyYW5zbGF0aW9uLWZvcm0tdGV4dGFyZWEudGVtcGxhdGUuaHRtbFwiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2xhdGlvbkZvcm1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc2l6YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb3dzID0gMjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHMgPSAyMDtcbn1cbiIsIjx0ZXh0YXJlYVxuICAgIG1hdElucHV0XG4gICAgW2Zvcm1Db250cm9sXT1cImN1cnJlbnRDb250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICBbcm93c109XCJyb3dzXCJcbiAgICBbY29sc109XCJjb2xzXCJcbiAgICBbY2xhc3MucmVzaXplLW5vbmVdPVwiIXJlc2l6YWJsZVwiXG4+PC90ZXh0YXJlYT5cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { ChangeDetectionStrategy, Component, } from "@angular/core";
2
+ import { MatFormFieldControl } from "@angular/material/form-field";
3
+ import { TranslationFormComponent } from "../translation-form.component";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/input";
6
+ import * as i2 from "@angular/forms";
7
+ export class TranslationFormTextfieldComponent extends TranslationFormComponent {
8
+ }
9
+ TranslationFormTextfieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextfieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
+ TranslationFormTextfieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationFormTextfieldComponent, selector: "nice-translation-form-textfield", providers: [
11
+ {
12
+ provide: MatFormFieldControl,
13
+ useExisting: TranslationFormTextfieldComponent,
14
+ },
15
+ ], usesInheritance: true, ngImport: i0, template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n", dependencies: [{ kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormTextfieldComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: "nice-translation-form-textfield", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
19
+ {
20
+ provide: MatFormFieldControl,
21
+ useExisting: TranslationFormTextfieldComponent,
22
+ },
23
+ ], template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n" }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0ZmllbGQvdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0ZmllbGQvdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQWF6RSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsd0JBQXdCOzs4SEFBbEUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsMERBUC9CO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxpQ0FBaUM7U0FDakQ7S0FDSixpRENoQkwsb0lBTUE7MkZEWWEsaUNBQWlDO2tCQVg3QyxTQUFTOytCQUNJLGlDQUFpQyxtQkFFMUIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG1DQUFtQzt5QkFDakQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJ0cmFuc2xhdGlvbi1mb3JtLXRleHRmaWVsZC50ZW1wbGF0ZS5odG1sXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHJhbnNsYXRpb25Gb3JtVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uRm9ybVRleHRmaWVsZENvbXBvbmVudCBleHRlbmRzIFRyYW5zbGF0aW9uRm9ybUNvbXBvbmVudCB7fVxuIiwiPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3VycmVudENvbnRyb2xcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuLz5cbiJdfQ==
@@ -0,0 +1,164 @@
1
+ import { coerceBooleanProperty } from "@angular/cdk/coercion";
2
+ import { ChangeDetectorRef, Component, HostBinding, Input, } from "@angular/core";
3
+ import { ControlContainer, FormControl, Validators, } from "@angular/forms";
4
+ import { Subject } from "rxjs";
5
+ import { takeUntil } from "rxjs/operators";
6
+ import * as uuid from "uuid";
7
+ import { TranslationContextDirective } from "../directives/translation-context.directive";
8
+ import { TranslationFormService } from "../providers/translation-form.service";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/forms";
11
+ import * as i2 from "../directives/translation-context.directive";
12
+ import * as i3 from "../providers/translation-form.service";
13
+ export class TranslationFormComponent {
14
+ get classList() {
15
+ return {
16
+ "w-full": true
17
+ };
18
+ }
19
+ get shouldLabelFloat() {
20
+ return this.floating || !this.empty;
21
+ }
22
+ set required(req) {
23
+ this._required = coerceBooleanProperty(req);
24
+ this.stateChanges.next();
25
+ }
26
+ get required() {
27
+ return (this._required ??
28
+ this.ngControl?.control?.hasValidator(Validators.required) ??
29
+ false);
30
+ }
31
+ get disabled() {
32
+ return this._disabled;
33
+ }
34
+ set disabled(value) {
35
+ this._disabled = coerceBooleanProperty(value);
36
+ if (this._disabled) {
37
+ this.currentControl.disable({ emitEvent: false });
38
+ }
39
+ else {
40
+ this.currentControl.enable({ emitEvent: false });
41
+ }
42
+ this.stateChanges.next();
43
+ }
44
+ set placeholder(placeholder) {
45
+ this._placeholder = placeholder;
46
+ this.stateChanges.next();
47
+ }
48
+ get placeholder() {
49
+ return this._placeholder;
50
+ }
51
+ set value(value) {
52
+ if (value === this._value) {
53
+ return;
54
+ }
55
+ this._value = value;
56
+ this.propagate(this._value);
57
+ }
58
+ get value() {
59
+ return this._value;
60
+ }
61
+ get empty() {
62
+ const emptyControlValue = !this.currentControl?.value || !this.currentControl.value.length;
63
+ const emptyValue = !this._value ||
64
+ (typeof this._value === "string" && !this._value.length);
65
+ return emptyControlValue && emptyValue;
66
+ }
67
+ get errorState() {
68
+ return this.ngControl
69
+ ? this.ngControl.touched && this.ngControl.invalid
70
+ : false;
71
+ }
72
+ constructor(container, context, service, changeDetectorRef) {
73
+ this.container = container;
74
+ this.context = context;
75
+ this.service = service;
76
+ this.changeDetectorRef = changeDetectorRef;
77
+ this.floating = true;
78
+ this.maxLength = 524288; // The maximum number of characters allowed in the <input> element. Default value is 524288
79
+ this.id = uuid.v4();
80
+ this.describedBy = "";
81
+ this.stateChanges = new Subject();
82
+ this.controlType = "translationForm";
83
+ this._unsubscribeAll$ = new Subject();
84
+ this._disabled = false;
85
+ this.propagate = () => { };
86
+ }
87
+ onContainerClick(event) { }
88
+ setDescribedByIds(ids) {
89
+ this.describedBy = ids.join(" ");
90
+ }
91
+ registerOnChange(fn) {
92
+ this.propagate = fn;
93
+ }
94
+ registerOnTouched(fn) { }
95
+ writeValue(value) {
96
+ this._value = value;
97
+ }
98
+ ngOnInit() {
99
+ this.formGroup = this.container.control;
100
+ this.service.languages$
101
+ .pipe(takeUntil(this._unsubscribeAll$))
102
+ .subscribe((languages) => {
103
+ if (!languages?.length) {
104
+ return;
105
+ }
106
+ this.setupFormControls(languages);
107
+ });
108
+ this.context.activeLanguage$
109
+ .pipe(takeUntil(this._unsubscribeAll$))
110
+ .subscribe((activeLanguage) => {
111
+ this.setLanguage(activeLanguage);
112
+ });
113
+ }
114
+ ngOnDestroy() {
115
+ this._unsubscribeAll$.next();
116
+ this._unsubscribeAll$.complete();
117
+ }
118
+ setLanguage(language) {
119
+ this.currentControl = this.formGroup.get(language);
120
+ this.changeDetectorRef.markForCheck();
121
+ }
122
+ setupFormControls(languages) {
123
+ for (const language of languages) {
124
+ if (!this.formGroup.controls[language]) {
125
+ this.formGroup.addControl(language, new FormControl(""));
126
+ }
127
+ }
128
+ const controlToRemove = Object.keys(this.formGroup.controls).filter((key) => !languages.includes(key));
129
+ for (const key of controlToRemove) {
130
+ this.formGroup.removeControl(key);
131
+ }
132
+ this.currentControl = this.formGroup.get(languages[0]);
133
+ }
134
+ }
135
+ TranslationFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormComponent, deps: [{ token: i1.ControlContainer }, { token: i2.TranslationContextDirective }, { token: i3.TranslationFormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
136
+ TranslationFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TranslationFormComponent, selector: "ng-component", inputs: { required: "required", disabled: "disabled", placeholder: "placeholder", floating: "floating", maxLength: "maxLength" }, host: { properties: { "class": "this.classList", "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, ngImport: i0, template: ``, isInline: true });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TranslationFormComponent, decorators: [{
138
+ type: Component,
139
+ args: [{
140
+ template: ``,
141
+ }]
142
+ }], ctorParameters: function () { return [{ type: i1.ControlContainer }, { type: i2.TranslationContextDirective }, { type: i3.TranslationFormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { classList: [{
143
+ type: HostBinding,
144
+ args: ["class"]
145
+ }], shouldLabelFloat: [{
146
+ type: HostBinding,
147
+ args: ["class.floating"]
148
+ }], required: [{
149
+ type: Input
150
+ }], disabled: [{
151
+ type: Input
152
+ }], placeholder: [{
153
+ type: Input
154
+ }], floating: [{
155
+ type: Input
156
+ }], maxLength: [{
157
+ type: Input
158
+ }], id: [{
159
+ type: HostBinding
160
+ }], describedBy: [{
161
+ type: HostBinding,
162
+ args: ["attr.aria-describedby"]
163
+ }] } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGdCQUFnQixFQUVoQixXQUFXLEVBR1gsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBSy9FLE1BQU0sT0FBZ0Isd0JBQXdCO0lBTzFDLElBQ1csU0FBUztRQUNoQixPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUNXLGdCQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUNXLFFBQVEsQ0FBQyxHQUFHO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFlBQVks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QUMsT0FBTztnQkFRVCxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQU1sQixRQUFRO3NCQURsQixLQUFLO2dCQWVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBZ0RDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsRUFBRTtzQkFEUixXQUFXO2dCQUlMLFdBQVc7c0JBRGpCLFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlLFxuICAgIENvbnRyb2xDb250YWluZXIsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUdyb3VwLFxuICAgIE5nQ29udHJvbCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSBcInV1aWRcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uQ29udGV4dERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL3RyYW5zbGF0aW9uLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkZvcm1TZXJ2aWNlIH0gZnJvbSBcIi4uL3Byb3ZpZGVycy90cmFuc2xhdGlvbi1mb3JtLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBgLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2xhdGlvbkZvcm1Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzXG4gICAgICAgIE9uSW5pdCxcbiAgICAgICAgT25EZXN0cm95LFxuICAgICAgICBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sXG4gICAgICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIilcbiAgICBwdWJsaWMgZ2V0IGNsYXNzTGlzdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgXCJ3LWZ1bGxcIjogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmZsb2F0aW5nXCIpXG4gICAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mbG9hdGluZyB8fCAhdGhpcy5lbXB0eTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxKSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVtcHR5Q29udHJvbFZhbHVlID1cbiAgICAgICAgICAgICF0aGlzLmN1cnJlbnRDb250cm9sPy52YWx1ZSB8fCAhdGhpcy5jdXJyZW50Q29udHJvbC52YWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgY29uc3QgZW1wdHlWYWx1ZSA9XG4gICAgICAgICAgICAhdGhpcy5fdmFsdWUgfHxcbiAgICAgICAgICAgICh0eXBlb2YgdGhpcy5fdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgIXRoaXMuX3ZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgcmV0dXJuIGVtcHR5Q29udHJvbFZhbHVlICYmIGVtcHR5VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2xcbiAgICAgICAgICAgID8gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCAmJiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0OiBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogVHJhbnNsYXRpb25Gb3JtU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmbG9hdGluZyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhMZW5ndGggPSA1MjQyODg7IC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIDxpbnB1dD4gZWxlbWVudC4gRGVmYXVsdCB2YWx1ZSBpcyA1MjQyODhcblxuICAgIEBIb3N0QmluZGluZygpXG4gICAgcHVibGljIGlkOiBzdHJpbmcgPSB1dWlkLnY0KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtZGVzY3JpYmVkYnlcIilcbiAgICBwdWJsaWMgZGVzY3JpYmVkQnkgPSBcIlwiO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBjdXJyZW50Q29udHJvbD86IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IE5nQ29udHJvbDtcbiAgICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29udHJvbFR5cGUgPSBcInRyYW5zbGF0aW9uRm9ybVwiO1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcblxuICAgIHB1YmxpYyByZWFkb25seSBhdXRvZmlsbGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyByZWFkb25seSB1c2VyQXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgcHJvcGFnYXRlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oXCIgXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGUgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5jb250YWluZXIuY29udHJvbCBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLmxhbmd1YWdlcyRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGFuZ3VhZ2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYW5ndWFnZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cEZvcm1Db250cm9scyhsYW5ndWFnZXMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250ZXh0LmFjdGl2ZUxhbmd1YWdlJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChhY3RpdmVMYW5ndWFnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UoYWN0aXZlTGFuZ3VhZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGxhbmd1YWdlKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybUNvbnRyb2xzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBsYW5ndWFnZSBvZiBsYW5ndWFnZXMpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbbGFuZ3VhZ2VdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChsYW5ndWFnZSwgbmV3IEZvcm1Db250cm9sKFwiXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xUb1JlbW92ZSA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5maWx0ZXIoXG4gICAgICAgICAgICAoa2V5KSA9PiAhbGFuZ3VhZ2VzLmluY2x1ZGVzKGtleSlcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgY29udHJvbFRvUmVtb3ZlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN1cnJlbnRDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGxhbmd1YWdlc1swXSkgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,71 @@
1
+ import { AsyncPipe, NgForOf, NgIf, UpperCasePipe } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { ReactiveFormsModule } from "@angular/forms";
4
+ import { MatButtonToggleModule } from "@angular/material/button-toggle";
5
+ import { MatInputModule } from "@angular/material/input";
6
+ import { NGX_FORM_GENERATOR_ASYNC_VALIDATORS } from "@recursyve/ngx-form-generator";
7
+ import { TranslationContextDirective } from "../directives/translation-context.directive";
8
+ import { TranslationToggleComponent } from "../toggle/translation-toggle.component";
9
+ import { TranslationFormTextareaComponent } from "./textarea/translation-form-textarea.component";
10
+ import { TranslationFormTextfieldComponent } from "./textfield/translation-form-textfield.component";
11
+ import { RequireForLanguagesValidator } from "../validators/require-for-languages.validator";
12
+ import * as i0 from "@angular/core";
13
+ export class NiceTranslationFormModule {
14
+ static forRoot() {
15
+ return {
16
+ ngModule: NiceTranslationFormModule,
17
+ providers: [
18
+ {
19
+ provide: NGX_FORM_GENERATOR_ASYNC_VALIDATORS,
20
+ useClass: RequireForLanguagesValidator,
21
+ multi: true,
22
+ },
23
+ ]
24
+ };
25
+ }
26
+ }
27
+ NiceTranslationFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
28
+ NiceTranslationFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormModule, declarations: [TranslationFormTextfieldComponent,
29
+ TranslationFormTextareaComponent,
30
+ TranslationToggleComponent,
31
+ TranslationContextDirective], imports: [MatButtonToggleModule,
32
+ MatInputModule,
33
+ ReactiveFormsModule,
34
+ NgForOf,
35
+ NgIf,
36
+ AsyncPipe,
37
+ UpperCasePipe], exports: [TranslationFormTextfieldComponent,
38
+ TranslationFormTextareaComponent,
39
+ TranslationToggleComponent,
40
+ TranslationContextDirective] });
41
+ NiceTranslationFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormModule, imports: [MatButtonToggleModule,
42
+ MatInputModule,
43
+ ReactiveFormsModule] });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceTranslationFormModule, decorators: [{
45
+ type: NgModule,
46
+ args: [{
47
+ imports: [
48
+ MatButtonToggleModule,
49
+ MatInputModule,
50
+ ReactiveFormsModule,
51
+ NgForOf,
52
+ NgIf,
53
+ AsyncPipe,
54
+ UpperCasePipe,
55
+ ],
56
+ declarations: [
57
+ TranslationFormTextfieldComponent,
58
+ TranslationFormTextareaComponent,
59
+ TranslationToggleComponent,
60
+ TranslationContextDirective,
61
+ ],
62
+ providers: [],
63
+ exports: [
64
+ TranslationFormTextfieldComponent,
65
+ TranslationFormTextareaComponent,
66
+ TranslationToggleComponent,
67
+ TranslationContextDirective,
68
+ ],
69
+ }]
70
+ }] });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBMEI3RixNQUFNLE9BQU8seUJBQXlCO0lBQzNCLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU87WUFDSCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsbUNBQW1DO29CQUM1QyxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7O3NIQVpRLHlCQUF5Qjt1SEFBekIseUJBQXlCLGlCQWI5QixpQ0FBaUM7UUFDakMsZ0NBQWdDO1FBQ2hDLDBCQUEwQjtRQUMxQiwyQkFBMkIsYUFaM0IscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsT0FBTztRQUNQLElBQUk7UUFDSixTQUFTO1FBQ1QsYUFBYSxhQVViLGlDQUFpQztRQUNqQyxnQ0FBZ0M7UUFDaEMsMEJBQTBCO1FBQzFCLDJCQUEyQjt1SEFHdEIseUJBQXlCLFlBdEI5QixxQkFBcUI7UUFDckIsY0FBYztRQUNkLG1CQUFtQjsyRkFvQmQseUJBQXlCO2tCQXhCckMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsYUFBYTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFO3dCQUNMLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLDJCQUEyQjtxQkFDOUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWYsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZVwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE5HWF9GT1JNX0dFTkVSQVRPUl9BU1lOQ19WQUxJREFUT1JTIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy90cmFuc2xhdGlvbi1jb250ZXh0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Ub2dnbGVDb21wb25lbnQgfSBmcm9tIFwiLi4vdG9nZ2xlL3RyYW5zbGF0aW9uLXRvZ2dsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSBcIi4vdGV4dGFyZWEvdHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYS5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtVGV4dGZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vdGV4dGZpZWxkL3RyYW5zbGF0aW9uLWZvcm0tdGV4dGZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmVxdWlyZUZvckxhbmd1YWdlc1ZhbGlkYXRvciB9IGZyb20gXCIuLi92YWxpZGF0b3JzL3JlcXVpcmUtZm9yLWxhbmd1YWdlcy52YWxpZGF0b3JcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgVXBwZXJDYXNlUGlwZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBUcmFuc2xhdGlvbkZvcm1UZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICBUcmFuc2xhdGlvblRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRpb25Db250ZXh0RGlyZWN0aXZlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0aW9uRm9ybVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRpb25Gb3JtVGV4dGFyZWFDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0aW9uVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmljZVRyYW5zbGF0aW9uRm9ybU1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmljZVRyYW5zbGF0aW9uRm9ybU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5pY2VUcmFuc2xhdGlvbkZvcm1Nb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5HWF9GT1JNX0dFTkVSQVRPUl9BU1lOQ19WQUxJREFUT1JTLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogUmVxdWlyZUZvckxhbmd1YWdlc1ZhbGlkYXRvcixcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { DynamicGroup } from "@recursyve/ngx-form-generator";
2
+ // tslint:disable-next-line:variable-name
3
+ export const TranslationFormDecorator = () => DynamicGroup();
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9kZWNvcmF0b3JzL3RyYW5zbGF0aW9uLWZvcm0uZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCx5Q0FBeUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljR3JvdXAgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbmV4cG9ydCBjb25zdCBUcmFuc2xhdGlvbkZvcm1EZWNvcmF0b3IgPSAoKSA9PiBEeW5hbWljR3JvdXAoKTtcbiJdfQ==