@unipin/angular-applet 18.9.3 → 18.9.4

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 (484) hide show
  1. package/.editorconfig +16 -0
  2. package/.eslintrc.json +72 -0
  3. package/.github/ISSUE_TEMPLATE/bug_fix.yml +60 -0
  4. package/.github/ISSUE_TEMPLATE/dependency_update.yml +20 -0
  5. package/.github/ISSUE_TEMPLATE/documentation.yml +13 -0
  6. package/.github/ISSUE_TEMPLATE/engineering.yml +22 -0
  7. package/.github/ISSUE_TEMPLATE/feature_request.yml +38 -0
  8. package/.github/ISSUE_TEMPLATE/testing.yml +38 -0
  9. package/.github/dependabot.yml +11 -0
  10. package/.github/pull_request_template.md +77 -0
  11. package/.github/workflows/npm_publish.yml +52 -0
  12. package/.storybook/main.ts +28 -0
  13. package/.storybook/preview.ts +19 -0
  14. package/.storybook/test-runner.ts +29 -0
  15. package/.storybook/tsconfig.json +14 -0
  16. package/.storybook/typings.d.ts +4 -0
  17. package/.vscode/extensions.json +7 -0
  18. package/.vscode/launch.json +20 -0
  19. package/.vscode/settings.json +16 -0
  20. package/.vscode/tasks.json +42 -0
  21. package/README.md +11 -8
  22. package/angular.json +102 -0
  23. package/codegen.yml +8 -0
  24. package/package.json +86 -38
  25. package/projects/unipin-angular/README.md +24 -0
  26. package/projects/unipin-angular/documentation.json +116258 -0
  27. package/projects/unipin-angular/ng-package.json +19 -0
  28. package/projects/unipin-angular/package-lock.json +23 -0
  29. package/projects/unipin-angular/package.json +32 -0
  30. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_accordion.scss +149 -0
  31. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_alert.scss +71 -0
  32. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_badge.scss +38 -0
  33. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_breadcrumb.scss +40 -0
  34. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_button-group.scss +142 -0
  35. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_buttons.scss +209 -0
  36. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_card.scss +234 -0
  37. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_carousel.scss +226 -0
  38. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_close.scss +40 -0
  39. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_containers.scss +41 -0
  40. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_dropdown.scss +249 -0
  41. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_forms.scss +9 -0
  42. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_functions.scss +302 -0
  43. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_grid.scss +33 -0
  44. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_helpers.scss +10 -0
  45. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_images.scss +42 -0
  46. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_list-group.scss +192 -0
  47. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_maps.scss +54 -0
  48. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_mixins.scss +43 -0
  49. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_modal.scss +237 -0
  50. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_nav.scss +172 -0
  51. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_navbar.scss +278 -0
  52. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_offcanvas.scss +144 -0
  53. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_pagination.scss +109 -0
  54. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_placeholders.scss +51 -0
  55. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_popover.scss +196 -0
  56. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_progress.scss +59 -0
  57. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_reboot.scss +610 -0
  58. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_root.scss +73 -0
  59. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_spinners.scss +85 -0
  60. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_tables.scss +164 -0
  61. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_toasts.scss +73 -0
  62. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_tooltip.scss +120 -0
  63. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_transitions.scss +27 -0
  64. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_type.scss +106 -0
  65. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_utilities.scss +647 -0
  66. package/projects/unipin-angular/src/assets/private/scss/bootstrap/_variables.scss +1634 -0
  67. package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-grid.scss +64 -0
  68. package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-reboot.scss +9 -0
  69. package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap-utilities.scss +18 -0
  70. package/projects/unipin-angular/src/assets/private/scss/bootstrap/bootstrap.scss +24 -0
  71. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_floating-labels.scss +75 -0
  72. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-check.scss +175 -0
  73. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-control.scss +195 -0
  74. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-range.scss +91 -0
  75. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-select.scss +71 -0
  76. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_form-text.scss +11 -0
  77. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_input-group.scss +132 -0
  78. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_labels.scss +36 -0
  79. package/projects/unipin-angular/src/assets/private/scss/bootstrap/forms/_validation.scss +12 -0
  80. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_clearfix.scss +3 -0
  81. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_color-bg.scss +10 -0
  82. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_colored-links.scss +12 -0
  83. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_position.scss +36 -0
  84. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_ratio.scss +26 -0
  85. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_stacks.scss +15 -0
  86. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_stretched-link.scss +15 -0
  87. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_text-truncation.scss +7 -0
  88. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_visually-hidden.scss +8 -0
  89. package/projects/unipin-angular/src/assets/private/scss/bootstrap/helpers/_vr.scss +8 -0
  90. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_alert.scss +15 -0
  91. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_backdrop.scss +14 -0
  92. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_banner.scss +9 -0
  93. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_border-radius.scss +78 -0
  94. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_box-shadow.scss +18 -0
  95. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_breakpoints.scss +127 -0
  96. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_buttons.scss +70 -0
  97. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_caret.scss +64 -0
  98. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_clearfix.scss +9 -0
  99. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_color-scheme.scss +7 -0
  100. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_container.scss +11 -0
  101. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_deprecate.scss +10 -0
  102. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_forms.scss +152 -0
  103. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_gradients.scss +47 -0
  104. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_grid.scss +151 -0
  105. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_image.scss +16 -0
  106. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_list-group.scss +24 -0
  107. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_lists.scss +7 -0
  108. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_pagination.scss +10 -0
  109. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_reset-text.scss +17 -0
  110. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_resize.scss +6 -0
  111. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_table-variants.scss +24 -0
  112. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_text-truncate.scss +8 -0
  113. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_transition.scss +26 -0
  114. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_utilities.scss +97 -0
  115. package/projects/unipin-angular/src/assets/private/scss/bootstrap/mixins/_visually-hidden.scss +29 -0
  116. package/projects/unipin-angular/src/assets/private/scss/bootstrap/utilities/_api.scss +47 -0
  117. package/projects/unipin-angular/src/assets/private/scss/bootstrap/vendor/_rfs.scss +354 -0
  118. package/projects/unipin-angular/src/assets/private/scss/theme/variables.scss +59 -0
  119. package/projects/unipin-angular/src/graphql/generated.d.ts +715 -0
  120. package/projects/unipin-angular/src/graphql/generated.mjs +49 -0
  121. package/projects/unipin-angular/src/graphql/generated.ts +19998 -0
  122. package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.html +14 -0
  123. package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.scss +0 -0
  124. package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.ts +90 -0
  125. package/projects/unipin-angular/src/lib/components/approval/detail/approval-detail.stories.ts +61 -0
  126. package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.html +41 -0
  127. package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.scss +0 -0
  128. package/projects/unipin-angular/src/lib/components/approval/form/approval-form.component.ts +152 -0
  129. package/projects/unipin-angular/src/lib/components/approval/form/approval-form.stories.ts +111 -0
  130. package/{lib/components/approval/index.d.ts → projects/unipin-angular/src/lib/components/approval/index.ts} +1 -0
  131. package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.html +15 -0
  132. package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.scss +0 -0
  133. package/projects/unipin-angular/src/lib/components/approval/list/approval-list.component.ts +136 -0
  134. package/projects/unipin-angular/src/lib/components/approval/list/approval-list.stories.ts +141 -0
  135. package/projects/unipin-angular/src/lib/components/approval/list/provide-approval-entities.util.ts +10 -0
  136. package/projects/unipin-angular/src/lib/components/approval/services/approval.service.ts +46 -0
  137. package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.html +50 -0
  138. package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.scss +4 -0
  139. package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.spec.ts +51 -0
  140. package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.ts +141 -0
  141. package/projects/unipin-angular/src/lib/components/audit/detail/audit-detail.stories.ts +126 -0
  142. package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.html +5 -0
  143. package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.scss +0 -0
  144. package/projects/unipin-angular/src/lib/components/audit/list/audit-list.component.ts +85 -0
  145. package/projects/unipin-angular/src/lib/components/audit/list/audit-list.stories.ts +170 -0
  146. package/projects/unipin-angular/src/lib/components/audit/service/audit.service.ts +48 -0
  147. package/projects/unipin-angular/src/lib/components/audit/types/audit-detail-form.type.ts +13 -0
  148. package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.html +42 -0
  149. package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.scss +19 -0
  150. package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.ts +72 -0
  151. package/projects/unipin-angular/src/lib/components/buttons/group/btn-group.stories.ts +132 -0
  152. package/projects/unipin-angular/src/lib/components/buttons/group/interfaces/btn-group-config.interface.ts +63 -0
  153. package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.html +9 -0
  154. package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.scss +8 -0
  155. package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.ts +87 -0
  156. package/projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.stories.ts +188 -0
  157. package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.html +39 -0
  158. package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.scss +68 -0
  159. package/projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.ts +98 -0
  160. package/projects/unipin-angular/src/lib/components/containers/applet-container/provide-applet-config.util.ts +23 -0
  161. package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.html +17 -0
  162. package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.scss +4 -0
  163. package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.ts +32 -0
  164. package/projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header.stories.ts +77 -0
  165. package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.html +17 -0
  166. package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.scss +0 -0
  167. package/projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.ts +139 -0
  168. package/projects/unipin-angular/src/lib/components/containers/column-container/directives/lazy-route.directive.ts +86 -0
  169. package/{lib/components/containers/index.d.ts → projects/unipin-angular/src/lib/components/containers/index.ts} +1 -0
  170. package/{lib/components/containers/list-container/interfaces/list-container-config.interface.d.ts → projects/unipin-angular/src/lib/components/containers/list-container/interfaces/list-container-config.interface.ts} +5 -4
  171. package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.html +19 -0
  172. package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.scss +7 -0
  173. package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.ts +113 -0
  174. package/projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.stories.ts +207 -0
  175. package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.html +19 -0
  176. package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.scss +7 -0
  177. package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.ts +114 -0
  178. package/projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.stories.ts +212 -0
  179. package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.html +15 -0
  180. package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.scss +2 -0
  181. package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.ts +88 -0
  182. package/projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.stories.ts +66 -0
  183. package/projects/unipin-angular/src/lib/components/filter/filter.component.html +112 -0
  184. package/projects/unipin-angular/src/lib/components/filter/filter.component.scss +28 -0
  185. package/projects/unipin-angular/src/lib/components/filter/filter.component.ts +329 -0
  186. package/projects/unipin-angular/src/lib/components/filter/filter.stories.ts +176 -0
  187. package/{lib/components/filter/index.d.ts → projects/unipin-angular/src/lib/components/filter/index.ts} +1 -1
  188. package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-config.interface.ts +17 -0
  189. package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-field.interface.ts +73 -0
  190. package/projects/unipin-angular/src/lib/components/filter/interfaces/filter-search-event.interface.ts +15 -0
  191. package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.html +19 -0
  192. package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.scss +0 -0
  193. package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.ts +210 -0
  194. package/projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.stories.ts +175 -0
  195. package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.html +42 -0
  196. package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.scss +4 -0
  197. package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.ts +285 -0
  198. package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.spec.ts +119 -0
  199. package/projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.stories.ts +243 -0
  200. package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.html +27 -0
  201. package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.scss +7 -0
  202. package/projects/unipin-angular/src/lib/components/forms/date/form-date.component.ts +225 -0
  203. package/projects/unipin-angular/src/lib/components/forms/date/form-date.stories.ts +201 -0
  204. package/projects/unipin-angular/src/lib/components/forms/image-picker/directives/drag-n-drop.directive.ts +40 -0
  205. package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.html +29 -0
  206. package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.scss +40 -0
  207. package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.ts +109 -0
  208. package/projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.stories.ts +133 -0
  209. package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.html +22 -0
  210. package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.scss +0 -0
  211. package/projects/unipin-angular/src/lib/components/forms/input/form-input.component.ts +177 -0
  212. package/projects/unipin-angular/src/lib/components/forms/input/form-input.stories.ts +185 -0
  213. package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.html +6 -0
  214. package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.scss +0 -0
  215. package/projects/unipin-angular/src/lib/components/forms/number/form-number.component.ts +176 -0
  216. package/projects/unipin-angular/src/lib/components/forms/number/form-number.spec.ts +62 -0
  217. package/projects/unipin-angular/src/lib/components/forms/number/form-number.stories.ts +150 -0
  218. package/projects/unipin-angular/src/lib/components/forms/number/pipes/locale-number.pipe.ts +32 -0
  219. package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.html +11 -0
  220. package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.scss +5 -0
  221. package/projects/unipin-angular/src/lib/components/forms/password/form-password.component.ts +177 -0
  222. package/projects/unipin-angular/src/lib/components/forms/password/form-password.stories.ts +151 -0
  223. package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.html +30 -0
  224. package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.scss +0 -0
  225. package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.ts +271 -0
  226. package/projects/unipin-angular/src/lib/components/forms/rate-group-code-input/form-rate-group-code-input.stories.ts +248 -0
  227. package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.html +28 -0
  228. package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.scss +0 -0
  229. package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.ts +281 -0
  230. package/projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.stories.ts +267 -0
  231. package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.html +24 -0
  232. package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.scss +1 -0
  233. package/projects/unipin-angular/src/lib/components/forms/select/form-select.component.ts +216 -0
  234. package/projects/unipin-angular/src/lib/components/forms/select/form-select.stories.ts +220 -0
  235. package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.html +9 -0
  236. package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.scss +0 -0
  237. package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.ts +146 -0
  238. package/projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.stories.ts +163 -0
  239. package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.html +17 -0
  240. package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.scss +8 -0
  241. package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.ts +224 -0
  242. package/projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.stories.ts +219 -0
  243. package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.html +17 -0
  244. package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.scss +8 -0
  245. package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.ts +229 -0
  246. package/projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.stories.ts +173 -0
  247. package/projects/unipin-angular/src/lib/components/grids/interfaces/grid-config.interface.ts +44 -0
  248. package/projects/unipin-angular/src/lib/components/grids/services/grid.service.ts +23 -0
  249. package/{lib/components/index.d.ts → projects/unipin-angular/src/lib/components/index.ts} +14 -2
  250. package/projects/unipin-angular/src/lib/components/infinite-scroll/directive/infinite-scroll.directive.ts +72 -0
  251. package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.html +13 -0
  252. package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.scss +10 -0
  253. package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.ts +61 -0
  254. package/projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.stories.ts +80 -0
  255. package/{lib/components/tabs/index.d.ts → projects/unipin-angular/src/lib/components/tabs/index.ts} +3 -2
  256. package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.html +3 -0
  257. package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.scss +6 -0
  258. package/projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.ts +56 -0
  259. package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.html +24 -0
  260. package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.scss +39 -0
  261. package/projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.ts +92 -0
  262. package/projects/unipin-angular/src/lib/components/tabs/tab.stories.ts +117 -0
  263. package/projects/unipin-angular/src/lib/guards/auth/auth.guard.ts +11 -0
  264. package/projects/unipin-angular/src/lib/interceptors/header/header.interceptor.ts +36 -0
  265. package/projects/unipin-angular/src/lib/interceptors/refresh-token/refresh-token.interceptor.ts +123 -0
  266. package/projects/unipin-angular/src/lib/interfaces/user/user.interface.ts +27 -0
  267. package/projects/unipin-angular/src/lib/modules/index.ts +11 -0
  268. package/projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-bootstrap.util.ts +74 -0
  269. package/projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-global-state.util.ts +20 -0
  270. package/projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.spec.ts +50 -0
  271. package/projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.ts +68 -0
  272. package/projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.spec.ts +76 -0
  273. package/projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.ts +30 -0
  274. package/{lib/modules/permission/index.d.ts → projects/unipin-angular/src/lib/modules/permission/index.ts} +1 -0
  275. package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.html +3 -0
  276. package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.scss +3 -0
  277. package/projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.ts +14 -0
  278. package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.html +2 -0
  279. package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.scss +4 -0
  280. package/projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.ts +76 -0
  281. package/projects/unipin-angular/src/lib/modules/permission/pages/loading/provide-loading-config.util.ts +18 -0
  282. package/projects/unipin-angular/src/lib/modules/permission/services/permission.service.spec.ts +62 -0
  283. package/projects/unipin-angular/src/lib/modules/permission/services/permission.service.ts +78 -0
  284. package/projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.spec.ts +46 -0
  285. package/projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.ts +144 -0
  286. package/projects/unipin-angular/src/lib/services/auth/auth.service.ts +243 -0
  287. package/projects/unipin-angular/src/lib/services/country/country.service.ts +47 -0
  288. package/projects/unipin-angular/src/lib/services/currency/currency.service.ts +44 -0
  289. package/projects/unipin-angular/src/lib/services/profile/profile.service.ts +86 -0
  290. package/projects/unipin-angular/src/lib/services/rate-group-code/rate-group-code.service.ts +29 -0
  291. package/projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.spec.ts +19 -0
  292. package/projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.ts +28 -0
  293. package/projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.spec.ts +58 -0
  294. package/projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.ts +30 -0
  295. package/projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.spec.ts +30 -0
  296. package/projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.ts +22 -0
  297. package/projects/unipin-angular/src/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.ts +15 -0
  298. package/projects/unipin-angular/src/public-api.ts +126 -0
  299. package/projects/unipin-angular/tsconfig.lib.json +14 -0
  300. package/projects/unipin-angular/tsconfig.lib.prod.json +10 -0
  301. package/projects/unipin-angular/tsconfig.spec.json +14 -0
  302. package/snapshot-serializer.js +12 -0
  303. package/test-runner-jest.config.js +13 -0
  304. package/tsconfig.json +51 -0
  305. package/esm2022/graphql/generated.mjs +0 -938
  306. package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +0 -78
  307. package/esm2022/lib/components/approval/form/approval-form.component.mjs +0 -128
  308. package/esm2022/lib/components/approval/index.mjs +0 -5
  309. package/esm2022/lib/components/approval/list/approval-list.component.mjs +0 -114
  310. package/esm2022/lib/components/approval/list/provide-approval-entities.util.mjs +0 -9
  311. package/esm2022/lib/components/approval/services/approval.service.mjs +0 -46
  312. package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +0 -123
  313. package/esm2022/lib/components/audit/index.mjs +0 -3
  314. package/esm2022/lib/components/audit/list/audit-list.component.mjs +0 -81
  315. package/esm2022/lib/components/audit/service/audit.service.mjs +0 -49
  316. package/esm2022/lib/components/audit/types/audit-detail-form.type.mjs +0 -2
  317. package/esm2022/lib/components/buttons/group/btn-group.component.mjs +0 -43
  318. package/esm2022/lib/components/buttons/group/interfaces/btn-group-config.interface.mjs +0 -2
  319. package/esm2022/lib/components/buttons/index.mjs +0 -3
  320. package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +0 -48
  321. package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +0 -55
  322. package/esm2022/lib/components/containers/applet-container/provide-applet-config.util.mjs +0 -9
  323. package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +0 -23
  324. package/esm2022/lib/components/containers/column-container/column-container.component.mjs +0 -79
  325. package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +0 -57
  326. package/esm2022/lib/components/containers/index.mjs +0 -7
  327. package/esm2022/lib/components/containers/list-container/index.mjs +0 -3
  328. package/esm2022/lib/components/containers/list-container/interfaces/list-container-config.interface.mjs +0 -2
  329. package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +0 -58
  330. package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +0 -57
  331. package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +0 -40
  332. package/esm2022/lib/components/filter/filter.component.mjs +0 -222
  333. package/esm2022/lib/components/filter/index.mjs +0 -2
  334. package/esm2022/lib/components/filter/interfaces/filter-config.interface.mjs +0 -2
  335. package/esm2022/lib/components/filter/interfaces/filter-field.interface.mjs +0 -2
  336. package/esm2022/lib/components/filter/interfaces/filter-search-event.interface.mjs +0 -2
  337. package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +0 -122
  338. package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +0 -157
  339. package/esm2022/lib/components/forms/date/form-date.component.mjs +0 -114
  340. package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +0 -49
  341. package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +0 -68
  342. package/esm2022/lib/components/forms/index.mjs +0 -12
  343. package/esm2022/lib/components/forms/input/form-input.component.mjs +0 -98
  344. package/esm2022/lib/components/forms/number/form-number.component.mjs +0 -97
  345. package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +0 -33
  346. package/esm2022/lib/components/forms/password/form-password.component.mjs +0 -100
  347. package/esm2022/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.mjs +0 -135
  348. package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +0 -138
  349. package/esm2022/lib/components/forms/select/form-select.component.mjs +0 -116
  350. package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +0 -88
  351. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +0 -111
  352. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +0 -109
  353. package/esm2022/lib/components/grids/index.mjs +0 -4
  354. package/esm2022/lib/components/grids/interfaces/grid-config.interface.mjs +0 -2
  355. package/esm2022/lib/components/grids/services/grid.service.mjs +0 -25
  356. package/esm2022/lib/components/index.mjs +0 -9
  357. package/esm2022/lib/components/infinite-scroll/directive/infinite-scroll.directive.mjs +0 -43
  358. package/esm2022/lib/components/infinite-scroll/index.mjs +0 -3
  359. package/esm2022/lib/components/infinite-scroll/infinite-scroll.component.mjs +0 -36
  360. package/esm2022/lib/components/tabs/index.mjs +0 -3
  361. package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +0 -37
  362. package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +0 -47
  363. package/esm2022/lib/guards/auth/auth.guard.mjs +0 -10
  364. package/esm2022/lib/guards/index.mjs +0 -2
  365. package/esm2022/lib/interceptors/header/header.interceptor.mjs +0 -29
  366. package/esm2022/lib/interceptors/index.mjs +0 -3
  367. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +0 -83
  368. package/esm2022/lib/interfaces/index.mjs +0 -2
  369. package/esm2022/lib/interfaces/user/user.interface.mjs +0 -2
  370. package/esm2022/lib/modules/index.mjs +0 -3
  371. package/esm2022/lib/modules/micro-frontend/index.mjs +0 -2
  372. package/esm2022/lib/modules/micro-frontend/utils/mf-bootstrap.util.mjs +0 -55
  373. package/esm2022/lib/modules/micro-frontend/utils/mf-global-state.util.mjs +0 -14
  374. package/esm2022/lib/modules/permission/directive/permission.directive.mjs +0 -41
  375. package/esm2022/lib/modules/permission/guards/permission.guard.mjs +0 -26
  376. package/esm2022/lib/modules/permission/index.mjs +0 -7
  377. package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +0 -15
  378. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +0 -65
  379. package/esm2022/lib/modules/permission/pages/loading/provide-loading-config.util.mjs +0 -9
  380. package/esm2022/lib/modules/permission/services/permission.service.mjs +0 -50
  381. package/esm2022/lib/resolvers/auth/auth.resolver.mjs +0 -87
  382. package/esm2022/lib/resolvers/index.mjs +0 -2
  383. package/esm2022/lib/services/auth/auth.service.mjs +0 -171
  384. package/esm2022/lib/services/country/country.service.mjs +0 -43
  385. package/esm2022/lib/services/currency/currency.service.mjs +0 -40
  386. package/esm2022/lib/services/index.mjs +0 -6
  387. package/esm2022/lib/services/profile/profile.service.mjs +0 -82
  388. package/esm2022/lib/services/rate-group-code/rate-group-code.service.mjs +0 -31
  389. package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +0 -16
  390. package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +0 -21
  391. package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +0 -18
  392. package/esm2022/lib/utils/index.mjs +0 -5
  393. package/esm2022/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.mjs +0 -9
  394. package/esm2022/public-api.mjs +0 -10
  395. package/esm2022/unipin-angular-applet.mjs +0 -2
  396. package/fesm2022/unipin-angular-applet.mjs +0 -4614
  397. package/fesm2022/unipin-angular-applet.mjs.map +0 -1
  398. package/graphql/generated.d.ts +0 -16225
  399. package/index.d.ts +0 -2
  400. package/lib/components/approval/detail/approval-detail.component.d.ts +0 -26
  401. package/lib/components/approval/form/approval-form.component.d.ts +0 -33
  402. package/lib/components/approval/list/approval-list.component.d.ts +0 -33
  403. package/lib/components/approval/list/provide-approval-entities.util.d.ts +0 -3
  404. package/lib/components/approval/services/approval.service.d.ts +0 -18
  405. package/lib/components/audit/detail/audit-detail.component.d.ts +0 -33
  406. package/lib/components/audit/list/audit-list.component.d.ts +0 -31
  407. package/lib/components/audit/service/audit.service.d.ts +0 -15
  408. package/lib/components/audit/types/audit-detail-form.type.d.ts +0 -12
  409. package/lib/components/buttons/group/btn-group.component.d.ts +0 -18
  410. package/lib/components/buttons/group/interfaces/btn-group-config.interface.d.ts +0 -11
  411. package/lib/components/buttons/loading/btn-loading.component.d.ts +0 -19
  412. package/lib/components/containers/applet-container/applet-container.component.d.ts +0 -22
  413. package/lib/components/containers/applet-container/provide-applet-config.util.d.ts +0 -15
  414. package/lib/components/containers/colum-header-container/column-header-container.component.d.ts +0 -7
  415. package/lib/components/containers/column-container/column-container.component.d.ts +0 -26
  416. package/lib/components/containers/column-container/directives/lazy-route.directive.d.ts +0 -17
  417. package/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.d.ts +0 -23
  418. package/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.d.ts +0 -23
  419. package/lib/components/containers/modal-container/modal-container.component.d.ts +0 -16
  420. package/lib/components/filter/filter.component.d.ts +0 -44
  421. package/lib/components/filter/interfaces/filter-config.interface.d.ts +0 -5
  422. package/lib/components/filter/interfaces/filter-field.interface.d.ts +0 -23
  423. package/lib/components/filter/interfaces/filter-search-event.interface.d.ts +0 -4
  424. package/lib/components/forms/country-input/form-country-input.component.d.ts +0 -41
  425. package/lib/components/forms/currency-input/form-currency-input.component.d.ts +0 -52
  426. package/lib/components/forms/date/form-date.component.d.ts +0 -32
  427. package/lib/components/forms/image-picker/directives/drag-n-drop.directive.d.ts +0 -10
  428. package/lib/components/forms/image-picker/form-image-picker.component.d.ts +0 -21
  429. package/lib/components/forms/input/form-input.component.d.ts +0 -31
  430. package/lib/components/forms/number/form-number.component.d.ts +0 -27
  431. package/lib/components/forms/number/pipes/locale-number.pipe.d.ts +0 -8
  432. package/lib/components/forms/password/form-password.component.d.ts +0 -27
  433. package/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.d.ts +0 -41
  434. package/lib/components/forms/searchable-select/form-searchable-select.component.d.ts +0 -42
  435. package/lib/components/forms/select/form-select.component.d.ts +0 -33
  436. package/lib/components/forms/textarea/form-textarea.component.d.ts +0 -26
  437. package/lib/components/grids/grid-pagination/grid-pagination.component.d.ts +0 -33
  438. package/lib/components/grids/grid-snapshot/grid-snapshot.component.d.ts +0 -36
  439. package/lib/components/grids/interfaces/grid-config.interface.d.ts +0 -16
  440. package/lib/components/grids/services/grid.service.d.ts +0 -12
  441. package/lib/components/infinite-scroll/directive/infinite-scroll.directive.d.ts +0 -15
  442. package/lib/components/infinite-scroll/infinite-scroll.component.d.ts +0 -12
  443. package/lib/components/tabs/tab-content/tab-content.component.d.ts +0 -14
  444. package/lib/components/tabs/tab-group/tab-group.component.d.ts +0 -18
  445. package/lib/guards/auth/auth.guard.d.ts +0 -1
  446. package/lib/interceptors/header/header.interceptor.d.ts +0 -9
  447. package/lib/interceptors/refresh-token/refresh-token.interceptor.d.ts +0 -14
  448. package/lib/interfaces/user/user.interface.d.ts +0 -27
  449. package/lib/modules/index.d.ts +0 -2
  450. package/lib/modules/micro-frontend/utils/mf-bootstrap.util.d.ts +0 -9
  451. package/lib/modules/micro-frontend/utils/mf-global-state.util.d.ts +0 -4
  452. package/lib/modules/permission/directive/permission.directive.d.ts +0 -16
  453. package/lib/modules/permission/guards/permission.guard.d.ts +0 -2
  454. package/lib/modules/permission/pages/401/unauthorized.page.d.ts +0 -5
  455. package/lib/modules/permission/pages/loading/loading.page.d.ts +0 -18
  456. package/lib/modules/permission/pages/loading/provide-loading-config.util.d.ts +0 -10
  457. package/lib/modules/permission/services/permission.service.d.ts +0 -21
  458. package/lib/resolvers/auth/auth.resolver.d.ts +0 -14
  459. package/lib/services/auth/auth.service.d.ts +0 -39
  460. package/lib/services/country/country.service.d.ts +0 -16
  461. package/lib/services/currency/currency.service.d.ts +0 -16
  462. package/lib/services/profile/profile.service.d.ts +0 -12
  463. package/lib/services/rate-group-code/rate-group-code.service.d.ts +0 -14
  464. package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +0 -4
  465. package/lib/utils/form-error-message/form-error-message.util.d.ts +0 -2
  466. package/lib/utils/format-capitalize/format-capitalize.util.d.ts +0 -1
  467. package/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.d.ts +0 -2
  468. package/public-api.d.ts +0 -11
  469. /package/{src → projects/unipin-angular/src}/assets/scss/forms.scss +0 -0
  470. /package/{src → projects/unipin-angular/src}/assets/scss/grid.scss +0 -0
  471. /package/{src → projects/unipin-angular/src}/assets/scss/select.scss +0 -0
  472. /package/{lib/components/audit/index.d.ts → projects/unipin-angular/src/lib/components/audit/index.ts} +0 -0
  473. /package/{lib/components/buttons/index.d.ts → projects/unipin-angular/src/lib/components/buttons/index.ts} +0 -0
  474. /package/{lib/components/containers/list-container/index.d.ts → projects/unipin-angular/src/lib/components/containers/list-container/index.ts} +0 -0
  475. /package/{lib/components/forms/index.d.ts → projects/unipin-angular/src/lib/components/forms/index.ts} +0 -0
  476. /package/{lib/components/grids/index.d.ts → projects/unipin-angular/src/lib/components/grids/index.ts} +0 -0
  477. /package/{lib/components/infinite-scroll/index.d.ts → projects/unipin-angular/src/lib/components/infinite-scroll/index.ts} +0 -0
  478. /package/{lib/guards/index.d.ts → projects/unipin-angular/src/lib/guards/index.ts} +0 -0
  479. /package/{lib/interceptors/index.d.ts → projects/unipin-angular/src/lib/interceptors/index.ts} +0 -0
  480. /package/{lib/interfaces/index.d.ts → projects/unipin-angular/src/lib/interfaces/index.ts} +0 -0
  481. /package/{lib/modules/micro-frontend/index.d.ts → projects/unipin-angular/src/lib/modules/micro-frontend/index.ts} +0 -0
  482. /package/{lib/resolvers/index.d.ts → projects/unipin-angular/src/lib/resolvers/index.ts} +0 -0
  483. /package/{lib/services/index.d.ts → projects/unipin-angular/src/lib/services/index.ts} +0 -0
  484. /package/{lib/utils/index.d.ts → projects/unipin-angular/src/lib/utils/index.ts} +0 -0
