@updevs/components 1.0.0-alpha.6 → 1.0.0-alpha.61

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 (693) hide show
  1. package/README.md +1 -11
  2. package/assets/styles/_bootstrap-components.scss +18 -1
  3. package/assets/styles/_core.scss +9 -0
  4. package/assets/styles/_debug.scss +49 -0
  5. package/assets/styles/_props.scss +91 -0
  6. package/assets/styles/_seven-columns.scss +73 -0
  7. package/assets/styles/_updevs.scss +16 -0
  8. package/assets/styles/_utilities-marketing.scss +209 -0
  9. package/assets/styles/_utilities.scss +127 -92
  10. package/assets/styles/_variables-dark.scss +8 -6
  11. package/assets/styles/_variables.scss +325 -256
  12. package/assets/styles/helpers/_index.scss +143 -0
  13. package/assets/styles/layout/_core.scss +3 -2
  14. package/assets/styles/layout/_dark.scss +40 -35
  15. package/assets/styles/layout/_footer.scss +1 -1
  16. package/assets/styles/layout/_navbar.scss +31 -19
  17. package/assets/styles/layout/_page.scss +6 -5
  18. package/assets/styles/layout/_root.scss +26 -34
  19. package/assets/styles/marketing/_browser.scss +67 -0
  20. package/assets/styles/marketing/_core.scss +8 -0
  21. package/assets/styles/marketing/_filters.scss +0 -0
  22. package/assets/styles/marketing/_hero.scss +70 -0
  23. package/assets/styles/marketing/_pricing.scss +111 -0
  24. package/assets/styles/marketing/_sections.scss +124 -0
  25. package/assets/styles/marketing/_shape.scss +31 -0
  26. package/assets/styles/mixins/_functions.scss +53 -0
  27. package/assets/styles/mixins/_mixins.scss +9 -9
  28. package/assets/styles/ui/_accordion.scss +165 -11
  29. package/assets/styles/ui/_alerts.scss +80 -38
  30. package/assets/styles/ui/_avatars.scss +36 -9
  31. package/assets/styles/ui/_badges.scss +47 -13
  32. package/assets/styles/ui/_button-group.scss +1 -1
  33. package/assets/styles/ui/_buttons.scss +33 -37
  34. package/assets/styles/ui/_calendars.scss +2 -2
  35. package/assets/styles/ui/_cards.scss +9 -0
  36. package/assets/styles/ui/_carousel.scss +1 -1
  37. package/assets/styles/ui/_charts.scss +1 -1
  38. package/assets/styles/ui/_chat.scss +38 -0
  39. package/assets/styles/ui/_close.scss +54 -1
  40. package/assets/styles/ui/_datagrid.scss +1 -1
  41. package/assets/styles/ui/_dropdowns.scss +3 -0
  42. package/assets/styles/ui/_empty.scss +0 -5
  43. package/assets/styles/ui/_flags.scss +2 -2
  44. package/assets/styles/ui/_forms.scss +33 -7
  45. package/assets/styles/ui/_grid.scss +1 -1
  46. package/assets/styles/ui/_icons.scss +1 -1
  47. package/assets/styles/ui/_images.scss +4 -0
  48. package/assets/styles/ui/_lists.scss +12 -16
  49. package/assets/styles/ui/_loaders.scss +1 -1
  50. package/assets/styles/ui/_markdown.scss +15 -4
  51. package/assets/styles/ui/_modals.scss +2 -2
  52. package/assets/styles/ui/_nav.scss +17 -3
  53. package/assets/styles/ui/_offcanvas.scss +2 -2
  54. package/assets/styles/ui/_pagination.scss +2 -0
  55. package/assets/styles/ui/_payments.scss +1 -1
  56. package/assets/styles/ui/_placeholder.scss +1 -1
  57. package/assets/styles/ui/_progress.scss +1 -1
  58. package/assets/styles/ui/_ribbons.scss +1 -0
  59. package/assets/styles/ui/_segmented.scss +101 -0
  60. package/assets/styles/ui/_signature.scss +15 -0
  61. package/assets/styles/ui/_social.scss +52 -0
  62. package/assets/styles/ui/_status.scss +1 -1
  63. package/assets/styles/ui/_steps.scss +5 -1
  64. package/assets/styles/ui/_switch-icon.scss +1 -1
  65. package/assets/styles/ui/_tables.scss +27 -1
  66. package/assets/styles/ui/_tags.scss +1 -1
  67. package/assets/styles/ui/_timeline.scss +1 -1
  68. package/assets/styles/ui/_toasts.scss +0 -1
  69. package/assets/styles/ui/_tracking.scss +1 -1
  70. package/assets/styles/ui/_type.scss +169 -8
  71. package/assets/styles/ui/forms/_form-check.scss +1 -1
  72. package/assets/styles/ui/forms/_form-colorinput.scss +1 -1
  73. package/assets/styles/ui/forms/_form-custom.scss +1 -1
  74. package/assets/styles/ui/forms/_form-imagecheck.scss +6 -5
  75. package/assets/styles/ui/forms/_form-selectgroup.scss +2 -2
  76. package/assets/styles/ui/typo/_hr.scss +4 -2
  77. package/assets/styles/utils/_colors.scss +72 -11
  78. package/assets/styles/utils/_opacity.scss +1 -1
  79. package/assets/styles/utils/_scroll.scss +0 -2
  80. package/assets/styles/utils/_sizing.scss +1 -1
  81. package/assets/styles/utils/_text.scss +1 -2
  82. package/assets/styles/vendor/_apexcharts.scss +52 -0
  83. package/assets/styles/vendor/_coloris.scss +72 -0
  84. package/assets/styles/vendor/_dropzone.scss +27 -0
  85. package/assets/styles/vendor/_fslightbox.scss +13 -0
  86. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  87. package/assets/styles/vendor/_litepicker.scss +69 -0
  88. package/assets/styles/vendor/_nouislider.scss +49 -0
  89. package/assets/styles/vendor/_plyr.scss +3 -0
  90. package/assets/styles/vendor/_stars-rating.scss +22 -0
  91. package/assets/styles/vendor/_tom-select.scss +81 -0
  92. package/assets/styles/vendor/_turbo.scss +3 -0
  93. package/assets/styles/vendor/_typed.scss +4 -0
  94. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  95. package/badge/badge-config.model.d.ts +14 -0
  96. package/badge/badge.component.d.ts +23 -0
  97. package/badge/badge.config.d.ts +12 -0
  98. package/badge/index.d.ts +1 -0
  99. package/badge/public-api.d.ts +3 -0
  100. package/badge/upd-badge.module.d.ts +8 -0
  101. package/button/button.component.d.ts +51 -33
  102. package/button/upd-button.module.d.ts +3 -1
  103. package/calendar/calendar.component.d.ts +63 -0
  104. package/calendar/index.d.ts +1 -0
  105. package/calendar/models/calendar-date.model.d.ts +10 -0
  106. package/calendar/models/calendar-month.model.d.ts +7 -0
  107. package/calendar/models/calendar-selected.model.d.ts +5 -0
  108. package/calendar/models/calendar-user-event.model.d.ts +4 -0
  109. package/calendar/models/calendar-year.model.d.ts +6 -0
  110. package/calendar/models/date-range.model.d.ts +22 -0
  111. package/calendar/models/enums/calendar-view.enum.d.ts +5 -0
  112. package/calendar/models/public-api.d.ts +7 -0
  113. package/calendar/public-api.d.ts +5 -0
  114. package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
  115. package/calendar/services/calendar-signals.service.d.ts +24 -0
  116. package/calendar/services/public-api.d.ts +1 -0
  117. package/calendar/types/calendar-view.type.d.ts +1 -0
  118. package/calendar/types/public-api.d.ts +1 -0
  119. package/calendar/upd-calendar.module.d.ts +13 -0
  120. package/card/card.component.d.ts +2 -2
  121. package/card/directives/card-actions.directive.d.ts +1 -2
  122. package/card/directives/card-footer.directive.d.ts +1 -2
  123. package/card/directives/card-header.directive.d.ts +1 -2
  124. package/card/directives/card-image.directive.d.ts +1 -2
  125. package/card/public-api.d.ts +1 -0
  126. package/card/types/public-api.d.ts +5 -0
  127. package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
  128. package/drag-and-drop/index.d.ts +1 -0
  129. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
  130. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
  131. package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
  132. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
  133. package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
  134. package/drag-and-drop/models/public-api.d.ts +4 -0
  135. package/drag-and-drop/public-api.d.ts +3 -0
  136. package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
  137. package/dropdown/dropdown.component.d.ts +23 -6
  138. package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
  139. package/dropdown/models/dropdown-item.d.ts +7 -2
  140. package/dropdown/models/dropdown-item.type.d.ts +1 -1
  141. package/dropdown/models/public-api.d.ts +2 -0
  142. package/dropdown/models/toolbar.type.d.ts +1 -0
  143. package/esm2022/badge/badge-config.model.mjs +14 -0
  144. package/esm2022/badge/badge.component.mjs +48 -0
  145. package/esm2022/badge/badge.config.mjs +2 -0
  146. package/esm2022/badge/index.mjs +2 -0
  147. package/esm2022/badge/public-api.mjs +4 -0
  148. package/esm2022/badge/upd-badge.module.mjs +24 -0
  149. package/esm2022/badge/updevs-components-badge.mjs +5 -0
  150. package/esm2022/button/button.component.mjs +126 -132
  151. package/esm2022/button/index.mjs +1 -1
  152. package/esm2022/button/public-api.mjs +1 -1
  153. package/esm2022/button/upd-button.module.mjs +14 -6
  154. package/esm2022/button/updevs-components-button.mjs +1 -1
  155. package/esm2022/calendar/assets/i18n/en.json +16 -0
  156. package/esm2022/calendar/assets/i18n/pt.json +16 -0
  157. package/esm2022/calendar/calendar.component.mjs +318 -0
  158. package/esm2022/calendar/index.mjs +2 -0
  159. package/esm2022/calendar/models/calendar-date.model.mjs +2 -0
  160. package/esm2022/calendar/models/calendar-month.model.mjs +2 -0
  161. package/esm2022/calendar/models/calendar-selected.model.mjs +2 -0
  162. package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
  163. package/esm2022/calendar/models/calendar-year.model.mjs +2 -0
  164. package/esm2022/calendar/models/date-range.model.mjs +18 -0
  165. package/esm2022/calendar/models/enums/calendar-view.enum.mjs +7 -0
  166. package/esm2022/calendar/models/public-api.mjs +8 -0
  167. package/esm2022/calendar/public-api.mjs +6 -0
  168. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
  169. package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
  170. package/esm2022/calendar/services/public-api.mjs +2 -0
  171. package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
  172. package/esm2022/calendar/types/public-api.mjs +2 -0
  173. package/esm2022/calendar/upd-calendar.module.mjs +52 -0
  174. package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
  175. package/esm2022/card/card.component.mjs +4 -4
  176. package/esm2022/card/directives/card-actions.directive.mjs +8 -8
  177. package/esm2022/card/directives/card-footer.directive.mjs +8 -8
  178. package/esm2022/card/directives/card-header.directive.mjs +8 -8
  179. package/esm2022/card/directives/card-image.directive.mjs +8 -8
  180. package/esm2022/card/directives/public-api.mjs +1 -1
  181. package/esm2022/card/index.mjs +1 -1
  182. package/esm2022/card/public-api.mjs +2 -1
  183. package/esm2022/card/types/card-state.type.mjs +1 -1
  184. package/esm2022/card/types/card-style.type.mjs +1 -1
  185. package/esm2022/card/types/hover-effect.type.mjs +1 -1
  186. package/esm2022/card/types/public-api.mjs +6 -0
  187. package/esm2022/card/types/ribbon-style.type.mjs +1 -1
  188. package/esm2022/card/types/status-position.type.mjs +1 -1
  189. package/esm2022/card/upd-card.module.mjs +5 -5
  190. package/esm2022/card/updevs-components-card.mjs +1 -1
  191. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
  192. package/esm2022/drag-and-drop/index.mjs +2 -0
  193. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
  194. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
  195. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
  196. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
  197. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
  198. package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
  199. package/esm2022/drag-and-drop/public-api.mjs +4 -0
  200. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
  201. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
  202. package/esm2022/dropdown/dropdown.component.mjs +75 -18
  203. package/esm2022/dropdown/index.mjs +1 -1
  204. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
  205. package/esm2022/dropdown/models/dropdown-item.mjs +1 -1
  206. package/esm2022/dropdown/models/dropdown-item.type.mjs +1 -1
  207. package/esm2022/dropdown/models/public-api.mjs +3 -1
  208. package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
  209. package/esm2022/dropdown/public-api.mjs +1 -1
  210. package/esm2022/dropdown/upd-dropdown.module.mjs +5 -5
  211. package/esm2022/dropdown/updevs-components-dropdown.mjs +1 -1
  212. package/esm2022/form/assets/i18n/en.json +17 -0
  213. package/esm2022/form/assets/i18n/pt.json +17 -0
  214. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +174 -0
  215. package/esm2022/form/form.component.mjs +180 -0
  216. package/esm2022/form/index.mjs +1 -1
  217. package/esm2022/form/models/attachment-rule.model.mjs +2 -0
  218. package/esm2022/form/models/button-field.model.mjs +2 -0
  219. package/esm2022/form/models/button-group-field.model.mjs +2 -0
  220. package/esm2022/form/models/checkbox-field.model.mjs +2 -0
  221. package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
  222. package/esm2022/form/models/dynamic-field.model.mjs +2 -0
  223. package/esm2022/form/models/enums/attachment-type.enum.mjs +15 -0
  224. package/esm2022/form/models/enums/dynamic-field.type.mjs +17 -0
  225. package/esm2022/form/models/enums/public-api.mjs +3 -0
  226. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  227. package/esm2022/form/models/form-config.mjs +2 -0
  228. package/esm2022/form/models/form-row.model.mjs +2 -0
  229. package/esm2022/form/models/form-update-on.type.mjs +2 -0
  230. package/esm2022/form/models/input-field.model.mjs +2 -0
  231. package/esm2022/form/models/masked-input-field.model.mjs +2 -0
  232. package/esm2022/form/models/public-api.mjs +19 -0
  233. package/esm2022/form/models/radio-field.model.mjs +2 -0
  234. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  235. package/esm2022/form/models/select-field.model.mjs +2 -0
  236. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  237. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  238. package/esm2022/form/models/validator-config.mjs +2 -0
  239. package/esm2022/form/public-api.mjs +4 -2
  240. package/esm2022/form/tools/errors-helper.mjs +54 -0
  241. package/esm2022/form/upd-form.module.mjs +84 -0
  242. package/esm2022/form/updevs-components-form.mjs +1 -1
  243. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  244. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  245. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  246. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  247. package/esm2022/form-controls/checkbox/checkbox.component.mjs +37 -51
  248. package/esm2022/form-controls/checkbox/index.mjs +1 -1
  249. package/esm2022/form-controls/checkbox/public-api.mjs +1 -1
  250. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +12 -8
  251. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +1 -1
  252. package/esm2022/form-controls/date-picker/date-picker.component.mjs +132 -0
  253. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  254. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  255. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  256. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  257. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  258. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  259. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  260. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  261. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  262. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  263. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  264. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  265. package/esm2022/form-controls/input/directives/input-append.directive.mjs +8 -8
  266. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +8 -8
  267. package/esm2022/form-controls/input/directives/public-api.mjs +1 -1
  268. package/esm2022/form-controls/input/index.mjs +1 -1
  269. package/esm2022/form-controls/input/input.component.mjs +64 -34
  270. package/esm2022/form-controls/input/public-api.mjs +1 -1
  271. package/esm2022/form-controls/input/types/input.type.mjs +1 -1
  272. package/esm2022/form-controls/input/types/loader-position.type.mjs +1 -1
  273. package/esm2022/form-controls/input/types/public-api.mjs +1 -1
  274. package/esm2022/form-controls/input/upd-input.module.mjs +5 -5
  275. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +1 -1
  276. package/esm2022/form-controls/radio/index.mjs +1 -1
  277. package/esm2022/form-controls/radio/public-api.mjs +1 -1
  278. package/esm2022/form-controls/radio/radio.component.mjs +12 -25
  279. package/esm2022/form-controls/radio/upd-radio.module.mjs +14 -6
  280. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +1 -1
  281. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +33 -10
  282. package/esm2022/form-controls/select/components/single/select.component.mjs +31 -8
  283. package/esm2022/form-controls/select/index.mjs +1 -1
  284. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +109 -88
  285. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  286. package/esm2022/form-controls/select/models/public-api.mjs +2 -1
  287. package/esm2022/form-controls/select/models/select-item.mjs +1 -1
  288. package/esm2022/form-controls/select/public-api.mjs +1 -1
  289. package/esm2022/form-controls/select/upd-select.module.mjs +10 -6
  290. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +1 -1
  291. package/esm2022/form-controls/textarea/index.mjs +1 -1
  292. package/esm2022/form-controls/textarea/public-api.mjs +1 -1
  293. package/esm2022/form-controls/textarea/textarea.component.mjs +18 -36
  294. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +5 -5
  295. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +1 -1
  296. package/esm2022/form-controls/time-picker/index.mjs +1 -1
  297. package/esm2022/form-controls/time-picker/public-api.mjs +1 -1
  298. package/esm2022/form-controls/time-picker/time-picker.component.mjs +4 -4
  299. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +7 -8
  300. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +9 -8
  301. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +1 -1
  302. package/esm2022/index.mjs +2 -0
  303. package/esm2022/layout/abstractions/base-page.component.mjs +8 -9
  304. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  305. package/esm2022/layout/abstractions/public-api.mjs +1 -1
  306. package/esm2022/layout/assets/i18n/en.json +24 -2
  307. package/esm2022/layout/assets/i18n/pt.json +24 -2
  308. package/esm2022/layout/index.mjs +1 -1
  309. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +18 -7
  310. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +32 -6
  311. package/esm2022/layout/layouts/public-api.mjs +1 -1
  312. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +13 -29
  313. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +25 -28
  314. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  315. package/esm2022/layout/models/login-page.config.mjs +2 -0
  316. package/esm2022/layout/models/public-api.mjs +2 -1
  317. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  318. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  319. package/esm2022/layout/models/upd-layout-config.model.mjs +11 -17
  320. package/esm2022/layout/models/upd-layout.config.mjs +1 -1
  321. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +5 -5
  322. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +36 -9
  323. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +4 -4
  324. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +95 -12
  325. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +4 -4
  326. package/esm2022/layout/pages/auth-flow/public-api.mjs +1 -1
  327. package/esm2022/layout/pages/public-api.mjs +1 -1
  328. package/esm2022/layout/partials/footer/footer.component.mjs +13 -27
  329. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  330. package/esm2022/layout/partials/footer/public-api.mjs +2 -2
  331. package/esm2022/layout/partials/header/header-style.type.mjs +1 -1
  332. package/esm2022/layout/partials/header/header.component.mjs +121 -60
  333. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  334. package/esm2022/layout/partials/header/public-api.mjs +2 -1
  335. package/esm2022/layout/partials/page-header/page-header.component.mjs +11 -11
  336. package/esm2022/layout/partials/page-header/public-api.mjs +1 -1
  337. package/esm2022/layout/partials/public-api.mjs +1 -1
  338. package/esm2022/layout/partials/sidebar/public-api.mjs +1 -1
  339. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +185 -95
  340. package/esm2022/layout/public-api.mjs +1 -1
  341. package/esm2022/layout/services/public-api.mjs +1 -1
  342. package/esm2022/layout/services/upd-layout-config.service.mjs +6 -6
  343. package/esm2022/layout/tools/layout.constants.mjs +1 -1
  344. package/esm2022/layout/upd-layout.module.mjs +12 -8
  345. package/esm2022/layout/updevs-components-layout.mjs +1 -1
  346. package/esm2022/lib/index.mjs +1 -1
  347. package/esm2022/lib/models/public-api.mjs +2 -0
  348. package/esm2022/lib/models/row-column-size.mjs +2 -0
  349. package/esm2022/lib/public-api.mjs +3 -1
  350. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  351. package/esm2022/lib/tools/public-api.mjs +2 -0
  352. package/esm2022/lib/types/component-size.type.mjs +1 -1
  353. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  354. package/esm2022/lib/types/public-api.mjs +2 -1
  355. package/esm2022/lib/types/validation-status.type.mjs +1 -1
  356. package/esm2022/lib/upd-components.module.mjs +5 -5
  357. package/esm2022/link/index.mjs +1 -1
  358. package/esm2022/link/link.component.mjs +4 -4
  359. package/esm2022/link/public-api.mjs +1 -1
  360. package/esm2022/link/target.type.mjs +1 -1
  361. package/esm2022/link/upd-link.module.mjs +5 -5
  362. package/esm2022/link/updevs-components-link.mjs +1 -1
  363. package/esm2022/list/assets/i18n/en.json +7 -3
  364. package/esm2022/list/assets/i18n/pt.json +7 -3
  365. package/esm2022/list/index.mjs +1 -1
  366. package/esm2022/list/list.component.mjs +14 -34
  367. package/esm2022/list/models/badge-position.type.mjs +1 -1
  368. package/esm2022/list/models/list-item.mjs +1 -1
  369. package/esm2022/list/models/list-item.model.mjs +7 -2
  370. package/esm2022/list/models/public-api.mjs +1 -1
  371. package/esm2022/list/public-api.mjs +1 -1
  372. package/esm2022/list/upd-list.module.mjs +9 -8
  373. package/esm2022/list/updevs-components-list.mjs +1 -1
  374. package/esm2022/modal/assets/i18n/en.json +17 -0
  375. package/esm2022/modal/assets/i18n/pt.json +17 -0
  376. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  377. package/esm2022/modal/index.mjs +2 -0
  378. package/esm2022/modal/models/base.modal.mjs +14 -0
  379. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  380. package/esm2022/modal/models/modal-ref.mjs +2 -0
  381. package/esm2022/modal/models/modal.config.mjs +2 -0
  382. package/esm2022/modal/models/public-api.mjs +4 -0
  383. package/esm2022/modal/public-api.mjs +4 -0
  384. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  385. package/esm2022/modal/services/modal.service.mjs +30 -0
  386. package/esm2022/modal/services/public-api.mjs +3 -0
  387. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  388. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  389. package/esm2022/modal/upd-modal.module.mjs +90 -0
  390. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  391. package/esm2022/paginator/assets/i18n/en.json +15 -0
  392. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  393. package/esm2022/paginator/index.mjs +2 -0
  394. package/esm2022/paginator/paginator.component.mjs +66 -0
  395. package/esm2022/paginator/public-api.mjs +3 -0
  396. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  397. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  398. package/esm2022/popover/index.mjs +1 -1
  399. package/esm2022/popover/popover.component.mjs +7 -7
  400. package/esm2022/popover/popover.directive.mjs +33 -42
  401. package/esm2022/popover/public-api.mjs +1 -1
  402. package/esm2022/popover/upd-popover.module.mjs +5 -5
  403. package/esm2022/popover/updevs-components-popover.mjs +1 -1
  404. package/esm2022/pricing-cards/index.mjs +2 -0
  405. package/esm2022/pricing-cards/models/price-item-feature.model.mjs +2 -0
  406. package/esm2022/pricing-cards/models/price-item-features-group.model.mjs +2 -0
  407. package/esm2022/pricing-cards/models/price-item-tag.model.mjs +2 -0
  408. package/esm2022/pricing-cards/models/price-item.model.mjs +2 -0
  409. package/esm2022/pricing-cards/models/public-api.mjs +5 -0
  410. package/esm2022/pricing-cards/pricing-cards.component.mjs +25 -0
  411. package/esm2022/pricing-cards/public-api.mjs +4 -0
  412. package/esm2022/pricing-cards/upd-pricing-cards.module.mjs +40 -0
  413. package/esm2022/pricing-cards/updevs-components-pricing-cards.mjs +5 -0
  414. package/esm2022/public-api.mjs +1 -1
  415. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  416. package/esm2022/table/abstractions/base.column.mjs +84 -0
  417. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  418. package/esm2022/table/abstractions/public-api.mjs +3 -0
  419. package/esm2022/table/assets/i18n/en.json +74 -0
  420. package/esm2022/table/assets/i18n/pt.json +74 -0
  421. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  422. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  423. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  424. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  425. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  426. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  427. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  428. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  429. package/esm2022/table/directives/public-api.mjs +2 -0
  430. package/esm2022/table/directives/table-column.directive.mjs +52 -0
  431. package/esm2022/table/index.mjs +2 -0
  432. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  433. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  434. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  435. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  436. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  437. package/esm2022/table/models/columns/public-api.mjs +7 -0
  438. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  439. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  440. package/esm2022/table/models/enums/public-api.mjs +2 -0
  441. package/esm2022/table/models/filter-item.model.mjs +2 -0
  442. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  443. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  444. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  445. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  446. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  447. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  448. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  449. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  450. package/esm2022/table/models/public-api.mjs +5 -0
  451. package/esm2022/table/models/saved-view.model.mjs +2 -0
  452. package/esm2022/table/models/table-config.model.mjs +29 -0
  453. package/esm2022/table/models/table.config.mjs +2 -0
  454. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  455. package/esm2022/table/models/upd-table.config.mjs +2 -0
  456. package/esm2022/table/public-api.mjs +6 -0
  457. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  458. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  459. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  460. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  461. package/esm2022/table/table.component.mjs +439 -0
  462. package/esm2022/table/tools/filters.tools.mjs +48 -0
  463. package/esm2022/table/tools/table.constants.mjs +15 -0
  464. package/esm2022/table/upd-table.module.mjs +150 -0
  465. package/esm2022/table/updevs-components-table.mjs +5 -0
  466. package/esm2022/updevs-components.mjs +2 -2
  467. package/fesm2022/updevs-components-badge.mjs +89 -0
  468. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  469. package/fesm2022/updevs-components-button.mjs +138 -136
  470. package/fesm2022/updevs-components-button.mjs.map +1 -1
  471. package/fesm2022/updevs-components-calendar.mjs +582 -0
  472. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  473. package/fesm2022/updevs-components-card.mjs +32 -32
  474. package/fesm2022/updevs-components-card.mjs.map +1 -1
  475. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  476. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  477. package/fesm2022/updevs-components-dropdown.mjs +78 -21
  478. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  479. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  480. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  481. package/fesm2022/updevs-components-form-controls-checkbox.mjs +47 -57
  482. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  483. package/fesm2022/updevs-components-form-controls-date-picker.mjs +175 -0
  484. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  485. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  486. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  487. package/fesm2022/updevs-components-form-controls-input.mjs +80 -50
  488. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  489. package/fesm2022/updevs-components-form-controls-radio.mjs +25 -30
  490. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  491. package/fesm2022/updevs-components-form-controls-select.mjs +185 -108
  492. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  493. package/fesm2022/updevs-components-form-controls-textarea.mjs +21 -39
  494. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  495. package/fesm2022/updevs-components-form-controls-time-picker.mjs +18 -18
  496. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
  497. package/fesm2022/updevs-components-form.mjs +541 -10
  498. package/fesm2022/updevs-components-form.mjs.map +1 -1
  499. package/fesm2022/updevs-components-layout.mjs +774 -395
  500. package/fesm2022/updevs-components-layout.mjs.map +1 -1
  501. package/fesm2022/updevs-components-link.mjs +8 -8
  502. package/fesm2022/updevs-components-link.mjs.map +1 -1
  503. package/fesm2022/updevs-components-list.mjs +44 -58
  504. package/fesm2022/updevs-components-list.mjs.map +1 -1
  505. package/fesm2022/updevs-components-modal.mjs +504 -0
  506. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  507. package/fesm2022/updevs-components-paginator.mjs +160 -0
  508. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  509. package/fesm2022/updevs-components-popover.mjs +41 -50
  510. package/fesm2022/updevs-components-popover.mjs.map +1 -1
  511. package/fesm2022/updevs-components-pricing-cards.mjs +69 -0
  512. package/fesm2022/updevs-components-pricing-cards.mjs.map +1 -0
  513. package/fesm2022/updevs-components-table.mjs +1754 -0
  514. package/fesm2022/updevs-components-table.mjs.map +1 -0
  515. package/fesm2022/updevs-components.mjs +17 -5
  516. package/fesm2022/updevs-components.mjs.map +1 -1
  517. package/form/components/dynamic-field/dynamic-field.component.d.ts +63 -0
  518. package/form/form.component.d.ts +64 -0
  519. package/form/models/attachment-rule.model.d.ts +35 -0
  520. package/form/models/button-field.model.d.ts +5 -0
  521. package/form/models/button-group-field.model.d.ts +5 -0
  522. package/form/models/checkbox-field.model.d.ts +4 -0
  523. package/form/models/checkbox-group-field.model.d.ts +6 -0
  524. package/form/models/dynamic-field.model.d.ts +50 -0
  525. package/form/models/enums/attachment-type.enum.d.ts +13 -0
  526. package/form/models/enums/dynamic-field.type.d.ts +15 -0
  527. package/form/models/enums/public-api.d.ts +2 -0
  528. package/form/models/file-upload-field.model.d.ts +16 -0
  529. package/form/models/form-config.d.ts +2 -0
  530. package/form/models/form-row.model.d.ts +10 -0
  531. package/form/models/form-update-on.type.d.ts +1 -0
  532. package/form/models/input-field.model.d.ts +9 -0
  533. package/form/models/masked-input-field.model.d.ts +6 -0
  534. package/form/models/public-api.d.ts +18 -0
  535. package/form/models/radio-field.model.d.ts +4 -0
  536. package/form/models/radio-group-field.model.d.ts +6 -0
  537. package/form/models/select-field.model.d.ts +29 -0
  538. package/form/models/single-select-field.model.d.ts +4 -0
  539. package/form/models/textarea-field.model.d.ts +10 -0
  540. package/form/models/validator-config.d.ts +5 -0
  541. package/form/public-api.d.ts +3 -1
  542. package/form/tools/errors-helper.d.ts +11 -0
  543. package/form/upd-form.module.d.ts +22 -0
  544. package/form-controls/abstractions/base-control.d.ts +29 -0
  545. package/form-controls/abstractions/index.d.ts +2 -0
  546. package/form-controls/abstractions/public-api.d.ts +2 -0
  547. package/form-controls/checkbox/checkbox.component.d.ts +14 -20
  548. package/form-controls/checkbox/upd-checkbox.module.d.ts +2 -1
  549. package/form-controls/date-picker/date-picker.component.d.ts +66 -0
  550. package/form-controls/date-picker/index.d.ts +1 -0
  551. package/form-controls/date-picker/public-api.d.ts +2 -0
  552. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  553. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  554. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  555. package/form-controls/file-upload/index.d.ts +1 -0
  556. package/form-controls/file-upload/public-api.d.ts +3 -0
  557. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  558. package/form-controls/input/directives/input-append.directive.d.ts +1 -2
  559. package/form-controls/input/directives/input-prepend.directive.d.ts +1 -2
  560. package/form-controls/input/input.component.d.ts +24 -14
  561. package/form-controls/radio/radio.component.d.ts +5 -12
  562. package/form-controls/radio/upd-radio.module.d.ts +3 -1
  563. package/form-controls/select/components/multiple/select-multiple.component.d.ts +13 -2
  564. package/form-controls/select/components/single/select.component.d.ts +10 -2
  565. package/form-controls/select/models/abstractions/base-select.component.d.ts +35 -31
  566. package/form-controls/select/models/defaults.d.ts +8 -0
  567. package/form-controls/select/models/public-api.d.ts +1 -0
  568. package/form-controls/select/upd-select.module.d.ts +3 -2
  569. package/form-controls/textarea/textarea.component.d.ts +11 -15
  570. package/form-controls/time-picker/upd-time-picker.module.d.ts +2 -2
  571. package/index.d.ts +1 -4
  572. package/layout/abstractions/base-page.component.d.ts +1 -2
  573. package/layout/abstractions/base.layout.d.ts +15 -0
  574. package/layout/layouts/blank-layout/blank-layout.component.d.ts +5 -1
  575. package/layout/layouts/blank-layout/blank-layout.module.d.ts +8 -1
  576. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +2 -9
  577. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +14 -13
  578. package/layout/models/login-page-config.model.d.ts +46 -0
  579. package/layout/models/login-page.config.d.ts +44 -0
  580. package/layout/models/public-api.d.ts +1 -0
  581. package/layout/models/security-layout-config.model.d.ts +12 -0
  582. package/layout/models/security-layout.config.d.ts +10 -0
  583. package/layout/models/upd-layout-config.model.d.ts +9 -0
  584. package/layout/models/upd-layout.config.d.ts +9 -0
  585. package/layout/pages/auth-flow/auth-flow.module.d.ts +9 -2
  586. package/layout/pages/auth-flow/login/login.component.d.ts +20 -6
  587. package/layout/partials/footer/footer.component.d.ts +4 -15
  588. package/layout/partials/footer/footer.module.d.ts +9 -0
  589. package/layout/partials/footer/public-api.d.ts +1 -1
  590. package/layout/partials/header/header.component.d.ts +44 -26
  591. package/layout/partials/header/header.module.d.ts +12 -0
  592. package/layout/partials/header/public-api.d.ts +1 -0
  593. package/layout/partials/page-header/page-header.component.d.ts +2 -2
  594. package/layout/partials/sidebar/sidebar.component.d.ts +29 -4
  595. package/layout/upd-layout.module.d.ts +2 -1
  596. package/lib/index.d.ts +1 -0
  597. package/lib/models/public-api.d.ts +2 -0
  598. package/lib/models/row-column-size.d.ts +23 -0
  599. package/lib/public-api.d.ts +3 -0
  600. package/lib/tools/column-size.helper.d.ts +6 -0
  601. package/lib/tools/public-api.d.ts +2 -0
  602. package/lib/types/component-size.type.d.ts +1 -0
  603. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  604. package/lib/types/public-api.d.ts +2 -0
  605. package/lib/types/validation-status.type.d.ts +1 -0
  606. package/lib/upd-components.module.d.ts +1 -0
  607. package/list/list.component.d.ts +4 -20
  608. package/list/models/list-item.d.ts +4 -2
  609. package/list/models/list-item.model.d.ts +4 -2
  610. package/list/upd-list.module.d.ts +2 -2
  611. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  612. package/modal/index.d.ts +1 -0
  613. package/modal/models/base.modal.d.ts +8 -0
  614. package/modal/models/modal-config.model.d.ts +32 -0
  615. package/modal/models/modal-ref.d.ts +6 -0
  616. package/modal/models/modal.config.d.ts +30 -0
  617. package/modal/models/public-api.d.ts +3 -0
  618. package/modal/public-api.d.ts +3 -0
  619. package/modal/services/modal-alert.service.d.ts +22 -0
  620. package/modal/services/modal.service.d.ts +12 -0
  621. package/modal/services/public-api.d.ts +2 -0
  622. package/modal/types/modal-footer-style.type.d.ts +1 -0
  623. package/modal/types/modal-size.type.d.ts +1 -0
  624. package/modal/upd-modal.module.d.ts +18 -0
  625. package/package.json +72 -11
  626. package/paginator/index.d.ts +1 -0
  627. package/paginator/paginator.component.d.ts +42 -0
  628. package/paginator/public-api.d.ts +2 -0
  629. package/paginator/upd-paginator.module.d.ts +14 -0
  630. package/popover/popover.component.d.ts +2 -2
  631. package/popover/popover.directive.d.ts +8 -10
  632. package/pricing-cards/index.d.ts +1 -0
  633. package/pricing-cards/models/price-item-feature.model.d.ts +5 -0
  634. package/pricing-cards/models/price-item-features-group.model.d.ts +5 -0
  635. package/pricing-cards/models/price-item-tag.model.d.ts +6 -0
  636. package/pricing-cards/models/price-item.model.d.ts +20 -0
  637. package/pricing-cards/models/public-api.d.ts +4 -0
  638. package/pricing-cards/pricing-cards.component.d.ts +11 -0
  639. package/pricing-cards/public-api.d.ts +3 -0
  640. package/pricing-cards/upd-pricing-cards.module.d.ts +12 -0
  641. package/public-api.d.ts +1 -0
  642. package/table/abstractions/base-column.model.d.ts +31 -0
  643. package/table/abstractions/base.column.d.ts +26 -0
  644. package/table/abstractions/filters-operands.service.d.ts +8 -0
  645. package/table/abstractions/public-api.d.ts +2 -0
  646. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  647. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  648. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  649. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  650. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  651. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  652. package/table/components/save-search/save-search.component.d.ts +17 -0
  653. package/table/components/search-section/search-section.component.d.ts +36 -0
  654. package/table/directives/public-api.d.ts +1 -0
  655. package/table/directives/table-column.directive.d.ts +14 -0
  656. package/table/index.d.ts +1 -0
  657. package/table/models/columns/boolean-column.model.d.ts +15 -0
  658. package/table/models/columns/date-time-column.model.d.ts +8 -0
  659. package/table/models/columns/guid-column.model.d.ts +4 -0
  660. package/table/models/columns/image-column.model.d.ts +6 -0
  661. package/table/models/columns/number-column.model.d.ts +8 -0
  662. package/table/models/columns/public-api.d.ts +6 -0
  663. package/table/models/columns/text-column.model.d.ts +6 -0
  664. package/table/models/enums/column-type.enum.d.ts +13 -0
  665. package/table/models/enums/public-api.d.ts +1 -0
  666. package/table/models/filter-item.model.d.ts +6 -0
  667. package/table/models/filter-operand.config.d.ts +9 -0
  668. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  669. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  670. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  671. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  672. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  673. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  674. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  675. package/table/models/public-api.d.ts +4 -0
  676. package/table/models/saved-view.model.d.ts +11 -0
  677. package/table/models/table-config.model.d.ts +33 -0
  678. package/table/models/table.config.d.ts +31 -0
  679. package/table/models/upd-table-config.model.d.ts +6 -0
  680. package/table/models/upd-table.config.d.ts +6 -0
  681. package/table/public-api.d.ts +5 -0
  682. package/table/services/default-filters-operands.service.d.ts +17 -0
  683. package/table/services/storages/saved-views.storage.d.ts +19 -0
  684. package/table/services/stores/filters-operands.store.d.ts +11 -0
  685. package/table/services/upd-table-config.service.d.ts +12 -0
  686. package/table/table.component.d.ts +81 -0
  687. package/table/tools/filters.tools.d.ts +9 -0
  688. package/table/tools/table.constants.d.ts +15 -0
  689. package/table/upd-table.module.d.ts +40 -0
  690. package/esm2022/form/form.module.mjs +0 -18
  691. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +0 -15
  692. package/form/form.module.d.ts +0 -7
  693. package/layout/partials/footer/footer-copyright.directive.d.ts +0 -6
