@sapphire-ion/framework 1.2.41 → 1.2.43

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 (495) hide show
  1. package/build.ps1 +39 -0
  2. package/ng-package.json +10 -0
  3. package/package.json +43 -47
  4. package/src/lib/classes/comparison/comparison-operator.ts +17 -0
  5. package/src/lib/classes/comparison/comparison-value-type.ts +34 -0
  6. package/src/lib/classes/comparison/comparison.ts +45 -0
  7. package/src/lib/classes/comparison/properties/bool-property.ts +16 -0
  8. package/src/lib/classes/comparison/properties/date-property.ts +28 -0
  9. package/src/lib/classes/comparison/properties/datetime-property.ts +28 -0
  10. package/src/lib/classes/comparison/properties/decimal-property.ts +28 -0
  11. package/src/lib/classes/comparison/properties/enum-property.ts +28 -0
  12. package/src/lib/classes/comparison/properties/implicit-property.ts +13 -0
  13. package/src/lib/classes/comparison/properties/int-property.ts +28 -0
  14. package/src/lib/classes/comparison/properties/long-property.ts +28 -0
  15. package/src/lib/classes/comparison/properties/string-property.ts +16 -0
  16. package/src/lib/classes/comparison/properties/time-property.ts +28 -0
  17. package/{lib/classes/credentials.d.ts → src/lib/classes/credentials.ts} +5 -5
  18. package/src/lib/classes/environment.ts +37 -0
  19. package/src/lib/classes/filters/view-filtros.ts +18 -0
  20. package/src/lib/classes/infinite-scroll.ts +112 -0
  21. package/src/lib/classes/inputs/table-field-form-builder.ts +12 -0
  22. package/src/lib/classes/inputs/table-field.ts +62 -0
  23. package/src/lib/classes/page-option.ts +8 -0
  24. package/src/lib/classes/routes/default-routing-factory.ts +24 -0
  25. package/src/lib/classes/routes/id-preloader-configuration.ts +21 -0
  26. package/src/lib/classes/routes/route-data.ts +9 -0
  27. package/{themes → src/lib}/compiled-styles.scss +2551 -2551
  28. package/src/lib/components/carousel/carousel-image/carousel-image.component.html +4 -0
  29. package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +15 -0
  30. package/src/lib/components/carousel/carousel-item/carousel-item.component.html +3 -0
  31. package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +14 -0
  32. package/src/lib/components/carousel/carousel.component.html +22 -0
  33. package/src/lib/components/carousel/carousel.component.ts +83 -0
  34. package/src/lib/components/carousel/carousel.module.ts +20 -0
  35. package/src/lib/components/carousel/i-carousel-item.component.ts +8 -0
  36. package/src/lib/components/content-block/content-block.component.html +6 -0
  37. package/src/lib/components/content-block/content-block.component.ts +25 -0
  38. package/src/lib/components/default/default-list/abstract-list.ts +56 -0
  39. package/src/lib/components/default/default-list/default-list.component.html +60 -0
  40. package/src/lib/components/default/default-list/default-list.component.ts +72 -0
  41. package/src/lib/components/default/default-list/header-list/header-list.component.html +32 -0
  42. package/src/lib/components/default/default-list/header-list/header-list.component.ts +85 -0
  43. package/src/lib/components/default/default-list/list.ts +127 -0
  44. package/src/lib/components/default/default-pagination/default-pagination.component.html +52 -0
  45. package/src/lib/components/default/default-pagination/default-pagination.component.ts +118 -0
  46. package/src/lib/components/default/default-table/default-table.component.html +104 -0
  47. package/src/lib/components/default/default-table/default-table.component.ts +255 -0
  48. package/src/lib/components/default/default-table/th-filter/th-filter.component.html +69 -0
  49. package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +183 -0
  50. package/src/lib/components/default/default-view/abstract-view.ts +25 -0
  51. package/src/lib/components/default/default-view/default-view.component.html +111 -0
  52. package/src/lib/components/default/default-view/default-view.component.ts +44 -0
  53. package/src/lib/components/default/default-view/header-view/header-view.component.html +64 -0
  54. package/src/lib/components/default/default-view/header-view/header-view.component.ts +57 -0
  55. package/src/lib/components/default/default-view/view.ts +183 -0
  56. package/src/lib/components/default/default.module.ts +61 -0
  57. package/src/lib/components/default-page/default.page.html +63 -0
  58. package/src/lib/components/default-page/default.page.ts +84 -0
  59. package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +44 -0
  60. package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +21 -0
  61. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +5 -0
  62. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +17 -0
  63. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +12 -0
  64. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +35 -0
  65. package/src/lib/components/drawer/drawer-group/drawer-group.component.html +79 -0
  66. package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +49 -0
  67. package/src/lib/components/drawer/drawer.component.html +120 -0
  68. package/src/lib/components/drawer/drawer.component.ts +157 -0
  69. package/src/lib/components/drawer/menu.ts +20 -0
  70. package/src/lib/components/filter/filter.component.html +43 -0
  71. package/src/lib/components/filter/filter.component.ts +141 -0
  72. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +35 -0
  73. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +19 -0
  74. package/src/lib/components/image/image.component.html +17 -0
  75. package/src/lib/components/image/image.component.ts +95 -0
  76. package/src/lib/components/info-popover/info-popover.component.html +23 -0
  77. package/src/lib/components/info-popover/info-popover.component.ts +75 -0
  78. package/src/lib/components/inputs/custom-input.ts +94 -0
  79. package/src/lib/components/inputs/input-bool/input-bool.component.html +26 -0
  80. package/src/lib/components/inputs/input-bool/input-bool.component.ts +39 -0
  81. package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +14 -0
  82. package/src/lib/components/inputs/input-cep/input-cep.component.html +27 -0
  83. package/src/lib/components/inputs/input-cep/input-cep.component.ts +41 -0
  84. package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +4 -0
  85. package/src/lib/components/inputs/input-color/input-color.component.html +79 -0
  86. package/src/lib/components/inputs/input-color/input-color.component.ts +544 -0
  87. package/{lib/components/inputs/input-configuration.d.ts → src/lib/components/inputs/input-configuration.ts} +23 -10
  88. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +28 -0
  89. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +99 -0
  90. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +4 -0
  91. package/src/lib/components/inputs/input-date/input-date.component.html +88 -0
  92. package/src/lib/components/inputs/input-date/input-date.component.ts +241 -0
  93. package/src/lib/components/inputs/input-date/input-date.configuration.ts +6 -0
  94. package/src/lib/components/inputs/input-decimal/input-decimal.component.html +31 -0
  95. package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +249 -0
  96. package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +47 -0
  97. package/src/lib/components/inputs/input-default-configurations.ts +15 -0
  98. package/src/lib/components/inputs/input-file/download-button/download-button.component.html +56 -0
  99. package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +89 -0
  100. package/src/lib/components/inputs/input-file/input-file.component.html +59 -0
  101. package/src/lib/components/inputs/input-file/input-file.component.ts +96 -0
  102. package/src/lib/components/inputs/input-file/input-file.configuration.ts +25 -0
  103. package/src/lib/components/inputs/input-icon/fluenticons.ts +3733 -0
  104. package/src/lib/components/inputs/input-icon/input-icon.component.html +8 -0
  105. package/src/lib/components/inputs/input-icon/input-icon.component.ts +52 -0
  106. package/src/lib/components/inputs/input-icon/ionicons.ts +1359 -0
  107. package/src/lib/components/inputs/input-provider-factory.ts +12 -0
  108. package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +19 -0
  109. package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +16 -0
  110. package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +19 -0
  111. package/src/lib/components/inputs/input-select/input-select.component.html +176 -0
  112. package/src/lib/components/inputs/input-select/input-select.component.ts +361 -0
  113. package/src/lib/components/inputs/input-select/input.select.configuration.ts +292 -0
  114. package/src/lib/components/inputs/input-string/input-string.component.html +27 -0
  115. package/src/lib/components/inputs/input-string/input-string.component.ts +31 -0
  116. package/src/lib/components/inputs/input-string/input-string.configuration.ts +18 -0
  117. package/src/lib/components/inputs/input-telefone/input-telefone.component.html +29 -0
  118. package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +63 -0
  119. package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +8 -0
  120. package/src/lib/components/inputs/input-textarea/input-textarea.component.html +27 -0
  121. package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +31 -0
  122. package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +7 -0
  123. package/src/lib/components/inputs/input-type.ts +22 -0
  124. package/src/lib/components/inputs/input-validators.ts +111 -0
  125. package/src/lib/components/inputs/inputs.module.ts +74 -0
  126. package/src/lib/components/loading/loading.component.html +28 -0
  127. package/src/lib/components/loading/loading.component.ts +29 -0
  128. package/src/lib/components/login/login-admin/login-admin.component.html +28 -0
  129. package/src/lib/components/login/login-admin/login-admin.component.ts +51 -0
  130. package/src/lib/components/login/login.component.html +104 -0
  131. package/src/lib/components/login/login.component.ts +96 -0
  132. package/src/lib/components/main-content/main-content.component.html +145 -0
  133. package/src/lib/components/main-content/main-content.component.ts +93 -0
  134. package/src/lib/components/popover/sion-popover/sion-popover.component.html +21 -0
  135. package/src/lib/components/popover/sion-popover/sion-popover.component.ts +182 -0
  136. package/src/lib/components/popover/sion-popover.module.ts +12 -0
  137. package/src/lib/components/sion-card/sion-card.component.html +12 -0
  138. package/src/lib/components/sion-card/sion-card.component.ts +23 -0
  139. package/src/lib/components/stepper/step/step.component.html +11 -0
  140. package/src/lib/components/stepper/step/step.component.ts +44 -0
  141. package/src/lib/components/stepper/stepper.component.html +3 -0
  142. package/src/lib/components/stepper/stepper.component.ts +37 -0
  143. package/src/lib/components/stepper/stepper.module.ts +15 -0
  144. package/src/lib/components/tabs/tab/tab.component.html +8 -0
  145. package/src/lib/components/tabs/tab/tab.component.ts +28 -0
  146. package/src/lib/components/tabs/tabs/tabs.component.html +14 -0
  147. package/src/lib/components/tabs/tabs/tabs.component.ts +42 -0
  148. package/src/lib/components/tabs/tabs.module.ts +15 -0
  149. package/src/lib/components/text-tooltip/text-tooltip.component.html +8 -0
  150. package/src/lib/components/text-tooltip/text-tooltip.component.scss +0 -0
  151. package/src/lib/components/text-tooltip/text-tooltip.component.ts +45 -0
  152. package/src/lib/components/tooltip/tooltip.component.html +53 -0
  153. package/src/lib/components/tooltip/tooltip.component.ts +16 -0
  154. package/src/lib/core.module.ts +29 -0
  155. package/src/lib/directives/ng-var.directive.ts +26 -0
  156. package/src/lib/guards/auth.guard.ts +19 -0
  157. package/src/lib/guards/error.interceptor.ts +108 -0
  158. package/src/lib/guards/token.interceptor.ts +28 -0
  159. package/src/lib/index.ts +190 -0
  160. package/src/lib/pipes/secure.pipe.ts +39 -0
  161. package/src/lib/services/auth.service.ts +153 -0
  162. package/src/lib/services/crypto.service.ts +164 -0
  163. package/src/lib/services/environment.service.ts +17 -0
  164. package/src/lib/services/generic.service.ts +85 -0
  165. package/src/lib/services/modal-focus-trap.service.ts +65 -0
  166. package/src/lib/services/popover-focus-trap.service.ts +65 -0
  167. package/src/lib/services/route/route.cache.service.ts +17 -0
  168. package/src/lib/services/route/route.provider.service.ts +49 -0
  169. package/src/lib/services/usuario.service.ts +44 -0
  170. package/src/lib/services/utils.service.ts +216 -0
  171. package/src/lib/services/web/api-url-provider.service.ts +48 -0
  172. package/src/lib/services/web/http.ativo.service.ts +37 -0
  173. package/src/lib/services/web/http.service.ts +193 -0
  174. package/src/lib/services/web/storage.service.ts +206 -0
  175. package/src/public-api.ts +5 -0
  176. package/tailwind.config.js +27 -0
  177. package/tsconfig.lib.json +29 -0
  178. package/tsconfig.lib.prod.json +23 -0
  179. package/tsconfig.spec.json +27 -0
  180. package/esm2022/lib/classes/comparison/comparison-operator.mjs +0 -18
  181. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +0 -25
  182. package/esm2022/lib/classes/comparison/comparison.mjs +0 -41
  183. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +0 -15
  184. package/esm2022/lib/classes/comparison/properties/date-property.mjs +0 -27
  185. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +0 -27
  186. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +0 -27
  187. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +0 -27
  188. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +0 -12
  189. package/esm2022/lib/classes/comparison/properties/int-property.mjs +0 -27
  190. package/esm2022/lib/classes/comparison/properties/long-property.mjs +0 -27
  191. package/esm2022/lib/classes/comparison/properties/string-property.mjs +0 -15
  192. package/esm2022/lib/classes/comparison/properties/time-property.mjs +0 -27
  193. package/esm2022/lib/classes/credentials.mjs +0 -2
  194. package/esm2022/lib/classes/environment.mjs +0 -34
  195. package/esm2022/lib/classes/filters/view-filtros.mjs +0 -18
  196. package/esm2022/lib/classes/infinite-scroll.mjs +0 -90
  197. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +0 -10
  198. package/esm2022/lib/classes/inputs/table-field.mjs +0 -79
  199. package/esm2022/lib/classes/page-option.mjs +0 -2
  200. package/esm2022/lib/classes/routes/default-routing-factory.mjs +0 -23
  201. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +0 -22
  202. package/esm2022/lib/classes/routes/route-data.mjs +0 -9
  203. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +0 -18
  204. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +0 -15
  205. package/esm2022/lib/components/carousel/carousel.component.mjs +0 -79
  206. package/esm2022/lib/components/carousel/carousel.module.mjs +0 -31
  207. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +0 -16
  208. package/esm2022/lib/components/content-block/content-block.component.mjs +0 -27
  209. package/esm2022/lib/components/default/default-list/abstract-list.mjs +0 -49
  210. package/esm2022/lib/components/default/default-list/default-list.component.mjs +0 -95
  211. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +0 -98
  212. package/esm2022/lib/components/default/default-list/list.mjs +0 -120
  213. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +0 -123
  214. package/esm2022/lib/components/default/default-table/default-table.component.mjs +0 -216
  215. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +0 -206
  216. package/esm2022/lib/components/default/default-view/abstract-view.mjs +0 -22
  217. package/esm2022/lib/components/default/default-view/default-view.component.mjs +0 -63
  218. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +0 -78
  219. package/esm2022/lib/components/default/default-view/view.mjs +0 -188
  220. package/esm2022/lib/components/default/default.module.mjs +0 -98
  221. package/esm2022/lib/components/default-page/default.page.mjs +0 -75
  222. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +0 -60
  223. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +0 -31
  224. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +0 -15
  225. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +0 -34
  226. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +0 -52
  227. package/esm2022/lib/components/drawer/drawer.component.mjs +0 -156
  228. package/esm2022/lib/components/drawer/menu.mjs +0 -15
  229. package/esm2022/lib/components/filter/filter.component.mjs +0 -145
  230. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +0 -17
  231. package/esm2022/lib/components/image/image.component.mjs +0 -91
  232. package/esm2022/lib/components/info-popover/info-popover.component.mjs +0 -91
  233. package/esm2022/lib/components/inputs/custom-input.mjs +0 -85
  234. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +0 -46
  235. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +0 -16
  236. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +0 -50
  237. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +0 -4
  238. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -481
  239. package/esm2022/lib/components/inputs/input-configuration.mjs +0 -2
  240. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +0 -116
  241. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +0 -6
  242. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +0 -216
  243. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +0 -8
  244. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +0 -243
  245. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +0 -50
  246. package/esm2022/lib/components/inputs/input-default-configurations.mjs +0 -14
  247. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +0 -93
  248. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +0 -101
  249. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +0 -24
  250. package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +0 -3734
  251. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +0 -60
  252. package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +0 -1360
  253. package/esm2022/lib/components/inputs/input-provider-factory.mjs +0 -12
  254. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +0 -16
  255. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +0 -16
  256. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +0 -16
  257. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +0 -373
  258. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +0 -229
  259. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +0 -41
  260. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +0 -18
  261. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +0 -74
  262. package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +0 -12
  263. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +0 -41
  264. package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +0 -7
  265. package/esm2022/lib/components/inputs/input-type.mjs +0 -24
  266. package/esm2022/lib/components/inputs/input-validators.mjs +0 -121
  267. package/esm2022/lib/components/inputs/inputs.module.mjs +0 -133
  268. package/esm2022/lib/components/loading/loading.component.mjs +0 -34
  269. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +0 -52
  270. package/esm2022/lib/components/login/login.component.mjs +0 -99
  271. package/esm2022/lib/components/main-content/main-content.component.mjs +0 -100
  272. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +0 -182
  273. package/esm2022/lib/components/popover/sion-popover.module.mjs +0 -21
  274. package/esm2022/lib/components/sion-card/sion-card.component.mjs +0 -26
  275. package/esm2022/lib/components/stepper/step/step.component.mjs +0 -43
  276. package/esm2022/lib/components/stepper/stepper.component.mjs +0 -36
  277. package/esm2022/lib/components/stepper/stepper.module.mjs +0 -25
  278. package/esm2022/lib/components/tabs/tab/tab.component.mjs +0 -41
  279. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +0 -56
  280. package/esm2022/lib/components/tabs/tabs.module.mjs +0 -22
  281. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +0 -51
  282. package/esm2022/lib/components/tooltip/tooltip.component.mjs +0 -21
  283. package/esm2022/lib/core.module.mjs +0 -38
  284. package/esm2022/lib/directives/ng-var.directive.mjs +0 -29
  285. package/esm2022/lib/guards/auth.guard.mjs +0 -26
  286. package/esm2022/lib/guards/error.interceptor.mjs +0 -107
  287. package/esm2022/lib/guards/token.interceptor.mjs +0 -25
  288. package/esm2022/lib/index.mjs +0 -187
  289. package/esm2022/lib/pipes/secure.pipe.mjs +0 -42
  290. package/esm2022/lib/services/auth.service.mjs +0 -150
  291. package/esm2022/lib/services/environment.service.mjs +0 -26
  292. package/esm2022/lib/services/generic.service.mjs +0 -84
  293. package/esm2022/lib/services/modal-focus-trap.service.mjs +0 -62
  294. package/esm2022/lib/services/popover-focus-trap.service.mjs +0 -62
  295. package/esm2022/lib/services/route/route.cache.service.mjs +0 -15
  296. package/esm2022/lib/services/route/route.provider.service.mjs +0 -42
  297. package/esm2022/lib/services/usuario.service.mjs +0 -49
  298. package/esm2022/lib/services/utils.service.mjs +0 -190
  299. package/esm2022/lib/services/web/api-url-provider.service.mjs +0 -29
  300. package/esm2022/lib/services/web/http.ativo.service.mjs +0 -37
  301. package/esm2022/lib/services/web/http.service.mjs +0 -177
  302. package/esm2022/lib/services/web/storage.service.mjs +0 -183
  303. package/esm2022/public-api.mjs +0 -5
  304. package/esm2022/sapphire-ion-framework.mjs +0 -5
  305. package/fesm2022/sapphire-ion-framework.mjs +0 -12209
  306. package/fesm2022/sapphire-ion-framework.mjs.map +0 -1
  307. package/index.d.ts +0 -5
  308. package/lib/classes/comparison/comparison-operator.d.ts +0 -9
  309. package/lib/classes/comparison/comparison-value-type.d.ts +0 -23
  310. package/lib/classes/comparison/comparison.d.ts +0 -25
  311. package/lib/classes/comparison/properties/bool-property.d.ts +0 -7
  312. package/lib/classes/comparison/properties/date-property.d.ts +0 -11
  313. package/lib/classes/comparison/properties/datetime-property.d.ts +0 -11
  314. package/lib/classes/comparison/properties/decimal-property.d.ts +0 -11
  315. package/lib/classes/comparison/properties/enum-property.d.ts +0 -11
  316. package/lib/classes/comparison/properties/implicit-property.d.ts +0 -6
  317. package/lib/classes/comparison/properties/int-property.d.ts +0 -11
  318. package/lib/classes/comparison/properties/long-property.d.ts +0 -11
  319. package/lib/classes/comparison/properties/string-property.d.ts +0 -7
  320. package/lib/classes/comparison/properties/time-property.d.ts +0 -11
  321. package/lib/classes/environment.d.ts +0 -14
  322. package/lib/classes/filters/view-filtros.d.ts +0 -10
  323. package/lib/classes/infinite-scroll.d.ts +0 -26
  324. package/lib/classes/inputs/table-field-form-builder.d.ts +0 -5
  325. package/lib/classes/inputs/table-field.d.ts +0 -20
  326. package/lib/classes/page-option.d.ts +0 -7
  327. package/lib/classes/routes/default-routing-factory.d.ts +0 -8
  328. package/lib/classes/routes/id-preloader-configuration.d.ts +0 -28
  329. package/lib/classes/routes/route-data.d.ts +0 -5
  330. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +0 -10
  331. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +0 -9
  332. package/lib/components/carousel/carousel.component.d.ts +0 -32
  333. package/lib/components/carousel/carousel.module.d.ts +0 -12
  334. package/lib/components/carousel/i-carousel-item.component.d.ts +0 -9
  335. package/lib/components/content-block/content-block.component.d.ts +0 -15
  336. package/lib/components/default/default-list/abstract-list.d.ts +0 -21
  337. package/lib/components/default/default-list/default-list.component.d.ts +0 -47
  338. package/lib/components/default/default-list/header-list/header-list.component.d.ts +0 -45
  339. package/lib/components/default/default-list/list.d.ts +0 -40
  340. package/lib/components/default/default-pagination/default-pagination.component.d.ts +0 -36
  341. package/lib/components/default/default-table/default-table.component.d.ts +0 -90
  342. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +0 -23
  343. package/lib/components/default/default-view/abstract-view.d.ts +0 -18
  344. package/lib/components/default/default-view/default-view.component.d.ts +0 -32
  345. package/lib/components/default/default-view/header-view/header-view.component.d.ts +0 -29
  346. package/lib/components/default/default-view/view.d.ts +0 -59
  347. package/lib/components/default/default.module.d.ts +0 -31
  348. package/lib/components/default-page/default.page.d.ts +0 -35
  349. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +0 -14
  350. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +0 -10
  351. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +0 -9
  352. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +0 -13
  353. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +0 -22
  354. package/lib/components/drawer/drawer.component.d.ts +0 -31
  355. package/lib/components/drawer/menu.d.ts +0 -9
  356. package/lib/components/filter/filter.component.d.ts +0 -29
  357. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +0 -8
  358. package/lib/components/image/image.component.d.ts +0 -23
  359. package/lib/components/info-popover/info-popover.component.d.ts +0 -15
  360. package/lib/components/inputs/custom-input.d.ts +0 -40
  361. package/lib/components/inputs/input-bool/input-bool.component.d.ts +0 -16
  362. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +0 -17
  363. package/lib/components/inputs/input-cep/input-cep.component.d.ts +0 -18
  364. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +0 -3
  365. package/lib/components/inputs/input-color/input-color.component.d.ts +0 -77
  366. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +0 -19
  367. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +0 -5
  368. package/lib/components/inputs/input-date/input-date.component.d.ts +0 -60
  369. package/lib/components/inputs/input-date/input-date.configuration.d.ts +0 -7
  370. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +0 -26
  371. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +0 -28
  372. package/lib/components/inputs/input-default-configurations.d.ts +0 -13
  373. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +0 -37
  374. package/lib/components/inputs/input-file/input-file.component.d.ts +0 -27
  375. package/lib/components/inputs/input-file/input-file.configuration.d.ts +0 -8
  376. package/lib/components/inputs/input-icon/fluenticons.d.ts +0 -1
  377. package/lib/components/inputs/input-icon/input-icon.component.d.ts +0 -20
  378. package/lib/components/inputs/input-icon/ionicons.d.ts +0 -1
  379. package/lib/components/inputs/input-provider-factory.d.ts +0 -4
  380. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +0 -18
  381. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +0 -14
  382. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +0 -18
  383. package/lib/components/inputs/input-select/input-select.component.d.ts +0 -83
  384. package/lib/components/inputs/input-select/input.select.configuration.d.ts +0 -122
  385. package/lib/components/inputs/input-string/input-string.component.d.ts +0 -14
  386. package/lib/components/inputs/input-string/input-string.configuration.d.ts +0 -14
  387. package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +0 -19
  388. package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +0 -9
  389. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +0 -14
  390. package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +0 -4
  391. package/lib/components/inputs/input-type.d.ts +0 -22
  392. package/lib/components/inputs/input-validators.d.ts +0 -25
  393. package/lib/components/inputs/inputs.module.d.ts +0 -33
  394. package/lib/components/loading/loading.component.d.ts +0 -18
  395. package/lib/components/login/login-admin/login-admin.component.d.ts +0 -20
  396. package/lib/components/login/login.component.d.ts +0 -29
  397. package/lib/components/main-content/main-content.component.d.ts +0 -27
  398. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +0 -43
  399. package/lib/components/popover/sion-popover.module.d.ts +0 -9
  400. package/lib/components/sion-card/sion-card.component.d.ts +0 -11
  401. package/lib/components/stepper/step/step.component.d.ts +0 -15
  402. package/lib/components/stepper/stepper.component.d.ts +0 -14
  403. package/lib/components/stepper/stepper.module.d.ts +0 -10
  404. package/lib/components/tabs/tab/tab.component.d.ts +0 -19
  405. package/lib/components/tabs/tabs/tabs.component.d.ts +0 -18
  406. package/lib/components/tabs/tabs.module.d.ts +0 -12
  407. package/lib/components/text-tooltip/text-tooltip.component.d.ts +0 -16
  408. package/lib/components/tooltip/tooltip.component.d.ts +0 -7
  409. package/lib/core.module.d.ts +0 -16
  410. package/lib/directives/ng-var.directive.d.ts +0 -12
  411. package/lib/guards/auth.guard.d.ts +0 -11
  412. package/lib/guards/error.interceptor.d.ts +0 -32
  413. package/lib/guards/token.interceptor.d.ts +0 -11
  414. package/lib/index.d.ts +0 -117
  415. package/lib/pipes/secure.pipe.d.ts +0 -15
  416. package/lib/services/auth.service.d.ts +0 -47
  417. package/lib/services/environment.service.d.ts +0 -10
  418. package/lib/services/generic.service.d.ts +0 -22
  419. package/lib/services/modal-focus-trap.service.d.ts +0 -13
  420. package/lib/services/popover-focus-trap.service.d.ts +0 -13
  421. package/lib/services/route/route.cache.service.d.ts +0 -7
  422. package/lib/services/route/route.provider.service.d.ts +0 -13
  423. package/lib/services/usuario.service.d.ts +0 -21
  424. package/lib/services/utils.service.d.ts +0 -53
  425. package/lib/services/web/api-url-provider.service.d.ts +0 -13
  426. package/lib/services/web/http.ativo.service.d.ts +0 -20
  427. package/lib/services/web/http.service.d.ts +0 -59
  428. package/lib/services/web/storage.service.d.ts +0 -46
  429. package/public-api.d.ts +0 -1
  430. /package/{themes → src/lib}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  431. /package/{themes → src/lib}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  432. /package/{themes → src/lib}/components/carousel/carousel.component.scss +0 -0
  433. /package/{themes → src/lib}/components/content-block/content-block.component.scss +0 -0
  434. /package/{themes → src/lib}/components/default/default-list/default-list.component.scss +0 -0
  435. /package/{themes → src/lib}/components/default/default-list/header-list/header-list.component.scss +0 -0
  436. /package/{themes → src/lib}/components/default/default-pagination/default-pagination.component.scss +0 -0
  437. /package/{themes → src/lib}/components/default/default-table/default-table.component.scss +0 -0
  438. /package/{themes → src/lib}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
  439. /package/{themes → src/lib}/components/default/default-view/default-view.component.scss +0 -0
  440. /package/{themes → src/lib}/components/default/default-view/header-view/header-view.component.scss +0 -0
  441. /package/{themes → src/lib}/components/default-page/default.page.scss +0 -0
  442. /package/{themes → src/lib}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
  443. /package/{themes → src/lib}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  444. /package/{themes → src/lib}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
  445. /package/{themes → src/lib}/components/drawer/drawer.component.scss +0 -0
  446. /package/{themes → src/lib}/components/filter/filter.component.scss +0 -0
  447. /package/{themes → src/lib}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
  448. /package/{themes → src/lib}/components/image/image.component.scss +0 -0
  449. /package/{themes → src/lib}/components/info-popover/info-popover.component.scss +0 -0
  450. /package/{themes → src/lib}/components/inputs/input-bool/input-bool.component.scss +0 -0
  451. /package/{themes → src/lib}/components/inputs/input-cep/input-cep.component.scss +0 -0
  452. /package/{themes → src/lib}/components/inputs/input-color/input-color.component.scss +0 -0
  453. /package/{themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss → src/lib/components/inputs/input-color/input-color.configuration.ts} +0 -0
  454. /package/{themes/components/inputs/input-icon/input-icon.component.scss → src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss} +0 -0
  455. /package/{themes → src/lib}/components/inputs/input-date/input-date.component.scss +0 -0
  456. /package/{themes → src/lib}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
  457. /package/{themes → src/lib}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
  458. /package/{themes → src/lib}/components/inputs/input-file/input-file.component.scss +0 -0
  459. /package/{themes/components/inputs/input-string/input-string.component.scss → src/lib/components/inputs/input-icon/input-icon.component.scss} +0 -0
  460. /package/{themes → src/lib}/components/inputs/input-select/input-select.component.scss +0 -0
  461. /package/{themes/components/inputs/input-telefone/input-telefone.component.scss → src/lib/components/inputs/input-string/input-string.component.scss} +0 -0
  462. /package/{themes/components/loading/loading.component.scss → src/lib/components/inputs/input-telefone/input-telefone.component.scss} +0 -0
  463. /package/{themes → src/lib}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  464. /package/{themes → src/lib}/components/inputs/inputs.scss +0 -0
  465. /package/{themes/components/sion-card/sion-card.component.scss → src/lib/components/loading/loading.component.scss} +0 -0
  466. /package/{themes → src/lib}/components/login/login-admin/login-admin.component.scss +0 -0
  467. /package/{themes → src/lib}/components/login/login.component.scss +0 -0
  468. /package/{themes → src/lib}/components/main-content/main-content.component.scss +0 -0
  469. /package/{themes → src/lib}/components/popover/sion-popover/sion-popover.component.scss +0 -0
  470. /package/{themes/components/stepper/stepper.component.scss → src/lib/components/sion-card/sion-card.component.scss} +0 -0
  471. /package/{themes → src/lib}/components/stepper/step/step.component.scss +0 -0
  472. /package/{themes/components/tabs/tab/tab.component.scss → src/lib/components/stepper/stepper.component.scss} +0 -0
  473. /package/{themes/components/text-tooltip/text-tooltip.component.scss → src/lib/components/tabs/tab/tab.component.scss} +0 -0
  474. /package/{themes → src/lib}/components/tabs/tabs/tabs.component.scss +0 -0
  475. /package/{themes → src/lib}/components/tooltip/tooltip.component.scss +0 -0
  476. /package/{themes → src/lib}/styles/components.scss +0 -0
  477. /package/{themes → src/lib}/styles/core.styles.scss +0 -0
  478. /package/{themes → src/lib}/styles/ionic/ion-action-sheet.scss +0 -0
  479. /package/{themes → src/lib}/styles/ionic/ion-alert.scss +0 -0
  480. /package/{themes → src/lib}/styles/ionic/ion-button.scss +0 -0
  481. /package/{themes → src/lib}/styles/ionic/ion-card.scss +0 -0
  482. /package/{themes → src/lib}/styles/ionic/ion-content.scss +0 -0
  483. /package/{themes → src/lib}/styles/ionic/ion-datetime.scss +0 -0
  484. /package/{themes → src/lib}/styles/ionic/ion-item.scss +0 -0
  485. /package/{themes → src/lib}/styles/ionic/ion-list.scss +0 -0
  486. /package/{themes → src/lib}/styles/ionic/ion-modal.scss +0 -0
  487. /package/{themes → src/lib}/styles/ionic/ion-popover.scss +0 -0
  488. /package/{themes → src/lib}/styles/ionic/ion-progress-bar.scss +0 -0
  489. /package/{themes → src/lib}/styles/ionic/ion-searchbar.scss +0 -0
  490. /package/{themes → src/lib}/styles/ionic/ion-toast.scss +0 -0
  491. /package/{themes → src/lib}/styles/ionic.scss +0 -0
  492. /package/{themes → src/lib}/styles/login-default.scss +0 -0
  493. /package/{themes → src/lib}/styles/mixins.scss +0 -0
  494. /package/{themes → src/lib}/styles/styles.scss +0 -0
  495. /package/{themes → src/lib}/styles/translucid.scss +0 -0
