@sapphire-ion/framework 0.30.0

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 (299) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
  3. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
  4. package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
  5. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
  6. package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
  7. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
  8. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
  9. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
  10. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
  11. package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
  12. package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
  13. package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
  14. package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
  15. package/esm2022/lib/classes/credentials.mjs +2 -0
  16. package/esm2022/lib/classes/environment.mjs +32 -0
  17. package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
  18. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
  19. package/esm2022/lib/classes/inputs/table-field.mjs +63 -0
  20. package/esm2022/lib/classes/page-option.mjs +2 -0
  21. package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
  22. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
  23. package/esm2022/lib/classes/routes/route-data.mjs +9 -0
  24. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
  25. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
  27. package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
  28. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
  29. package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
  30. package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
  31. package/esm2022/lib/components/default/default-list/default-list.component.mjs +94 -0
  32. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
  33. package/esm2022/lib/components/default/default-list/list.mjs +110 -0
  34. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
  35. package/esm2022/lib/components/default/default-table/default-table.component.mjs +206 -0
  36. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +182 -0
  37. package/esm2022/lib/components/default/default-view/abstract-view.mjs +18 -0
  38. package/esm2022/lib/components/default/default-view/default-view.component.mjs +51 -0
  39. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +72 -0
  40. package/esm2022/lib/components/default/default-view/view.mjs +170 -0
  41. package/esm2022/lib/components/default/default.module.mjs +87 -0
  42. package/esm2022/lib/components/default-page/default.page.mjs +73 -0
  43. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
  44. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
  45. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
  46. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
  47. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +49 -0
  48. package/esm2022/lib/components/drawer/drawer.component.mjs +117 -0
  49. package/esm2022/lib/components/drawer/menu.mjs +15 -0
  50. package/esm2022/lib/components/filter/filter.component.mjs +124 -0
  51. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
  52. package/esm2022/lib/components/image/image.component.mjs +91 -0
  53. package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
  54. package/esm2022/lib/components/inputs/custom-input.mjs +77 -0
  55. package/esm2022/lib/components/inputs/custom-signal-input.mjs +74 -0
  56. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +43 -0
  57. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
  58. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +487 -0
  59. package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
  60. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +93 -0
  61. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
  62. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +119 -0
  63. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
  64. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +269 -0
  65. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +45 -0
  66. package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
  67. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +91 -0
  68. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +128 -0
  69. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +11 -0
  70. package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +16 -0
  71. package/esm2022/lib/components/inputs/input-provider-factory.mjs +15 -0
  72. package/esm2022/lib/components/inputs/input-select/ISelect.mjs +11 -0
  73. package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +42 -0
  74. package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +46 -0
  75. package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +16 -0
  76. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +322 -0
  77. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +164 -0
  78. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +50 -0
  79. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +18 -0
  80. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +47 -0
  81. package/esm2022/lib/components/inputs/input-type.mjs +18 -0
  82. package/esm2022/lib/components/inputs/input-validators.mjs +90 -0
  83. package/esm2022/lib/components/inputs/inputs.module.mjs +101 -0
  84. package/esm2022/lib/components/loading/loading.component.mjs +34 -0
  85. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
  86. package/esm2022/lib/components/login/login.component.mjs +93 -0
  87. package/esm2022/lib/components/main-content/main-content.component.mjs +62 -0
  88. package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
  89. package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
  90. package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
  91. package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
  92. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
  93. package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
  94. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
  95. package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
  96. package/esm2022/lib/core.module.mjs +29 -0
  97. package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
  98. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  99. package/esm2022/lib/guards/error.interceptor.mjs +106 -0
  100. package/esm2022/lib/guards/token.interceptor.mjs +25 -0
  101. package/esm2022/lib/index.mjs +172 -0
  102. package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
  103. package/esm2022/lib/services/auth.service.mjs +149 -0
  104. package/esm2022/lib/services/environment.service.mjs +26 -0
  105. package/esm2022/lib/services/generics.service.mjs +84 -0
  106. package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
  107. package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
  108. package/esm2022/lib/services/usuario.service.mjs +49 -0
  109. package/esm2022/lib/services/utils.service.mjs +149 -0
  110. package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
  111. package/esm2022/lib/services/web/http.ativo.service.mjs +55 -0
  112. package/esm2022/lib/services/web/http.service.mjs +175 -0
  113. package/esm2022/lib/services/web/storage.service.mjs +115 -0
  114. package/esm2022/public-api.mjs +5 -0
  115. package/esm2022/sapphire-ion-framework.mjs +5 -0
  116. package/fesm2022/sapphire-ion-framework.mjs +6080 -0
  117. package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
  118. package/index.d.ts +5 -0
  119. package/lib/classes/comparison/comparison-operator.d.ts +9 -0
  120. package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
  121. package/lib/classes/comparison/comparison.d.ts +25 -0
  122. package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
  123. package/lib/classes/comparison/properties/date-property.d.ts +11 -0
  124. package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
  125. package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
  126. package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
  127. package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
  128. package/lib/classes/comparison/properties/int-property.d.ts +11 -0
  129. package/lib/classes/comparison/properties/long-property.d.ts +11 -0
  130. package/lib/classes/comparison/properties/string-property.d.ts +7 -0
  131. package/lib/classes/comparison/properties/time-property.d.ts +11 -0
  132. package/lib/classes/credentials.d.ts +5 -0
  133. package/lib/classes/environment.d.ts +13 -0
  134. package/lib/classes/filters/view-filtros.d.ts +10 -0
  135. package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
  136. package/lib/classes/inputs/table-field.d.ts +19 -0
  137. package/lib/classes/page-option.d.ts +7 -0
  138. package/lib/classes/routes/default-routing-factory.d.ts +8 -0
  139. package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
  140. package/lib/classes/routes/route-data.d.ts +5 -0
  141. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
  142. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
  143. package/lib/components/carousel/carousel.component.d.ts +32 -0
  144. package/lib/components/carousel/carousel.module.d.ts +12 -0
  145. package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
  146. package/lib/components/content-block/content-block.component.d.ts +15 -0
  147. package/lib/components/default/default-list/abstract-list.d.ts +21 -0
  148. package/lib/components/default/default-list/default-list.component.d.ts +42 -0
  149. package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
  150. package/lib/components/default/default-list/list.d.ts +37 -0
  151. package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
  152. package/lib/components/default/default-table/default-table.component.d.ts +71 -0
  153. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +20 -0
  154. package/lib/components/default/default-view/abstract-view.d.ts +16 -0
  155. package/lib/components/default/default-view/default-view.component.d.ts +26 -0
  156. package/lib/components/default/default-view/header-view/header-view.component.d.ts +25 -0
  157. package/lib/components/default/default-view/view.d.ts +55 -0
  158. package/lib/components/default/default.module.d.ts +28 -0
  159. package/lib/components/default-page/default.page.d.ts +35 -0
  160. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
  161. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
  162. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
  163. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
  164. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
  165. package/lib/components/drawer/drawer.component.d.ts +23 -0
  166. package/lib/components/drawer/menu.d.ts +9 -0
  167. package/lib/components/filter/filter.component.d.ts +29 -0
  168. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
  169. package/lib/components/image/image.component.d.ts +23 -0
  170. package/lib/components/info-popover/info-popover.component.d.ts +15 -0
  171. package/lib/components/inputs/custom-input.d.ts +36 -0
  172. package/lib/components/inputs/custom-signal-input.d.ts +38 -0
  173. package/lib/components/inputs/input-bool/input-bool.component.d.ts +19 -0
  174. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
  175. package/lib/components/inputs/input-color/input-color.component.d.ts +80 -0
  176. package/lib/components/inputs/input-configuration.d.ts +8 -0
  177. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +24 -0
  178. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
  179. package/lib/components/inputs/input-date/input-date.component.d.ts +30 -0
  180. package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
  181. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +41 -0
  182. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +25 -0
  183. package/lib/components/inputs/input-default-configurations.d.ts +13 -0
  184. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +36 -0
  185. package/lib/components/inputs/input-file/input-file.component.d.ts +39 -0
  186. package/lib/components/inputs/input-file/input-file.configuration.d.ts +11 -0
  187. package/lib/components/inputs/input-loading/input-loading.component.d.ts +7 -0
  188. package/lib/components/inputs/input-provider-factory.d.ts +4 -0
  189. package/lib/components/inputs/input-select/ISelect.d.ts +21 -0
  190. package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +18 -0
  191. package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +24 -0
  192. package/lib/components/inputs/input-select/input-select-template.directive.d.ts +8 -0
  193. package/lib/components/inputs/input-select/input-select.component.d.ts +66 -0
  194. package/lib/components/inputs/input-select/input.select.configuration.d.ts +87 -0
  195. package/lib/components/inputs/input-string/input-string.component.d.ts +19 -0
  196. package/lib/components/inputs/input-string/input-string.configuration.d.ts +14 -0
  197. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +18 -0
  198. package/lib/components/inputs/input-type.d.ts +16 -0
  199. package/lib/components/inputs/input-validators.d.ts +19 -0
  200. package/lib/components/inputs/inputs.module.d.ts +28 -0
  201. package/lib/components/loading/loading.component.d.ts +18 -0
  202. package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
  203. package/lib/components/login/login.component.d.ts +28 -0
  204. package/lib/components/main-content/main-content.component.d.ts +17 -0
  205. package/lib/components/stepper/step/step.component.d.ts +15 -0
  206. package/lib/components/stepper/stepper.component.d.ts +17 -0
  207. package/lib/components/stepper/stepper.module.d.ts +10 -0
  208. package/lib/components/tabs/tab/tab.component.d.ts +19 -0
  209. package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
  210. package/lib/components/tabs/tabs.module.d.ts +12 -0
  211. package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
  212. package/lib/components/tooltip/tooltip.component.d.ts +7 -0
  213. package/lib/core.module.d.ts +11 -0
  214. package/lib/directives/ng-var.directive.d.ts +12 -0
  215. package/lib/guards/auth.guard.d.ts +11 -0
  216. package/lib/guards/error.interceptor.d.ts +32 -0
  217. package/lib/guards/token.interceptor.d.ts +11 -0
  218. package/lib/index.d.ts +108 -0
  219. package/lib/pipes/secure.pipe.d.ts +15 -0
  220. package/lib/services/auth.service.d.ts +47 -0
  221. package/lib/services/environment.service.d.ts +10 -0
  222. package/lib/services/generics.service.d.ts +22 -0
  223. package/lib/services/route/route.cache.service.d.ts +7 -0
  224. package/lib/services/route/route.provider.service.d.ts +13 -0
  225. package/lib/services/usuario.service.d.ts +21 -0
  226. package/lib/services/utils.service.d.ts +36 -0
  227. package/lib/services/web/api-url-provider.service.d.ts +13 -0
  228. package/lib/services/web/http.ativo.service.d.ts +31 -0
  229. package/lib/services/web/http.service.d.ts +51 -0
  230. package/lib/services/web/storage.service.d.ts +25 -0
  231. package/package.json +41 -0
  232. package/public-api.d.ts +1 -0
  233. package/themes/compiled-styles.scss +2291 -0
  234. package/themes/components/_inputs_new/input-string/input-string.component.scss +0 -0
  235. package/themes/components/_inputs_new/inputs.scss +15 -0
  236. package/themes/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  237. package/themes/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  238. package/themes/components/carousel/carousel.component.scss +9 -0
  239. package/themes/components/content-block/content-block.component.scss +0 -0
  240. package/themes/components/default/default-list/default-list.component.scss +0 -0
  241. package/themes/components/default/default-list/header-list/header-list.component.scss +0 -0
  242. package/themes/components/default/default-pagination/default-pagination.component.scss +22 -0
  243. package/themes/components/default/default-table/default-table.component.scss +33 -0
  244. package/themes/components/default/default-table/th-filter/th-filter.component.scss +24 -0
  245. package/themes/components/default/default-view/default-view.component.scss +5 -0
  246. package/themes/components/default/default-view/header-view/header-view.component.scss +7 -0
  247. package/themes/components/default-page/default.page.scss +4 -0
  248. package/themes/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +9 -0
  249. package/themes/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  250. package/themes/components/drawer/drawer-group/drawer-group.component.scss +22 -0
  251. package/themes/components/drawer/drawer.component.scss +46 -0
  252. package/themes/components/filter/filter.component.scss +0 -0
  253. package/themes/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +19 -0
  254. package/themes/components/image/image.component.scss +0 -0
  255. package/themes/components/info-popover/info-popover.component.scss +3 -0
  256. package/themes/components/inputs/input-bool/input-bool.component.scss +14 -0
  257. package/themes/components/inputs/input-color/input-color.component.scss +48 -0
  258. package/themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
  259. package/themes/components/inputs/input-date/input-date.component.scss +41 -0
  260. package/themes/components/inputs/input-decimal/input-decimal.component.scss +44 -0
  261. package/themes/components/inputs/input-file/download-button/download-button.component.scss +3 -0
  262. package/themes/components/inputs/input-file/input-file.component.scss +3 -0
  263. package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
  264. package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
  265. package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
  266. package/themes/components/inputs/input-select/input-select.component.scss +28 -0
  267. package/themes/components/inputs/input-string/input-string.component.scss +0 -0
  268. package/themes/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  269. package/themes/components/inputs/inputs.scss +67 -0
  270. package/themes/components/loading/loading.component.scss +0 -0
  271. package/themes/components/login/login-admin/login-admin.component.scss +3 -0
  272. package/themes/components/login/login.component.scss +40 -0
  273. package/themes/components/main-content/main-content.component.scss +9 -0
  274. package/themes/components/stepper/step/step.component.scss +48 -0
  275. package/themes/components/stepper/stepper.component.scss +0 -0
  276. package/themes/components/tabs/tab/tab.component.scss +0 -0
  277. package/themes/components/tabs/tabs/tabs.component.scss +23 -0
  278. package/themes/components/text-tooltip/text-tooltip.component.scss +0 -0
  279. package/themes/components/tooltip/tooltip.component.scss +23 -0
  280. package/themes/styles/components.scss +52 -0
  281. package/themes/styles/core.styles.scss +409 -0
  282. package/themes/styles/ionic/ion-action-sheet.scss +8 -0
  283. package/themes/styles/ionic/ion-alert.scss +9 -0
  284. package/themes/styles/ionic/ion-button.scss +3 -0
  285. package/themes/styles/ionic/ion-card.scss +3 -0
  286. package/themes/styles/ionic/ion-content.scss +3 -0
  287. package/themes/styles/ionic/ion-datetime.scss +6 -0
  288. package/themes/styles/ionic/ion-item.scss +10 -0
  289. package/themes/styles/ionic/ion-list.scss +4 -0
  290. package/themes/styles/ionic/ion-modal.scss +8 -0
  291. package/themes/styles/ionic/ion-popover.scss +31 -0
  292. package/themes/styles/ionic/ion-progress-bar.scss +3 -0
  293. package/themes/styles/ionic/ion-searchbar.scss +4 -0
  294. package/themes/styles/ionic/ion-toast.scss +14 -0
  295. package/themes/styles/ionic.scss +13 -0
  296. package/themes/styles/login-default.scss +87 -0
  297. package/themes/styles/mixins.scss +467 -0
  298. package/themes/styles/styles.scss +1 -0
  299. package/themes/styles/translucid.scss +21 -0