@@ -1,5 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, EventEmitter, Component, ViewEncapsulation, HostBinding, ContentChild, Input, Output, NgModule } from '@angular/core';
2
+ import { inject, TemplateRef, Directive, EventEmitter, Output, Input, ContentChild, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
+ import { ColumnSizeHelper } from '@updevs/components';
4
+ import { BaseControl } from '@updevs/components/form-controls/abstractions';
5
+ import { Subject } from 'rxjs';
3
6
  import * as i1 from '@angular/common';
4
7
  import { CommonModule } from '@angular/common';
5
8
  import * as i2 from '@updevs/icons';
@@ -10,41 +13,39 @@ import * as i4 from '@updevs/components/popover';
10
13
  import { UpdPopoverModule } from '@updevs/components/popover';
11
14
 
12
15
  class InputAppendDirective {
13
- constructor(templateRef) {
14
- this.templateRef = templateRef;
16
+ constructor() {
17
+ this.templateRef = inject((TemplateRef));
15
18
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputAppendDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: InputAppendDirective, selector: "ng-template[updInputAppend]", ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputAppendDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: InputAppendDirective, selector: "ng-template[updInputAppend]", ngImport: i0 }); }
18
21
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputAppendDirective, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputAppendDirective, decorators: [{
20
23
  type: Directive,
21
24
  args: [{
22
25
  selector: 'ng-template[updInputAppend]'
23
26
  }]
24
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
27
+ }] });
25
28
 
