@unipin/angular-applet 18.9.7 → 21.0.1

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 (275) hide show
  1. package/README.md +49 -10
  2. package/common/assets/sprites/flagGlobal.png +0 -0
  3. package/common/assets/sprites/flagSprite42.webp +0 -0
  4. package/common/assets/styles/freakflags.scss +263 -0
  5. package/common/assets/styles/theme.css +69 -0
  6. package/fesm2022/unipin-angular-applet-accordion.mjs +242 -0
  7. package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -0
  8. package/fesm2022/unipin-angular-applet-alert-dialog.mjs +267 -0
  9. package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/unipin-angular-applet-alert.mjs +94 -0
  11. package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -0
  12. package/fesm2022/unipin-angular-applet-auth.mjs +707 -0
  13. package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -0
  14. package/fesm2022/unipin-angular-applet-avatar.mjs +41 -0
  15. package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -0
  16. package/fesm2022/unipin-angular-applet-badge.mjs +50 -0
  17. package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -0
  18. package/fesm2022/unipin-angular-applet-buttons.mjs +263 -0
  19. package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -0
  20. package/fesm2022/unipin-angular-applet-calendar.mjs +492 -0
  21. package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -0
  22. package/fesm2022/unipin-angular-applet-collapsible.mjs +97 -0
  23. package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -0
  24. package/fesm2022/unipin-angular-applet-common.mjs +342 -0
  25. package/fesm2022/unipin-angular-applet-common.mjs.map +1 -0
  26. package/fesm2022/unipin-angular-applet-containers.mjs +472 -0
  27. package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -0
  28. package/fesm2022/unipin-angular-applet-dialog.mjs +535 -0
  29. package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -0
  30. package/fesm2022/unipin-angular-applet-forms.mjs +1699 -0
  31. package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -0
  32. package/fesm2022/unipin-angular-applet-froala.mjs +298 -0
  33. package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -0
  34. package/fesm2022/unipin-angular-applet-grids.mjs +105 -0
  35. package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -0
  36. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +86 -0
  37. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -0
  38. package/fesm2022/unipin-angular-applet-json-viewer.mjs +71 -0
  39. package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -0
  40. package/fesm2022/unipin-angular-applet-loading-dialog.mjs +252 -0
  41. package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -0
  42. package/fesm2022/unipin-angular-applet-markdown.mjs +703 -0
  43. package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -0
  44. package/fesm2022/unipin-angular-applet-micro-frontend.mjs +75 -0
  45. package/fesm2022/unipin-angular-applet-micro-frontend.mjs.map +1 -0
  46. package/fesm2022/unipin-angular-applet-popover.mjs +333 -0
  47. package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -0
  48. package/fesm2022/unipin-angular-applet-progress-bar.mjs +38 -0
  49. package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -0
  50. package/fesm2022/unipin-angular-applet-skeleton.mjs +32 -0
  51. package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -0
  52. package/fesm2022/unipin-angular-applet-spinner.mjs +144 -0
  53. package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -0
  54. package/fesm2022/unipin-angular-applet-swipeable.mjs +270 -0
  55. package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -0
  56. package/fesm2022/unipin-angular-applet-tabs.mjs +142 -0
  57. package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -0
  58. package/fesm2022/unipin-angular-applet-tooltip.mjs +118 -0
  59. package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -0
  60. package/fesm2022/unipin-angular-applet.mjs +5 -4617
  61. package/fesm2022/unipin-angular-applet.mjs.map +1 -1
  62. package/package.json +132 -29
  63. package/types/unipin-angular-applet-accordion.d.ts +60 -0
  64. package/types/unipin-angular-applet-alert-dialog.d.ts +35 -0
  65. package/types/unipin-angular-applet-alert.d.ts +34 -0
  66. package/types/unipin-angular-applet-auth.d.ts +225 -0
  67. package/types/unipin-angular-applet-avatar.d.ts +16 -0
  68. package/types/unipin-angular-applet-badge.d.ts +20 -0
  69. package/types/unipin-angular-applet-buttons.d.ts +37 -0
  70. package/types/unipin-angular-applet-calendar.d.ts +44 -0
  71. package/types/unipin-angular-applet-collapsible.d.ts +35 -0
  72. package/types/unipin-angular-applet-common.d.ts +94 -0
  73. package/types/unipin-angular-applet-containers.d.ts +179 -0
  74. package/types/unipin-angular-applet-dialog.d.ts +180 -0
  75. package/types/unipin-angular-applet-forms.d.ts +412 -0
  76. package/types/unipin-angular-applet-froala.d.ts +85 -0
  77. package/types/unipin-angular-applet-grids.d.ts +22 -0
  78. package/types/unipin-angular-applet-infinite-scroll.d.ts +51 -0
  79. package/types/unipin-angular-applet-json-viewer.d.ts +30 -0
  80. package/types/unipin-angular-applet-loading-dialog.d.ts +19 -0
  81. package/types/unipin-angular-applet-markdown.d.ts +119 -0
  82. package/types/unipin-angular-applet-micro-frontend.d.ts +11 -0
  83. package/types/unipin-angular-applet-popover.d.ts +58 -0
  84. package/types/unipin-angular-applet-progress-bar.d.ts +14 -0
  85. package/types/unipin-angular-applet-skeleton.d.ts +11 -0
  86. package/types/unipin-angular-applet-spinner.d.ts +12 -0
  87. package/types/unipin-angular-applet-swipeable.d.ts +66 -0
  88. package/types/unipin-angular-applet-tabs.d.ts +40 -0
  89. package/types/unipin-angular-applet-tooltip.d.ts +32 -0
  90. package/types/unipin-angular-applet.d.ts +3 -0
  91. package/esm2022/graphql/generated.mjs +0 -938
  92. package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +0 -78
  93. package/esm2022/lib/components/approval/form/approval-form.component.mjs +0 -128
  94. package/esm2022/lib/components/approval/index.mjs +0 -5
  95. package/esm2022/lib/components/approval/list/approval-list.component.mjs +0 -114
  96. package/esm2022/lib/components/approval/list/provide-approval-entities.util.mjs +0 -9
  97. package/esm2022/lib/components/approval/services/approval.service.mjs +0 -46
  98. package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +0 -123
  99. package/esm2022/lib/components/audit/index.mjs +0 -3
  100. package/esm2022/lib/components/audit/list/audit-list.component.mjs +0 -81
  101. package/esm2022/lib/components/audit/service/audit.service.mjs +0 -49
  102. package/esm2022/lib/components/audit/types/audit-detail-form.type.mjs +0 -2
  103. package/esm2022/lib/components/buttons/group/btn-group.component.mjs +0 -43
  104. package/esm2022/lib/components/buttons/group/interfaces/btn-group-config.interface.mjs +0 -2
  105. package/esm2022/lib/components/buttons/index.mjs +0 -3
  106. package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +0 -48
  107. package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +0 -55
  108. package/esm2022/lib/components/containers/applet-container/provide-applet-config.util.mjs +0 -9
  109. package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +0 -23
  110. package/esm2022/lib/components/containers/column-container/column-container.component.mjs +0 -79
  111. package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +0 -57
  112. package/esm2022/lib/components/containers/index.mjs +0 -7
  113. package/esm2022/lib/components/containers/list-container/index.mjs +0 -3
  114. package/esm2022/lib/components/containers/list-container/interfaces/list-container-config.interface.mjs +0 -2
  115. package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +0 -58
  116. package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +0 -57
  117. package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +0 -40
  118. package/esm2022/lib/components/filter/filter.component.mjs +0 -222
  119. package/esm2022/lib/components/filter/index.mjs +0 -2
  120. package/esm2022/lib/components/filter/interfaces/filter-config.interface.mjs +0 -2
  121. package/esm2022/lib/components/filter/interfaces/filter-field.interface.mjs +0 -2
  122. package/esm2022/lib/components/filter/interfaces/filter-search-event.interface.mjs +0 -2
  123. package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +0 -122
  124. package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +0 -157
  125. package/esm2022/lib/components/forms/date/form-date.component.mjs +0 -117
  126. package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +0 -49
  127. package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +0 -68
  128. package/esm2022/lib/components/forms/index.mjs +0 -12
  129. package/esm2022/lib/components/forms/input/form-input.component.mjs +0 -98
  130. package/esm2022/lib/components/forms/number/form-number.component.mjs +0 -97
  131. package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +0 -33
  132. package/esm2022/lib/components/forms/password/form-password.component.mjs +0 -100
  133. package/esm2022/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.mjs +0 -135
  134. package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +0 -138
  135. package/esm2022/lib/components/forms/select/form-select.component.mjs +0 -119
  136. package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +0 -88
  137. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +0 -111
  138. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +0 -109
  139. package/esm2022/lib/components/grids/index.mjs +0 -4
  140. package/esm2022/lib/components/grids/interfaces/grid-config.interface.mjs +0 -2
  141. package/esm2022/lib/components/grids/services/grid.service.mjs +0 -25
  142. package/esm2022/lib/components/index.mjs +0 -9
  143. package/esm2022/lib/components/infinite-scroll/directive/infinite-scroll.directive.mjs +0 -43
  144. package/esm2022/lib/components/infinite-scroll/index.mjs +0 -3
  145. package/esm2022/lib/components/infinite-scroll/infinite-scroll.component.mjs +0 -36
  146. package/esm2022/lib/components/tabs/index.mjs +0 -3
  147. package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +0 -37
  148. package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +0 -47
  149. package/esm2022/lib/guards/auth/auth.guard.mjs +0 -10
  150. package/esm2022/lib/guards/index.mjs +0 -2
  151. package/esm2022/lib/interceptors/header/header.interceptor.mjs +0 -29
  152. package/esm2022/lib/interceptors/index.mjs +0 -3
  153. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +0 -83
  154. package/esm2022/lib/interfaces/index.mjs +0 -2
  155. package/esm2022/lib/interfaces/user/user.interface.mjs +0 -2
  156. package/esm2022/lib/modules/index.mjs +0 -3
  157. package/esm2022/lib/modules/micro-frontend/index.mjs +0 -2
  158. package/esm2022/lib/modules/micro-frontend/utils/mf-bootstrap.util.mjs +0 -55
  159. package/esm2022/lib/modules/micro-frontend/utils/mf-global-state.util.mjs +0 -14
  160. package/esm2022/lib/modules/permission/directive/permission.directive.mjs +0 -41
  161. package/esm2022/lib/modules/permission/guards/permission.guard.mjs +0 -26
  162. package/esm2022/lib/modules/permission/index.mjs +0 -7
  163. package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +0 -15
  164. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +0 -65
  165. package/esm2022/lib/modules/permission/pages/loading/provide-loading-config.util.mjs +0 -9
  166. package/esm2022/lib/modules/permission/services/permission.service.mjs +0 -50
  167. package/esm2022/lib/resolvers/auth/auth.resolver.mjs +0 -87
  168. package/esm2022/lib/resolvers/index.mjs +0 -2
  169. package/esm2022/lib/services/auth/auth.service.mjs +0 -171
  170. package/esm2022/lib/services/country/country.service.mjs +0 -43
  171. package/esm2022/lib/services/currency/currency.service.mjs +0 -40
  172. package/esm2022/lib/services/index.mjs +0 -6
  173. package/esm2022/lib/services/profile/profile.service.mjs +0 -82
  174. package/esm2022/lib/services/rate-group-code/rate-group-code.service.mjs +0 -31
  175. package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +0 -16
  176. package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +0 -21
  177. package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +0 -18
  178. package/esm2022/lib/utils/index.mjs +0 -5
  179. package/esm2022/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.mjs +0 -9
  180. package/esm2022/public-api.mjs +0 -10
  181. package/esm2022/unipin-angular-applet.mjs +0 -2
  182. package/graphql/generated.d.ts +0 -16225
  183. package/index.d.ts +0 -2
  184. package/lib/components/approval/detail/approval-detail.component.d.ts +0 -26
  185. package/lib/components/approval/form/approval-form.component.d.ts +0 -33
  186. package/lib/components/approval/index.d.ts +0 -4
  187. package/lib/components/approval/list/approval-list.component.d.ts +0 -33
  188. package/lib/components/approval/list/provide-approval-entities.util.d.ts +0 -3
  189. package/lib/components/approval/services/approval.service.d.ts +0 -18
  190. package/lib/components/audit/detail/audit-detail.component.d.ts +0 -33
  191. package/lib/components/audit/index.d.ts +0 -2
  192. package/lib/components/audit/list/audit-list.component.d.ts +0 -31
  193. package/lib/components/audit/service/audit.service.d.ts +0 -15
  194. package/lib/components/audit/types/audit-detail-form.type.d.ts +0 -12
  195. package/lib/components/buttons/group/btn-group.component.d.ts +0 -18
  196. package/lib/components/buttons/group/interfaces/btn-group-config.interface.d.ts +0 -11
  197. package/lib/components/buttons/index.d.ts +0 -3
  198. package/lib/components/buttons/loading/btn-loading.component.d.ts +0 -19
  199. package/lib/components/containers/applet-container/applet-container.component.d.ts +0 -22
  200. package/lib/components/containers/applet-container/provide-applet-config.util.d.ts +0 -15
  201. package/lib/components/containers/colum-header-container/column-header-container.component.d.ts +0 -7
  202. package/lib/components/containers/column-container/column-container.component.d.ts +0 -26
  203. package/lib/components/containers/column-container/directives/lazy-route.directive.d.ts +0 -17
  204. package/lib/components/containers/index.d.ts +0 -6
  205. package/lib/components/containers/list-container/index.d.ts +0 -3
  206. package/lib/components/containers/list-container/interfaces/list-container-config.interface.d.ts +0 -9
  207. package/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.d.ts +0 -23
  208. package/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.d.ts +0 -23
  209. package/lib/components/containers/modal-container/modal-container.component.d.ts +0 -16
  210. package/lib/components/filter/filter.component.d.ts +0 -44
  211. package/lib/components/filter/index.d.ts +0 -4
  212. package/lib/components/filter/interfaces/filter-config.interface.d.ts +0 -5
  213. package/lib/components/filter/interfaces/filter-field.interface.d.ts +0 -24
  214. package/lib/components/filter/interfaces/filter-search-event.interface.d.ts +0 -4
  215. package/lib/components/forms/country-input/form-country-input.component.d.ts +0 -41
  216. package/lib/components/forms/currency-input/form-currency-input.component.d.ts +0 -52
  217. package/lib/components/forms/date/form-date.component.d.ts +0 -33
  218. package/lib/components/forms/image-picker/directives/drag-n-drop.directive.d.ts +0 -10
  219. package/lib/components/forms/image-picker/form-image-picker.component.d.ts +0 -21
  220. package/lib/components/forms/index.d.ts +0 -11
  221. package/lib/components/forms/input/form-input.component.d.ts +0 -31
  222. package/lib/components/forms/number/form-number.component.d.ts +0 -27
  223. package/lib/components/forms/number/pipes/locale-number.pipe.d.ts +0 -8
  224. package/lib/components/forms/password/form-password.component.d.ts +0 -27
  225. package/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.d.ts +0 -41
  226. package/lib/components/forms/searchable-select/form-searchable-select.component.d.ts +0 -42
  227. package/lib/components/forms/select/form-select.component.d.ts +0 -34
  228. package/lib/components/forms/textarea/form-textarea.component.d.ts +0 -26
  229. package/lib/components/grids/grid-pagination/grid-pagination.component.d.ts +0 -33
  230. package/lib/components/grids/grid-snapshot/grid-snapshot.component.d.ts +0 -36
  231. package/lib/components/grids/index.d.ts +0 -4
  232. package/lib/components/grids/interfaces/grid-config.interface.d.ts +0 -16
  233. package/lib/components/grids/services/grid.service.d.ts +0 -12
  234. package/lib/components/index.d.ts +0 -8
  235. package/lib/components/infinite-scroll/directive/infinite-scroll.directive.d.ts +0 -15
  236. package/lib/components/infinite-scroll/index.d.ts +0 -2
  237. package/lib/components/infinite-scroll/infinite-scroll.component.d.ts +0 -12
  238. package/lib/components/tabs/index.d.ts +0 -6
  239. package/lib/components/tabs/tab-content/tab-content.component.d.ts +0 -14
  240. package/lib/components/tabs/tab-group/tab-group.component.d.ts +0 -18
  241. package/lib/guards/auth/auth.guard.d.ts +0 -1
  242. package/lib/guards/index.d.ts +0 -1
  243. package/lib/interceptors/header/header.interceptor.d.ts +0 -9
  244. package/lib/interceptors/index.d.ts +0 -2
  245. package/lib/interceptors/refresh-token/refresh-token.interceptor.d.ts +0 -14
  246. package/lib/interfaces/index.d.ts +0 -1
  247. package/lib/interfaces/user/user.interface.d.ts +0 -27
  248. package/lib/modules/index.d.ts +0 -2
  249. package/lib/modules/micro-frontend/index.d.ts +0 -1
  250. package/lib/modules/micro-frontend/utils/mf-bootstrap.util.d.ts +0 -9
  251. package/lib/modules/micro-frontend/utils/mf-global-state.util.d.ts +0 -4
  252. package/lib/modules/permission/directive/permission.directive.d.ts +0 -16
  253. package/lib/modules/permission/guards/permission.guard.d.ts +0 -2
  254. package/lib/modules/permission/index.d.ts +0 -6
  255. package/lib/modules/permission/pages/401/unauthorized.page.d.ts +0 -5
  256. package/lib/modules/permission/pages/loading/loading.page.d.ts +0 -18
  257. package/lib/modules/permission/pages/loading/provide-loading-config.util.d.ts +0 -10
  258. package/lib/modules/permission/services/permission.service.d.ts +0 -21
  259. package/lib/resolvers/auth/auth.resolver.d.ts +0 -14
  260. package/lib/resolvers/index.d.ts +0 -1
  261. package/lib/services/auth/auth.service.d.ts +0 -39
  262. package/lib/services/country/country.service.d.ts +0 -16
  263. package/lib/services/currency/currency.service.d.ts +0 -16
  264. package/lib/services/index.d.ts +0 -5
  265. package/lib/services/profile/profile.service.d.ts +0 -12
  266. package/lib/services/rate-group-code/rate-group-code.service.d.ts +0 -14
  267. package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +0 -4
  268. package/lib/utils/form-error-message/form-error-message.util.d.ts +0 -2
  269. package/lib/utils/format-capitalize/format-capitalize.util.d.ts +0 -1
  270. package/lib/utils/index.d.ts +0 -4
  271. package/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.d.ts +0 -2
  272. package/public-api.d.ts +0 -11
  273. package/src/assets/scss/forms.scss +0 -65
  274. package/src/assets/scss/grid.scss +0 -7505
  275. package/src/assets/scss/select.scss +0 -328