@@ -1,156 +0,0 @@
1
- import { Component, computed, effect, EventEmitter, input, Input, Output, signal } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { CommonModule } from '@angular/common';
4
- import { IonicModule, NavController } from '@ionic/angular';
5
- import { Menu } from './menu';
6
- import { DrawerGroupComponent } from './drawer-group/drawer-group.component';
7
- import { LoadingComponent } from '../../components/loading/loading.component';
8
- import { SIonPopoverModule } from '../popover/sion-popover.module';
9
- import { Router, RouterLinkWithHref } from '@angular/router';
10
- import { GenericService } from '../../services/generic.service';
11
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/router";
14
- import * as i2 from "@ionic/angular";
15
- import * as i3 from "../../services/generic.service";
16
- import * as i4 from "@angular/common";
17
- import * as i5 from "@ngx-translate/core";
18
- import * as i6 from "../popover/sion-popover/sion-popover.component";
19
- import * as i7 from "@angular/forms";
20
- export class DrawerComponent {
21
- constructor(router, navController, genericService) {
22
- this.router = router;
23
- this.navController = navController;
24
- this.genericService = genericService;
25
- this.TranslationModule = {
26
- Permissao: 'Entities.Permissao.',
27
- PermissaoGrupo: 'Entities.PermissaoGrupo.',
28
- SemResultado: 'Messages.SemResultado'
29
- };
30
- this.loading = true;
31
- this.lstMenu = input();
32
- this.lstFlattenMenu = computed(() => { return FlattenMenus(this.lstMenu()); });
33
- this.colapsed = false;
34
- this.colapsedChange = new EventEmitter;
35
- this.useTranslation = false;
36
- this.CurrentGroupActive = null;
37
- this._enterColapsed = false;
38
- this.search = signal("");
39
- this.lstMenuFiltered = computed(() => {
40
- const str = this.search().toLowerCase();
41
- const lstS1 = this.lstMenu().map(p => {
42
- return new Menu(p.type, p.title, p.icon, p.lstMenu.filter(x => x.title.toLowerCase().includes(str)), p.route);
43
- });
44
- const lstS2 = lstS1.filter(p => p.lstMenu.length > 0);
45
- return lstS2;
46
- });
47
- effect(() => {
48
- //Handle Menu Title
49
- const lstFlat = this.lstFlattenMenu();
50
- const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));
51
- const group = FindMenuParent(this.lstMenu(), currentMenu);
52
- if (group) {
53
- this.CurrentGroupActive = group;
54
- }
55
- else {
56
- this.CurrentGroupActive = this.lstMenu()[0];
57
- }
58
- });
59
- }
60
- ToggleCollapsed() {
61
- this.colapsedChange.emit(!this._enterColapsed);
62
- this._enterColapsed = false;
63
- }
64
- onMouseEnter() {
65
- if (this.colapsed) {
66
- this._enterColapsed = true;
67
- this.colapsedChange.emit(false);
68
- }
69
- }
70
- onMouseLeave() {
71
- if (this._enterColapsed) {
72
- this._enterColapsed = false;
73
- this.colapsedChange.emit(true);
74
- }
75
- }
76
- HandleNav(item, event) {
77
- if (event.ctrlKey || event.metaKey) {
78
- window.open(window.origin + '/' + item.route, '_blank');
79
- event.preventDefault();
80
- return;
81
- }
82
- this.SetTitle(item);
83
- const vGroup = FindMenuParent(this.lstMenu(), item);
84
- if (vGroup) {
85
- this.CurrentGroupActive = vGroup;
86
- }
87
- this.navController.navigateRoot('/' + item.route);
88
- }
89
- SetTitle(item) {
90
- this.genericService.SetTitle(item.title);
91
- }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, deps: [{ token: i1.Router }, { token: i2.NavController }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DrawerComponent, isStandalone: true, selector: "drawer", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: false, isRequired: false, transformFunction: null }, lstMenu: { classPropertyName: "lstMenu", publicName: "lstMenu", isSignal: true, isRequired: false, transformFunction: null }, colapsed: { classPropertyName: "colapsed", publicName: "colapsed", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, useTranslation: { classPropertyName: "useTranslation", publicName: "useTranslation", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { colapsedChange: "colapsedChange" }, ngImport: i0, template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.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: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: DrawerGroupComponent, selector: "drawer-group", inputs: ["MenuGroup", "colapsed", "useTranslation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: i6.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, decorators: [{
96
- type: Component,
97
- args: [{ standalone: true, imports: [
98
- CommonModule,
99
- IonicModule,
100
- LoadingComponent,
101
- DrawerGroupComponent,
102
- TranslateModule,
103
- SIonPopoverModule,
104
- RouterLinkWithHref,
105
- ReactiveFormsModule,
106
- FormsModule
107
- ], selector: 'drawer', template: "<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <!-- [ Header ] -->\r\n <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n <div #anchor\r\n (click)=\"ToggleCollapsed()\" \r\n class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n\r\n <div class=\"size-full shrink flex pl-2 \">\r\n <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n @if (!ref.children.length) {\r\n <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ Content ] -->\r\n <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex gap-2\">\r\n <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n </div>\r\n\r\n @for (item of lstMenu(); track $index) {\r\n <div>\r\n <div\r\n [class.bg-active]=\"CurrentGroupActive == item\"\r\n #anchor (mouseenter)=\"popover.present($event)\" \r\n (mouseleave)=\"popover.dismiss()\" \r\n (click)=\"CurrentGroupActive = item\" \r\n class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n >\r\n <ion-icon [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n <div class=\"p-1\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </div>\r\n </sion-popover>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"size-full shrink relative\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- [ End ] -->\r\n <div class=\"shrink-0 w-full\">\r\n <ng-content select=\"[slot=drawer]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n <ng-template>\r\n <ion-content>\r\n <ion-card class=\"size-full m-0 overflow-hidden\">\r\n <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n @for (vGroup of lstMenuFiltered(); track $index) {\r\n <ion-card class=\"m-0 shrink-0\">\r\n <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n </ion-text>\r\n </div>\r\n @for (vMenu of vGroup.lstMenu; track $index) {\r\n <div \r\n (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n <ion-text>\r\n {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n </ion-text>\r\n </div>\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n }\r\n\r\n @if (lstMenuFiltered().length == 0) {\r\n <ion-text class=\"text-center text-medium\">\r\n {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n </ion-text>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-content>\r\n </ng-template>\r\n</ion-modal>", styles: [".bg-active{--color-primary: var(--ion-color-primary) !important;--step-1-opacity: .7 !important;--step-2-opacity: .3 !important}.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8}.menu{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;padding:.5rem;transition:--color-primary,--step-1-opacity,--step-2-opacity .2s ease-in-out;--inset: var(--color-primary) 0px 1.75px 2px 0px inset;box-shadow:var(--inset)}.toggle:hover{--color-primary: var(--ion-color-step-500) !important;transition:--color-primary .2s ease-in-out}.search-button{--inset2: var(--ion-color-medium) 0px 0px 5px -1px inset;box-shadow:var(--inset2)}.menu-search{position:relative;cursor:pointer;overflow:hidden}.menu-search.bg-active:after{content:\"\";position:absolute;top:50%;right:0;width:.375rem;height:75%;transform:translateY(-50%);border-radius:1rem;background-color:color-mix(in srgb,var(--ion-color-primary) 70%,transparent);opacity:1!important;filter:drop-shadow(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0px 0px 3px)}.menu-search.bg-active:before{content:\"\";position:absolute;top:50%;right:-2.3rem;width:5rem;height:7rem;transform:translateY(-50%);border-radius:1rem;opacity:.5!important;background:radial-gradient(color-mix(in srgb,var(--ion-color-primary) 70%,transparent) 0%,transparent 66%)}.menu-search.bg-inactive{--color-primary: var(--ion-color-step-250);--step-1-opacity: .5;--step-2-opacity: .4;--step-3-opacity: .8;position:relative}.menu-search.bg-inactive:after{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}.menu-search.bg-inactive:before{content:\"\";opacity:0;transition:opacity .2s ease-in-out;will-change:opacity}\n"] }]
108
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavController }, { type: i3.GenericService }], propDecorators: { loading: [{
109
- type: Input
110
- }], colapsed: [{
111
- type: Input
112
- }], colapsedChange: [{
113
- type: Output
114
- }], title: [{
115
- type: Input
116
- }], useTranslation: [{
117
- type: Input
118
- }] } });
119
- /**
120
- * Flattens a hierarchical Menu[] structure into a single array
121
- * containing all Menu items from the original array and all nested items
122
- * @param menus The array of Menu items to flatten
123
- * @returns A flattened array containing all Menu items
124
- */
125
- function FlattenMenus(menus) {
126
- const result = [];
127
- function addMenuItems(items) {
128
- for (const menu of items) {
129
- // Add current menu to result
130
- result.push(menu);
131
- // Process nested menus if they exist
132
- if (menu.lstMenu && menu.lstMenu.length > 0) {
133
- addMenuItems(menu.lstMenu);
134
- }
135
- }
136
- }
137
- addMenuItems(menus);
138
- return result;
139
- }
140
- function FindMenuParent(menus, targetMenu) {
141
- for (const menu of menus) {
142
- // Check if current menu has the target in its direct children
143
- if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {
144
- return menu;
145
- }
146
- // Search deeper in the hierarchy
147
- if (menu.lstMenu && menu.lstMenu.length > 0) {
148
- const parent = FindMenuParent(menu.lstMenu, targetMenu);
149
- if (parent) {
150
- return parent;
151
- }
152
- }
153
- }
154
- return null;
155
- }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxNQUFNLEVBQUUsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBa0JsRSxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsWUFDUyxNQUFjLEVBQ2IsYUFBNEIsRUFDNUIsY0FBOEI7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNi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QUFVLENBQUMsRUFBRSxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBJbnB1dFNpZ25hbCwgT3V0cHV0LCBzaWduYWwsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi9tZW51JztcclxuXHJcbmltcG9ydCB7IERyYXdlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgRHJhd2VyR3JvdXBDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBTSW9uUG9wb3Zlck1vZHVsZSxcclxuICAgIFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICdkcmF3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYXdlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29tcG9uZW50IHtcclxuXHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLicsXHJcbiAgICBTZW1SZXN1bHRhZG8gIDogJ01lc3NhZ2VzLlNlbVJlc3VsdGFkbydcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBsc3RNZW51OiBJbnB1dFNpZ25hbDxNZW51W10+ID0gaW5wdXQ8TWVudVtdPigpO1xyXG4gIGxzdEZsYXR0ZW5NZW51OiBTaWduYWw8TWVudVtdPiA9IGNvbXB1dGVkKCgpID0+IHsgcmV0dXJuIEZsYXR0ZW5NZW51cyh0aGlzLmxzdE1lbnUoKSkgfSk7XHJcblxyXG4gIEBJbnB1dCgpIGNvbGFwc2VkOiBib29sZWFuID0gZmFsc2U7ICBcclxuICBAT3V0cHV0KCkgY29sYXBzZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47ICBcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyBcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIC8vSGFuZGxlIE1lbnUgVGl0bGVcclxuICAgICAgY29uc3QgbHN0RmxhdCA9IHRoaXMubHN0RmxhdHRlbk1lbnUoKTtcclxuICAgICAgY29uc3QgY3VycmVudE1lbnUgPSBsc3RGbGF0LmZpbmQocCA9PiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJy8nICsgcC5yb3V0ZSkpO1xyXG4gICAgICBjb25zdCBncm91cDogTWVudSB8IG51bGwgPSBGaW5kTWVudVBhcmVudCh0aGlzLmxzdE1lbnUoKSwgY3VycmVudE1lbnUpO1xyXG4gICAgICBpZihncm91cCl7XHJcbiAgICAgICAgdGhpcy5DdXJyZW50R3JvdXBBY3RpdmUgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRoaXMuQ3VycmVudEdyb3VwQWN0aXZlID0gdGhpcy5sc3RNZW51KClbMF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBDdXJyZW50R3JvdXBBY3RpdmU6IE1lbnUgPSBudWxsO1xyXG5cclxuICBUb2dnbGVDb2xsYXBzZWQoKXtcclxuICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdCghdGhpcy5fZW50ZXJDb2xhcHNlZCk7XHJcbiAgICB0aGlzLl9lbnRlckNvbGFwc2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBfZW50ZXJDb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG9uTW91c2VFbnRlcigpe1xyXG4gICAgaWYodGhpcy5jb2xhcHNlZCl7XHJcbiAgICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbGFwc2VkQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbk1vdXNlTGVhdmUoKXtcclxuICAgIGlmKHRoaXMuX2VudGVyQ29sYXBzZWQpe1xyXG4gICAgICB0aGlzLl9lbnRlckNvbGFwc2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEhhbmRsZU5hdihpdGVtOiBNZW51IHwgYW55LCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KXtcclxuICAgICAgd2luZG93Lm9wZW4od2luZG93Lm9yaWdpbiArICcvJyArIGl0ZW0ucm91dGUsICdfYmxhbmsnKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5TZXRUaXRsZShpdGVtKTtcclxuICAgIGNvbnN0IHZHcm91cDogTWVudSB8IG51bGwgPSBGaW5kTWVudVBhcmVudCh0aGlzLmxzdE1lbnUoKSwgaXRlbSk7XHJcbiAgICBpZih2R3JvdXApe1xyXG4gICAgICB0aGlzLkN1cnJlbnRHcm91cEFjdGl2ZSA9IHZHcm91cDtcclxuICAgIH1cclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nICsgaXRlbS5yb3V0ZSk7XHJcbiAgfVxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbDxzdHJpbmc+KFwiXCIpO1xyXG4gIGxzdE1lbnVGaWx0ZXJlZDogU2lnbmFsPE1lbnVbXT4gPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdHIgPSB0aGlzLnNlYXJjaCgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBsc3RTMSA9IHRoaXMubHN0TWVudSgpLm1hcChwID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBNZW51KHAudHlwZSwgcC50aXRsZSwgcC5pY29uLCBwLmxzdE1lbnUuZmlsdGVyKHggPT4geC50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHN0cikpLCBwLnJvdXRlKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbHN0UzIgPSBsc3RTMS5maWx0ZXIocCA9PiBwLmxzdE1lbnUubGVuZ3RoID4gMCk7XHJcbiAgICByZXR1cm4gbHN0UzI7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGbGF0dGVucyBhIGhpZXJhcmNoaWNhbCBNZW51W10gc3RydWN0dXJlIGludG8gYSBzaW5nbGUgYXJyYXlcclxuICogY29udGFpbmluZyBhbGwgTWVudSBpdGVtcyBmcm9tIHRoZSBvcmlnaW5hbCBhcnJheSBhbmQgYWxsIG5lc3RlZCBpdGVtc1xyXG4gKiBAcGFyYW0gbWVudXMgVGhlIGFycmF5IG9mIE1lbnUgaXRlbXMgdG8gZmxhdHRlblxyXG4gKiBAcmV0dXJucyBBIGZsYXR0ZW5lZCBhcnJheSBjb250YWluaW5nIGFsbCBNZW51IGl0ZW1zXHJcbiAqL1xyXG5mdW5jdGlvbiBGbGF0dGVuTWVudXMobWVudXM6IE1lbnVbXSk6IE1lbnVbXSB7XHJcbiAgY29uc3QgcmVzdWx0OiBNZW51W10gPSBbXTtcclxuICBcclxuICBmdW5jdGlvbiBhZGRNZW51SXRlbXMoaXRlbXM6IE1lbnVbXSkge1xyXG4gICAgZm9yIChjb25zdCBtZW51IG9mIGl0ZW1zKSB7XHJcbiAgICAgIC8vIEFkZCBjdXJyZW50IG1lbnUgdG8gcmVzdWx0XHJcbiAgICAgIHJlc3VsdC5wdXNoKG1lbnUpO1xyXG4gICAgICBcclxuICAgICAgLy8gUHJvY2VzcyBuZXN0ZWQgbWVudXMgaWYgdGhleSBleGlzdFxyXG4gICAgICBpZiAobWVudS5sc3RNZW51ICYmIG1lbnUubHN0TWVudS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgYWRkTWVudUl0ZW1zKG1lbnUubHN0TWVudSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgYWRkTWVudUl0ZW1zKG1lbnVzKTtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBGaW5kTWVudVBhcmVudChtZW51czogTWVudVtdLCB0YXJnZXRNZW51OiBNZW51KTogTWVudSB8IG51bGwge1xyXG4gIGZvciAoY29uc3QgbWVudSBvZiBtZW51cykge1xyXG4gICAgLy8gQ2hlY2sgaWYgY3VycmVudCBtZW51IGhhcyB0aGUgdGFyZ2V0IGluIGl0cyBkaXJlY3QgY2hpbGRyZW5cclxuICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51LnNvbWUobSA9PiBtID09PSB0YXJnZXRNZW51KSkge1xyXG4gICAgICByZXR1cm4gbWVudTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gU2VhcmNoIGRlZXBlciBpbiB0aGUgaGllcmFyY2h5XHJcbiAgICBpZiAobWVudS5sc3RNZW51ICYmIG1lbnUubHN0TWVudS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IEZpbmRNZW51UGFyZW50KG1lbnUubHN0TWVudSwgdGFyZ2V0TWVudSk7XHJcbiAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICByZXR1cm4gcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIHJldHVybiBudWxsO1xyXG59IiwiPGRpdiBjbGFzcz1cImFic29sdXRlIGxlZnQtMCB0b3AtMCBoLWZ1bGwgYmctbGlnaHQgc2l6ZS1mdWxsIGZsZXggZmxleC1jb2wgcC0yICFwci0wIHctWzE5cmVtXSBvdmVyZmxvdy1oaWRkZW5cIiAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCI+XHJcbiAgPCEtLSBbIEhlYWRlciBdIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJzaHJpbmstMCB3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2ICNhbmNob3JcclxuICAgICAgKGNsaWNrKT1cIlRvZ2dsZUNvbGxhcHNlZCgpXCIgXHJcbiAgICAgIGNsYXNzPVwidG9nZ2xlIHNpemUtMTAgYXNwZWN0LXNxdWFyZSBzaHJpbmstMCByb3VuZGVkLXhsIGJnLWluYWN0aXZlIGdyYWRpZW50LWJhY2tncm91bmQgbWVudVwiXHJcbiAgICA+XHJcbiAgICAgIDxpb24taWNvbiBuYW1lPVwibWVudVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxpb24tYnV0dG9uIGNsYXNzPVwic2l6ZS0xMCBzaHJpbmstMCBhc3BlY3Qtc3F1YXJlXCIgc2l6ZT1cInNtYWxsXCIgY29sb3I9XCJtZWRpdW1cIiAoY2xpY2spPVwiVG9nZ2xlQ29sbGFwc2VkKClcIj5cclxuICAgICAgPGlvbi1pY29uIG5hbWU9XCJtZW51XCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICA8L2lvbi1idXR0b24+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgc2hyaW5rIGZsZXggcGwtMiBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBtYXgtaC0xMCBmbGV4IGZsZXgtd3JhcCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICBAaWYgKCFyZWYuY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uIHotMFwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0wIC10cmFuc2xhdGUteC0xLzIgcG9pbnRlci1ldmVudHMtbm9uZSc6IGNvbGFwc2VkIH1cIj4gXHJcbiAgICAgICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGRpdiAjcmVmIGNsYXNzPVwic2l6ZS1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNocmluay0wXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1sb2dvXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBbIENvbnRlbnQgXSAtLT5cclxuICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayBmbGV4IGZsZXgtY29sIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgPGxvYWRpbmcgW3R5cGVdPVwiM1wiIFtsb2FkaW5nXT1cImxvYWRpbmdcIiB0ZXh0PVwiXCI+PC9sb2FkaW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBzaHJpbmsgZmxleCBnYXAtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIHctMTIgcHItMiBweS0yIG1hc2steSBzaHJpbmstMCBmbGV4IGZsZXgtY29sIGdhcC0yIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBib3JkZXItZGFzaGVkIGJvcmRlci1yIGJvcmRlci1yLW1lZGl1bS8zMFwiPlxyXG4gICAgICAgIDxkaXYgI3NlYXJjaEFuY2hvciAoY2xpY2spPVwibW9kYWwucHJlc2VudCgpXCIgY2xhc3M9XCJzZWFyY2gtYnV0dG9uIHNpemUtMTAgYXNwZWN0LXNxdWFyZSBzaHJpbmstMCByb3VuZGVkLXhsIGJnLWluYWN0aXZlIGdyYWRpZW50LWJhY2tncm91bmQgbWVudVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZWFyY2hcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5iZy1hY3RpdmVdPVwiQ3VycmVudEdyb3VwQWN0aXZlID09IGl0ZW1cIlxyXG4gICAgICAgICAgICAgICNhbmNob3IgKG1vdXNlZW50ZXIpPVwicG9wb3Zlci5wcmVzZW50KCRldmVudClcIiBcclxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJwb3BvdmVyLmRpc21pc3MoKVwiIFxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDdXJyZW50R3JvdXBBY3RpdmUgPSBpdGVtXCIgXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwIGFzcGVjdC1zcXVhcmUgc2hyaW5rLTAgcm91bmRlZC14bCBiZy1pbmFjdGl2ZSBncmFkaWVudC1iYWNrZ3JvdW5kIG1lbnVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2lvbi1wb3BvdmVyICNwb3BvdmVyIFthbmNob3JdPVwiYW5jaG9yXCIgW2ZsaXBdPVwiZmFsc2VcIiBwbGFjZW1lbnQ9XCJyaWdodFwiIGZpbGw9XCJzb2xpZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTFcIj5cclxuICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvR3J1cG8gKyBpdGVtLmlkIHwgdHJhbnNsYXRlKSA6IGl0ZW0udGl0bGV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Npb24tcG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayByZWxhdGl2ZVwiPlxyXG4gICAgICAgIEBmb3IgKG1Hcm91cCBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBzaXplLWZ1bGwgcHktMiBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LWZ1bGwgei0wIG92ZXJmbG93LWhpZGRlblwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0xMDAgIXRyYW5zbGF0ZS14LTAnOiBDdXJyZW50R3JvdXBBY3RpdmUgPT0gbUdyb3VwfVwiPlxyXG4gICAgICAgICAgICA8ZHJhd2VyLWdyb3VwIFtNZW51R3JvdXBdPVwibUdyb3VwXCIgW3VzZVRyYW5zbGF0aW9uXT1cInVzZVRyYW5zbGF0aW9uXCIgW2NvbGFwc2VkXT1cImNvbGFwc2VkXCI+PC9kcmF3ZXItZ3JvdXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gWyBFbmQgXSAtLT5cclxuICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdy1mdWxsXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1kcmF3ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxpb24tbW9kYWwgI21vZGFsIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiAob25XaWxsRGlzbWlzcyk9XCJzZWFyY2guc2V0KCcnKVwiPlxyXG4gIDxuZy10ZW1wbGF0ZT5cclxuICAgIDxpb24tY29udGVudD5cclxuICAgICAgPGlvbi1jYXJkIGNsYXNzPVwic2l6ZS1mdWxsIG0tMCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaHJpbmstMCB3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1zZWFyY2hiYXIgY2xhc3M9XCJwLTAgIXBsLTIgIXB5LTJcIiBbbmdNb2RlbF09XCJ0aGlzLnNlYXJjaCgpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5zZWFyY2guc2V0KCRldmVudClcIiBbZGVib3VuY2VdPVwiMjAwXCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgZmxleCBmbGV4LWNvbCBzaHJpbmsgZ2FwLTIgb3ZlcmZsb3cteS1hdXRvIHAtMiBtYXNrLXlcIj5cclxuICAgICAgICAgICAgQGZvciAodkdyb3VwIG9mIGxzdE1lbnVGaWx0ZXJlZCgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJtLTAgc2hyaW5rLTBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIGdyYWRpZW50LWJhY2tncm91bmQgYmctaW5hY3RpdmUgZmxleCBmbGV4LWNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMCBmbGV4IGl0ZW1zLWNlbnRlciAhanVzdGlmeS1zdGFydCBnYXAtMiB0ZXh0LWRhcmsgc2hyaW5rLTAgcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInZHcm91cC5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgdkdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IHZHcm91cC50aXRsZX19IFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBAZm9yICh2TWVudSBvZiB2R3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJIYW5kbGVOYXYodk1lbnUsICRldmVudCk7IG1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYmctYWN0aXZlXT1cInJvdXRlci5pc0FjdGl2ZSgnLycgKyB2TWVudS5yb3V0ZSwgZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyICFqdXN0aWZ5LXN0YXJ0IGdhcC0yIHRleHQtZGFyayBzaHJpbmstMCAhcGwtOCBwLTEuNSBib3JkZXItdCBib3JkZXItdC1tZWRpdW0vMzAgbWVudS1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJ2TWVudS5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW8gKyB2TWVudS5pZCB8IHRyYW5zbGF0ZSkgOiB2TWVudS50aXRsZX19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQ+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAobHN0TWVudUZpbHRlcmVkKCkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LW1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5TZW1SZXN1bHRhZG8gfCB0cmFuc2xhdGUpIDogJ1NlbSByZXN1bHRhZG9zIGVuY29udHJhZG9zJ319XHJcbiAgICAgICAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgICA8L2lvbi1jYXJkPlxyXG4gICAgPC9pb24tY29udGVudD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1tb2RhbD4iXX0=
@@ -1,15 +0,0 @@
1
- export class Menu {
2
- constructor(type, title, icon, lstMenu = [], route = null) {
3
- this.type = type;
4
- this.title = title;
5
- this.route = route;
6
- if (icon) {
7
- this.icon = icon;
8
- }
9
- else {
10
- this.icon = "layers";
11
- }
12
- this.lstMenu = lstMenu;
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sSUFBSTtJQU9mLFlBQVksSUFBMEIsRUFBRSxLQUFhLEVBQUUsSUFBb0IsRUFBRSxVQUFrQixFQUFFLEVBQUUsUUFBdUIsSUFBSTtRQUM1SCxJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFHLElBQUksRUFBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLENBQUM7UUFDcEIsQ0FBQzthQUFJLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBNZW51e1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgcm91dGU6IHN0cmluZyB8IG51bGw7XHJcbiAgaWNvbiA6IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsc3RNZW51OiBNZW51W107XHJcbiAgdHlwZTogJ01lbnUnIHwgJ01lbnVHcm91cCdcclxuICBjb25zdHJ1Y3Rvcih0eXBlOiAnTWVudScgfCAnTWVudUdyb3VwJywgdGl0bGU6IHN0cmluZywgaWNvbiA6IHN0cmluZyB8IG51bGwsIGxzdE1lbnU6IE1lbnVbXSA9IFtdLCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpe1xyXG4gICAgdGhpcy50eXBlICA9IHR5cGU7IFxyXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xyXG4gICAgaWYoaWNvbil7XHJcbiAgICAgIHRoaXMuaWNvbiAgPSBpY29uO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaWNvbiA9IFwibGF5ZXJzXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzdE1lbnUgPSBsc3RNZW51O1xyXG4gIH1cclxufSJdfQ==
@@ -1,145 +0,0 @@
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 { InputCpfCnpjConfiguration } from '../inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';
17
- import { InputCepConfiguration } from '../inputs/input-cep/input-cep.configuration';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "../inputs/input-cep/input-cep.component";
20
- import * as i2 from "../inputs/input-cpf-cnpj/input-cpf-cnpj.component";
21
- import * as i3 from "../inputs/input-date/input-date.component";
22
- import * as i4 from "../inputs/input-decimal/input-decimal.component";
23
- import * as i5 from "../inputs/input-select/input-select.component";
24
- import * as i6 from "../inputs/input-string/input-string.component";
25
- import * as i7 from "@angular/forms";
26
- /** Componente padrão de filtro */
27
- export class FilterComponent {
28
- constructor() {
29
- /** Filtro que sera utilizado na pesquisa (usando two way data binding) */
30
- this.filter = model();
31
- this.guid = Utils.GenerateGUID();
32
- /** Configuração input do filtro */
33
- this._configuration = null;
34
- this.configuration = model(null);
35
- this.isFilterActive = false;
36
- this.model = null;
37
- /** Evento emitido quando o valor do filtro muda */
38
- this.changeEmitter = new EventEmitter();
39
- effect(() => {
40
- if ([InputType.Date, InputType.DateTime].includes(this.type)) {
41
- if (this.filter().value) {
42
- this.model = moment(this.filter().value).format("YYYY-MM-DDTHH:mm:ss");
43
- this.filter().value = this.model;
44
- }
45
- }
46
- this.SetConfiguration();
47
- });
48
- }
49
- get index() { return this.filter().propertyName; }
50
- SetConfiguration() {
51
- if (!this.configuration()) {
52
- if ([InputType.Date, InputType.DateTime, InputType.Time].includes(this.type)) {
53
- this._configuration = new InputDateConfiguration(true);
54
- }
55
- else if (this.type == InputType.File) {
56
- this._configuration = new InputFileConfiguration();
57
- }
58
- else if (this.type == InputType.Number) {
59
- this._configuration = new InputNumberConfiguration();
60
- }
61
- else if (this.type == InputType.Decimal) {
62
- this._configuration = new InputDecimalConfiguration();
63
- }
64
- else if (this.type == InputType.Currency) {
65
- this._configuration = new InputCurrencyConfiguration();
66
- }
67
- else if (this.type == InputType.String) {
68
- this._configuration = new InputStringConfiguration();
69
- }
70
- else if (this.type == InputType.Select) {
71
- this._configuration = new InputSelectConfiguration();
72
- }
73
- else if (this.type == InputType.TextArea) {
74
- this._configuration = new InputStringConfiguration();
75
- }
76
- else if (this.type == InputType.Bool) {
77
- this._configuration = new InputBoolConfiguration();
78
- }
79
- else if (this.type == InputType.Cpf) {
80
- this._configuration = new InputCpfCnpjConfiguration("CPF");
81
- }
82
- else if (this.type == InputType.Cnpj) {
83
- this._configuration = new InputCpfCnpjConfiguration("CNPJ");
84
- }
85
- else if (this.type == InputType.CpfCnpj) {
86
- this._configuration = new InputCpfCnpjConfiguration("CPFCNPJ");
87
- }
88
- if (this.type == InputType.Cep) {
89
- this._configuration = new InputCepConfiguration();
90
- }
91
- }
92
- if (this.configuration() && this.configuration() instanceof InputSelectConfiguration) {
93
- this._configuration = new InputSelectConfiguration(this.configuration().bindValue, this.configuration().bindLabel, true, true, this.configuration().loadFrom, true);
94
- }
95
- if (this.configuration() instanceof InputDateConfiguration) {
96
- this._configuration = new InputDateConfiguration(true);
97
- }
98
- if (this.type == InputType.Bool) {
99
- if (this.index == "ativo") {
100
- this._configuration = new InputSelectConfiguration('value', 'label', true, true, [
101
- { label: 'Somente Ativos', value: true },
102
- { label: 'Somente Não Ativos', value: false },
103
- ]);
104
- this.model = true;
105
- }
106
- else {
107
- this._configuration = new InputSelectConfiguration('value', 'label', true, false, [
108
- { label: 'Sim', value: true },
109
- { label: 'Não', value: false },
110
- ]);
111
- }
112
- }
113
- if (!this._configuration) {
114
- this._configuration = this.configuration();
115
- }
116
- }
117
- Change() {
118
- if (this.model) {
119
- if (this.type == InputType.Date && (this.filter().operator == ComparisonOperator.LessThan ||
120
- this.filter().operator == ComparisonOperator.LessThanOrEqual)) {
121
- this.model = this.FormatDateModel(moment(this.model).endOf("day").toISOString());
122
- }
123
- }
124
- this.filter().value = this.model;
125
- this.filter.set(this.filter());
126
- this.changeEmitter.emit();
127
- }
128
- FormatDateModel(model) {
129
- return moment(model).format("YYYY-MM-DDTHH:mm:ss");
130
- }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 @case (\"Cep\") {\r\n <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\"></input-cep>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i1.InputCepComponent, selector: "input-cep", inputs: ["configuration"] }, { kind: "component", type: i2.InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: ["configuration"], outputs: ["configurationChange"] }, { kind: "component", type: i3.InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: i4.InputDecimalComponent, selector: "input-decimal, input-number, input-currency, input-percentage", inputs: ["configuration"], outputs: ["configurationChange"] }, { kind: "component", type: i5.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }, { kind: "component", type: i6.InputStringComponent, selector: "input-string", inputs: ["configuration"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
133
- }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterComponent, decorators: [{
135
- type: Component,
136
- 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 @case (\"Cep\") {\r\n <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\"></input-cep>\r\n }\r\n @case (\"Cpf\") {\r\n <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf>\r\n }\r\n @case (\"Cnpj\") {\r\n <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cnpj>\r\n }\r\n @case (\"CpfCnpj\") {\r\n <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf-cnpj>\r\n }\r\n }\r\n}" }]
137
- }], ctorParameters: () => [], propDecorators: { label: [{
138
- type: Input
139
- }], type: [{
140
- type: Input
141
- }], changeEmitter: [{
142
- type: Output,
143
- args: ['change']
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDdEosT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStD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QVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLFlBQzFFLFFBQVE7d0RBUVQsS0FBSztzQkFBYixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFnRlksYUFBYTtzQkFBOUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgSW5wdXQsIG1vZGVsLCBNb2RlbFNpZ25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IENvbXBhcmlzb25WYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbi12YWx1ZS10eXBlJztcclxuaW1wb3J0IHsgQ29tcGFyaXNvbk9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24tb3BlcmF0b3InO1xyXG5pbXBvcnQgeyBJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbXBhcmlzb24gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbic7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL2lucHV0cy9pbnB1dC10eXBlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IElucHV0Q3VycmVuY3lDb25maWd1cmF0aW9uLCBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uLCBJbnB1dE51bWJlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtZGVjaW1hbC9pbnB1dC1kZWNpbWFsLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFN0cmluZ0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtc3RyaW5nL2lucHV0LXN0cmluZy5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXREYXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2lucHV0cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dEJvb2xDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LWNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dENwZkNucGpDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dENlcENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnB1dHMvaW5wdXQtY2VwL2lucHV0LWNlcC5jb25maWd1cmF0aW9uJztcclxuXHJcbi8qKiBDb21wb25lbnRlIHBhZHLDo28gZGUgZmlsdHJvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIElucHV0c01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIHNlbGVjdG9yOiAnZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQge1xyXG5cclxuICAvKiogTGFiZWwgZG8gaW5wdXQgKi9cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIC8qKiBGaWx0cm8gcXVlIHNlcmEgdXRpbGl6YWRvIG5hIHBlc3F1aXNhICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgZmlsdGVyOiBNb2RlbFNpZ25hbDxDb21wYXJpc29uPiA9IG1vZGVsPENvbXBhcmlzb24+KCk7XHJcblxyXG4gIC8qKiBUaXBvIGRlIGlucHV0IGRvIGZpbHRybyAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZTtcclxuICBcclxuICBndWlkOiBzdHJpbmcgPSBVdGlscy5HZW5lcmF0ZUdVSUQoKTtcclxuICBcclxuICAvKiogQ29uZmlndXJhw6fDo28gaW5wdXQgZG8gZmlsdHJvICovXHJcbiAgX2NvbmZpZ3VyYXRpb246IElucHV0Q29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGNvbmZpZ3VyYXRpb246IE1vZGVsU2lnbmFsPElucHV0Q29uZmlndXJhdGlvbiB8IG51bGw+ID0gbW9kZWw8SW5wdXRDb25maWd1cmF0aW9uIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyBcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmKFtJbnB1dFR5cGUuRGF0ZSwgSW5wdXRUeXBlLkRhdGVUaW1lXS5pbmNsdWRlcyh0aGlzLnR5cGUpKXsgXHJcbiAgICAgICAgaWYodGhpcy5maWx0ZXIoKS52YWx1ZSl7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gbW9tZW50KHRoaXMuZmlsdGVyKCkudmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIik7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcigpLnZhbHVlID0gdGhpcy5tb2RlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5TZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5maWx0ZXIoKS5wcm9wZXJ0eU5hbWU7IH1cclxuXHJcbiAgU2V0Q29uZmlndXJhdGlvbigpIHtcclxuICAgIGlmKCF0aGlzLmNvbmZpZ3VyYXRpb24oKSl7XHJcbiAgICAgIGlmKFtJbnB1dFR5cGUuRGF0ZSwgSW5wdXRUeXBlLkRhdGVUaW1lLCBJbnB1dFR5cGUuVGltZV0uaW5jbHVkZXModGhpcy50eXBlKSl7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dERhdGVDb25maWd1cmF0aW9uKHRydWUpIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUgICAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dEZpbGVDb25maWd1cmF0aW9uKCkgICAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLk51bWJlciAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dE51bWJlckNvbmZpZ3VyYXRpb24oKSAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLkRlY2ltYWwgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uKCkgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLkN1cnJlbmN5KXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dEN1cnJlbmN5Q29uZmlndXJhdGlvbigpIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLlN0cmluZyAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFN0cmluZ0NvbmZpZ3VyYXRpb24oKSAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLlNlbGVjdCAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24oKSAgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLlRleHRBcmVhKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFN0cmluZ0NvbmZpZ3VyYXRpb24oKTsgIH0gZWxzZSBcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5Cb29sICAgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRCb29sQ29uZmlndXJhdGlvbigpOyAgICB9IGVsc2VcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5DcGYgICAgICl7IHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRDcGZDbnBqQ29uZmlndXJhdGlvbihcIkNQRlwiKTsgIH0gZWxzZVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLkNucGogICAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dENwZkNucGpDb25maWd1cmF0aW9uKFwiQ05QSlwiKTsgIH0gZWxzZSAgXHJcbiAgICAgIGlmKHRoaXMudHlwZSA9PSBJbnB1dFR5cGUuQ3BmQ25waiApeyB0aGlzLl9jb25maWd1cmF0aW9uID0gbmV3IElucHV0Q3BmQ25wakNvbmZpZ3VyYXRpb24oXCJDUEZDTlBKXCIpOyAgfVxyXG4gICAgICBpZih0aGlzLnR5cGUgPT0gSW5wdXRUeXBlLkNlcCAgICAgKXsgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dENlcENvbmZpZ3VyYXRpb24oKTsgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24oKSAmJiB0aGlzLmNvbmZpZ3VyYXRpb24oKSBpbnN0YW5jZW9mIElucHV0U2VsZWN0Q29uZmlndXJhdGlvbil7XHJcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbigpLmJpbmRWYWx1ZSxcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24oKS5iaW5kTGFiZWwsXHJcbiAgICAgICAgdHJ1ZSxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbigpLmxvYWRGcm9tLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5jb25maWd1cmF0aW9uKCkgaW5zdGFuY2VvZiBJbnB1dERhdGVDb25maWd1cmF0aW9uKXtcclxuICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dERhdGVDb25maWd1cmF0aW9uKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMudHlwZSA9PSBJbnB1dFR5cGUuQm9vbCl7XHJcbiAgICAgIGlmKHRoaXMuaW5kZXggPT0gXCJhdGl2b1wiKXtcclxuICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gbmV3IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbigndmFsdWUnLCAnbGFiZWwnLCB0cnVlLCB0cnVlLCBbXHJcbiAgICAgICAgICB7IGxhYmVsOiAnU29tZW50ZSBBdGl2b3MnICAgICwgdmFsdWU6IHRydWUgIH0sXHJcbiAgICAgICAgICB7IGxhYmVsOiAnU29tZW50ZSBOw6NvIEF0aXZvcycsIHZhbHVlOiBmYWxzZSB9LFxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24oJ3ZhbHVlJywgJ2xhYmVsJywgdHJ1ZSwgZmFsc2UsIFtcclxuICAgICAgICAgIHsgbGFiZWw6ICdTaW0nLCB2YWx1ZTogdHJ1ZSAgfSxcclxuICAgICAgICAgIHsgbGFiZWw6ICdOw6NvJywgdmFsdWU6IGZhbHNlIH0sXHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5fY29uZmlndXJhdGlvbil7XHJcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24oKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kZWw6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gbyB2YWxvciBkbyBmaWx0cm8gbXVkYSAqL1xyXG4gIEBPdXRwdXQoJ2NoYW5nZScpIGNoYW5nZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQ2hhbmdlKCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLm1vZGVsKXtcclxuICAgICAgaWYodGhpcy50eXBlID09IElucHV0VHlwZS5EYXRlICYmIChcclxuICAgICAgICAgIHRoaXMuZmlsdGVyKCkub3BlcmF0b3IgPT0gQ29tcGFyaXNvbk9wZXJhdG9yLkxlc3NUaGFuIHx8IFxyXG4gICAgICAgICAgdGhpcy5maWx0ZXIoKS5vcGVyYXRvciA9PSBDb21wYXJpc29uT3BlcmF0b3IuTGVzc1RoYW5PckVxdWFsKVxyXG4gICAgICAgIClcclxuICAgICAgeyBcclxuICAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5Gb3JtYXREYXRlTW9kZWwobW9tZW50KHRoaXMubW9kZWwpLmVuZE9mKFwiZGF5XCIpLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbHRlcigpLnZhbHVlID0gdGhpcy5tb2RlbDtcclxuICAgIHRoaXMuZmlsdGVyLnNldCh0aGlzLmZpbHRlcigpKTtcclxuICAgIHRoaXMuY2hhbmdlRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBGb3JtYXREYXRlTW9kZWwobW9kZWw6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIHJldHVybiBtb21lbnQobW9kZWwpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIik7XHJcbiAgfVxyXG59XHJcbiIsIkBpZihfY29uZmlndXJhdGlvbil7XHJcbiAgQHN3aXRjaCAodHlwZSkge1xyXG4gICAgQGNhc2UgKCdTdHJpbmcnKSB7XHJcbiAgICAgIDxpbnB1dC1zdHJpbmcgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtsYWJlbF09XCJsYWJlbFwiIChibHVyKT1cIkNoYW5nZSgpXCI+PC9pbnB1dC1zdHJpbmc+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ051bWJlcicpIHtcclxuICAgICAgPGlucHV0LW51bWJlciAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtsYWJlbF09XCJsYWJlbFwiIFtjb25maWd1cmF0aW9uXT1cIl9jb25maWd1cmF0aW9uXCI+PC9pbnB1dC1udW1iZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RlY2ltYWwnKSB7XHJcbiAgICAgIDxpbnB1dC1kZWNpbWFsIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRlY2ltYWw+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0N1cnJlbmN5Jykge1xyXG4gICAgICA8aW5wdXQtY3VycmVuY3kgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBbbGFiZWxdPVwibGFiZWxcIiBbY29uZmlndXJhdGlvbl09XCJfY29uZmlndXJhdGlvblwiPjwvaW5wdXQtY3VycmVuY3k+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ1NlbGVjdCcpIHtcclxuICAgICAgPGlucHV0LXNlbGVjdCAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIGNsYXNzPVwidGgtc2VsZWN0XCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LXNlbGVjdD5cclxuICAgIH1cclxuICAgIEBjYXNlICgnVGV4dEFyZWEnKSB7XHJcbiAgICAgIDxpbnB1dC1zdHJpbmcgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBjbGFzcz1cInRoLXNlbGVjdFwiIFtsYWJlbF09XCJsYWJlbFwiPjwvaW5wdXQtc3RyaW5nPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdCb29sJykge1xyXG4gICAgICA8aW5wdXQtc2VsZWN0IChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgY2xhc3M9XCJ0aC1zZWxlY3RcIiBbbGFiZWxdPVwibGFiZWxcIiBwbGFjZWhvbGRlcj1cIlwiIFtjb25maWd1cmF0aW9uXT1cIl9jb25maWd1cmF0aW9uXCI+PC9pbnB1dC1zZWxlY3Q+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RhdGUnKSB7XHJcbiAgICAgIDxpbnB1dC1kYXRlIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRhdGU+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ0RhdGVUaW1lJykge1xyXG4gICAgICA8aW5wdXQtZGF0ZS10aW1lIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRhdGUtdGltZT5cclxuICAgIH1cclxuICAgIEBjYXNlIChcIkNlcFwiKSB7XHJcbiAgICAgIDxpbnB1dC1jZXAgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBbbGFiZWxdPVwibGFiZWxcIj48L2lucHV0LWNlcD5cclxuICAgIH1cclxuICAgIEBjYXNlIChcIkNwZlwiKSB7XHJcbiAgICAgIDxpbnB1dC1jcGYgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBbbGFiZWxdPVwibGFiZWxcIiBbY29uZmlndXJhdGlvbl09XCJfY29uZmlndXJhdGlvblwiPjwvaW5wdXQtY3BmPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKFwiQ25walwiKSB7XHJcbiAgICAgIDxpbnB1dC1jbnBqIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWNucGo+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoXCJDcGZDbnBqXCIpIHtcclxuICAgICAgPGlucHV0LWNwZi1jbnBqIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW2xhYmVsXT1cImxhYmVsXCIgW2NvbmZpZ3VyYXRpb25dPVwiX2NvbmZpZ3VyYXRpb25cIj48L2lucHV0LWNwZi1jbnBqPlxyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -1,17 +0,0 @@
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.14", ngImport: i0, type: Forbidden403Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", 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.14", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yYmlkZGVuLTQwMy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaHR0cC1yZXNwb25zZXMtcGFnZXMvZm9yYmlkZGVuLTQwMy9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9odHRwLXJlc3BvbnNlcy1wYWdlcy9mb3JiaWRkZW4tNDAzL2ZvcmJpZGRlbi00MDMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUSxLQUFJLENBQUM7K0dBSkYscUJBQXFCO21HQUFyQixxQkFBcUIseUVDWmxDLG1xREFrQ0Usa1NEMUJVLFlBQVksOEJBQUUsV0FBVyxnNkJBQUUsVUFBVTs7NEZBSXBDLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZvcmJpZGRlbi00MDMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIFJvdXRlckxpbmtdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW40MDNDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYmctd2hpdGUgc2l6ZS1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1pbi1oLXNjcmVlbiBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHctZnVsbCBoLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1yZWQtNTAwIHRvLXJlZC05MDAgYW5pbWF0ZS1ncmFkaWVudC1mYWRlXCI+PC9kaXY+XHJcbiAgXHJcbiAgICA8aW9uLWNhcmQgY2xhc3M9XCJtLTAgbWF4LXctbWRcIj5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJzaXplLWZ1bGwgYmctbGlnaHQvMTAgcC04IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIHNwYWNlLXktNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTMgcm91bmRlZC1mdWxsIHJlbGF0aXZlIHRyYW5zbHVjaWQtYm9yZGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l6ZS0xMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LTV4bCB0ZXh0LXdoaXRlLzcwXCIgbmFtZT1cInNoaWVsZC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgLWluc2V0LTEgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1yb3NlLTQwMCB0by1waW5rLTUwMCBvcGFjaXR5LTI1IGJsdXItc21cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC00eGwgZm9udC1ib2xkIHRyYWNraW5nLXRpZ2h0IHRleHQtd2hpdGUvNzBcIj5cclxuICAgICAgICAgIEFjZXNzbyBOZWdhZG9cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICBcclxuICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJsaWdodFwiIGNsYXNzPVwidGV4dC13aGl0ZS83MFwiPlxyXG4gICAgICAgICAgVm9jw6ogbsOjbyB0ZW0gcGVybWlzc8OjbyBwYXJhIGFjZXNzYXIgZXN0ZSByZWN1cnNvLiBQb3IgZmF2b3IsIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gYWRtaW5pc3RyYWRvciBzZSBhY3JlZGl0YXIgcXVlIGlzc28gw6kgdW0gZXJyby5cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBnYXAtNCBtdC00XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbcm91dGVyTGlua109XCJbJy8nXVwiIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJ0ZXh0LXJlZC02MDAgcHgtNCBweS0yIHJvdW5kZWQtbWQgZm9udC1tZWRpdW1cIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICBSZXRvcm5hciBhIG5hdmVnYcOnw6NvXHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gICJdfQ==