@@ -1,157 +0,0 @@
1
- import { Attribute, ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { NgSelectModule } from '@ng-select/ng-select';
5
- import { getFormErrorMessage } from '../../../utils';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../services";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@ng-select/ng-select";
10
- export class FormCurrencyInputComponent {
11
- constructor(placeholder, numberPlaceholder, ch, currencyService) {
12
- this.placeholder = placeholder;
13
- this.numberPlaceholder = numberPlaceholder;
14
- this.ch = ch;
15
- this.currencyService = currencyService;
16
- this.label = 'Currency';
17
- this.clearable = true;
18
- this.isInputNumber = false;
19
- this.numberValue = null;
20
- this.isNumberDisabled = false;
21
- this.required = false;
22
- this.disabled = false;
23
- this.onChange = new EventEmitter();
24
- this.items = [];
25
- this.isLoading = true;
26
- this.isTouched = false;
27
- this.value = null;
28
- this.decimalLimiter = 0;
29
- this.changed = (_val) => { };
30
- this.onTouched = () => { };
31
- }
32
- ngOnInit() {
33
- this.sub = this.currencyService.query().subscribe({
34
- error: () => {
35
- this.items = [];
36
- this.setIsLoading(false);
37
- },
38
- next: ({ data: { webConfigMsCurrency: { data } } }) => {
39
- this.items = data.map((d) => ({ label: `[${d.code}] ${d.name}`, value: d.code, data: d }));
40
- this.setIsLoading(false);
41
- }
42
- });
43
- }
44
- ngOnDestroy() {
45
- this.sub?.unsubscribe();
46
- }
47
- registerOnChange(fn) { this.changed = fn; }
48
- registerOnTouched(fn) { this.onTouched = fn; }
49
- writeValue(val) {
50
- this.value = val;
51
- if (!val)
52
- this.change(null);
53
- else {
54
- const d = this.items.find(({ value }) => value === val);
55
- if (d) {
56
- this.change({ value: val, data: d.data });
57
- }
58
- }
59
- this.ch.markForCheck();
60
- }
61
- setDisabledState(d) {
62
- this.disabled = d;
63
- this.ch.markForCheck();
64
- }
65
- validate(control) {
66
- this.formControl = control;
67
- return null;
68
- }
69
- change(e) {
70
- if (!this.isTouched) {
71
- this.onTouched();
72
- this.isTouched = true;
73
- }
74
- if (!this.disabled) {
75
- this.value = e?.value;
76
- this.selectedItem = e?.data;
77
- this.changed(this.value);
78
- this.onChange.emit({ selectedItem: e, number: this.numberValue });
79
- this.errorMsg = getFormErrorMessage(this.formControl?.errors, this.label);
80
- }
81
- if (e?.magnifyValue === 1)
82
- this.decimalLimiter = 0;
83
- else {
84
- this.decimalLimiter = Math.floor(Math.log10(e?.data.magnifyValue));
85
- }
86
- }
87
- numberInput({ value }) {
88
- this.numberValue = value;
89
- this.onChange.emit({ selectedItem: this.selectedItem, number: value });
90
- }
91
- limitDecimal({ charCode, preventDefault, target: { value } }) {
92
- const reg = this.decimalLimiter > 0 ? new RegExp(`^\\d*(\\.\\d{0,${this.decimalLimiter}})?$`) : /^\d+$/;
93
- if (!reg.test(value + String.fromCharCode(charCode)))
94
- preventDefault();
95
- }
96
- setIsLoading(b) {
97
- this.isLoading = b;
98
- this.ch.markForCheck();
99
- }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormCurrencyInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: 'numberPlaceholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { label: "label", clearable: "clearable", isInputNumber: "isInputNumber", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
102
- {
103
- multi: true,
104
- provide: NG_VALUE_ACCESSOR,
105
- useExisting: FormCurrencyInputComponent
106
- },
107
- {
108
- multi: true,
109
- provide: NG_VALIDATORS,
110
- useExisting: FormCurrencyInputComponent
111
- }
112
- ], ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n@if (!isInputNumber) {\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n} \n@else {\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n}\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormCurrencyInputComponent, decorators: [{
115
- type: Component,
116
- args: [{ standalone: true, selector: 'up-currency-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
117
- class: 'd-block'
118
- }, imports: [
119
- FormsModule,
120
- NgSelectModule,
121
- NgTemplateOutlet,
122
- ], providers: [
123
- {
124
- multi: true,
125
- provide: NG_VALUE_ACCESSOR,
126
- useExisting: FormCurrencyInputComponent
127
- },
128
- {
129
- multi: true,
130
- provide: NG_VALIDATORS,
131
- useExisting: FormCurrencyInputComponent
132
- }
133
- ], template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n@if (!isInputNumber) {\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n} \n@else {\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n}\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"] }]
134
- }], ctorParameters: () => [{ type: undefined, decorators: [{
135
- type: Attribute,
136
- args: ['placeholder']
137
- }] }, { type: undefined, decorators: [{
138
- type: Attribute,
139
- args: ['numberPlaceholder']
140
- }] }, { type: i0.ChangeDetectorRef }, { type: i1.CurrencyService }], propDecorators: { label: [{
141
- type: Input
142
- }], clearable: [{
143
- type: Input
144
- }], isInputNumber: [{
145
- type: Input
146
- }], numberValue: [{
147
- type: Input
148
- }], isNumberDisabled: [{
149
- type: Input
150
- }], required: [{
151
- type: Input
152
- }], disabled: [{
153
- type: Input
154
- }], onChange: [{
155
- type: Output
156
- }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBeUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuSixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBOEJyRCxNQUFNLE9BQU8sMEJBQTBCO0lBdUhyQyxZQUNtQyxXQUFtQixFQUNiLGlCQUF5QixFQUM3QyxFQUFxQixFQUNyQixlQUFnQztRQUhsQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNiLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFwSHJDLFVBQUssR0FBVyxVQUFVLENBQUM7UUFPM0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQU8xQixrQkFB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LGlCQUFpQjs0QkFDMUIsV0FBVyw0QkFBNEI7eUJBQ3hDO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxJQUFJOzRCQUNYLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLDRCQUE0Qjt5QkFDeEM7cUJBQ0Y7OzBCQTBIRSxTQUFTOzJCQUFDLGFBQWE7OzBCQUN2QixTQUFTOzJCQUFDLG1CQUFtQjt1R0FsSGhCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBT1UsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLFdBQVc7c0JBQTFCLEtBQUs7Z0JBT1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFNVyxRQUFRO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBDdXJyZW5jeSB9IGZyb20gJy4uLy4uLy4uLy4uL2dyYXBocWwvZ2VuZXJhdGVkJztcbmltcG9ydCB7IGdldEZvcm1FcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWN1cnJlbmN5LWlucHV0JyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IFxuICAgIGNsYXNzOiAnZC1ibG9jaycgXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIFxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSAnQ3VycmVuY3knO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGNsZWFyYWJsZS5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHt0cnVlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBudW1iZXIgaW5wdXQgZm9ybSBpcyBoaWRlIG9yIHNob3cuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaXNJbnB1dE51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBzZXQgdGhlIHZhbHVlIG9mIGlucHV0IG51bWJlciBmaWVsZC5cbiAgICogQHR5cGUge251bWJlciB8IG51bGx9XG4gICAqIEBkZWZhdWx0IHtudWxsfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIG51bWJlclZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIG51bWJlciBpbnB1dCBpcyBkaXNhYmxlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpc051bWJlckRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgcmVxdWlyZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBpcyBkaXNhYmxlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgdmFyaWFibGUgdG8gZW1pdCBjaGFuZ2VzIHdoZW4gdGhlIHNlbGVjdCBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPGFueT59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBzZWxlY3RlZEl0ZW0/OiBDdXJyZW5jeSwgbnVtYmVyOiBudW1iZXIgfCBudWxsIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGZvciBkaXNwbGF5aW5nIGl0ZW1zIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHtPYnNlcnZhYmxlPGFueVtdPn1cbiAgICovXG4gIHB1YmxpYyBpdGVtczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBkYXRhOiBDdXJyZW5jeSB9W10gPSBbXTtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGxvYWRpbmcuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGhhcyBiZWVuIHRvdWNoZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7YW55IHwgbnVsbH1cbiAgICogQGRlZmF1bHQge251bGx9XG4gICAqL1xuICBwdWJsaWMgdmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7dW5kZWZpbmVkfVxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7QWJzdHJhY3RDb250cm9sfVxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1Db250cm9sITogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1heGltdW0gZGlnaXRzIGFsbG93ZWQgYmVoaW5kIHRoZSBjb21tYS5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgezB9XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVjaW1hbExpbWl0ZXI6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHsoX3ZhbDogYW55KSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIGNoYW5nZWQ6IChfdmFsOiBhbnkpID0+IHZvaWQgPSAoX3ZhbDogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7KCkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBwcm90ZWN0ZWQgc3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtPzogQ3VycmVuY3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBAQXR0cmlidXRlKCdudW1iZXJQbGFjZWhvbGRlcicpIHB1YmxpYyBudW1iZXJQbGFjZWhvbGRlcjogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjaDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmN1cnJlbmN5U2VydmljZS5xdWVyeSgpLnN1YnNjcmliZSh7XG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICAgIHRoaXMuc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBuZXh0OiAoeyBkYXRhOiB7IHdlYkNvbmZpZ01zQ3VycmVuY3k6IHsgZGF0YSB9fX0pID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IGRhdGEubWFwKChkKSA9PiAoeyBsYWJlbDogYFskeyBkLmNvZGUgfV0gJHsgZC5uYW1lIH1gLCB2YWx1ZTogZC5jb2RlISwgZGF0YTogZCB9KSk7XG4gICAgICAgIHRoaXMuc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lke1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHNlbGVjdCBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5jaGFuZ2VkID0gZm47IH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2VsZWN0IGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9IFxuICBcbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0geyp9IHZhbCAtIFRoZSBuZXcgdmFsdWUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lke1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG5cbiAgICBpZiAoIXZhbCkgdGhpcy5jaGFuZ2UobnVsbCk7XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBkID0gdGhpcy5pdGVtcy5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSB2YWwpO1xuICAgICAgXG4gICAgICBpZiAoZCkge1xuICAgICAgICB0aGlzLmNoYW5nZSh7IHZhbHVlOiB2YWwsIGRhdGE6IGQuZGF0YSB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBcbiAgIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGQgLSBUaGUgbmV3IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHBhcmFtIHtBYnN0cmFjdENvbnRyb2x9IGNvbnRyb2wgLSBUaGUgYWJzdHJhY3QgY29udHJvbCByZXByZXNlbnRpbmcgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHsgICAgXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyIGFzIG51bGwgaWYgY3VycmVuY3kgY2hhbmdlZCB0byBwcmV2ZW50IG1pc21hdGNoIGJldHdlZW4gc2VsZWN0ZWQgY3VycmVuY3kgYW5kIHRoZSBudW1iZXIgY29tbWEgYWxsb3dlZCBsaW1pdC5cbiAgICogRW1pdHMgdGhlIG9uQ2hhbmdlIGV2ZW50LCB1cGRhdGVzIHRoZSBpbml0aWFsSXRlbXMsIGFuZCBoYW5kbGVzIHZhbGlkYXRpb24gYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIFNldCB0aGUgZGVjaW1hbExpbWl0ZXIgYmFzZWQgb24gc2VsZWN0ZWQgbWFnbmlmeVZhbHVlXG4gICAqIEBwYXJhbSB7YW55fSBlIC0gVGhlIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG5ldyBzZWxlY3QgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlKGU/OiBhbnkpOiB2b2lke1xuICAgIGlmICghdGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IGU/LnZhbHVlO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBlPy5kYXRhO1xuXG4gICAgICB0aGlzLmNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZEl0ZW06IGUsIG51bWJlcjogdGhpcy5udW1iZXJWYWx1ZSB9KTtcbiAgICAgIHRoaXMuZXJyb3JNc2cgPSBnZXRGb3JtRXJyb3JNZXNzYWdlKHRoaXMuZm9ybUNvbnRyb2w/LmVycm9ycywgdGhpcy5sYWJlbCk7XG4gICAgfVxuICAgIFxuICAgIGlmIChlPy5tYWduaWZ5VmFsdWUgPT09IDEpIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSAwO1xuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kZWNpbWFsTGltaXRlciA9IE1hdGguZmxvb3IoTWF0aC5sb2cxMChlPy5kYXRhLm1hZ25pZnlWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZm9ybSBudW1iZXIgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyVmFsdWUgd2l0aCBjdXJyZW50IHZhbHVlLlxuICAgKiBFbWl0IHRoZSBzZWxlY3RlZCBjdXJyZW5jeSBhbmQgdGhlIG51bWJlciB2YWx1ZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHthbnl9IC0gQ29udGFpbiBgdmFsdWVgIHRoZSB2YWx1ZSBvZiBpbnB1dGVkIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBudW1iZXJJbnB1dCh7IHZhbHVlIH06IGFueSk6IHZvaWR7XG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IHNlbGVjdGVkSXRlbTogdGhpcy5zZWxlY3RlZEl0ZW0sIG51bWJlcjogdmFsdWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZvcm0gbnVtYmVyIGtleXByZXNzLlxuICAgKiBDb250cm9sbGluZyBpbnB1dCBpbiBhIG51bWJlciBmaWVsZCwgcmVzdHJpY3RpbmcgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkLlxuICAgKiBAcGFyYW0ge2FueX0gLSBDb250YWluXG4gICAqIGNoYXJDb2RlIC0gdGhlIGNoYXJhY3RlciBjb2RlIG9mIHRoZSBrZXkgcHJlc3NlZC5cbiAgICogcHJldmVudERlZmF1bHQgLSB0aGUgZnVuY3Rpb24gdG8gcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIGV2ZW50LlxuICAgKiB0YXJnZXQudmFsdWUgLSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgbGltaXREZWNpbWFsKHsgY2hhckNvZGUsIHByZXZlbnREZWZhdWx0LCB0YXJnZXQ6IHsgdmFsdWUgfX06IGFueSk6IHZvaWR7XG4gICAgY29uc3QgcmVnID0gdGhpcy5kZWNpbWFsTGltaXRlciA+IDA/IG5ldyBSZWdFeHAoYF5cXFxcZCooXFxcXC5cXFxcZHswLCR7IHRoaXMuZGVjaW1hbExpbWl0ZXIgfX0pPyRgKSA6IC9eXFxkKyQvO1xuICAgIGlmICghcmVnLnRlc3QodmFsdWUgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKSkpIHByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0SXNMb2FkaW5nKGI6IGJvb2xlYW4pOiB2b2lke1xuICAgIHRoaXMuaXNMb2FkaW5nID0gYjtcbiAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdEZvcm0+XG4gICAgPG5nLXNlbGVjdCBcbiAgICAgICAgY2xhc3M9XCJmbGV4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLm51bWJlcl09XCJpc0lucHV0TnVtYmVyXCJcbiAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCIgXG4gICAgICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KTtcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWk9XCJpdGVtXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBpc0lucHV0TnVtYmVyPyBpLnZhbHVlIDogaS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXNJbnB1dE51bWJlcj8gaS52YWx1ZSA6IGkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFpc0lucHV0TnVtYmVyKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEZvcm1cIiAvPlxufSBcbkBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0xIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0Rm9ybVwiIC8+XG5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbcGxhY2Vob2xkZXJdPVwibnVtYmVyUGxhY2Vob2xkZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWdyb3ctMVwiIFtkaXNhYmxlZF09XCJpc051bWJlckRpc2FibGVkXCIgW3ZhbHVlXT1cIm51bWJlclZhbHVlXCIgKGtleXByZXNzKT1cImxpbWl0RGVjaW1hbCgkZXZlbnQpXCIgKGlucHV0KT1cIm51bWJlcklucHV0KCRldmVudC50YXJnZXQpXCI+XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoZXJyb3JNc2cpIHtcbiAgICA8bGFiZWwgY2xhc3M9XCJpcy1pbnZhbGlkXCI+e3sgZXJyb3JNc2cgfX08L2xhYmVsPlxufVxuXG4iXX0=
@@ -1,114 +0,0 @@
1
- import { Attribute, ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { DatePipe } from '@angular/common';
3
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { IonicModule } from '@ionic/angular';
5
- import { getFormErrorMessage } from '../../../utils';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ionic/angular";
8
- export class FormDateComponent {
9
- constructor(placeholder, ch) {
10
- this.placeholder = placeholder;
11
- this.ch = ch;
12
- this.required = false;
13
- this.disabled = false;
14
- this.presentation = 'date';
15
- this.dateFormat = 'dd LLL yyyy';
16
- this.isTouched = false;
17
- this.value = '';
18
- this.localValue = '';
19
- this.onChange = (_val) => { };
20
- this.onTouched = () => { };
21
- }
22
- ngOnInit() {
23
- if (this.presentation === 'date-time')
24
- this.dateFormat = `${this.dateFormat} HH:mm`;
25
- }
26
- registerOnChange(fn) { this.onChange = fn; }
27
- registerOnTouched(fn) { this.onTouched = fn; }
28
- writeValue(val) {
29
- this.value = val;
30
- if (!val) {
31
- this.ch.markForCheck();
32
- return;
33
- }
34
- ;
35
- let localTime = new Date(val);
36
- localTime = new Date(localTime.getTime() - (localTime.getTimezoneOffset() * 60000));
37
- this.localValue = localTime.toISOString();
38
- this.ch.markForCheck();
39
- }
40
- setDisabledState(d) {
41
- this.disabled = d;
42
- this.ch.markForCheck();
43
- }
44
- validate(control) {
45
- this.formControl = control;
46
- return null;
47
- }
48
- changeDate({ detail: { value } }) {
49
- if (!this.isTouched) {
50
- this.onTouched();
51
- this.isTouched = true;
52
- }
53
- if (!this.disabled) {
54
- this.value = this.localValue = value;
55
- this.ch.markForCheck();
56
- this.onChange(this.value);
57
- this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
58
- }
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDateComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormDateComponent, isStandalone: true, selector: "up-date", inputs: { name: "name", label: "label", required: "required", disabled: "disabled", presentation: "presentation", minDate: "minDate", maxDate: "maxDate", dateFormat: "dateFormat" }, host: { classAttribute: "d-block position-relative" }, providers: [
62
- {
63
- multi: true,
64
- provide: NG_VALUE_ACCESSOR,
65
- useExisting: FormDateComponent
66
- },
67
- {
68
- multi: true,
69
- provide: NG_VALIDATORS,
70
- useExisting: FormDateComponent
71
- }
72
- ], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime \n mode=\"md\" \n hourCycle=\"h23\" \n value=\"{{ localValue }}\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [showDefaultButtons]=\"true\" \n [presentation]=\"presentation\"\n (ionChange)=\"changeDate($event)\" \n />\n </ng-template>\n</ion-modal>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDateComponent, decorators: [{
75
- type: Component,
76
- args: [{ standalone: true, selector: 'up-date', changeDetection: ChangeDetectionStrategy.OnPush, host: {
77
- class: 'd-block position-relative'
78
- }, imports: [
79
- DatePipe,
80
- IonicModule
81
- ], providers: [
82
- {
83
- multi: true,
84
- provide: NG_VALUE_ACCESSOR,
85
- useExisting: FormDateComponent
86
- },
87
- {
88
- multi: true,
89
- provide: NG_VALIDATORS,
90
- useExisting: FormDateComponent
91
- }
92
- ], template: "<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime \n mode=\"md\" \n hourCycle=\"h23\" \n value=\"{{ localValue }}\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [showDefaultButtons]=\"true\" \n [presentation]=\"presentation\"\n (ionChange)=\"changeDate($event)\" \n />\n </ng-template>\n</ion-modal>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n", styles: ["ion-datetime{--background: white}ion-modal{--width: 290px;--height: auto}ion-icon{top:32px;right:16px;color:#616161}\n"] }]
93
- }], ctorParameters: () => [{ type: undefined, decorators: [{
94
- type: Attribute,
95
- args: ['placeholder']
96
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { name: [{
97
- type: Input,
98
- args: [{ required: true }]
99
- }], label: [{
100
- type: Input
101
- }], required: [{
102
- type: Input
103
- }], disabled: [{
104
- type: Input
105
- }], presentation: [{
106
- type: Input
107
- }], minDate: [{
108
- type: Input
109
- }], maxDate: [{
110
- type: Input
111
- }], dateFormat: [{
112
- type: Input
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9kYXRlL2Zvcm0tZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUF5QyxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUE0QnJELE1BQU0sT0FBTyxpQkFBaUI7SUFxRzVCLFlBQ21DLFdBQW1CLEVBQ2pDLEVBQXFCO1FBRFAsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFuRjFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixpQkFBWSxHQUF3QyxNQUFNLENBQUM7UUFtQjNELGVBQVUsR0FBVyxhQUFhLENBQUM7UUFPNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU8zQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBT25CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFtQnBCLGFBQVEsR0FBd0IsQ0FBQyxJQUFTLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQU1sRCxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBS3hDLENBQUM7SUFNRyxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVc7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUksSUFBSSxDQUFDLFVBQVcsUUFBUSxDQUFDO0lBQ3hGLENBQUM7SUFNTSxnQkFBZ0IsQ0FBQyxFQUFPLElBQVMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBTXRELGlCQUFpQixDQUFDLEVBQU8sSUFBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFPeEQsVUFBVSxDQUFDLEdBQVE7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUFBLENBQUM7UUFFRixJQUFJLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFNTSxnQkFBZ0IsQ0FBRSxDQUFVO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU9NLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTTSxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBTTtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7K0dBekxVLGlCQUFpQixrQkFzR2YsYUFBYTttR0F0R2YsaUJBQWlCLG1TQWJqQjtZQUNUO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLGlCQUFpQjthQUMvQjtTQUNGLDBCQzlCSCwyNkJBMEJBLDJLRFZJLFFBQVEsNENBQ1IsV0FBVzs7NEZBZUYsaUJBQWlCO2tCQTFCN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSwyQkFBMkI7cUJBQ25DLFdBQ1E7d0JBQ1AsUUFBUTt3QkFDUixXQUFXO3FCQUNaLGFBQ1U7d0JBQ1Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7eUJBQy9CO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxJQUFJOzRCQUNYLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLG1CQUFtQjt5QkFDL0I7cUJBQ0Y7OzBCQXdHRSxTQUFTOzJCQUFDLGFBQWE7eUVBL0ZRLElBQUk7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU1ULEtBQUs7c0JBQXBCLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBTVUsT0FBTztzQkFBdEIsS0FBSztnQkFNVSxPQUFPO3NCQUF0QixLQUFLO2dCQU9VLFVBQVU7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1kYXRlJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZGF0ZS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1ibG9jayBwb3NpdGlvbi1yZWxhdGl2ZSdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIERhdGVQaXBlLFxuICAgIElvbmljTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybURhdGVDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtRGF0ZUNvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIG5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0ZSBpbnB1dCBpcyByZXF1aXJlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkYXRlIHBpY2tlciBpcyBkYXRlIG9ubHkgb3IgZGF0ZSBhbmQgdGltZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ2RhdGUnXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcHJlc2VudGF0aW9uOiAnZGF0ZScgfCAnZGF0ZS10aW1lJyB8ICdtb250aC15ZWFyJyA9ICdkYXRlJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIG1pbmltdW0gZGF0ZSBhbGxvd2VkLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSBtYXhpbXVtIGRhdGUgYWxsb3dlZC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IG9mIGRhdGUuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdkZCBMTEwgeXl5eSdcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnZGQgTExMIHl5eXknO1xuXG4gIC8qKlxuICAgKiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRlIGlucHV0IGhhcyBiZWVuIHRvdWNoZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIGlzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICcnXG4gICAqL1xuICBwdWJsaWMgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGxvY2FsaXphdGlvbiBkYXRlLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgcHVibGljIGxvY2FsVmFsdWU6IHN0cmluZz0gJyc7XG5cbiAgLyoqXG4gICAqIEVycm9yIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHB1YmxpYyBlcnJvck1zZyE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm0gY29udHJvbCBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtBYnN0cmFjdENvbnRyb2x9XG4gICAqL1xuICBwcm90ZWN0ZWQgZm9ybUNvbnRyb2whOiBBYnN0cmFjdENvbnRyb2w7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7KF92YWw6IGFueSkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvbkNoYW5nZTogKF92YWw6IGFueSkgPT4gdm9pZCA9IChfdmFsOiBhbnkpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgdG91Y2ggZXZlbnRzIGluIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7KCkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjaDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayBjYWxsZWQgYSBtb21lbnQgYmVmb3JlIHRoZSBjb21wb25lbnQgaXMgY3JlYXRlZC5cbiAgICogQ2hlY2sgaWYgdGhlIHByZXNlbnRhdGlvbiBpcyAnZGF0ZS10aW1lJyB0aGVuIHRoZSBkYXRlIGZvcm1hdCBzaG91bGQgYmUgY2hhbmdlZCB0byBkZCBMTEwgeXl5eSBISDptbS5cbiAgICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lke1xuICAgIGlmICh0aGlzLnByZXNlbnRhdGlvbiA9PT0gJ2RhdGUtdGltZScpIHRoaXMuZGF0ZUZvcm1hdCA9IGAkeyB0aGlzLmRhdGVGb3JtYXQgfSBISDptbWA7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGRhdGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQHBhcmFtIHsoX3ZhbDogYW55KSA9PiB2b2lkfSBmbiAtIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZGF0ZSBpbnB1dCBpcyB0b3VjaGVkLlxuICAgKiBAcGFyYW0geygpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRvdWNoIGV2ZW50cy5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBuZXcgdmFsdWUgdG8gdGhlIGRhdGUgaW5wdXQuXG4gICAqIENhbGN1bGF0ZSBhbmQgd3JpdGVzIHRoZSBsb2NhbCB2YWx1ZSBmb3IgaW9uaWMgZGF0ZXRpbWUgcGlja2VyLlxuICAgKiBAcGFyYW0geyp9IHZhbCAtIFRoZSBuZXcgdmFsdWUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkeyBcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIGlmICghdmFsKSB7XG4gICAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH07XG5cbiAgICBsZXQgbG9jYWxUaW1lID0gbmV3IERhdGUodmFsKTtcblxuICAgIGxvY2FsVGltZSA9IG5ldyBEYXRlKGxvY2FsVGltZS5nZXRUaW1lKCkgLSAobG9jYWxUaW1lLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCkpO1xuICAgIHRoaXMubG9jYWxWYWx1ZSA9IGxvY2FsVGltZS50b0lTT1N0cmluZygpO1xuXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHBhcmFtIHtib29sZWFufSBkIC0gV2hldGhlciB0aGUgZGF0ZSBpbnB1dCBzaG91bGQgYmUgZGlzYWJsZWQgb3Igbm90LlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwYXJhbSB7QWJzdHJhY3RDb250cm9sfSBjb250cm9sIC0gVGhlIGFic3RyYWN0IGNvbnRyb2wgcmVwcmVzZW50aW5nIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAcmV0dXJucyB7KFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKX0gLSBWYWxpZGF0aW9uIGVycm9ycyBpZiBhbnksIG90aGVyd2lzZSBudWxsLlxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxse1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGRhdGUgY2hhbmdlcyBpbiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogSWYgbm90IHRvdWNoZWQsIG1hcmtzIHRoZSBpbnB1dCBhcyB0b3VjaGVkLlxuICAgKiBJZiBub3QgZGlzYWJsZWQsIHVwZGF0ZXMgdGhlIHZhbHVlLCB0cmlnZ2VycyBjaGFuZ2UgZGV0ZWN0aW9uLCBhbmQgZW1pdHMgdGhlIGNoYW5nZSBldmVudC5cbiAgICogVXBkYXRlcyB0aGUgZXJyb3IgbWVzc2FnZSBiYXNlZCBvbiBmb3JtIGNvbnRyb2wgZXJyb3JzIGFuZCBsYWJlbC5cbiAgICogQHBhcmFtIHthbnl9IHBhcmFtMCAtIEV2ZW50IGRldGFpbCBjb250YWluaW5nIHRoZSBuZXcgZGF0ZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VEYXRlKHsgZGV0YWlsOiB7IHZhbHVlIH19OiBhbnkpOiB2b2lke1xuICAgIGlmICghdGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5sb2NhbFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lcnJvck1zZyA9IGdldEZvcm1FcnJvck1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMubGFiZWwpO1xuICAgIH1cbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ljb25dXCIgLz5cbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbjwvbGFiZWw+XG5cbjxpbnB1dCByZWFkb25seSB0eXBlPVwidGV4dFwiIGlkPVwie3sgbmFtZSB9fS1kYXRlXCIgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnNvci1wb2ludGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3ZhbHVlXT1cInZhbHVlIHwgZGF0ZTpkYXRlRm9ybWF0IFwiPlxuPGlvbi1pY29uIG5hbWU9XCJjYWxlbmRhclwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIC8+XG5cbjxpb24tbW9kYWwgdHJpZ2dlcj1cInt7IG5hbWUgfX0tZGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1kYXRldGltZSBcbiAgICAgICAgICAgIG1vZGU9XCJtZFwiIFxuICAgICAgICAgICAgaG91ckN5Y2xlPVwiaDIzXCIgXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGxvY2FsVmFsdWUgfX1cIlxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICBbc2hvd0RlZmF1bHRCdXR0b25zXT1cInRydWVcIiBcbiAgICAgICAgICAgIFtwcmVzZW50YXRpb25dPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIChpb25DaGFuZ2UpPVwiY2hhbmdlRGF0ZSgkZXZlbnQpXCIgXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvaW9uLW1vZGFsPlxuXG5AaWYgKGVycm9yTXNnKSB7XG4gICAgPGxhYmVsIGNsYXNzPVwiaXMtaW52YWxpZFwiPnt7IGVycm9yTXNnIH19PC9sYWJlbD5cbn1cbiJdfQ==
@@ -1,49 +0,0 @@
1
- import { Directive, Output, EventEmitter, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class DragNDropDirective {
4
- constructor() {
5
- this.fileDropped = new EventEmitter();
6
- }
7
- onDragOver(evt) {
8
- evt.preventDefault();
9
- evt.stopPropagation();
10
- const target = evt.target;
11
- target.classList.add('dragging');
12
- }
13
- onDragLeave(evt) {
14
- evt.preventDefault();
15
- evt.stopPropagation();
16
- const target = evt.target;
17
- target.classList.remove('dragging');
18
- }
19
- onDrop(evt) {
20
- evt.preventDefault();
21
- evt.stopPropagation();
22
- const target = evt.target;
23
- target.classList.remove('dragging');
24
- const files = evt.dataTransfer.files;
25
- if (files.length > 0)
26
- this.fileDropped.emit(files);
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragNDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DragNDropDirective, isStandalone: true, selector: "[upDragNDrop]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragNDropDirective, decorators: [{
32
- type: Directive,
33
- args: [{
34
- standalone: true,
35
- selector: '[upDragNDrop]'
36
- }]
37
- }], propDecorators: { fileDropped: [{
38
- type: Output
39
- }], onDragOver: [{
40
- type: HostListener,
41
- args: ['dragover', ['$event']]
42
- }], onDragLeave: [{
43
- type: HostListener,
44
- args: ['dragleave', ['$event']]
45
- }], onDrop: [{
46
- type: HostListener,
47
- args: ['drop', ['$event']]
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1uLWRyb3AuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2ltYWdlLXBpY2tlci9kaXJlY3RpdmVzL2RyYWctbi1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RSxNQUFNLE9BQU8sa0JBQWtCO0lBSi9CO1FBTW1CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQStCeEQ7SUE1QlEsVUFBVSxDQUFDLEdBQVE7UUFDeEIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBMEIsQ0FBQztRQUM5QyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR00sV0FBVyxDQUFDLEdBQVE7UUFDekIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBMEIsQ0FBQztRQUM5QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR00sTUFBTSxDQUFDLEdBQVE7UUFDcEIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBMEIsQ0FBQztRQUM5QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBaENVLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZUFBZTtpQkFDMUI7OEJBR2tCLFdBQVc7c0JBQTNCLE1BQU07Z0JBR0EsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBRSxRQUFRLENBQUU7Z0JBVS9CLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQVVoQyxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t1cERyYWdORHJvcF0nXG59KVxuZXhwb3J0IGNsYXNzIERyYWdORHJvcERpcmVjdGl2ZSB7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlRHJvcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyAnJGV2ZW50JyBdKSBcbiAgcHVibGljIG9uRHJhZ092ZXIoZXZ0OiBhbnkpOiB2b2lke1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsgJyRldmVudCcgXSkgXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQ6IGFueSk6IHZvaWR7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnZ2luZycpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsgJyRldmVudCcgXSkgXG4gIHB1YmxpYyBvbkRyb3AoZXZ0OiBhbnkpOiB2b2lke1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICB0YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTtcblxuICAgIGNvbnN0IGZpbGVzID0gZXZ0LmRhdGFUcmFuc2Zlci5maWxlcztcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkgdGhpcy5maWxlRHJvcHBlZC5lbWl0KGZpbGVzKTtcbiAgfVxufVxuIl19
@@ -1,68 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { NgStyle } from '@angular/common';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { IonicModule } from '@ionic/angular';
5
- import { DragNDropDirective } from './directives/drag-n-drop.directive';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ionic/angular";
8
- export class FormImagePickerComponent {
9
- constructor(ch) {
10
- this.ch = ch;
11
- this.ratio = '16/9';
12
- this.required = false;
13
- this.onChange = new EventEmitter();
14
- this.onChanged = (_val) => { };
15
- this.onTouched = () => { };
16
- }
17
- registerOnChange(fn) { this.onChanged = fn; }
18
- registerOnTouched(fn) { this.onTouched = fn; }
19
- clear(ev) {
20
- this.writeValue('');
21
- ev?.stopPropagation();
22
- }
23
- writeValue(val) {
24
- this.imgSrc = val;
25
- this.ch.markForCheck();
26
- }
27
- selectPhoto(files) {
28
- if (files?.target?.files)
29
- files = files.target.files;
30
- if (files && files[0]) {
31
- this.imgSrc = URL.createObjectURL((files[0]));
32
- this.onChange.emit(files[0]);
33
- }
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormImagePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormImagePickerComponent, isStandalone: true, selector: "up-image-picker", inputs: { ratio: "ratio", label: "label", required: "required" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
37
- {
38
- multi: true,
39
- provide: NG_VALUE_ACCESSOR,
40
- useExisting: FormImagePickerComponent
41
- },
42
- ], ngImport: i0, template: "<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n @if (required) {\n <span class=\"text-danger me-2\">&ast;</span>\n }\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n @if (imgSrc) {\n <img alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n }\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n @if (!imgSrc) {\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" />\n } \n @else {\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n }\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n", styles: ["ion-icon{font-size:24px}.img-container{width:250px;border-style:dashed!important}.img-container:hover .upload-icon{display:flex}.img-container:not(:has(img)):before{content:\"Choose file or Drag here.\";top:50%;left:50%;font-size:12px;position:absolute;color:gray;text-align:center;transform:translate(-50%,-50%)}.upload-icon:not(ion-icon){background:#00000050}.upload-icon{top:0;left:0;display:none;cursor:pointer}.d-btn{right:10px;bottom:10px;width:32px;height:32px;background-color:#fee2e2}.d-btn ion-icon{color:#dc2626}.dragging{border:2px dashed #ED6B26!important}.dragging:not(:has(img)):before{content:\"Drop\";font-size:32px}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: DragNDropDirective, selector: "[upDragNDrop]", outputs: ["fileDropped"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormImagePickerComponent, decorators: [{
45
- type: Component,
46
- args: [{ standalone: true, selector: 'up-image-picker', changeDetection: ChangeDetectionStrategy.OnPush, host: {
47
- class: 'd-block'
48
- }, imports: [
49
- IonicModule,
50
- NgStyle,
51
- DragNDropDirective
52
- ], providers: [
53
- {
54
- multi: true,
55
- provide: NG_VALUE_ACCESSOR,
56
- useExisting: FormImagePickerComponent
57
- },
58
- ], template: "<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n @if (required) {\n <span class=\"text-danger me-2\">&ast;</span>\n }\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n @if (imgSrc) {\n <img alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n }\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n @if (!imgSrc) {\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" />\n } \n @else {\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n }\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n", styles: ["ion-icon{font-size:24px}.img-container{width:250px;border-style:dashed!important}.img-container:hover .upload-icon{display:flex}.img-container:not(:has(img)):before{content:\"Choose file or Drag here.\";top:50%;left:50%;font-size:12px;position:absolute;color:gray;text-align:center;transform:translate(-50%,-50%)}.upload-icon:not(ion-icon){background:#00000050}.upload-icon{top:0;left:0;display:none;cursor:pointer}.d-btn{right:10px;bottom:10px;width:32px;height:32px;background-color:#fee2e2}.d-btn ion-icon{color:#dc2626}.dragging{border:2px dashed #ED6B26!important}.dragging:not(:has(img)):before{content:\"Drop\";font-size:32px}\n"] }]
59
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { ratio: [{
60
- type: Input
61
- }], label: [{
62
- type: Input
63
- }], required: [{
64
- type: Input
65
- }], onChange: [{
66
- type: Output
67
- }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbWFnZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2ltYWdlLXBpY2tlci9mb3JtLWltYWdlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvaW1hZ2UtcGlja2VyL2Zvcm0taW1hZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUF3QnhFLE1BQU0sT0FBTyx3QkFBd0I7SUF1Q25DLFlBQ3FCLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBaEMxQixVQUFLLEdBQVcsTUFBTSxDQUFDO1FBYXZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLekIsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBVS9ELGNBQVMsR0FBd0IsQ0FBQyxJQUFTLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBSXZDLENBQUM7SUFLRSxnQkFBZ0IsQ0FBQyxFQUFPLElBQVMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELGlCQUFpQixDQUFDLEVBQU8sSUFBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFLeEQsS0FBSyxDQUFDLEVBQVU7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQU9NLFVBQVUsQ0FBQyxHQUFRO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU1NLFdBQVcsQ0FBQyxLQUFVO1FBQzNCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRXJELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7K0dBL0VVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHdNQVJ4QjtZQUNUO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0I7YUFDdEM7U0FDRiwwQkMxQkgsZzZDQTZCQSxvckJEYkksV0FBVyxvTUFDWCxPQUFPLDJFQUNQLGtCQUFrQjs7NEZBVVQsd0JBQXdCO2tCQXRCcEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04saUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFNBQVM7cUJBQ2pCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGtCQUFrQjtxQkFDbkIsYUFDVTt3QkFDVDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDBCQUEwQjt5QkFDdEM7cUJBQ0Y7c0ZBVWUsS0FBSztzQkFBcEIsS0FBSztnQkFNVSxLQUFLO3NCQUFwQixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1csUUFBUTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBEcmFnTkRyb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHJhZy1uLWRyb3AuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtaW1hZ2UtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW1hZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1pbWFnZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2QtYmxvY2snXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBOZ1N0eWxlLFxuICAgIERyYWdORHJvcERpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1JbWFnZVBpY2tlckNvbXBvbmVudFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUltYWdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIC8qKlxuICAgKiBBIHB1YmxpYyBpbnB1dCB2YXJpYWJsZSB0byBhZGp1c3QgaW1hZ2UgY29udGFpbmVyIGFzcGVjdCByYXRpbyBieSBjc3MsIHRvIGtlZXAgdGhlIGltYWdlIHdpZHRoIGFuZCBoZWlnaHQgcHJvcG9ydGlvbmFsLlxuICAgKiBUaGUgY29tbW9uIGFzcGVjdCByYXRpbyBuYW1lbHkgMS8xLCA0LzMsIDE2LzkgZXRjLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBgMTYvOWBcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByYXRpbzogc3RyaW5nID0gJzE2LzknO1xuICAvKipcbiAgICogQSBwdWJsaWMgaW5wdXQgdmFyaWFibGUgdG8gc2V0IHRoZSBmb3JtIGxhYmVsLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgcHVibGljIGlucHV0IHZhcmlhYmxlIHRvIHNob3cgb3IgaGlkZSBhc3RyICgqKSBzaWduLlxuICAgKiBJdCB3aWxsIHNob3cgaWYgdGhlIHZhbHVlIGlzIHRydWUgbWVhbiB0aGUgZmllbGQgaXMgY2FuIG5vdCBiZSBlbXB0eSBhbmQgaGlkZSBpZiB0aGUgdmFsdWUgaXMgZmFsc2UuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAvKipcbiAgICogQSBwdWJsaWMgb3V0cHV0IHZhcmlhYmxlIHRvIGVtaXQgdGhlIEZpbGUgdG8gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8RmlsZT59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG4gICAvKipcbiAgICogQSBwdWJsaWMgdmFyaWFibGUgY29udGFpbiB0ZW1wb3JhcnkgaW1hZ2UgdXJsIHNob3duIG9uIHRoZSBwcmV2aWV3LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHB1YmxpYyBpbWdTcmMhOiBzdHJpbmc7XG4gICAvKipcbiAgICogQm90aCB0d28gbWV0aG9kcyBhcmUgbWFuZGF0b3J5IGFzIGltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlZDogKF92YWw6IGFueSkgPT4gdm9pZCA9IChfdmFsOiBhbnkpID0+IHt9O1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBCb3RoIHR3byBtZXRob2RzIGFyZSBtYW5kYXRvcnkgYXMgaW1wbGVtZW50YXRpb24gb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5vbkNoYW5nZWQgPSBmbjsgfVxuICBcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9XG5cbiAgLyoqXG4gICAqIEEgcHJvY2VkdXJlIGNhbGxlZCB0byBjbGVhciB0aGUgaW1hZ2UgcHJldmlldy5cbiAgICovXG4gIHB1YmxpYyBjbGVhcihldj86IEV2ZW50KTogdm9pZHtcbiAgICB0aGlzLndyaXRlVmFsdWUoJycpO1xuICAgIGV2Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHByb2NlZHVyZSBjYWxsZWQgd2hlbiB0aGUgaW1hZ2Ugd2FzIHNldCBwcmV2aW91c2x5IGluIHRoZSBwYXJlbnQgZm9ybUNvbnRyb2xOYW1lIGNvbXBvbmVudCBhbmQgdGhlIHVzZXIgd2FudCB0byBjaGFuZ2Ugd2l0aCBhbm90aGVyIG9uZS5cbiAgICogSXQgaXMgbWFuZGF0b3J5IGFzIGFuIGltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIC0gY29udGFpbiBpbWFnZSB1cmwuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWR7XG4gICAgdGhpcy5pbWdTcmMgPSB2YWw7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHByb2NlZHVyZSBjYWxsZWQgd2hlbiB1c2VyIHBpY2sgb3IgZHJhZyBhbmQgZHJvcCBpbWFnZS5cbiAgICogQHBhcmFtIHthbnl9IGZpbGVzIC0gZmlsZXM/LnRhcmdldD8uZmlsZXMgdG8gY2hlY2sgaWYgaW1hZ2UgY29tZSBmcm9tIGRyYWcgYW5kIGRyb3AgYW5kIGZpbGVzWzBdIGZyb20gbm9ybWFsIHBpY2sgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0UGhvdG8oZmlsZXM6IGFueSk6IHZvaWR7XG4gICAgaWYgKGZpbGVzPy50YXJnZXQ/LmZpbGVzKSBmaWxlcyA9IGZpbGVzLnRhcmdldC5maWxlcztcblxuICAgIGlmIChmaWxlcyAmJiBmaWxlc1swXSkge1xuICAgICAgdGhpcy5pbWdTcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKChmaWxlc1swXSkpO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KGZpbGVzWzBdKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIG1iLTRcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJtYi0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZm9ybS1sYWJlbFwiPlxuICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIG1lLTJcIj4mYXN0Ozwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ljb25dXCIvPlxuICAgICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJpbWctY29udGFpbmVyIHBvc2l0aW9uLXJlbGF0aXZlIGJvcmRlciByb3VuZGVkXCIgW25nU3R5bGVdPVwieyAnYXNwZWN0LXJhdGlvJzogcmF0aW8gfVwiIHVwRHJhZ05Ecm9wIChmaWxlRHJvcHBlZCk9XCJzZWxlY3RQaG90bygkZXZlbnQpXCI+IFxuICAgICAgICBAaWYgKGltZ1NyYykge1xuICAgICAgICAgICAgPGltZyBhbHQ9XCJ7eyBsYWJlbCB9fVwiIGNsYXNzPVwicm91bmRlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBzcmM9XCJ7eyBpbWdTcmMgfX1cIiAvPlxuICAgICAgICB9XG4gICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbiByb3VuZGVkIHBvc2l0aW9uLWFic29sdXRlIHRleHQtd2hpdGUgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcHgtMyBweS0yIHctMTAwXCIgW25nU3R5bGVdPVwieyAnYXNwZWN0LXJhdGlvJzogcmF0aW8gfVwiIChjbGljayk9XCJmaWxlLmNsaWNrKCk7XCI+XG4gICAgICAgICAgICBAaWYgKCFpbWdTcmMpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ1cGxvYWQtaWNvblwiIG5hbWU9XCJjbG91ZC11cGxvYWRcIiB0aXRsZT1cIkRyb3AgZmlsZSBvciBjbGljayB0byBicm93c2VcIiAvPlxuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZGlzcGxheS1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcm91bmRlZCBwLTEgZC1idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0cmFzaFwiIGNsYXNzPVwidGV4dC1yZWQtNjAwXCIgdGl0bGU9XCJDbGVhciBJbWFnZVwiIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGhpZGRlbiBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWcsIGltYWdlL2pwZ1wiIG11bHRpcGxlPVwiZmFsc2VcIiAoY2hhbmdlKT1cInNlbGVjdFBob3RvKCRldmVudClcIiAjZmlsZSAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,12 +0,0 @@
1
- export { FormDateComponent } from './date/form-date.component';
2
- export { FormInputComponent } from './input/form-input.component';
3
- export { FormNumberComponent } from './number/form-number.component';
4
- export { FormPasswordComponent } from './password/form-password.component';
5
- export { FormSearchableSelectComponent } from './searchable-select/form-searchable-select.component';
6
- export { FormSelectComponent } from './select/form-select.component';
7
- export { FormTextareaComponent } from './textarea/form-textarea.component';
8
- export { FormImagePickerComponent } from './image-picker/form-image-picker.component';
9
- export { FormCurrencyInputComponent } from './currency-input/form-currency-input.component';
10
- export { FormCountryInputComponent } from './country-input/form-country-input.component';
11
- export { FormRateGroupCodeInputComponent } from './rate-group-code-input/form-rate-group-code-input.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOERBQThELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGb3JtRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50JztcbmV4cG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRm9ybU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyL2Zvcm0tbnVtYmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGb3JtUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkL2Zvcm0tcGFzc3dvcmQuY29tcG9uZW50JztcbmV4cG9ydCB7IEZvcm1TZWFyY2hhYmxlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2hhYmxlLXNlbGVjdC9mb3JtLXNlYXJjaGFibGUtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGb3JtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QvZm9ybS1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCB7IEZvcm1UZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEvZm9ybS10ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0IHsgRm9ybUltYWdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS1waWNrZXIvZm9ybS1pbWFnZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jdXJyZW5jeS1pbnB1dC9mb3JtLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGb3JtQ291bnRyeUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb3VudHJ5LWlucHV0L2Zvcm0tY291bnRyeS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRm9ybVJhdGVHcm91cENvZGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vcmF0ZS1ncm91cC1jb2RlLWlucHV0L2Zvcm0tcmF0ZS1ncm91cC1jb2RlLWlucHV0LmNvbXBvbmVudCc7XG4iXX0=