@@ -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,117 +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.clearButton = false;
16
- this.dateFormat = 'dd LLL yyyy';
17
- this.isTouched = false;
18
- this.value = '';
19
- this.localValue = '';
20
- this.onChange = (_val) => { };
21
- this.onTouched = () => { };
22
- }
23
- ngOnInit() {
24
- if (this.presentation === 'date-time')
25
- this.dateFormat = `${this.dateFormat} HH:mm`;
26
- }
27
- registerOnChange(fn) { this.onChange = fn; }
28
- registerOnTouched(fn) { this.onTouched = fn; }
29
- writeValue(val) {
30
- this.value = val;
31
- if (!val) {
32
- this.ch.markForCheck();
33
- return;
34
- }
35
- ;
36
- let localTime = new Date(val);
37
- localTime = new Date(localTime.getTime() - (localTime.getTimezoneOffset() * 60000));
38
- this.localValue = localTime.toISOString();
39
- this.ch.markForCheck();
40
- }
41
- setDisabledState(d) {
42
- this.disabled = d;
43
- this.ch.markForCheck();
44
- }
45
- validate(control) {
46
- this.formControl = control;
47
- return null;
48
- }
49
- changeDate({ detail: { value } }) {
50
- if (!this.isTouched) {
51
- this.onTouched();
52
- this.isTouched = true;
53
- }
54
- if (!this.disabled) {
55
- this.value = this.localValue = value;
56
- this.ch.markForCheck();
57
- this.onChange(this.value);
58
- this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
59
- }
60
- }
61
- 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 }); }
62
- 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", clearButton: "clearButton", dateFormat: "dateFormat" }, host: { classAttribute: "d-block position-relative" }, providers: [
63
- {
64
- multi: true,
65
- provide: NG_VALUE_ACCESSOR,
66
- useExisting: FormDateComponent
67
- },
68
- {
69
- multi: true,
70
- provide: NG_VALIDATORS,
71
- useExisting: FormDateComponent
72
- }
73
- ], 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 [showClearButton]=\"clearButton\"\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 }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormDateComponent, decorators: [{
76
- type: Component,
77
- args: [{ standalone: true, selector: 'up-date', changeDetection: ChangeDetectionStrategy.OnPush, host: {
78
- class: 'd-block position-relative'
79
- }, imports: [
80
- DatePipe,
81
- IonicModule
82
- ], providers: [
83
- {
84
- multi: true,
85
- provide: NG_VALUE_ACCESSOR,
86
- useExisting: FormDateComponent
87
- },
88
- {
89
- multi: true,
90
- provide: NG_VALIDATORS,
91
- useExisting: FormDateComponent
92
- }
93
- ], 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 [showClearButton]=\"clearButton\"\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"] }]
94
- }], ctorParameters: () => [{ type: undefined, decorators: [{
95
- type: Attribute,
96
- args: ['placeholder']
97
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { name: [{
98
- type: Input,
99
- args: [{ required: true }]
100
- }], label: [{
101
- type: Input
102
- }], required: [{
103
- type: Input
104
- }], disabled: [{
105
- type: Input
106
- }], presentation: [{
107
- type: Input
108
- }], minDate: [{
109
- type: Input
110
- }], maxDate: [{
111
- type: Input
112
- }], clearButton: [{
113
- type: Input
114
- }], dateFormat: [{
115
- type: Input
116
- }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9kYXRlL2Zvcm0tZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUF5QyxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUE0QnJELE1BQU0sT0FBTyxpQkFBaUI7SUEyRzVCLFlBQ21DLFdBQW1CLEVBQ2pDLEVBQXFCO1FBRFAsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF6RjFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFPMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU8xQixpQkFBWSxHQUF3QyxNQUFNLENBQUM7UUFrQjNELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBTzdCLGVBQVUsR0FBVyxhQUFhLENBQUM7UUFPNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU8zQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBT25CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFtQnBCLGFBQVEsR0FBd0Is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O3FCQUNaLGFBQ1U7d0JBQ1Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7eUJBQy9CO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxJQUFJOzRCQUNYLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLG1CQUFtQjt5QkFDL0I7cUJBQ0Y7OzBCQThHRSxTQUFTOzJCQUFDLGFBQWE7eUVBckdRLElBQUk7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU1ULEtBQUs7c0JBQXBCLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBTVUsT0FBTztzQkFBdEIsS0FBSztnQkFNVSxPQUFPO3NCQUF0QixLQUFLO2dCQU1VLFdBQVc7c0JBQTFCLEtBQUs7Z0JBT1UsVUFBVTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IGdldEZvcm1FcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWRhdGUnLFxuICBzdHlsZVVybDogJy4vZm9ybS1kYXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWJsb2NrIHBvc2l0aW9uLXJlbGF0aXZlJ1xuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgRGF0ZVBpcGUsXG4gICAgSW9uaWNNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtRGF0ZUNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1EYXRlQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EYXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGUgaW5wdXQuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkYXRlIGlucHV0IGlzIHJlcXVpcmVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0ZSBpbnB1dCBpcyBkaXNhYmxlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRhdGUgcGlja2VyIGlzIGRhdGUgb25seSBvciBkYXRlIGFuZCB0aW1lLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnZGF0ZSdcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZW50YXRpb246ICdkYXRlJyB8ICdkYXRlLXRpbWUnIHwgJ21vbnRoLXllYXInID0gJ2RhdGUnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBpcyB0aGUgbWluaW11bSBkYXRlIGFsbG93ZWQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWluRGF0ZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIG1heGltdW0gZGF0ZSBhbGxvd2VkLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIG1heERhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSBpZiB0aGUgZGF0ZSBwaWNrZXIgc2hvdWxkIHNob3cgYSBjbGVhciBidXR0b25cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGZvcm1hdCBvZiBkYXRlLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnZGQgTExMIHl5eXknXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nID0gJ2RkIExMTCB5eXl5JztcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgZGF0ZSBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBpc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgcHVibGljIHZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBsb2NhbGl6YXRpb24gZGF0ZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHB1YmxpYyBsb2NhbFZhbHVlOiBzdHJpbmc9ICcnO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBwdWJsaWMgZXJyb3JNc2chOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAdHlwZSB7QWJzdHJhY3RDb250cm9sfVxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1Db250cm9sITogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgdmFsdWUgY2hhbmdlcyBpbiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUgeyhfdmFsOiBhbnkpID0+IHZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgb25DaGFuZ2U6IChfdmFsOiBhbnkpID0+IHZvaWQgPSAoX3ZhbDogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBpbiB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHR5cGUgeygpID0+IHZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgY2FsbGVkIGEgbW9tZW50IGJlZm9yZSB0aGUgY29tcG9uZW50IGlzIGNyZWF0ZWQuXG4gICAqIENoZWNrIGlmIHRoZSBwcmVzZW50YXRpb24gaXMgJ2RhdGUtdGltZScgdGhlbiB0aGUgZGF0ZSBmb3JtYXQgc2hvdWxkIGJlIGNoYW5nZWQgdG8gZGQgTExMIHl5eXkgSEg6bW0uXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICBpZiAodGhpcy5wcmVzZW50YXRpb24gPT09ICdkYXRlLXRpbWUnKSB0aGlzLmRhdGVGb3JtYXQgPSBgJHsgdGhpcy5kYXRlRm9ybWF0IH0gSEg6bW1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBkYXRlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB7KF92YWw6IGFueSkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGRhdGUgaW5wdXQgaXMgdG91Y2hlZC5cbiAgICogQHBhcmFtIHsoKSA9PiB2b2lkfSBmbiAtIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0b3VjaCBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cblxuICAvKipcbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBkYXRlIGlucHV0LlxuICAgKiBDYWxjdWxhdGUgYW5kIHdyaXRlcyB0aGUgbG9jYWwgdmFsdWUgZm9yIGlvbmljIGRhdGV0aW1lIHBpY2tlci5cbiAgICogQHBhcmFtIHsqfSB2YWwgLSBUaGUgbmV3IHZhbHVlIHRvIGJlIHNldC5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbDogYW55KTogdm9pZHsgXG4gICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgICBpZiAoIXZhbCkge1xuICAgICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9O1xuXG4gICAgbGV0IGxvY2FsVGltZSA9IG5ldyBEYXRlKHZhbCk7XG5cbiAgICBsb2NhbFRpbWUgPSBuZXcgRGF0ZShsb2NhbFRpbWUuZ2V0VGltZSgpIC0gKGxvY2FsVGltZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgICB0aGlzLmxvY2FsVmFsdWUgPSBsb2NhbFRpbWUudG9JU09TdHJpbmcoKTtcblxuICAgIHRoaXMuY2gubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZCAtIFdoZXRoZXIgdGhlIGRhdGUgaW5wdXQgc2hvdWxkIGJlIGRpc2FibGVkIG9yIG5vdC5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhkOiBib29sZWFuKTogdm9pZHsgXG4gICAgdGhpcy5kaXNhYmxlZCA9IGQ7IFxuICAgIHRoaXMuY2gubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBkYXRlIGlucHV0LlxuICAgKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBhYnN0cmFjdCBjb250cm9sIHJlcHJlc2VudGluZyB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBkYXRlIGNoYW5nZXMgaW4gdGhlIGRhdGUgaW5wdXQuXG4gICAqIElmIG5vdCB0b3VjaGVkLCBtYXJrcyB0aGUgaW5wdXQgYXMgdG91Y2hlZC5cbiAgICogSWYgbm90IGRpc2FibGVkLCB1cGRhdGVzIHRoZSB2YWx1ZSwgdHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiwgYW5kIGVtaXRzIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAqIFVwZGF0ZXMgdGhlIGVycm9yIG1lc3NhZ2UgYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIEBwYXJhbSB7YW55fSBwYXJhbTAgLSBFdmVudCBkZXRhaWwgY29udGFpbmluZyB0aGUgbmV3IGRhdGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlRGF0ZSh7IGRldGFpbDogeyB2YWx1ZSB9fTogYW55KTogdm9pZHtcbiAgICBpZiAoIXRoaXMuaXNUb3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5pc1RvdWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubG9jYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuZXJyb3JNc2cgPSBnZXRGb3JtRXJyb3JNZXNzYWdlKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLCB0aGlzLmxhYmVsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpY29uXVwiIC8+XG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuXG48aW5wdXQgcmVhZG9ubHkgdHlwZT1cInRleHRcIiBpZD1cInt7IG5hbWUgfX0tZGF0ZVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbCBjdXJzb3ItcG9pbnRlclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFt2YWx1ZV09XCJ2YWx1ZSB8IGRhdGU6ZGF0ZUZvcm1hdCBcIj5cbjxpb24taWNvbiBuYW1lPVwiY2FsZW5kYXJcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGZzLTQgY3Vyc29yLXBvaW50ZXJcIiAvPlxuXG48aW9uLW1vZGFsIHRyaWdnZXI9XCJ7eyBuYW1lIH19LWRhdGVcIj5cbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxpb24tZGF0ZXRpbWUgXG4gICAgICAgICAgICBtb2RlPVwibWRcIiBcbiAgICAgICAgICAgIGhvdXJDeWNsZT1cImgyM1wiIFxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBsb2NhbFZhbHVlIH19XCJcbiAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW3Nob3dEZWZhdWx0QnV0dG9uc109XCJ0cnVlXCIgXG4gICAgICAgICAgICBbcHJlc2VudGF0aW9uXT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cImNsZWFyQnV0dG9uXCJcbiAgICAgICAgICAgIChpb25DaGFuZ2UpPVwiY2hhbmdlRGF0ZSgkZXZlbnQpXCIgXG4gICAgICAgIC8+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=