26
29
  class InputPrependDirective {
27
- constructor(templateRef) {
28
- this.templateRef = templateRef;
30
+ constructor() {
31
+ this.templateRef = inject((TemplateRef));
29
32
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputPrependDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: InputPrependDirective, selector: "ng-template[updInputPrepend]", ngImport: i0 }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputPrependDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: InputPrependDirective, selector: "ng-template[updInputPrepend]", ngImport: i0 }); }
32
35
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputPrependDirective, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputPrependDirective, decorators: [{
34
37
  type: Directive,
35
38
  args: [{
36
39
  selector: 'ng-template[updInputPrepend]'
37
40
  }]
38
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
41
+ }] });
39
42
 
40
- class InputComponent {
43
+ class InputComponent extends BaseControl {
41
44
  constructor() {
45
+ super(...arguments);
42
46
  this.hostWrapperClasses = '';
43
47
  this.type = 'text';
44
- this.placeholder = '';
45
- this.hintAsTooltip = false;
46
48
  this.size = 'default';
47
- this.isDisabled = false;
48
49
  this.isPlainText = false;
49
50
  this.isReadOnly = false;
50
51
  this.isLoading = false;
@@ -54,25 +55,54 @@ class InputComponent {
54
55
  this.isPrependButton = false;
55
56
  this.isAppendButton = false;
56
57
  this.isFloating = false;
57
- this.isRequired = false;
58
58
  this.loaderPosition = 'append';
59
59
  this.isValidationStatusLight = false;
60
+ this.layout = 'vertical';
60
61
  this.valueChange = new EventEmitter();
62
+ this.blurred = new EventEmitter();
63
+ /**
64
+ * Emitted when any key is pressed.
65
+ */
66
+ this.keyDown = new EventEmitter();
67
+ /**
68
+ * Emitted when the ESC key is pressed.
69
+ */
70
+ this.keyDownEsc = new EventEmitter();
71
+ /**
72
+ * Emitted when the ENTER key is released.
73
+ */
74
+ this.keyUpEnter = new EventEmitter();
61
75
  this.classes = [];
76
+ this.valueChangedSub = new Subject();
62
77
  }
63
78
  get shouldDisplayInnerLabel() {
64
- return !!this.label
79
+ return !!this.label()
65
80
  && !this.prependIconModel
66
81
  && !this.appendIconModel
67
82
  && !this.isLoading
68
83
  && !this.appendTemplate
69
84
  && !this.prependTemplate;
70
85
  }
86
+ get labelSizeClasses() {
87
+ if (this.layout !== 'horizontal') {
88
+ return 'form-label';
89
+ }
90
+ return ColumnSizeHelper.getClasses('col-form-label', ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3));
91
+ }
92
+ get validationClass() {
93
+ return !!this.validationStatus() ? `is-${this.validationStatus()}` : '';
94
+ }
95
+ get validationBorderClass() {
96
+ return !!this.validationStatus() ? `border-${this.validationStatus() === 'invalid' ? 'danger' : 'success'}` : '';
97
+ }
71
98
  ngOnInit() {
72
99
  this.updateClasses();
73
100
  }
74
101
  ngOnChanges(changes) {
75
102
  this.updateClasses();
103
+ if (changes['value'] && !!this.mask) {
104
+ this.valueChangedSub.next(changes['value'].currentValue);
105
+ }
76
106
  }
77
107
  onInputChange(evt) {
78
108
  if (!evt.target) {
@@ -91,24 +121,34 @@ class InputComponent {
91
121
  if (this.size !== 'default') {
92
122
  lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);
93
123
  }
94
- if (!!this.validationStatus) {
95
- const statusCls = `is-${this.validationStatus}`;
124
+ if (!!this.validationStatus()) {
125
+ const statusCls = `is-${this.validationStatus()}`;
96
126
  lClasses.push(statusCls);
97
127
  if (this.isValidationStatusLight) {
98
128
  lClasses.push(`${statusCls}-lite`);
99
129
  }
100
130
  }
131
+ if (this.layout === 'horizontal') {
132
+ this.hostWrapperClasses = 'row';
133
+ }
134
+ if (!!this.wrapperClasses) {
135
+ this.hostWrapperClasses += ` ${this.wrapperClasses}`;
136
+ }
101
137
  if (this.isFloating) {
102
- this.hostWrapperClasses = (this.wrapperClasses || '') + ' form-floating';
138
+ this.hostWrapperClasses += ' form-floating';
103
139
  }
104
- this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];
140
+ this.classes = [
141
+ ...lClasses,
142
+ ...(this.customClasses || '').split(' '),
143
+ this.layout === 'horizontal' ? 'col' : ''
144
+ ];
105
145
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: InputComponent, selector: "upd-input", inputs: { type: "type", placeholder: "placeholder", label: "label", mask: "mask", maskConfig: "maskConfig", hint: "hint", hintTemplate: "hintTemplate", hintAsTooltip: "hintAsTooltip", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", name: "name", maxLength: "maxLength", isDisabled: "isDisabled", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", isRequired: "isRequired", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", validationStatus: "validationStatus", isValidationStatusLight: "isValidationStatusLight", invalidStatusText: "invalidStatusText" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!!appendTemplate || !!prependTemplate; else structureTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n <ng-container *ngIf=\"!!prependTemplate\">\n <div *ngIf=\"!isPrependButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isPrependButton\" [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-container *ngIf=\"!!appendTemplate\">\n <div *ngIf=\"!isAppendButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isAppendButton\" [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #structureTpl>\n <ng-template *ngIf=\"!!prependIconModel || !!appendIconModel || isLoading; else inputTpl\" [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n</ng-template>\n\n<ng-template #inputTpl>\n <ng-container *ngIf=\"(!hint && !hintTemplate); else hintTpl\">\n <ng-template *ngIf=\"shouldDisplayInnerLabel && !isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n <ng-template *ngIf=\"shouldDisplayInnerLabel && isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-icon\">\n <span *ngIf=\"!!prependIconModel || (isLoading && loaderPosition === 'prepend')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!prependIconModel; else loaderTpl\">\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n </ng-container>\n </span>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <span *ngIf=\"!!appendIconModel || (isLoading && loaderPosition === 'append')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!appendIconModel; else loaderTpl\">\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #hintTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hint\" [updPopoverTemplate]=\"hintTemplate\"\n [updPopoverActAsTooltip]=\"hintAsTooltip\">?</span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n <ng-container *ngIf=\"!!mask; else defaultInputTpl\">\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\"\n [ngClass]=\"classes\" [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"/>\n </ng-container>\n <ng-template #defaultInputTpl>\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\" [ngClass]=\"classes\"\n [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\" [attr.readonly]=\"isReadOnly ? '' : undefined\"\n (input)=\"onInputChange($event)\"/>\n </ng-template>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</ng-template>\n\n<ng-template #labelTpl>\n <label *ngIf=\"!!label\" class=\"form-label\" [class.required]=\"isRequired\">{{label}}</label>\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\" [ngClass]=\"validationClass\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText && !isFloating) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else if (!!labelText) {\n <label [ngClass]=\"labelSizeClasses\" [class.required]=\"isRequired()\">{{ labelText }}</label>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
108
148
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, decorators: [{
110
150
  type: Component,
111
- args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"!!appendTemplate || !!prependTemplate; else structureTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n <ng-container *ngIf=\"!!prependTemplate\">\n <div *ngIf=\"!isPrependButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isPrependButton\" [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-container *ngIf=\"!!appendTemplate\">\n <div *ngIf=\"!isAppendButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isAppendButton\" [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #structureTpl>\n <ng-template *ngIf=\"!!prependIconModel || !!appendIconModel || isLoading; else inputTpl\" [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n</ng-template>\n\n<ng-template #inputTpl>\n <ng-container *ngIf=\"(!hint && !hintTemplate); else hintTpl\">\n <ng-template *ngIf=\"shouldDisplayInnerLabel && !isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n <ng-template *ngIf=\"shouldDisplayInnerLabel && isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-icon\">\n <span *ngIf=\"!!prependIconModel || (isLoading && loaderPosition === 'prepend')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!prependIconModel; else loaderTpl\">\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n </ng-container>\n </span>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <span *ngIf=\"!!appendIconModel || (isLoading && loaderPosition === 'append')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!appendIconModel; else loaderTpl\">\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #hintTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hint\" [updPopoverTemplate]=\"hintTemplate\"\n [updPopoverActAsTooltip]=\"hintAsTooltip\">?</span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n <ng-container *ngIf=\"!!mask; else defaultInputTpl\">\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\"\n [ngClass]=\"classes\" [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"/>\n </ng-container>\n <ng-template #defaultInputTpl>\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\" [ngClass]=\"classes\"\n [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\" [attr.readonly]=\"isReadOnly ? '' : undefined\"\n (input)=\"onInputChange($event)\"/>\n </ng-template>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</ng-template>\n\n<ng-template #labelTpl>\n <label *ngIf=\"!!label\" class=\"form-label\" [class.required]=\"isRequired\">{{label}}</label>\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
151
+ args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\" [ngClass]=\"validationClass\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText && !isFloating) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else if (!!labelText) {\n <label [ngClass]=\"labelSizeClasses\" [class.required]=\"isRequired()\">{{ labelText }}</label>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
112
152
  }], propDecorators: { hostWrapperClasses: [{
113
153
  type: HostBinding,
114
154
  args: ['class']
@@ -120,20 +160,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
120
160
  args: [InputPrependDirective]
121
161
  }], type: [{
122
162
  type: Input
123
- }], placeholder: [{
124
- type: Input
125
- }], label: [{
126
- type: Input
127
163
  }], mask: [{
128
164
  type: Input
129
165
  }], maskConfig: [{
130
166
  type: Input
131
- }], hint: [{
132
- type: Input
133
- }], hintTemplate: [{
134
- type: Input
135
- }], hintAsTooltip: [{
136
- type: Input
137
167
  }], value: [{
138
168
  type: Input
139
169
  }], size: [{
@@ -142,12 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
142
172
  type: Input
143
173
  }], wrapperClasses: [{
144
174
  type: Input
145
- }], name: [{
146
- type: Input
147
175
  }], maxLength: [{
148
176
  type: Input
149
- }], isDisabled: [{
150
- type: Input
151
177
  }], isPlainText: [{
152
178
  type: Input
153
179
  }], isReadOnly: [{
@@ -166,27 +192,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
166
192
  type: Input
167
193
  }], isFloating: [{
168
194
  type: Input
169
- }], isRequired: [{
170
- type: Input
171
195
  }], loaderPosition: [{
172
196
  type: Input
173
197
  }], prependIconModel: [{
174
198
  type: Input
175
199
  }], appendIconModel: [{
176
200
  type: Input
177
- }], validationStatus: [{
178
- type: Input
179
201
  }], isValidationStatusLight: [{
180
202
  type: Input
181
- }], invalidStatusText: [{
203
+ }], layout: [{
182
204
  type: Input
183
205
  }], valueChange: [{
184
206
  type: Output
207
+ }], blurred: [{
208
+ type: Output
209
+ }], keyDown: [{
210
+ type: Output
211
+ }], keyDownEsc: [{
212
+ type: Output
213
+ }], keyUpEnter: [{
214
+ type: Output
185
215
  }] } });
186
216
 
187
217
  class UpdInputModule {
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
189
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: UpdInputModule, declarations: [InputComponent,
218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
219
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, declarations: [InputComponent,
190
220
  InputAppendDirective,
191
221
  InputPrependDirective], imports: [CommonModule,
192
222
  UpdIconsModule,
@@ -194,12 +224,12 @@ class UpdInputModule {
194
224
  UpdPopoverModule], exports: [InputComponent,
195
225
  InputAppendDirective,
196
226
  InputPrependDirective] }); }
197
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdInputModule, imports: [CommonModule,
227
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, imports: [CommonModule,
198
228
  UpdIconsModule,
199
229
  UpdMaskModule,
200
230
  UpdPopoverModule] }); }
201
231
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdInputModule, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdInputModule, decorators: [{
203
233
  type: NgModule,
204
234
  args: [{
205
235
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form-controls-input.mjs","sources":["../../../../projects/updevs/components/form-controls/input/src/directives/input-append.directive.ts","../../../../projects/updevs/components/form-controls/input/src/directives/input-prepend.directive.ts","../../../../projects/updevs/components/form-controls/input/src/input.component.ts","../../../../projects/updevs/components/form-controls/input/src/input.component.html","../../../../projects/updevs/components/form-controls/input/src/upd-input.module.ts","../../../../projects/updevs/components/form-controls/input/src/updevs-components-form-controls-input.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputAppend]'\n})\nexport class InputAppendDirective {\n constructor(\n public templateRef: TemplateRef<any>\n ) {\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputPrepend]'\n})\nexport class InputPrependDirective {\n constructor(\n public templateRef: TemplateRef<any>\n ) {\n }\n}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n SimpleChanges,\n OnInit,\n OnChanges,\n ContentChild,\n TemplateRef,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { UpdMaskConfig } from '@updevs/sdk/mask';\nimport { ValidationStatusType, ComponentSizeType } from '@updevs/components';\n\nimport { InputType } from './types/input.type';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\nimport { LoaderPositionType } from './types/loader-position.type';\n\n@Component({\n selector: 'upd-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputComponent implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n @ContentChild(InputAppendDirective) appendTemplate?: InputAppendDirective;\n @ContentChild(InputPrependDirective) prependTemplate?: InputPrependDirective;\n\n @Input() type: InputType = 'text';\n @Input() placeholder = '';\n @Input() label?: string;\n @Input() mask?: string;\n @Input() maskConfig?: UpdMaskConfig;\n @Input() hint?: string;\n @Input() hintTemplate?: TemplateRef<any>;\n @Input() hintAsTooltip = false;\n @Input() value?: any;\n @Input() size: ComponentSizeType = 'default';\n @Input() customClasses?: string;\n @Input() wrapperClasses?: string;\n @Input() name?: string;\n @Input() maxLength?: number;\n @Input() isDisabled = false;\n @Input() isPlainText = false;\n @Input() isReadOnly = false;\n @Input() isLoading = false;\n @Input() isRound = false;\n @Input() isFlush = false;\n @Input() isInputGroupFlat = false;\n @Input() isPrependButton = false;\n @Input() isAppendButton = false;\n @Input() isFloating = false;\n @Input() isRequired = false;\n @Input() loaderPosition: LoaderPositionType = 'append';\n @Input() prependIconModel?: IconModel;\n @Input() appendIconModel?: IconModel;\n @Input() validationStatus?: ValidationStatusType;\n @Input() isValidationStatusLight = false;\n @Input() invalidStatusText?: string;\n\n @Output() readonly valueChange = new EventEmitter<any>();\n\n classes: string[] = [];\n get shouldDisplayInnerLabel(): boolean {\n return !!this.label\n && !this.prependIconModel\n && !this.appendIconModel\n && !this.isLoading\n && !this.appendTemplate\n && !this.prependTemplate;\n }\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateClasses();\n }\n\n onInputChange(evt: Event): void {\n if (!evt.target) {\n return;\n }\n\n this.valueChange.emit((evt.target as any).value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = !this.isPlainText ? ['form-control'] : ['form-control-plaintext'];\n\n if (this.isRound) {\n lClasses.push('form-control-rounded');\n }\n\n if (this.isFlush) {\n lClasses.push('form-control-flush');\n }\n\n if (this.size !== 'default') {\n lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);\n }\n\n if (!!this.validationStatus) {\n const statusCls = `is-${this.validationStatus}`;\n lClasses.push(statusCls);\n\n if (this.isValidationStatusLight) {\n lClasses.push(`${statusCls}-lite`);\n }\n }\n\n if (this.isFloating) {\n this.hostWrapperClasses = (this.wrapperClasses || '') + ' form-floating';\n }\n\n this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];\n }\n}\n","<ng-container *ngIf=\"!!appendTemplate || !!prependTemplate; else structureTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n <ng-container *ngIf=\"!!prependTemplate\">\n <div *ngIf=\"!isPrependButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isPrependButton\" [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-container *ngIf=\"!!appendTemplate\">\n <div *ngIf=\"!isAppendButton\" class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n <ng-template *ngIf=\"isAppendButton\" [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #structureTpl>\n <ng-template *ngIf=\"!!prependIconModel || !!appendIconModel || isLoading; else inputTpl\" [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n</ng-template>\n\n<ng-template #inputTpl>\n <ng-container *ngIf=\"(!hint && !hintTemplate); else hintTpl\">\n <ng-template *ngIf=\"shouldDisplayInnerLabel && !isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n <ng-template *ngIf=\"shouldDisplayInnerLabel && isFloating\" [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-icon\">\n <span *ngIf=\"!!prependIconModel || (isLoading && loaderPosition === 'prepend')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!prependIconModel; else loaderTpl\">\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n </ng-container>\n </span>\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <span *ngIf=\"!!appendIconModel || (isLoading && loaderPosition === 'append')\" class=\"input-icon-addon\">\n <ng-container *ngIf=\"!!appendIconModel; else loaderTpl\">\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #hintTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hint\" [updPopoverTemplate]=\"hintTemplate\"\n [updPopoverActAsTooltip]=\"hintAsTooltip\">?</span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n <ng-container *ngIf=\"!!mask; else defaultInputTpl\">\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\"\n [ngClass]=\"classes\" [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"/>\n </ng-container>\n <ng-template #defaultInputTpl>\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\" [ngClass]=\"classes\"\n [placeholder]=\"placeholder\" [value]=\"value || ''\" [attr.name]=\"name\" [attr.readonly]=\"isReadOnly ? '' : undefined\"\n (input)=\"onInputChange($event)\"/>\n </ng-template>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</ng-template>\n\n<ng-template #labelTpl>\n <label *ngIf=\"!!label\" class=\"form-label\" [class.required]=\"isRequired\">{{label}}</label>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMaskModule } from '@updevs/sdk/mask';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { InputComponent } from './input.component';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdMaskModule,\n UpdPopoverModule\n ],\n declarations: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ],\n exports: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ]\n})\nexport class UpdInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form-controls-input.mjs","sources":["../../../../libs/components/form-controls/input/src/directives/input-append.directive.ts","../../../../libs/components/form-controls/input/src/directives/input-prepend.directive.ts","../../../../libs/components/form-controls/input/src/input.component.ts","../../../../libs/components/form-controls/input/src/input.component.html","../../../../libs/components/form-controls/input/src/upd-input.module.ts","../../../../libs/components/form-controls/input/src/updevs-components-form-controls-input.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputAppend]'\n})\nexport class InputAppendDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputPrepend]'\n})\nexport class InputPrependDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n SimpleChanges,\n OnInit,\n OnChanges,\n ContentChild,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { UpdMaskConfig } from '@updevs/sdk/mask';\nimport { ComponentSizeType, HorizontalVerticalType, ColumnSizeHelper } from '@updevs/components';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\nimport { Subject } from 'rxjs';\n\nimport { InputType } from './types/input.type';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\nimport { LoaderPositionType } from './types/loader-position.type';\n\n@Component({\n selector: 'upd-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n @ContentChild(InputAppendDirective) appendTemplate?: InputAppendDirective;\n @ContentChild(InputPrependDirective) prependTemplate?: InputPrependDirective;\n\n @Input() type: InputType = 'text';\n @Input() mask?: string;\n @Input() maskConfig?: UpdMaskConfig;\n @Input() value?: any;\n @Input() size: ComponentSizeType = 'default';\n @Input() customClasses?: string;\n @Input() wrapperClasses?: string;\n @Input() maxLength?: number;\n @Input() isPlainText = false;\n @Input() isReadOnly = false;\n @Input() isLoading = false;\n @Input() isRound = false;\n @Input() isFlush = false;\n @Input() isInputGroupFlat = false;\n @Input() isPrependButton = false;\n @Input() isAppendButton = false;\n @Input() isFloating = false;\n @Input() loaderPosition: LoaderPositionType = 'append';\n @Input() prependIconModel?: IconModel;\n @Input() appendIconModel?: IconModel;\n @Input() isValidationStatusLight = false;\n @Input() layout: HorizontalVerticalType = 'vertical';\n\n @Output() readonly valueChange = new EventEmitter<any>();\n @Output() readonly blurred = new EventEmitter<void>();\n /**\n * Emitted when any key is pressed.\n */\n @Output() readonly keyDown = new EventEmitter<any>();\n /**\n * Emitted when the ESC key is pressed.\n */\n @Output() readonly keyDownEsc = new EventEmitter<void>();\n /**\n * Emitted when the ENTER key is released.\n */\n @Output() readonly keyUpEnter = new EventEmitter<void>();\n\n classes: string[] = [];\n get shouldDisplayInnerLabel(): boolean {\n return !!this.label()\n && !this.prependIconModel\n && !this.appendIconModel\n && !this.isLoading\n && !this.appendTemplate\n && !this.prependTemplate;\n }\n get labelSizeClasses(): string {\n if (this.layout !== 'horizontal') {\n return 'form-label';\n }\n\n return ColumnSizeHelper.getClasses(\n 'col-form-label',\n ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3)\n );\n }\n get validationClass(): string {\n return !!this.validationStatus() ? `is-${this.validationStatus()}` : '';\n }\n get validationBorderClass(): string {\n return !!this.validationStatus() ? `border-${this.validationStatus() === 'invalid' ? 'danger' : 'success'}` : '';\n }\n\n readonly valueChangedSub = new Subject<string>();\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateClasses();\n\n if (changes['value'] && !!this.mask) {\n this.valueChangedSub.next(changes['value'].currentValue);\n }\n }\n\n onInputChange(evt: Event): void {\n if (!evt.target) {\n return;\n }\n\n this.valueChange.emit((evt.target as any).value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = !this.isPlainText ? ['form-control'] : ['form-control-plaintext'];\n\n if (this.isRound) {\n lClasses.push('form-control-rounded');\n }\n\n if (this.isFlush) {\n lClasses.push('form-control-flush');\n }\n\n if (this.size !== 'default') {\n lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);\n }\n\n if (!!this.validationStatus()) {\n const statusCls = `is-${this.validationStatus()}`;\n lClasses.push(statusCls);\n\n if (this.isValidationStatusLight) {\n lClasses.push(`${statusCls}-lite`);\n }\n }\n\n if (this.layout === 'horizontal') {\n this.hostWrapperClasses = 'row';\n }\n\n if (!!this.wrapperClasses) {\n this.hostWrapperClasses += ` ${this.wrapperClasses}`;\n }\n\n if (this.isFloating) {\n this.hostWrapperClasses += ' form-floating';\n }\n\n this.classes = [\n ...lClasses,\n ...(this.customClasses || '').split(' '),\n this.layout === 'horizontal' ? 'col' : ''\n ];\n }\n}\n","@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\" [ngClass]=\"validationClass\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\" [ngClass]=\"validationBorderClass\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText && !isFloating) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else if (!!labelText) {\n <label [ngClass]=\"labelSizeClasses\" [class.required]=\"isRequired()\">{{ labelText }}</label>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMaskModule } from '@updevs/sdk/mask';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { InputComponent } from './input.component';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdMaskModule,\n UpdPopoverModule\n ],\n declarations: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ],\n exports: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ]\n})\nexport class UpdInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ViewEncapsulation, HostBinding, Input, Output, NgModule } from '@angular/core';
2
+ import { EventEmitter, Output, Input, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
+ import { BaseControl } from '@updevs/components/form-controls/abstractions';
3
4
  import * as i1 from '@angular/common';
4
5
  import { CommonModule } from '@angular/common';
6
+ import * as i2 from '@updevs/components/popover';
7
+ import { UpdPopoverModule } from '@updevs/components/popover';
8
+ import { ReactiveFormsModule } from '@angular/forms';
5
9
 
6
- class RadioComponent {
10
+ class RadioComponent extends BaseControl {
7
11
  constructor() {
12
+ super(...arguments);
8
13
  this.wrapperClasses = '';
9
- this.isDisabled = false;
10
- this.isReadOnly = false;
11
14
  this.isChecked = false;
12
15
  this.isInline = false;
13
16
  this.selected = new EventEmitter();
@@ -16,64 +19,56 @@ class RadioComponent {
16
19
  ngOnInit() {
17
20
  this.updateClasses();
18
21
  }
19
- ngOnChanges(changes) {
22
+ ngOnChanges() {
20
23
  this.updateClasses();
21
24
  }
22
25
  updateClasses() {
23
26
  const lClasses = ['form-check-input'];
24
- if (!!this.validationStatus) {
25
- const statusCls = `is-${this.validationStatus}`;
27
+ if (!!this.validationStatus()) {
28
+ const statusCls = `is-${this.validationStatus()}`;
26
29
  lClasses.push(statusCls);
27
30
  }
28
31
  this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];
29
32
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: RadioComponent, selector: "upd-radio", inputs: { wrapperClasses: "wrapperClasses", label: "label", value: "value", customClasses: "customClasses", name: "name", description: "description", isDisabled: "isDisabled", isReadOnly: "isReadOnly", isChecked: "isChecked", isInline: "isInline", validationStatus: "validationStatus", invalidStatusText: "invalidStatusText" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.wrapperClasses" } }, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" [checked]=\"isChecked\">\n <span *ngIf=\"!!label\" class=\"form-check-label\">{{label}}</span>\n <span *ngIf=\"!!description\" class=\"form-check-description\">{{description}}</span>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</label>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: RadioComponent, selector: "upd-radio", inputs: { wrapperClasses: "wrapperClasses", value: "value", customClasses: "customClasses", isChecked: "isChecked", isInline: "isInline" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n</label>\n\n<ng-template #contentTpl>\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name()\"\n [attr.readonly]=\"isDisabled() ? '' : undefined\" [checked]=\"isChecked\">\n\n @if (!!labelText) {\n <span class=\"form-check-label\">{{ labelText }}</span>\n }\n\n @if (!!descriptionText) {\n <span class=\"form-check-description\">{{ descriptionText }}</span>\n }\n\n @if (validationStatus() === 'invalid' && !!validationStatusTexts) {\n <div class=\"invalid-feedback\">{{ validationStatusTexts }}</div>\n }\n</ng-template>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
32
35
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: RadioComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioComponent, decorators: [{
34
37
  type: Component,
35
- args: [{ selector: 'upd-radio', encapsulation: ViewEncapsulation.None, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" [checked]=\"isChecked\">\n <span *ngIf=\"!!label\" class=\"form-check-label\">{{label}}</span>\n <span *ngIf=\"!!description\" class=\"form-check-description\">{{description}}</span>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</label>\n" }]
38
+ args: [{ selector: 'upd-radio', encapsulation: ViewEncapsulation.None, template: "<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n</label>\n\n<ng-template #contentTpl>\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name()\"\n [attr.readonly]=\"isDisabled() ? '' : undefined\" [checked]=\"isChecked\">\n\n @if (!!labelText) {\n <span class=\"form-check-label\">{{ labelText }}</span>\n }\n\n @if (!!descriptionText) {\n <span class=\"form-check-description\">{{ descriptionText }}</span>\n }\n\n @if (validationStatus() === 'invalid' && !!validationStatusTexts) {\n <div class=\"invalid-feedback\">{{ validationStatusTexts }}</div>\n }\n</ng-template>\n\n" }]
36
39
  }], propDecorators: { wrapperClasses: [{
37
40
  type: HostBinding,
38
41
  args: ['class']
39
42
  }, {
40
43
  type: Input
41
- }], label: [{
42
- type: Input
43
44
  }], value: [{
44
45
  type: Input
45
46
  }], customClasses: [{
46
47
  type: Input
47
- }], name: [{
48
- type: Input
49
- }], description: [{
50
- type: Input
51
- }], isDisabled: [{
52
- type: Input
53
- }], isReadOnly: [{
54
- type: Input
55
48
  }], isChecked: [{
56
49
  type: Input
57
50
  }], isInline: [{
58
51
  type: Input
59
- }], validationStatus: [{
60
- type: Input
61
- }], invalidStatusText: [{
62
- type: Input
63
52
  }], selected: [{
64
53
  type: Output
65
54
  }] } });
66
55
 
67
56
  class UpdRadioModule {
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
69
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: UpdRadioModule, declarations: [RadioComponent], imports: [CommonModule], exports: [RadioComponent] }); }
70
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdRadioModule, imports: [CommonModule] }); }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
58
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, declarations: [RadioComponent], imports: [CommonModule,
59
+ UpdPopoverModule,
60
+ ReactiveFormsModule], exports: [RadioComponent] }); }
61
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, imports: [CommonModule,
62
+ UpdPopoverModule,
63
+ ReactiveFormsModule] }); }
71
64
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdRadioModule, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdRadioModule, decorators: [{
73
66
  type: NgModule,
74
67
  args: [{
75
68
  imports: [
76
- CommonModule
69
+ CommonModule,
70
+ UpdPopoverModule,
71
+ ReactiveFormsModule
77
72
  ],
78
73
  declarations: [
79
74
  RadioComponent
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form-controls-radio.mjs","sources":["../../../../projects/updevs/components/form-controls/radio/src/radio.component.ts","../../../../projects/updevs/components/form-controls/radio/src/radio.component.html","../../../../projects/updevs/components/form-controls/radio/src/upd-radio.module.ts","../../../../projects/updevs/components/form-controls/radio/src/updevs-components-form-controls-radio.ts"],"sourcesContent":["import { Component, OnInit, OnChanges, Input, SimpleChanges, HostBinding, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { ValidationStatusType } from '@updevs/components';\n\n@Component({\n selector: 'upd-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class RadioComponent implements OnInit, OnChanges {\n @HostBinding('class') @Input() wrapperClasses = '';\n\n @Input() label?: string;\n @Input() value?: any;\n @Input() customClasses?: string;\n @Input() name?: string;\n @Input() description?: string;\n @Input() isDisabled = false;\n @Input() isReadOnly = false;\n @Input() isChecked = false;\n @Input() isInline = false;\n @Input() validationStatus?: ValidationStatusType;\n @Input() invalidStatusText?: string;\n\n @Output() readonly selected = new EventEmitter<void>();\n\n classes: string[] = [];\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateClasses();\n }\n\n private updateClasses(): void {\n const lClasses: string[] = ['form-check-input'];\n\n if (!!this.validationStatus) {\n const statusCls = `is-${this.validationStatus}`;\n lClasses.push(statusCls);\n }\n\n this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];\n }\n}\n","<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name\"\n [attr.readonly]=\"isReadOnly ? '' : undefined\" [checked]=\"isChecked\">\n <span *ngIf=\"!!label\" class=\"form-check-label\">{{label}}</span>\n <span *ngIf=\"!!description\" class=\"form-check-description\">{{description}}</span>\n <div *ngIf=\"validationStatus === 'invalid' && !!invalidStatusText\" class=\"invalid-feedback\">{{invalidStatusText}}</div>\n</label>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { RadioComponent } from './radio.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n RadioComponent\n ],\n exports: [\n RadioComponent\n ]\n})\nexport class UpdRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form-controls-radio.mjs","sources":["../../../../libs/components/form-controls/radio/src/radio.component.ts","../../../../libs/components/form-controls/radio/src/radio.component.html","../../../../libs/components/form-controls/radio/src/upd-radio.module.ts","../../../../libs/components/form-controls/radio/src/updevs-components-form-controls-radio.ts"],"sourcesContent":["import { Component, OnInit, OnChanges, Input, HostBinding, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\n\n@Component({\n selector: 'upd-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class RadioComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') @Input() wrapperClasses = '';\n\n @Input() value?: any;\n @Input() customClasses?: string;\n @Input() isChecked = false;\n @Input() isInline = false;\n\n @Output() readonly selected = new EventEmitter<void>();\n\n classes: string[] = [];\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(): void {\n this.updateClasses();\n }\n\n private updateClasses(): void {\n const lClasses: string[] = ['form-check-input'];\n\n if (!!this.validationStatus()) {\n const statusCls = `is-${this.validationStatus()}`;\n lClasses.push(statusCls);\n }\n\n this.classes = [...lClasses, ...(this.customClasses || '').split(' ')];\n }\n}\n","<label class=\"form-check\" [class.form-check-inline]=\"isInline\">\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n</label>\n\n<ng-template #contentTpl>\n <input type=\"radio\" (change)=\"selected.emit()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [value]=\"value\" [attr.name]=\"name()\"\n [attr.readonly]=\"isDisabled() ? '' : undefined\" [checked]=\"isChecked\">\n\n @if (!!labelText) {\n <span class=\"form-check-label\">{{ labelText }}</span>\n }\n\n @if (!!descriptionText) {\n <span class=\"form-check-description\">{{ descriptionText }}</span>\n }\n\n @if (validationStatus() === 'invalid' && !!validationStatusTexts) {\n <div class=\"invalid-feedback\">{{ validationStatusTexts }}</div>\n }\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { RadioComponent } from './radio.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdPopoverModule,\n ReactiveFormsModule\n ],\n declarations: [\n RadioComponent\n ],\n exports: [\n RadioComponent\n ]\n})\nexport class UpdRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}