@@ -0,0 +1,124 @@
1
+ import { Component, effect, EventEmitter, Input, model, Output } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import moment from 'moment';
6
+ import { InputSelectConfiguration } from '../inputs/input-select/input.select.configuration';
7
+ import { ComparisonOperator } from '../../classes/comparison/comparison-operator';
8
+ import { InputsModule } from '../inputs/inputs.module';
9
+ import { InputType } from '../inputs/input-type';
10
+ import { Utils } from '../../services/utils.service';
11
+ import { InputCurrencyConfiguration, InputDecimalConfiguration, InputNumberConfiguration } from '../inputs/input-decimal/input-decimal.configuration';
12
+ import { InputStringConfiguration } from '../inputs/input-string/input-string.configuration';
13
+ import { InputDateConfiguration } from '../inputs/input-date/input-date.configuration';
14
+ import { InputFileConfiguration } from '../inputs/input-file/input-file.configuration';
15
+ import { InputBoolConfiguration } from '../inputs/input-bool/input-bool.configuration';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "../inputs/input-date/input-date.component";
18
+ import * as i2 from "../inputs/input-decimal/input-decimal.component";
19
+ import * as i3 from "../inputs/input-select/input-select.component";
20
+ import * as i4 from "../inputs/input-string/input-string.component";
21
+ import * as i5 from "@angular/forms";
22
+ /** Componente padrão de filtro */
23
+ export class FilterComponent {
24
+ constructor() {
25
+ /** Filtro que sera utilizado na pesquisa (usando two way data binding) */
26
+ this.filter = model();
27
+ this.guid = Utils.GenerateGUID();
28
+ /** Configuração input do filtro */
29
+ this._configuration = null;
30
+ this.configuration = model(null);
31
+ this.isFilterActive = false;
32
+ this.model = null;
33
+ /** Evento emitido quando o valor do filtro muda */
34
+ this.changeEmitter = new EventEmitter();
35
+ effect(() => {
36
+ if ([InputType.Date, InputType.DateTime].includes(this.type)) {
37
+ this.model = moment(this.filter().value).format("YYYY-MM-DDTHH:mm:ss");
38
+ this.filter().value = this.model;
39
+ }
40
+ this.SetConfiguration();
41
+ });
42
+ }
43
+ get index() { return this.filter().propertyName; }
44
+ SetConfiguration() {
45
+ if (!this.configuration()) {
46
+ if ([InputType.Date, InputType.DateTime, InputType.Time].includes(this.type)) {
47
+ this._configuration = new InputDateConfiguration(true);
48
+ }
49
+ else if (this.type == InputType.File) {
50
+ this._configuration = new InputFileConfiguration();
51
+ }
52
+ else if (this.type == InputType.Number) {
53
+ this._configuration = new InputNumberConfiguration();
54
+ }
55
+ else if (this.type == InputType.Decimal) {
56
+ this._configuration = new InputDecimalConfiguration();
57
+ }
58
+ else if (this.type == InputType.Currency) {
59
+ this._configuration = new InputCurrencyConfiguration();
60
+ }
61
+ else if (this.type == InputType.String) {
62
+ this._configuration = new InputStringConfiguration();
63
+ }
64
+ else if (this.type == InputType.Select) {
65
+ this._configuration = new InputSelectConfiguration();
66
+ }
67
+ else if (this.type == InputType.TextArea) {
68
+ this._configuration = new InputStringConfiguration();
69
+ }
70
+ else if (this.type == InputType.Bool) {
71
+ this._configuration = new InputBoolConfiguration();
72
+ }
73
+ }
74
+ if (this.configuration() && this.configuration() instanceof InputSelectConfiguration) {
75
+ this._configuration = new InputSelectConfiguration(this.configuration().bindValue, this.configuration().bindLabel, true, true, this.configuration().loadFrom, true);
76
+ }
77
+ if (this.configuration() instanceof InputDateConfiguration) {
78
+ this._configuration = new InputDateConfiguration(true);
79
+ }
80
+ if (this.type == InputType.Bool) {
81
+ if (this.index == "ativo") {
82
+ this._configuration = new InputSelectConfiguration('value', 'label', true, true, [
83
+ { label: 'Somente Ativos', value: true },
84
+ { label: 'Somente Não Ativos', value: false },
85
+ ]);
86
+ this.model = true;
87
+ }
88
+ else {
89
+ this._configuration = new InputSelectConfiguration('value', 'label', true, false, [
90
+ { label: 'Sim', value: true },
91
+ { label: 'Não', value: false },
92
+ ]);
93
+ }
94
+ }
95
+ }
96
+ Change() {
97
+ if (this.model) {
98
+ if (this.type == InputType.Date && (this.filter().operator == ComparisonOperator.LessThan ||
99
+ this.filter().operator == ComparisonOperator.LessThanOrEqual)) {
100
+ this.model = this.FormatDateModel(moment(this.model).endOf("day").toISOString());
101
+ }
102
+ }
103
+ this.filter().value = this.model;
104
+ this.filter.set(this.filter());
105
+ this.changeEmitter.emit();
106
+ }
107
+ FormatDateModel(model) {
108
+ return moment(model).format("YYYY-MM-DDTHH:mm:ss");
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FilterComponent, isStandalone: true, selector: "filter", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "filterChange", configuration: "configurationChange", changeEmitter: "change" }, ngImport: i0, template: "@if(_configuration){\r\n @switch (type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" [label]=\"label\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-number>\r\n }\r\n @case ('Decimal') {\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-decimal>\r\n }\r\n @case ('Currency') {\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-currency>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" placeholder=\"\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date>\r\n }\r\n @case ('DateTime') {\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date-time>\r\n }\r\n }\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i1.InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: i2.InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: i3.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: i4.InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ standalone: true, imports: [CommonModule, IonicModule, InputsModule, ReactiveFormsModule, FormsModule], selector: 'filter', template: "@if(_configuration){\r\n @switch (type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" [label]=\"label\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-number>\r\n }\r\n @case ('Decimal') {\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-decimal>\r\n }\r\n @case ('Currency') {\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-currency>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" placeholder=\"\" [configuration]=\"_configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date>\r\n }\r\n @case ('DateTime') {\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date-time>\r\n }\r\n }\r\n}" }]
116
+ }], ctorParameters: () => [], propDecorators: { label: [{
117
+ type: Input
118
+ }], type: [{
119
+ type: Input
120
+ }], changeEmitter: [{
121
+ type: Output,
122
+ args: ['change']
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RKLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFB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QzVCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUMzQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQWpHVSxlQUFlO21HQUFmLGVBQWUsNHFCQzlCNUIsMmtEQThCQyx5REROVyxZQUFZLDhCQUFFLFdBQVcsOEJBQUUsWUFBWSxpbkJBQUUsbUJBQW1CLHNJQUFFLFdBQVc7OzRGQU14RSxlQUFlO2tCQVIzQixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxZQUMxRSxRQUFRO3dEQVFULEtBQUs7c0JBQWIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBc0VZLGFBQWE7c0JBQTlCLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBtb2RlbCwgTW9kZWxTaWduYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2lucHV0cy9pbnB1dC1zZWxlY3QvaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24tdmFsdWUtdHlwZSc7XHJcbmltcG9ydCB7IENvbXBhcmlzb25PcGVyYXRvciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uLW9wZXJhdG9yJztcclxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0cy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24nO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dEN1cnJlbmN5Q29uZmlndXJhdGlvbiwgSW5wdXREZWNpbWFsQ29uZmlndXJhdGlvbiwgSW5wdXROdW1iZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRTdHJpbmdDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LXN0cmluZy9pbnB1dC1zdHJpbmcuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dEZpbGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRCb29sQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2lucHV0cy9pbnB1dC1ib29sL2lucHV0LWJvb2wuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2lucHV0cy9pbnB1dC1jb25maWd1cmF0aW9uJztcclxuXHJcbi8qKiBDb21wb25lbnRlIHBhZHLDo28gZGUgZmlsdHJvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIElucHV0c01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIHNlbGVjdG9yOiAnZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQge1xyXG5cclxuICAvKiogTGFiZWwgZG8gaW5wdXQgKi9cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIC8qKiBGaWx0cm8gcXVlIHNlcmEgdXRpbGl6YWRvIG5hIHBlc3F1aXNhICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgZmlsdGVyOiBNb2RlbFNpZ25hbDxDb21wYXJpc29uPiA9IG1vZGVsPENvbXBhcmlzb24+KCk7XHJcblxyXG4gIC8qKiBUaXBvIGRlIGlucHV0IGRvIGZpbHRybyAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZTtcclxuICBcclxuICBndWlkOiBzdHJpbmcgPSBVdGlscy5HZW5lcmF0ZUdVSUQoKTtcclxuICBcclxuICAvKiogQ29uZmlndXJhw6fDo28gaW5wdXQgZG8gZmlsdHJvICovXHJcbiAgX2NvbmZpZ3VyYXRpb246IElucHV0Q29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGNvbmZpZ3VyYXRpb246IE1vZGVsU2lnbmFsPElucHV0Q29uZmlndXJhdGlvbiB8IG51bGw+ID0gbW9kZWw8SW5wdXRDb25maWd1cmF0aW9uIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyBcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmKFtJbnB1dFR5cGUuRGF0ZSwgSW5wdXRUeXBlLkRhdGVUaW1lXS5pbmNsdWRlcyh0aGlzLnR5cGUpKXsgXHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG1vbWVudCh0aGlzLmZpbHRlcigpLnZhbHVlKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyKCkudmFsdWUgPSB0aGlzLm1vZGVsO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuU2V0Q29uZmlndXJhdGlvbigpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuZmlsdGVyKCkucHJvcGVydHlOYW1lOyB9XHJcblxyXG4gIFNldENvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICBpZighdGhpcy5jb25maWd1cmF0aW9uKCkpe1xyXG4gICAgICBpZihbSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5EYXRlVGltZSwgSW5wdXRUeXBlLlRpbWVdLmluY2x1ZGVzKHRoaXMudHlwZSkpeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXREYXRlQ29uZmlndXJhdGlvbih0cnVlKSB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5GaWxlICAgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRGaWxlQ29uZmlndXJhdGlvbigpICAgICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5OdW1iZXIgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXROdW1iZXJDb25maWd1cmF0aW9uKCkgICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5EZWNpbWFsICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXREZWNpbWFsQ29uZmlndXJhdGlvbigpICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5DdXJyZW5jeSl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRDdXJyZW5jeUNvbmZpZ3VyYXRpb24oKSB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5TdHJpbmcgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTdHJpbmdDb25maWd1cmF0aW9uKCkgICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5TZWxlY3QgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKCkgICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5UZXh0QXJlYSl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTdHJpbmdDb25maWd1cmF0aW9uKCk7ICB9IGVsc2UgXHJcbiAgICAgIGlmKHRoaXMudHlwZSA9PSBJbnB1dFR5cGUuQm9vbCAgICApeyB0aGlzLl9jb25maWd1cmF0aW9uID0gbmV3IElucHV0Qm9vbENvbmZpZ3VyYXRpb24oKTsgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuY29uZmlndXJhdGlvbigpICYmIHRoaXMuY29uZmlndXJhdGlvbigpIGluc3RhbmNlb2YgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKXtcclxuICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24oXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uKCkuYmluZFZhbHVlLFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbigpLmJpbmRMYWJlbCxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uKCkubG9hZEZyb20sXHJcbiAgICAgICAgdHJ1ZSxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24oKSBpbnN0YW5jZW9mIElucHV0RGF0ZUNvbmZpZ3VyYXRpb24pe1xyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gbmV3IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24odHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5Cb29sKXtcclxuICAgICAgaWYodGhpcy5pbmRleCA9PSBcImF0aXZvXCIpe1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKCd2YWx1ZScsICdsYWJlbCcsIHRydWUsIHRydWUsIFtcclxuICAgICAgICAgIHsgbGFiZWw6ICdTb21lbnRlIEF0aXZvcycgICAgLCB2YWx1ZTogdHJ1ZSAgfSxcclxuICAgICAgICAgIHsgbGFiZWw6ICdTb21lbnRlIE7Do28gQXRpdm9zJywgdmFsdWU6IGZhbHNlIH0sXHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gbmV3IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbigndmFsdWUnLCAnbGFiZWwnLCB0cnVlLCBmYWxzZSwgW1xyXG4gICAgICAgICAgeyBsYWJlbDogJ1NpbScsIHZhbHVlOiB0cnVlICB9LFxyXG4gICAgICAgICAgeyBsYWJlbDogJ07Do28nLCB2YWx1ZTogZmFsc2UgfSxcclxuICAgICAgICBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kZWw6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gbyB2YWxvciBkbyBmaWx0cm8gbXVkYSAqL1xyXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQ2hhbmdlKCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLm1vZGVsKXtcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5EYXRlICYmIChcclxuICAgICAgICAgIHRoaXMuZmlsdGVyKCkub3BlcmF0b3IgPT0gQ29tcGFyaXNvbk9wZXJhdG9yLkxlc3NUaGFuIHx8IFxyXG4gICAgICAgICAgdGhpcy5maWx0ZXIoKS5vcGVyYXRvciA9PSBDb21wYXJpc29uT3BlcmF0b3IuTGVzc1RoYW5PckVxdWFsKVxyXG4gICAgICAgIClcclxuICAgICAgeyBcclxuICAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5Gb3JtYXREYXRlTW9kZWwobW9tZW50KHRoaXMubW9kZWwpLmVuZE9mKFwiZGF5XCIpLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbHRlcigpLnZhbHVlID0gdGhpcy5tb2RlbDtcclxuICAgIHRoaXMuZmlsdGVyLnNldCh0aGlzLmZpbHRlcigpKTtcclxuICAgIHRoaXMuY2hhbmdlRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBGb3JtYXREYXRlTW9kZWwobW9kZWw6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIHJldHVybiBtb21lbnQobW9kZWwpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIik7XHJcbiAgfVxyXG59XHJcbiIsIkBpZihfY29uZmlndXJhdGlvbil7XHJcbiAgQHN3aXRjaCAodHlwZSkge1xyXG4gICAgQGNhc2UgKCdTdHJpbmcnKSB7XHJcbiAgICAgIDxpbnB1dC1zdHJpbmcgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtsYWJlbF09XCJsYWJlbFwiIChibHVyKT1cIkNoYW5nZSgpXCI+PC9pbnB1dC1zdHJpbmc+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ051bWJlcicpIHtcclxuICAgICAgPGlucHV0LW51bWJlciAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtsYWJlbF09XCJsYWJlbFwiIFtjb25maWd1cmF0aW9uXT1cIl9jb25maWd1cmF0aW9uXCI+PC9pbnB1dC1udW1iZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RlY2ltYWwnKSB7XHJcbiAgICAgIDxpbnB1dC1kZWNpbWFsIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRlY2ltYWw+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0N1cnJlbmN5Jykge1xyXG4gICAgICA8aW5wdXQtY3VycmVuY3kgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBbbGFiZWxdPVwibGFiZWxcIiBbY29uZmlndXJhdGlvbl09XCJfY29uZmlndXJhdGlvblwiPjwvaW5wdXQtY3VycmVuY3k+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ1NlbGVjdCcpIHtcclxuICAgICAgPGlucHV0LXNlbGVjdCAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIGNsYXNzPVwidGgtc2VsZWN0XCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LXNlbGVjdD5cclxuICAgIH1cclxuICAgIEBjYXNlICgnVGV4dEFyZWEnKSB7XHJcbiAgICAgIDxpbnB1dC1zdHJpbmcgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBjbGFzcz1cInRoLXNlbGVjdFwiIFtsYWJlbF09XCJsYWJlbFwiPjwvaW5wdXQtc3RyaW5nPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdCb29sJykge1xyXG4gICAgICA8aW5wdXQtc2VsZWN0IChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgY2xhc3M9XCJ0aC1zZWxlY3RcIiBbbGFiZWxdPVwibGFiZWxcIiBwbGFjZWhvbGRlcj1cIlwiIFtjb25maWd1cmF0aW9uXT1cIl9jb25maWd1cmF0aW9uXCI+PC9pbnB1dC1zZWxlY3Q+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RhdGUnKSB7XHJcbiAgICAgIDxpbnB1dC1kYXRlIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRhdGU+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RhdGVUaW1lJykge1xyXG4gICAgICA8aW5wdXQtZGF0ZS10aW1lIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRhdGUtdGltZT5cclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,17 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { RouterLink } from '@angular/router';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ionic/angular";
7
+ export class Forbidden403Component {
8
+ constructor() { }
9
+ ngOnInit() { }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Forbidden403Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: Forbidden403Component, isStandalone: true, selector: "forbidden-403", ngImport: i0, template: "<div class=\"bg-white size-full\">\r\n <div class=\"relative flex flex-col items-center justify-center min-h-screen overflow-hidden\">\r\n <div class=\"absolute inset-0 w-full h-full bg-gradient-to-br from-red-500 to-red-900 animate-gradient-fade\"></div>\r\n \r\n <ion-card class=\"m-0 max-w-md\">\r\n <ion-card-content class=\"size-full bg-light/10 p-8 flex flex-col items-center justify-center text-center space-y-6\">\r\n <div class=\"p-3 rounded-full relative translucid-border\">\r\n <div class=\"size-12 flex items-center justify-center\">\r\n <ion-icon class=\"text-5xl text-white/70\" name=\"shield-outline\"></ion-icon>\r\n </div>\r\n \r\n \r\n <div class=\"absolute -inset-1 rounded-full bg-gradient-to-r from-rose-400 to-pink-500 opacity-25 blur-sm\"></div>\r\n </div>\r\n \r\n <ion-text class=\"text-4xl font-bold tracking-tight text-white/70\">\r\n Acesso Negado\r\n </ion-text>\r\n \r\n <ion-text color=\"light\" class=\"text-white/70\">\r\n Voc\u00EA n\u00E3o tem permiss\u00E3o para acessar este recurso. Por favor, entre em contato com o administrador se acreditar que isso \u00E9 um erro.\r\n </ion-text>\r\n \r\n <div class=\"flex flex-col sm:flex-row gap-4 mt-4\">\r\n <ion-button [routerLink]=\"['/']\" color=\"danger\" class=\"text-red-600 px-4 py-2 rounded-md font-medium\">\r\n <ion-icon name=\"chevron-back\" slot=\"start\"></ion-icon>\r\n Retornar a navega\u00E7\u00E3o\r\n </ion-button>\r\n </div>\r\n \r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</div>\r\n ", styles: ["@keyframes gradientFade{0%{background-position:0% 50%;opacity:1}50%{background-position:100% 50%;opacity:.7}to{background-position:0% 50%;opacity:1}}.animate-gradient-fade{background-size:200% 200%;animation:gradientFade 8s ease 1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Forbidden403Component, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'forbidden-403', standalone: true, imports: [CommonModule, IonicModule, RouterLink], template: "<div class=\"bg-white size-full\">\r\n <div class=\"relative flex flex-col items-center justify-center min-h-screen overflow-hidden\">\r\n <div class=\"absolute inset-0 w-full h-full bg-gradient-to-br from-red-500 to-red-900 animate-gradient-fade\"></div>\r\n \r\n <ion-card class=\"m-0 max-w-md\">\r\n <ion-card-content class=\"size-full bg-light/10 p-8 flex flex-col items-center justify-center text-center space-y-6\">\r\n <div class=\"p-3 rounded-full relative translucid-border\">\r\n <div class=\"size-12 flex items-center justify-center\">\r\n <ion-icon class=\"text-5xl text-white/70\" name=\"shield-outline\"></ion-icon>\r\n </div>\r\n \r\n \r\n <div class=\"absolute -inset-1 rounded-full bg-gradient-to-r from-rose-400 to-pink-500 opacity-25 blur-sm\"></div>\r\n </div>\r\n \r\n <ion-text class=\"text-4xl font-bold tracking-tight text-white/70\">\r\n Acesso Negado\r\n </ion-text>\r\n \r\n <ion-text color=\"light\" class=\"text-white/70\">\r\n Voc\u00EA n\u00E3o tem permiss\u00E3o para acessar este recurso. Por favor, entre em contato com o administrador se acreditar que isso \u00E9 um erro.\r\n </ion-text>\r\n \r\n <div class=\"flex flex-col sm:flex-row gap-4 mt-4\">\r\n <ion-button [routerLink]=\"['/']\" color=\"danger\" class=\"text-red-600 px-4 py-2 rounded-md font-medium\">\r\n <ion-icon name=\"chevron-back\" slot=\"start\"></ion-icon>\r\n Retornar a navega\u00E7\u00E3o\r\n </ion-button>\r\n </div>\r\n \r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</div>\r\n ", styles: ["@keyframes gradientFade{0%{background-position:0% 50%;opacity:1}50%{background-position:100% 50%;opacity:.7}to{background-position:0% 50%;opacity:1}}.animate-gradient-fade{background-size:200% 200%;animation:gradientFade 8s ease 1}\n"] }]
16
+ }], ctorParameters: () => [] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yYmlkZGVuLTQwMy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9odHRwLXJlc3BvbnNlcy1wYWdlcy9mb3JiaWRkZW4tNDAzL2ZvcmJpZGRlbi00MDMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvaHR0cC1yZXNwb25zZXMtcGFnZXMvZm9yYmlkZGVuLTQwMy9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBSSxDQUFDOytHQUpGLHFCQUFxQjttR0FBckIscUJBQXFCLHlFQ1psQyxtcURBa0NFLGtTRDFCVSxZQUFZLDhCQUFFLFdBQVcsZzZCQUFFLFVBQVU7OzRGQUlwQyxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmb3JiaWRkZW4tNDAzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBSb3V0ZXJMaW5rXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9yYmlkZGVuLTQwMy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9yYmlkZGVuLTQwMy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yYmlkZGVuNDAzQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJnLXdoaXRlIHNpemUtZnVsbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1zY3JlZW4gb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCB3LWZ1bGwgaC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tcmVkLTUwMCB0by1yZWQtOTAwIGFuaW1hdGUtZ3JhZGllbnQtZmFkZVwiPjwvZGl2PlxyXG4gIFxyXG4gICAgPGlvbi1jYXJkIGNsYXNzPVwibS0wIG1heC13LW1kXCI+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwic2l6ZS1mdWxsIGJnLWxpZ2h0LzEwIHAtOCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWNlbnRlciBzcGFjZS15LTZcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIHJvdW5kZWQtZnVsbCByZWxhdGl2ZSB0cmFuc2x1Y2lkLWJvcmRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtMTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC01eGwgdGV4dC13aGl0ZS83MFwiIG5hbWU9XCJzaGllbGQtb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIC1pbnNldC0xIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tcm9zZS00MDAgdG8tcGluay01MDAgb3BhY2l0eS0yNSBibHVyLXNtXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInRleHQtNHhsIGZvbnQtYm9sZCB0cmFja2luZy10aWdodCB0ZXh0LXdoaXRlLzcwXCI+XHJcbiAgICAgICAgICBBY2Vzc28gTmVnYWRvXHJcbiAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgXHJcbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwibGlnaHRcIiBjbGFzcz1cInRleHQtd2hpdGUvNzBcIj5cclxuICAgICAgICAgIFZvY8OqIG7Do28gdGVtIHBlcm1pc3PDo28gcGFyYSBhY2Vzc2FyIGVzdGUgcmVjdXJzby4gUG9yIGZhdm9yLCBlbnRyZSBlbSBjb250YXRvIGNvbSBvIGFkbWluaXN0cmFkb3Igc2UgYWNyZWRpdGFyIHF1ZSBpc3NvIMOpIHVtIGVycm8uXHJcbiAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZ2FwLTQgbXQtNFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gW3JvdXRlckxpbmtdPVwiWycvJ11cIiBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwidGV4dC1yZWQtNjAwIHB4LTQgcHktMiByb3VuZGVkLW1kIGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgUmV0b3JuYXIgYSBuYXZlZ2HDp8Ojb1xyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L2lvbi1jYXJkPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuICAiXX0=
@@ -0,0 +1,91 @@
1
+ import { Component, computed, effect, input, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { ApiUrlProviderService } from '../../services/web/api-url-provider.service';
5
+ import { LoadingComponent } from '../loading/loading.component';
6
+ import { SecurePipe } from '../../pipes/secure.pipe';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/web/api-url-provider.service";
9
+ import * as i2 from "@ionic/angular";
10
+ import * as i3 from "@angular/common";
11
+ export class ImageComponent {
12
+ SetClassFill() {
13
+ switch (this.fill) {
14
+ case ('clear'): {
15
+ this.ClassFill = '';
16
+ break;
17
+ }
18
+ case ('outline'): {
19
+ this.ClassFill = 'p-2 translucid-border rounded-2xl';
20
+ break;
21
+ }
22
+ case ('solid'): {
23
+ this.ClassFill = 'p-2 translucid-border bg-medium/10 rounded-2xl';
24
+ break;
25
+ }
26
+ }
27
+ }
28
+ SetClassObject() {
29
+ switch (this.object) {
30
+ case ('contain'): {
31
+ this.ClassFill = 'object-contain';
32
+ break;
33
+ }
34
+ case ('cover'): {
35
+ this.ClassFill = 'object-cover';
36
+ break;
37
+ }
38
+ case ('fill'): {
39
+ this.ClassFill = 'object-fill';
40
+ break;
41
+ }
42
+ case ('none'): {
43
+ this.ClassFill = 'object-none';
44
+ break;
45
+ }
46
+ case ('scale-down'): {
47
+ this.ClassFill = 'object-scale-down';
48
+ break;
49
+ }
50
+ }
51
+ }
52
+ constructor(apiUrlProviderService) {
53
+ this.apiUrlProviderService = apiUrlProviderService;
54
+ /** Tipo de prenchimento e borda do objeto */
55
+ this.fill = 'outline';
56
+ /** Tipo de prenchimento da imagem */
57
+ this.object = 'contain';
58
+ /** Link */
59
+ this.src = input();
60
+ this._src = computed(() => {
61
+ if (this.src()?.startsWith("http")) {
62
+ return this.src();
63
+ }
64
+ else if (this.src()?.startsWith('assets')) {
65
+ return window.origin + '/' + this.src();
66
+ }
67
+ else {
68
+ return this.apiUrlProviderService.apiUrl + this.src();
69
+ }
70
+ });
71
+ this.err = false;
72
+ this.loading = false;
73
+ effect(() => {
74
+ this.err = !this.src();
75
+ });
76
+ }
77
+ ngOnInit() {
78
+ this.SetClassFill();
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1.ApiUrlProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "image", inputs: { fill: { classPropertyName: "fill", publicName: "fill", isSignal: false, isRequired: false, transformFunction: null }, object: { classPropertyName: "object", publicName: "object", isSignal: false, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (!err && _src()) {\r\n <div class=\"animated-from-top flex items-center justify-center relative overflow-hidden size-full {{ClassObject}} {{ClassFill}}\" >\r\n <loading class=\"!text-sm\" [loading]=\"loading\" [type]=\"3\" text=\"\"></loading>\r\n <ion-img \r\n class=\"-translate-y-12 opacity-0 default-transition animated-from-top object-contain size-full\" \r\n [ngClass]=\"{'opacity-100 translate-y-0': !loading }\"\r\n [src]=\"src() ? (_src() | secure | async) : null\" \r\n (ionImgWillLoad)=\"loading = true\"\r\n (ionError)=\"loading = false; err = true\"\r\n (ionImgDidLoad)=\"loading = false;\"\r\n ></ion-img>\r\n </div>\r\n}@else {\r\n <div class=\"animated-from-top flex items-center justify-center size-full {{ClassObject}} {{ClassFill}}\">\r\n <ion-icon class=\"text-xl\" name=\"image\" color=\"dark\"></ion-icon>\r\n </div>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "pipe", type: SecurePipe, name: "secure" }] }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ standalone: true, imports: [IonicModule, CommonModule, LoadingComponent, SecurePipe], selector: 'image', template: "@if (!err && _src()) {\r\n <div class=\"animated-from-top flex items-center justify-center relative overflow-hidden size-full {{ClassObject}} {{ClassFill}}\" >\r\n <loading class=\"!text-sm\" [loading]=\"loading\" [type]=\"3\" text=\"\"></loading>\r\n <ion-img \r\n class=\"-translate-y-12 opacity-0 default-transition animated-from-top object-contain size-full\" \r\n [ngClass]=\"{'opacity-100 translate-y-0': !loading }\"\r\n [src]=\"src() ? (_src() | secure | async) : null\" \r\n (ionImgWillLoad)=\"loading = true\"\r\n (ionError)=\"loading = false; err = true\"\r\n (ionImgDidLoad)=\"loading = false;\"\r\n ></ion-img>\r\n </div>\r\n}@else {\r\n <div class=\"animated-from-top flex items-center justify-center size-full {{ClassObject}} {{ClassFill}}\">\r\n <ion-icon class=\"text-xl\" name=\"image\" color=\"dark\"></ion-icon>\r\n </div>\r\n}" }]
86
+ }], ctorParameters: () => [{ type: i1.ApiUrlProviderService }], propDecorators: { fill: [{
87
+ type: Input
88
+ }], object: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVNyRCxNQUFNLE9BQU8sY0FBYztJQVF6QixZQUFZO1FBQ1YsUUFBTyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDaEIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtnQkFDbkIsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsbUNBQW1DLENBQUE7Z0JBQ3BELE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLGdEQUFnRCxDQUFBO2dCQUNqRSxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLFFBQU8sSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1lBQ2xCLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQTtnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFBO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUE7Z0JBQzlCLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDWixJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQTtnQkFDOUIsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFBO2dCQUNwQyxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBb0JELFlBQ1MscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFuRXJELDhDQUE4QztRQUNyQyxTQUFJLEdBQWlDLFNBQVMsQ0FBQztRQUN4RCxxQ0FBcUM7UUFDNUIsV0FBTSxHQUF5RCxTQUFTLENBQUM7UUE2Q2xGLFdBQVc7UUFDWCxRQUFHLEdBQStCLEtBQUssRUFBaUIsQ0FBQztRQUN6RCxTQUFJLEdBQW1CLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLENBQUM7aUJBRUQsSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ25DLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ3pDLENBQUM7aUJBQ0csQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ3ZELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQUcsR0FBWSxLQUFLLENBQUM7UUFDckIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUt2QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBOUVVLGNBQWM7bUdBQWQsY0FBYyxpYkNmM0IsMjdCQWdCQyx5REROVyxXQUFXLHdSQUFFLFlBQVksa0xBQUUsZ0JBQWdCLG9GQUFFLFVBQVU7OzRGQUt0RCxjQUFjO2tCQVAxQixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLFlBQ3hELE9BQU87MEZBT1IsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQsIElucHV0LCBJbnB1dFNpZ25hbCwgT25Jbml0LCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93ZWIvYXBpLXVybC1wcm92aWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWN1cmVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbSW9uaWNNb2R1bGUsIENvbW1vbk1vZHVsZSwgTG9hZGluZ0NvbXBvbmVudCwgU2VjdXJlUGlwZV0sXHJcbiAgc2VsZWN0b3I6ICdpbWFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqIFRpcG8gZGUgcHJlbmNoaW1lbnRvIGUgYm9yZGEgIGRvIG9iamV0byAqL1xyXG4gIEBJbnB1dCgpIGZpbGw6ICdjbGVhcid8ICdvdXRsaW5lJyB8ICdzb2xpZCcgPSAnb3V0bGluZSc7XHJcbiAgLyoqIFRpcG8gZGUgcHJlbmNoaW1lbnRvIGRhIGltYWdlbSAqL1xyXG4gIEBJbnB1dCgpIG9iamVjdDogJ2NvbnRhaW4nIHwgJ2NvdmVyJyB8ICdmaWxsJyB8ICdub25lJyB8ICdzY2FsZS1kb3duJyA9ICdjb250YWluJztcclxuXHJcbiAgQ2xhc3NGaWxsOiBzdHJpbmc7XHJcbiAgU2V0Q2xhc3NGaWxsKCk6IHZvaWR7XHJcbiAgICBzd2l0Y2godGhpcy5maWxsKXtcclxuICAgICAgY2FzZSgnY2xlYXInKTp7XHJcbiAgICAgICAgdGhpcy5DbGFzc0ZpbGwgPSAnJ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UoJ291dGxpbmUnKTp7XHJcbiAgICAgICAgdGhpcy5DbGFzc0ZpbGwgPSAncC0yIHRyYW5zbHVjaWQtYm9yZGVyIHJvdW5kZWQtMnhsJ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UoJ3NvbGlkJyk6e1xyXG4gICAgICAgIHRoaXMuQ2xhc3NGaWxsID0gJ3AtMiB0cmFuc2x1Y2lkLWJvcmRlciBiZy1tZWRpdW0vMTAgcm91bmRlZC0yeGwnXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQ2xhc3NPYmplY3Q6IHN0cmluZ1xyXG4gIFNldENsYXNzT2JqZWN0KCk6IHZvaWR7XHJcbiAgICBzd2l0Y2godGhpcy5vYmplY3Qpe1xyXG4gICAgICBjYXNlKCdjb250YWluJyk6e1xyXG4gICAgICAgIHRoaXMuQ2xhc3NGaWxsID0gJ29iamVjdC1jb250YWluJ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UoJ2NvdmVyJyk6e1xyXG4gICAgICAgIHRoaXMuQ2xhc3NGaWxsID0gJ29iamVjdC1jb3ZlcidcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlKCdmaWxsJyk6e1xyXG4gICAgICAgIHRoaXMuQ2xhc3NGaWxsID0gJ29iamVjdC1maWxsJ1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UoJ25vbmUnKTp7XHJcbiAgICAgICAgdGhpcy5DbGFzc0ZpbGwgPSAnb2JqZWN0LW5vbmUnXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSgnc2NhbGUtZG93bicpOntcclxuICAgICAgICB0aGlzLkNsYXNzRmlsbCA9ICdvYmplY3Qtc2NhbGUtZG93bidcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIExpbmsgKi9cclxuICBzcmM6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bGw+ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKTtcclxuICBfc3JjOiBTaWduYWw8c3RyaW5nPiA9IGNvbXB1dGVkKCgpID0+IHsgXHJcbiAgICBpZih0aGlzLnNyYygpPy5zdGFydHNXaXRoKFwiaHR0cFwiKSl7XHJcbiAgICAgIHJldHVybiB0aGlzLnNyYygpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgaWYodGhpcy5zcmMoKT8uc3RhcnRzV2l0aCgnYXNzZXRzJykpe1xyXG4gICAgICByZXR1cm4gd2luZG93Lm9yaWdpbiArICcvJyArIHRoaXMuc3JjKClcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmwgKyB0aGlzLnNyYygpXHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGVycjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2VcclxuICApIHsgXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVyciA9ICF0aGlzLnNyYygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuU2V0Q2xhc3NGaWxsKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoIWVyciAmJiBfc3JjKCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlZC1mcm9tLXRvcCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW4gc2l6ZS1mdWxsIHt7Q2xhc3NPYmplY3R9fSB7e0NsYXNzRmlsbH19XCIgPlxyXG4gICAgICAgIDxsb2FkaW5nIGNsYXNzPVwiIXRleHQtc21cIiBbbG9hZGluZ109XCJsb2FkaW5nXCIgW3R5cGVdPVwiM1wiIHRleHQ9XCJcIj48L2xvYWRpbmc+XHJcbiAgICAgICAgPGlvbi1pbWcgXHJcbiAgICAgICAgICAgIGNsYXNzPVwiLXRyYW5zbGF0ZS15LTEyIG9wYWNpdHktMCBkZWZhdWx0LXRyYW5zaXRpb24gYW5pbWF0ZWQtZnJvbS10b3Agb2JqZWN0LWNvbnRhaW4gc2l6ZS1mdWxsXCIgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCc6ICFsb2FkaW5nIH1cIlxyXG4gICAgICAgICAgICBbc3JjXT1cInNyYygpID8gKF9zcmMoKSB8IHNlY3VyZSB8IGFzeW5jKSA6IG51bGxcIiBcclxuICAgICAgICAgICAgKGlvbkltZ1dpbGxMb2FkKT1cImxvYWRpbmcgPSB0cnVlXCJcclxuICAgICAgICAgICAgKGlvbkVycm9yKT1cImxvYWRpbmcgPSBmYWxzZTsgZXJyID0gdHJ1ZVwiXHJcbiAgICAgICAgICAgIChpb25JbWdEaWRMb2FkKT1cImxvYWRpbmcgPSBmYWxzZTtcIlxyXG4gICAgICAgID48L2lvbi1pbWc+XHJcbiAgICA8L2Rpdj5cclxufUBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlZC1mcm9tLXRvcCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzaXplLWZ1bGwge3tDbGFzc09iamVjdH19IHt7Q2xhc3NGaWxsfX1cIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LXhsXCIgbmFtZT1cImltYWdlXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cclxuICAgIDwvZGl2PlxyXG59Il19
@@ -0,0 +1,91 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ionic/angular";
6
+ export class InfoPopoverComponent {
7
+ SetPositionClass() {
8
+ switch (this._position) {
9
+ case ('relative'):
10
+ {
11
+ this.position = "relative";
12
+ }
13
+ break;
14
+ case ('top-right'):
15
+ {
16
+ this.position = "absolute top-3 right-3";
17
+ }
18
+ break;
19
+ case ('right'):
20
+ {
21
+ this.position = "absolute top-1/2 bottom 1/2 right-3";
22
+ }
23
+ break;
24
+ case ('bottom-right'):
25
+ {
26
+ this.position = "absolute bottom-3 right-3";
27
+ }
28
+ break;
29
+ case ('top'):
30
+ {
31
+ this.position = "absolute top-3 right-1/2 left-1/2";
32
+ }
33
+ break;
34
+ case ('bottom'):
35
+ {
36
+ this.position = "absolute left-1/2 right-1/2 bottom-3";
37
+ }
38
+ break;
39
+ case ('left'):
40
+ {
41
+ this.position = "absolute top-1/2 bottom-1/2 left-3";
42
+ }
43
+ break;
44
+ case ('top-left'):
45
+ {
46
+ this.position = "absolute top-3 left-3";
47
+ }
48
+ break;
49
+ case ('bottom-left'):
50
+ {
51
+ this.position = "absolute bottom-3 left-3";
52
+ }
53
+ break;
54
+ case ('center'):
55
+ {
56
+ this.position = "absolute top-1/2 bottom-1/2 left-1/2 right-1/2";
57
+ }
58
+ break;
59
+ }
60
+ }
61
+ constructor() {
62
+ this.clickEventEmitter = new EventEmitter();
63
+ this.button = false;
64
+ this.fill = 'solid';
65
+ this._position = 'relative';
66
+ this.position = '';
67
+ }
68
+ ngOnInit() {
69
+ this.SetPositionClass();
70
+ }
71
+ ClickEvent() {
72
+ this.clickEventEmitter.emit();
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InfoPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InfoPopoverComponent, isStandalone: true, selector: "info-popover", inputs: { button: "button", fill: "fill", _position: ["position", "_position"] }, outputs: { clickEventEmitter: "OnClick" }, ngImport: i0, template: "<div class=\"min-w-fit min-h-fit {{position}}\">\r\n <ion-button [fill]=\"fill\" size=\"small\" class=\"size-8 m-0\" (click)=\"button ? popover.present($event) : null\" (mouseenter)=\"!button ? popover.present($event) : null\">\r\n <ion-icon slot=\"icon-only\" name=\"help\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-popover #popover triggerAction=\"hover\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"w-56 text-sm\">\r\n <ng-content></ng-content>\r\n </div>\r\n \r\n @if (button) {\r\n <div class=\"w-56 h-8 flex items-center justify-center mt-3\">\r\n <ion-text class=\"cursor-pointer\" color=\"primary\" (click)=\"ClickEvent()\">\r\n <ion-icon class=\"align-sub\" name=\"information-circle\"></ion-icon> Clique para saber mais\r\n </ion-text>\r\n </div>\r\n }\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n</div>", styles: ["ion-popover{--width: fit-content}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonPopover, selector: "ion-popover" }, { kind: "ngmodule", type: CommonModule }] }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InfoPopoverComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ standalone: true, imports: [IonicModule, CommonModule], selector: 'info-popover', template: "<div class=\"min-w-fit min-h-fit {{position}}\">\r\n <ion-button [fill]=\"fill\" size=\"small\" class=\"size-8 m-0\" (click)=\"button ? popover.present($event) : null\" (mouseenter)=\"!button ? popover.present($event) : null\">\r\n <ion-icon slot=\"icon-only\" name=\"help\"></ion-icon>\r\n </ion-button>\r\n \r\n <ion-popover #popover triggerAction=\"hover\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"w-56 text-sm\">\r\n <ng-content></ng-content>\r\n </div>\r\n \r\n @if (button) {\r\n <div class=\"w-56 h-8 flex items-center justify-center mt-3\">\r\n <ion-text class=\"cursor-pointer\" color=\"primary\" (click)=\"ClickEvent()\">\r\n <ion-icon class=\"align-sub\" name=\"information-circle\"></ion-icon> Clique para saber mais\r\n </ion-text>\r\n </div>\r\n }\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n</div>", styles: ["ion-popover{--width: fit-content}\n"] }]
80
+ }], ctorParameters: () => [], propDecorators: { clickEventEmitter: [{
81
+ type: Output,
82
+ args: ['OnClick']
83
+ }], button: [{
84
+ type: Input
85
+ }], fill: [{
86
+ type: Input
87
+ }], _position: [{
88
+ type: Input,
89
+ args: ['position']
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tcG9wb3Zlci9pbmZvLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvaW5mby1wb3BvdmVyL2luZm8tcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVM3QyxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLGdCQUFnQjtRQUNkLFFBQU8sSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDO1lBQ3JCLEtBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQzdCLENBQUM7Z0JBQ0QsTUFBTTtZQUNOLEtBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQUMsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxNQUFNO1lBQ04sS0FBSSxDQUFDLE9BQU8sQ0FBQztnQkFBQyxDQUFDO29CQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcscUNBQXFDLENBQUM7Z0JBQ3hELENBQUM7Z0JBQ0QsTUFBTTtZQUNOLEtBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQUMsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBMkIsQ0FBQztnQkFDOUMsQ0FBQztnQkFDRCxNQUFNO1lBQ04sS0FBSSxDQUFDLEtBQUssQ0FBQztnQkFBQyxDQUFDO29CQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsbUNBQW1DLENBQUM7Z0JBQ3RELENBQUM7Z0JBQ0QsTUFBTTtZQUNOLEtBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQUMsQ0FBQztvQkFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLHNDQUFzQyxDQUFDO2dCQUN6RCxDQUFDO2dCQUNELE1BQU07WUFDTixLQUFJLENBQUMsTUFBTSxDQUFDO2dCQUFDLENBQUM7b0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxvQ0FBb0MsQ0FBQztnQkFDdkQsQ0FBQztnQkFDRCxNQUFNO1lBQ04sS0FBSSxDQUFDLFVBQVUsQ0FBQztnQkFBQyxDQUFDO29CQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDO2dCQUMxQyxDQUFDO2dCQUNELE1BQU07WUFDTixLQUFJLENBQUMsYUFBYSxDQUFDO2dCQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsMEJBQTBCLENBQUM7Z0JBQzdDLENBQUM7Z0JBQ0QsTUFBTTtZQUNOLEtBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQUMsQ0FBQztvQkFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLGdEQUFnRCxDQUFDO2dCQUNuRSxDQUFDO2dCQUNELE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVEO1FBcERtQixzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUUxRSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFNBQUksR0FBVyxPQUFPLENBQUM7UUFDYixjQUFTLEdBQVcsVUFBVSxDQUFDO1FBQ2xELGFBQVEsR0FBVyxFQUFFLENBQUM7SUErQ04sQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzsrR0E5RFUsb0JBQW9CO21HQUFwQixvQkFBb0IscU1DWGpDLG85QkFzQk0sNEZEaEJPLFdBQVcsdXhCQUFFLFlBQVk7OzRGQUt6QixvQkFBb0I7a0JBUGhDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUUsV0FBVyxFQUFFLFlBQVksQ0FBRSxZQUM1QixjQUFjO3dEQU1MLGlCQUFpQjtzQkFBbkMsTUFBTTt1QkFBQyxTQUFTO2dCQUVSLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsU0FBUztzQkFBM0IsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogWyBJb25pY01vZHVsZSwgQ29tbW9uTW9kdWxlIF0sXHJcbiAgc2VsZWN0b3I6ICdpbmZvLXBvcG92ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2luZm8tcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb1BvcG92ZXJDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQE91dHB1dCgnT25DbGljaycpIGNsaWNrRXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcclxuXHJcbiAgQElucHV0KCkgYnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsbDogc3RyaW5nID0gJ3NvbGlkJztcclxuICBASW5wdXQoJ3Bvc2l0aW9uJykgX3Bvc2l0aW9uOiBzdHJpbmcgPSAncmVsYXRpdmUnO1xyXG4gIHBvc2l0aW9uOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgU2V0UG9zaXRpb25DbGFzcygpe1xyXG4gICAgc3dpdGNoKHRoaXMuX3Bvc2l0aW9uKXtcclxuICAgICAgY2FzZSgncmVsYXRpdmUnKToge1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7IFxyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlKCd0b3AtcmlnaHQnKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgdG9wLTMgcmlnaHQtM1wiOyBcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSgncmlnaHQnKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgdG9wLTEvMiBib3R0b20gMS8yIHJpZ2h0LTNcIjsgXHJcbiAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UoJ2JvdHRvbS1yaWdodCcpOntcclxuICAgICAgICB0aGlzLnBvc2l0aW9uID0gXCJhYnNvbHV0ZSBib3R0b20tMyByaWdodC0zXCI7IFxyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlKCd0b3AnKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgdG9wLTMgcmlnaHQtMS8yIGxlZnQtMS8yXCI7IFxyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlKCdib3R0b20nKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgbGVmdC0xLzIgcmlnaHQtMS8yIGJvdHRvbS0zXCI7IFxyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlKCdsZWZ0Jyk6e1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSBcImFic29sdXRlIHRvcC0xLzIgYm90dG9tLTEvMiBsZWZ0LTNcIjsgXHJcbiAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UoJ3RvcC1sZWZ0Jyk6e1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSBcImFic29sdXRlIHRvcC0zIGxlZnQtM1wiOyBcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSgnYm90dG9tLWxlZnQnKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgYm90dG9tLTMgbGVmdC0zXCI7IFxyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlKCdjZW50ZXInKTp7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFwiYWJzb2x1dGUgdG9wLTEvMiBib3R0b20tMS8yIGxlZnQtMS8yIHJpZ2h0LTEvMlwiOyBcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5TZXRQb3NpdGlvbkNsYXNzKCk7XHJcbiAgfVxyXG5cclxuICBDbGlja0V2ZW50KCl7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnRFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1pbi13LWZpdCBtaW4taC1maXQge3twb3NpdGlvbn19XCI+XHJcbiAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZmlsbFwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwic2l6ZS04IG0tMFwiIChjbGljayk9XCJidXR0b24gPyBwb3BvdmVyLnByZXNlbnQoJGV2ZW50KSA6IG51bGxcIiAobW91c2VlbnRlcik9XCIhYnV0dG9uID8gcG9wb3Zlci5wcmVzZW50KCRldmVudCkgOiBudWxsXCI+XHJcbiAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJoZWxwXCI+PC9pb24taWNvbj5cclxuICA8L2lvbi1idXR0b24+XHJcbiAgXHJcbiAgPGlvbi1wb3BvdmVyICNwb3BvdmVyIHRyaWdnZXJBY3Rpb249XCJob3ZlclwiPlxyXG4gICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTU2IHRleHQtc21cIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICBAaWYgKGJ1dHRvbikge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctNTYgaC04IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG10LTNcIj5cclxuICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiQ2xpY2tFdmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwiYWxpZ24tc3ViXCIgbmFtZT1cImluZm9ybWF0aW9uLWNpcmNsZVwiPjwvaW9uLWljb24+IENsaXF1ZSBwYXJhIHNhYmVyIG1haXNcclxuICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9pb24tY29udGVudD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9pb24tcG9wb3Zlcj5cclxuPC9kaXY+Il19
@@ -0,0 +1,77 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { AbstractControl, Validators } from "@angular/forms";
3
+ import { InputProviderFactory } from "./input-provider-factory";
4
+ import * as i0 from "@angular/core";
5
+ export class CustomInput {
6
+ constructor() {
7
+ //[ Basic ]
8
+ this.id = "uniqueId";
9
+ /** Indica se o formulário foi enviado */
10
+ this.submitted = false;
11
+ /** Titulo do Input */
12
+ this.label = "Label";
13
+ /** Torna o input obrigatório (Utiliza-se com ngModel) */
14
+ this.required = false;
15
+ //[ Value ]
16
+ this._model = null;
17
+ this.invalid = false;
18
+ // classes: string;
19
+ this.blurEmitter = new EventEmitter();
20
+ //[ ControlValueAccessor ]
21
+ this.changeEmitter = new EventEmitter();
22
+ this._onChange = (v) => { };
23
+ this._onTouch = (v) => { };
24
+ }
25
+ writeValue(obj) { console.error("[ Component writeValue isnt implemented ]"); }
26
+ get model() { return this._model; }
27
+ set model(value) { this._model = value; }
28
+ ngOnInit() {
29
+ if (!this.control && this.controlContainer && this.formControlName) {
30
+ this.control = this.controlContainer.control.get(this.formControlName);
31
+ }
32
+ if (this.control) {
33
+ this.required = this.control.hasValidator(Validators.required);
34
+ this.invalid = this.control.invalid;
35
+ this.control.events.subscribe({
36
+ next: (event) => { this.RunValidation(event.source); }
37
+ });
38
+ }
39
+ }
40
+ RunValidation(control) {
41
+ this.required = control.hasValidator(Validators.required);
42
+ this.invalid = control.invalid;
43
+ }
44
+ propagateChange(obj) { this._onChange(obj); this.changeEmitter.emit(obj); ; }
45
+ registerOnChange(fn) { this._onChange = fn; }
46
+ registerOnTouched(fn) { this._onTouch = fn; }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomInput, selector: "ng-component", inputs: { id: "id", loading: "loading", disabled: "disabled", submitted: "submitted", label: "label", required: "required", formControlName: "formControlName", control: ["formControl", "control"] }, outputs: { blurEmitter: "blur", changeEmitter: "change" }, providers: InputProviderFactory.GetProvider(CustomInput), ngImport: i0, template: '', isInline: true }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomInput, decorators: [{
51
+ type: Component,
52
+ args: [{ template: '', providers: InputProviderFactory.GetProvider(CustomInput) }]
53
+ }], propDecorators: { id: [{
54
+ type: Input
55
+ }], loading: [{
56
+ type: Input
57
+ }], disabled: [{
58
+ type: Input
59
+ }], submitted: [{
60
+ type: Input
61
+ }], label: [{
62
+ type: Input
63
+ }], required: [{
64
+ type: Input
65
+ }], formControlName: [{
66
+ type: Input
67
+ }], control: [{
68
+ type: Input,
69
+ args: ['formControl']
70
+ }], blurEmitter: [{
71
+ type: Output,
72
+ args: ['blur']
73
+ }], changeEmitter: [{
74
+ type: Output,
75
+ args: ['change']
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2N1c3RvbS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQTBDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUdoRSxNQUFNLE9BQWdCLFdBQVc7SUFEakM7UUFFRSxXQUFXO1FBQ0YsT0FBRSxHQUFrQixVQUFVLENBQUM7UUFLeEMseUNBQXlDO1FBQ2hDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDcEMsc0JBQXNCO1FBQ2IsVUFBSyxHQUFnQixPQUFPLENBQUM7UUFDdEMseURBQXlEO1FBQ2hELGFBQVEsR0FBYSxLQUFLLENBQUM7UUFJcEMsV0FBVztRQUNYLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBK0JwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFtQjtRQUVILGdCQUFXLEdBQW9CLElBQUksWUFBWSxFQUFLLENBQUM7UUFFckUsMEJBQTBCO1FBQ1Isa0JBQWEsR0FBb0IsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUd6RSxjQUFTLEdBQWEsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQTtRQUNwQyxhQUFRLEdBQWMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQTtLQUdyQztJQS9DQyxVQUFVLENBQUMsR0FBTSxJQUFVLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFJdkYsSUFBSSxLQUFLLEtBQW1CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUM7SUFDbEQsSUFBSSxLQUFLLENBQUMsS0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQVNsRCxRQUFRO1FBQ04sSUFBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBRXJDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsT0FBd0I7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQVNELGVBQWUsQ0FBQyxHQUFNLElBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFJcEYsZ0JBQWdCLENBQUUsRUFBd0IsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDbkUsaUJBQWlCLENBQUMsRUFBd0IsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7K0dBNUQvQyxXQUFXO21HQUFYLFdBQVcseVNBREssb0JBQW9CLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQywwQkFBNUQsRUFBRTs7NEZBQ0gsV0FBVztrQkFEaEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLFdBQVcsYUFBYSxFQUFFOzhCQUcxRSxFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFVRyxlQUFlO3NCQUF2QixLQUFLO2dCQUd1QixPQUFPO3NCQUFuQyxLQUFLO3VCQUFDLGFBQWE7Z0JBMEJKLFdBQVc7c0JBQTFCLE1BQU07dUJBQUMsTUFBTTtnQkFHSSxhQUFhO3NCQUE5QixNQUFNO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVyRmFjdG9yeSB9IGZyb20gXCIuL2lucHV0LXByb3ZpZGVyLWZhY3RvcnlcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycsIHByb3ZpZGVyczogSW5wdXRQcm92aWRlckZhY3RvcnkuR2V0UHJvdmlkZXIoQ3VzdG9tSW5wdXQpIH0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21JbnB1dDxUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXR7XHJcbiAgLy9bIEJhc2ljIF1cclxuICBASW5wdXQoKSBpZCAgICAgICA6IHN0cmluZyA9IFwidW5pcXVlSWRcIjtcclxuICAvKiogRXhpYmUgbyBzcGlubmVyIGRlIGNhcnJlZ2FtZW50byAqL1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgIDogYm9vbGVhbjtcclxuICAvKiogU2UgYXRpdm8gZGVzYWJpbGl0YSBvIElucHV0ICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgOiBib29sZWFuO1xyXG4gIC8qKiBJbmRpY2Egc2UgbyBmb3JtdWzDoXJpbyBmb2kgZW52aWFkbyAqL1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBUaXR1bG8gZG8gSW5wdXQgKi9cclxuICBASW5wdXQoKSBsYWJlbCAgICA6IHN0cmluZyAgPSBcIkxhYmVsXCI7XHJcbiAgLyoqIFRvcm5hIG8gaW5wdXQgb2JyaWdhdMOzcmlvIChVdGlsaXphLXNlIGNvbSBuZ01vZGVsKSAqL1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIHdyaXRlVmFsdWUob2JqOiBUKTogdm9pZCB7IGNvbnNvbGUuZXJyb3IoXCJbIENvbXBvbmVudCB3cml0ZVZhbHVlIGlzbnQgaW1wbGVtZW50ZWQgXVwiKSB9XHJcbiAgXHJcbiAgLy9bIFZhbHVlIF1cclxuICBfbW9kZWw6IFQgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuICBnZXQgbW9kZWwoKTogVCB8IGFueSAgICAgIHsgcmV0dXJuIHRoaXMuX21vZGVsOyAgfVxyXG4gIHNldCBtb2RlbCh2YWx1ZTogVCB8IGFueSkgeyB0aGlzLl9tb2RlbCA9IHZhbHVlOyB9XHJcblxyXG4gIC8vWyBIYW5kbGUgRm9ybSAvIE5nTW9kZWwgXVxyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG4gIFxyXG4gIHB1YmxpYyAgIGNvbnRyb2xDb250YWluZXIgOiBDb250cm9sQ29udGFpbmVyO1xyXG4gIEBJbnB1dCgnZm9ybUNvbnRyb2wnKSBwdWJsaWMgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmICAgICAgOiBFbGVtZW50UmVmO1xyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgaWYoIXRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2xDb250YWluZXIgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWUpeyBcclxuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKTsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHRoaXMuY29udHJvbCl7IFxyXG4gICAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5jb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTsgXHJcbiAgICAgIHRoaXMuaW52YWxpZCAgPSB0aGlzLmNvbnRyb2wuaW52YWxpZDtcclxuXHJcbiAgICAgIHRoaXMuY29udHJvbC5ldmVudHMuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHsgdGhpcy5SdW5WYWxpZGF0aW9uKGV2ZW50LnNvdXJjZSk7IH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFJ1blZhbGlkYXRpb24oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZHtcclxuICAgIHRoaXMucmVxdWlyZWQgPSBjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMuaW52YWxpZCAgPSBjb250cm9sLmludmFsaWQ7XHJcbiAgfVxyXG4gIFxyXG4gIGludmFsaWQgPSBmYWxzZTtcclxuICAvLyBjbGFzc2VzOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoJ2JsdXInKSBibHVyRW1pdHRlcjogRXZlbnRFbWl0dGVyPFQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cclxuICAvL1sgQ29udHJvbFZhbHVlQWNjZXNzb3IgXVxyXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuICBwcm9wYWdhdGVDaGFuZ2Uob2JqOiBUKTogdm9pZHsgdGhpcy5fb25DaGFuZ2Uob2JqKTsgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQob2JqKTs7IH1cclxuXHJcbiAgX29uQ2hhbmdlOiBGdW5jdGlvbiA9ICh2OiBhbnkpID0+IHt9XHJcbiAgX29uVG91Y2ggOiBGdW5jdGlvbiA9ICh2OiBhbnkpID0+IHt9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZSAoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkICl7IHRoaXMuX29uQ2hhbmdlID0gZm4gfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCApeyB0aGlzLl9vblRvdWNoICA9IGZuIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Component, Input, effect, model, output } from "@angular/core";
2
+ import { AbstractControl, Validators } from "@angular/forms";
3
+ import { InputProviderFactory } from "./input-provider-factory";
4
+ import * as i0 from "@angular/core";
5
+ export class CustomSignalInput {
6
+ writeValue(obj) { console.error("[ Component writeValue isnt implemented ]"); }
7
+ get model() { return this._model; }
8
+ set model(value) { this._model = value; }
9
+ constructor() {
10
+ //[ Basic ]
11
+ /** Exibe o spinner de carregamento */
12
+ this.loading = false;
13
+ /** Se ativo desabilita o Input */
14
+ this.disabled = false;
15
+ /** Indica se o formulário foi enviado */
16
+ this.submitted = false;
17
+ /** Titulo do Input */
18
+ this.label = "Label";
19
+ /** Torna o input obrigatorio */
20
+ this.required = model(false);
21
+ //[ Value ]
22
+ this._model = null;
23
+ this.invalid = false;
24
+ //[ ControlValueAccessor ]
25
+ /** Acionado quando um elemento perde o foco. */
26
+ this.blur = output();
27
+ /** Emitido quando o valor é alterado. */
28
+ this.change = output();
29
+ this.onChange = (v) => { return; };
30
+ this.onTouch = (v) => { return; };
31
+ effect(() => {
32
+ if (this.control) {
33
+ this.invalid = this.control.invalid;
34
+ }
35
+ });
36
+ }
37
+ ngOnInit() {
38
+ if (!this.control && this.controlContainer && this.formControlName) {
39
+ this.control = this.controlContainer.control.get(this.formControlName);
40
+ }
41
+ if (this.control) {
42
+ this.required.set(this.control.hasValidator(Validators.required));
43
+ this.invalid = this.control.invalid;
44
+ this.control.events.subscribe({ next: (event) => { this.RunValidation(); } });
45
+ }
46
+ }
47
+ RunValidation() {
48
+ this.required.set(this.control.hasValidator(Validators.required));
49
+ this.invalid = this.control.invalid;
50
+ }
51
+ propagateChange(obj) { this.onChange(obj); this.change.emit(obj); ; }
52
+ registerOnChange(fn) { this.onChange = fn; }
53
+ registerOnTouched(fn) { this.onTouch = fn; }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomSignalInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CustomSignalInput, selector: "ng-component", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, submitted: { classPropertyName: "submitted", publicName: "submitted", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "formControl", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { required: "requiredChange", blur: "blur", change: "change" }, providers: InputProviderFactory.GetProvider(CustomSignalInput), ngImport: i0, template: '', isInline: true }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomSignalInput, decorators: [{
58
+ type: Component,
59
+ args: [{ template: '', providers: InputProviderFactory.GetProvider(CustomSignalInput) }]
60
+ }], ctorParameters: () => [], propDecorators: { loading: [{
61
+ type: Input
62
+ }], disabled: [{
63
+ type: Input
64
+ }], submitted: [{
65
+ type: Input
66
+ }], label: [{
67
+ type: Input
68
+ }], formControlName: [{
69
+ type: Input
70
+ }], control: [{
71
+ type: Input,
72
+ args: ['formControl']
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNpZ25hbC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0cy9jdXN0b20tc2lnbmFsLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUE0QyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsZUFBZSxFQUEwQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHaEUsTUFBTSxPQUFnQixpQkFBaUI7SUFhckMsVUFBVSxDQUFDLEdBQU0sSUFBVSxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBSXZGLElBQUksS0FBSyxLQUFtQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFDO0lBQ2xELElBQUksS0FBSyxDQUFDLEtBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFTbEQ7UUExQkEsV0FBVztRQUNYLHNDQUFzQztRQUM3QixZQUFPLEdBQWMsS0FBSyxDQUFDO1FBQ3BDLGtDQUFrQztRQUN6QixhQUFRLEdBQWEsS0FBSyxDQUFDO1FBQ2xDLHlDQUF5QztRQUNsQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFzQjtRQUNiLFVBQUssR0FBZ0IsT0FBTyxDQUFDO1FBQ3RDLGdDQUFnQztRQUNoQyxhQUFRLEdBQTRCLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQUl6RCxXQUFXO1FBQ0QsV0FBTSxHQUFhLElBQUksQ0FBQztRQW1DbEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQiwwQkFBMEI7UUFDMUIsZ0RBQWdEO1FBQ2hELFNBQUksR0FBMEIsTUFBTSxFQUFLLENBQUM7UUFDMUMseUNBQXlDO1FBQ3pDLFdBQU0sR0FBd0IsTUFBTSxFQUFLLENBQUM7UUFHMUMsYUFBUSxHQUF5QixDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUN4RCxZQUFPLEdBQTBCLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBakN0RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUM7Z0JBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUVyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQVNELGVBQWUsQ0FBQyxHQUFNLElBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFJNUUsZ0JBQWdCLENBQUUsRUFBd0IsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDbEUsaUJBQWlCLENBQUMsRUFBd0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7K0dBL0Q5QyxpQkFBaUI7bUdBQWpCLGlCQUFpQixzaENBREQsb0JBQW9CLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLDBCQUFsRSxFQUFFOzs0RkFDSCxpQkFBaUI7a0JBRHRDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLG1CQUFtQixFQUFFO3dEQUloRixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFZSSxlQUFlO3NCQUF4QixLQUFLO2dCQUdJLE9BQU87c0JBRGhCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0RW1pdHRlclJlZiwgV3JpdGFibGVTaWduYWwsIGVmZmVjdCwgbW9kZWwsIG91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgSW5wdXRQcm92aWRlckZhY3RvcnkgfSBmcm9tIFwiLi9pbnB1dC1wcm92aWRlci1mYWN0b3J5XCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnLCBwcm92aWRlcnM6IElucHV0UHJvdmlkZXJGYWN0b3J5LkdldFByb3ZpZGVyKEN1c3RvbVNpZ25hbElucHV0KSB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3VzdG9tU2lnbmFsSW5wdXQ8VD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0e1xyXG4gIC8vWyBCYXNpYyBdXHJcbiAgLyoqIEV4aWJlIG8gc3Bpbm5lciBkZSBjYXJyZWdhbWVudG8gKi9cclxuICBASW5wdXQoKSBsb2FkaW5nICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogU2UgYXRpdm8gZGVzYWJpbGl0YSBvIElucHV0ICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKiogSW5kaWNhIHNlIG8gZm9ybXVsw6FyaW8gZm9pIGVudmlhZG8gKi9cclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogVGl0dWxvIGRvIElucHV0ICovXHJcbiAgQElucHV0KCkgbGFiZWwgICAgOiBzdHJpbmcgID0gXCJMYWJlbFwiO1xyXG4gIC8qKiBUb3JuYSBvIGlucHV0IG9icmlnYXRvcmlvICovXHJcbiAgcmVxdWlyZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpXHJcbiAgXHJcbiAgd3JpdGVWYWx1ZShvYmo6IFQpOiB2b2lkIHsgY29uc29sZS5lcnJvcihcIlsgQ29tcG9uZW50IHdyaXRlVmFsdWUgaXNudCBpbXBsZW1lbnRlZCBdXCIpIH1cclxuICBcclxuICAvL1sgVmFsdWUgXVxyXG4gIHByb3RlY3RlZCBfbW9kZWw6IFQgfCBudWxsID0gbnVsbDtcclxuICBnZXQgbW9kZWwoKTogVCB8IGFueSAgICAgIHsgcmV0dXJuIHRoaXMuX21vZGVsOyAgfVxyXG4gIHNldCBtb2RlbCh2YWx1ZTogVCB8IGFueSkgeyB0aGlzLl9tb2RlbCA9IHZhbHVlOyB9XHJcblxyXG4gIC8vWyBIYW5kbGUgRm9ybSAvIE5nTW9kZWwgXVxyXG4gIEBJbnB1dCgpICBmb3JtQ29udHJvbE5hbWUgOiBzdHJpbmc7XHJcbiAgcHVibGljICAgIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXI7XHJcbiAgQElucHV0KCdmb3JtQ29udHJvbCcpIFxyXG4gIHB1YmxpYyAgICBjb250cm9sICAgIDogQWJzdHJhY3RDb250cm9sO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmIDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIGVmZmVjdCgoKSA9PiB7IFxyXG4gICAgICBpZih0aGlzLmNvbnRyb2wpeyB0aGlzLmludmFsaWQgPSB0aGlzLmNvbnRyb2wuaW52YWxpZDsgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgaWYoIXRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2xDb250YWluZXIgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWUpeyBcclxuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKTsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHRoaXMuY29udHJvbCl7IFxyXG4gICAgICB0aGlzLnJlcXVpcmVkLnNldCh0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKTsgIFxyXG4gICAgICB0aGlzLmludmFsaWQgID0gdGhpcy5jb250cm9sLmludmFsaWQ7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2wuZXZlbnRzLnN1YnNjcmliZSh7IG5leHQ6IChldmVudCkgPT4geyB0aGlzLlJ1blZhbGlkYXRpb24oKTsgfSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgUnVuVmFsaWRhdGlvbigpOiB2b2lke1xyXG4gICAgdGhpcy5yZXF1aXJlZC5zZXQodGhpcy5jb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSk7IFxyXG4gICAgdGhpcy5pbnZhbGlkID0gdGhpcy5jb250cm9sLmludmFsaWQ7XHJcbiAgfVxyXG4gIFxyXG4gIGludmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgLy9bIENvbnRyb2xWYWx1ZUFjY2Vzc29yIF1cclxuICAvKiogQWNpb25hZG8gcXVhbmRvIHVtIGVsZW1lbnRvIHBlcmRlIG8gZm9jby4gKi9cclxuICBibHVyICA6IE91dHB1dEVtaXR0ZXJSZWY8VD4gPSBvdXRwdXQ8VD4oKTtcclxuICAvKiogRW1pdGlkbyBxdWFuZG8gbyB2YWxvciDDqSBhbHRlcmFkby4gKi9cclxuICBjaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8VD4gPSBvdXRwdXQ8VD4oKTtcclxuICBwcm9wYWdhdGVDaGFuZ2Uob2JqOiBUKTogdm9pZHsgdGhpcy5vbkNoYW5nZShvYmopOyB0aGlzLmNoYW5nZS5lbWl0KG9iaik7OyB9XHJcblxyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICh2OiBhbnkpID0+IHsgcmV0dXJuOyB9XHJcbiAgb25Ub3VjaCA6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKHY6IGFueSkgPT4geyByZXR1cm47IH1cclxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgKXsgdGhpcy5vbkNoYW5nZSA9IGZuIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgKXsgdGhpcy5vblRvdWNoICA9IGZuIH1cclxufVxyXG4iXX0=