@sapphire-ion/framework 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
  3. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
  4. package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
  5. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
  6. package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
  7. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
  8. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
  9. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
  10. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
  11. package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
  12. package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
  13. package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
  14. package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
  15. package/esm2022/lib/classes/credentials.mjs +2 -0
  16. package/esm2022/lib/classes/environment.mjs +32 -0
  17. package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
  18. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
  19. package/esm2022/lib/classes/inputs/table-field.mjs +63 -0
  20. package/esm2022/lib/classes/page-option.mjs +2 -0
  21. package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
  22. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
  23. package/esm2022/lib/classes/routes/route-data.mjs +9 -0
  24. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
  25. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
  27. package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
  28. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
  29. package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
  30. package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
  31. package/esm2022/lib/components/default/default-list/default-list.component.mjs +94 -0
  32. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
  33. package/esm2022/lib/components/default/default-list/list.mjs +110 -0
  34. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
  35. package/esm2022/lib/components/default/default-table/default-table.component.mjs +206 -0
  36. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +182 -0
  37. package/esm2022/lib/components/default/default-view/abstract-view.mjs +18 -0
  38. package/esm2022/lib/components/default/default-view/default-view.component.mjs +51 -0
  39. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +72 -0
  40. package/esm2022/lib/components/default/default-view/view.mjs +170 -0
  41. package/esm2022/lib/components/default/default.module.mjs +87 -0
  42. package/esm2022/lib/components/default-page/default.page.mjs +73 -0
  43. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
  44. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
  45. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
  46. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
  47. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +49 -0
  48. package/esm2022/lib/components/drawer/drawer.component.mjs +117 -0
  49. package/esm2022/lib/components/drawer/menu.mjs +15 -0
  50. package/esm2022/lib/components/filter/filter.component.mjs +124 -0
  51. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
  52. package/esm2022/lib/components/image/image.component.mjs +91 -0
  53. package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
  54. package/esm2022/lib/components/inputs/custom-input.mjs +77 -0
  55. package/esm2022/lib/components/inputs/custom-signal-input.mjs +74 -0
  56. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +43 -0
  57. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
  58. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +487 -0
  59. package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
  60. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +93 -0
  61. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
  62. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +119 -0
  63. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
  64. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +269 -0
  65. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +45 -0
  66. package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
  67. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +91 -0
  68. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +128 -0
  69. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +11 -0
  70. package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +16 -0
  71. package/esm2022/lib/components/inputs/input-provider-factory.mjs +15 -0
  72. package/esm2022/lib/components/inputs/input-select/ISelect.mjs +11 -0
  73. package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +42 -0
  74. package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +46 -0
  75. package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +16 -0
  76. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +322 -0
  77. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +164 -0
  78. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +50 -0
  79. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +18 -0
  80. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +47 -0
  81. package/esm2022/lib/components/inputs/input-type.mjs +18 -0
  82. package/esm2022/lib/components/inputs/input-validators.mjs +90 -0
  83. package/esm2022/lib/components/inputs/inputs.module.mjs +101 -0
  84. package/esm2022/lib/components/loading/loading.component.mjs +34 -0
  85. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
  86. package/esm2022/lib/components/login/login.component.mjs +93 -0
  87. package/esm2022/lib/components/main-content/main-content.component.mjs +62 -0
  88. package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
  89. package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
  90. package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
  91. package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
  92. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
  93. package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
  94. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
  95. package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
  96. package/esm2022/lib/core.module.mjs +29 -0
  97. package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
  98. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  99. package/esm2022/lib/guards/error.interceptor.mjs +106 -0
  100. package/esm2022/lib/guards/token.interceptor.mjs +25 -0
  101. package/esm2022/lib/index.mjs +172 -0
  102. package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
  103. package/esm2022/lib/services/auth.service.mjs +149 -0
  104. package/esm2022/lib/services/environment.service.mjs +26 -0
  105. package/esm2022/lib/services/generics.service.mjs +84 -0
  106. package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
  107. package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
  108. package/esm2022/lib/services/usuario.service.mjs +49 -0
  109. package/esm2022/lib/services/utils.service.mjs +149 -0
  110. package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
  111. package/esm2022/lib/services/web/http.ativo.service.mjs +55 -0
  112. package/esm2022/lib/services/web/http.service.mjs +175 -0
  113. package/esm2022/lib/services/web/storage.service.mjs +115 -0
  114. package/esm2022/public-api.mjs +5 -0
  115. package/esm2022/sapphire-ion-framework.mjs +5 -0
  116. package/fesm2022/sapphire-ion-framework.mjs +6080 -0
  117. package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
  118. package/index.d.ts +5 -0
  119. package/lib/classes/comparison/comparison-operator.d.ts +9 -0
  120. package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
  121. package/lib/classes/comparison/comparison.d.ts +25 -0
  122. package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
  123. package/lib/classes/comparison/properties/date-property.d.ts +11 -0
  124. package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
  125. package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
  126. package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
  127. package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
  128. package/lib/classes/comparison/properties/int-property.d.ts +11 -0
  129. package/lib/classes/comparison/properties/long-property.d.ts +11 -0
  130. package/lib/classes/comparison/properties/string-property.d.ts +7 -0
  131. package/lib/classes/comparison/properties/time-property.d.ts +11 -0
  132. package/lib/classes/credentials.d.ts +5 -0
  133. package/lib/classes/environment.d.ts +13 -0
  134. package/lib/classes/filters/view-filtros.d.ts +10 -0
  135. package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
  136. package/lib/classes/inputs/table-field.d.ts +19 -0
  137. package/lib/classes/page-option.d.ts +7 -0
  138. package/lib/classes/routes/default-routing-factory.d.ts +8 -0
  139. package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
  140. package/lib/classes/routes/route-data.d.ts +5 -0
  141. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
  142. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
  143. package/lib/components/carousel/carousel.component.d.ts +32 -0
  144. package/lib/components/carousel/carousel.module.d.ts +12 -0
  145. package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
  146. package/lib/components/content-block/content-block.component.d.ts +15 -0
  147. package/lib/components/default/default-list/abstract-list.d.ts +21 -0
  148. package/lib/components/default/default-list/default-list.component.d.ts +42 -0
  149. package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
  150. package/lib/components/default/default-list/list.d.ts +37 -0
  151. package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
  152. package/lib/components/default/default-table/default-table.component.d.ts +71 -0
  153. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +20 -0
  154. package/lib/components/default/default-view/abstract-view.d.ts +16 -0
  155. package/lib/components/default/default-view/default-view.component.d.ts +26 -0
  156. package/lib/components/default/default-view/header-view/header-view.component.d.ts +25 -0
  157. package/lib/components/default/default-view/view.d.ts +55 -0
  158. package/lib/components/default/default.module.d.ts +28 -0
  159. package/lib/components/default-page/default.page.d.ts +35 -0
  160. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
  161. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
  162. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
  163. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
  164. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
  165. package/lib/components/drawer/drawer.component.d.ts +23 -0
  166. package/lib/components/drawer/menu.d.ts +9 -0
  167. package/lib/components/filter/filter.component.d.ts +29 -0
  168. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
  169. package/lib/components/image/image.component.d.ts +23 -0
  170. package/lib/components/info-popover/info-popover.component.d.ts +15 -0
  171. package/lib/components/inputs/custom-input.d.ts +36 -0
  172. package/lib/components/inputs/custom-signal-input.d.ts +38 -0
  173. package/lib/components/inputs/input-bool/input-bool.component.d.ts +19 -0
  174. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
  175. package/lib/components/inputs/input-color/input-color.component.d.ts +80 -0
  176. package/lib/components/inputs/input-configuration.d.ts +8 -0
  177. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +24 -0
  178. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
  179. package/lib/components/inputs/input-date/input-date.component.d.ts +30 -0
  180. package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
  181. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +41 -0
  182. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +25 -0
  183. package/lib/components/inputs/input-default-configurations.d.ts +13 -0
  184. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +36 -0
  185. package/lib/components/inputs/input-file/input-file.component.d.ts +39 -0
  186. package/lib/components/inputs/input-file/input-file.configuration.d.ts +11 -0
  187. package/lib/components/inputs/input-loading/input-loading.component.d.ts +7 -0
  188. package/lib/components/inputs/input-provider-factory.d.ts +4 -0
  189. package/lib/components/inputs/input-select/ISelect.d.ts +21 -0
  190. package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +18 -0
  191. package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +24 -0
  192. package/lib/components/inputs/input-select/input-select-template.directive.d.ts +8 -0
  193. package/lib/components/inputs/input-select/input-select.component.d.ts +66 -0
  194. package/lib/components/inputs/input-select/input.select.configuration.d.ts +87 -0
  195. package/lib/components/inputs/input-string/input-string.component.d.ts +19 -0
  196. package/lib/components/inputs/input-string/input-string.configuration.d.ts +14 -0
  197. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +18 -0
  198. package/lib/components/inputs/input-type.d.ts +16 -0
  199. package/lib/components/inputs/input-validators.d.ts +19 -0
  200. package/lib/components/inputs/inputs.module.d.ts +28 -0
  201. package/lib/components/loading/loading.component.d.ts +18 -0
  202. package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
  203. package/lib/components/login/login.component.d.ts +28 -0
  204. package/lib/components/main-content/main-content.component.d.ts +17 -0
  205. package/lib/components/stepper/step/step.component.d.ts +15 -0
  206. package/lib/components/stepper/stepper.component.d.ts +17 -0
  207. package/lib/components/stepper/stepper.module.d.ts +10 -0
  208. package/lib/components/tabs/tab/tab.component.d.ts +19 -0
  209. package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
  210. package/lib/components/tabs/tabs.module.d.ts +12 -0
  211. package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
  212. package/lib/components/tooltip/tooltip.component.d.ts +7 -0
  213. package/lib/core.module.d.ts +11 -0
  214. package/lib/directives/ng-var.directive.d.ts +12 -0
  215. package/lib/guards/auth.guard.d.ts +11 -0
  216. package/lib/guards/error.interceptor.d.ts +32 -0
  217. package/lib/guards/token.interceptor.d.ts +11 -0
  218. package/lib/index.d.ts +108 -0
  219. package/lib/pipes/secure.pipe.d.ts +15 -0
  220. package/lib/services/auth.service.d.ts +47 -0
  221. package/lib/services/environment.service.d.ts +10 -0
  222. package/lib/services/generics.service.d.ts +22 -0
  223. package/lib/services/route/route.cache.service.d.ts +7 -0
  224. package/lib/services/route/route.provider.service.d.ts +13 -0
  225. package/lib/services/usuario.service.d.ts +21 -0
  226. package/lib/services/utils.service.d.ts +36 -0
  227. package/lib/services/web/api-url-provider.service.d.ts +13 -0
  228. package/lib/services/web/http.ativo.service.d.ts +31 -0
  229. package/lib/services/web/http.service.d.ts +51 -0
  230. package/lib/services/web/storage.service.d.ts +25 -0
  231. package/package.json +41 -0
  232. package/public-api.d.ts +1 -0
  233. package/themes/compiled-styles.scss +2291 -0
  234. package/themes/components/_inputs_new/input-string/input-string.component.scss +0 -0
  235. package/themes/components/_inputs_new/inputs.scss +15 -0
  236. package/themes/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  237. package/themes/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  238. package/themes/components/carousel/carousel.component.scss +9 -0
  239. package/themes/components/content-block/content-block.component.scss +0 -0
  240. package/themes/components/default/default-list/default-list.component.scss +0 -0
  241. package/themes/components/default/default-list/header-list/header-list.component.scss +0 -0
  242. package/themes/components/default/default-pagination/default-pagination.component.scss +22 -0
  243. package/themes/components/default/default-table/default-table.component.scss +33 -0
  244. package/themes/components/default/default-table/th-filter/th-filter.component.scss +24 -0
  245. package/themes/components/default/default-view/default-view.component.scss +5 -0
  246. package/themes/components/default/default-view/header-view/header-view.component.scss +7 -0
  247. package/themes/components/default-page/default.page.scss +4 -0
  248. package/themes/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +9 -0
  249. package/themes/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  250. package/themes/components/drawer/drawer-group/drawer-group.component.scss +22 -0
  251. package/themes/components/drawer/drawer.component.scss +46 -0
  252. package/themes/components/filter/filter.component.scss +0 -0
  253. package/themes/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +19 -0
  254. package/themes/components/image/image.component.scss +0 -0
  255. package/themes/components/info-popover/info-popover.component.scss +3 -0
  256. package/themes/components/inputs/input-bool/input-bool.component.scss +14 -0
  257. package/themes/components/inputs/input-color/input-color.component.scss +48 -0
  258. package/themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
  259. package/themes/components/inputs/input-date/input-date.component.scss +41 -0
  260. package/themes/components/inputs/input-decimal/input-decimal.component.scss +44 -0
  261. package/themes/components/inputs/input-file/download-button/download-button.component.scss +3 -0
  262. package/themes/components/inputs/input-file/input-file.component.scss +3 -0
  263. package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
  264. package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
  265. package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
  266. package/themes/components/inputs/input-select/input-select.component.scss +28 -0
  267. package/themes/components/inputs/input-string/input-string.component.scss +0 -0
  268. package/themes/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  269. package/themes/components/inputs/inputs.scss +67 -0
  270. package/themes/components/loading/loading.component.scss +0 -0
  271. package/themes/components/login/login-admin/login-admin.component.scss +3 -0
  272. package/themes/components/login/login.component.scss +40 -0
  273. package/themes/components/main-content/main-content.component.scss +9 -0
  274. package/themes/components/stepper/step/step.component.scss +48 -0
  275. package/themes/components/stepper/stepper.component.scss +0 -0
  276. package/themes/components/tabs/tab/tab.component.scss +0 -0
  277. package/themes/components/tabs/tabs/tabs.component.scss +23 -0
  278. package/themes/components/text-tooltip/text-tooltip.component.scss +0 -0
  279. package/themes/components/tooltip/tooltip.component.scss +23 -0
  280. package/themes/styles/components.scss +52 -0
  281. package/themes/styles/core.styles.scss +409 -0
  282. package/themes/styles/ionic/ion-action-sheet.scss +8 -0
  283. package/themes/styles/ionic/ion-alert.scss +9 -0
  284. package/themes/styles/ionic/ion-button.scss +3 -0
  285. package/themes/styles/ionic/ion-card.scss +3 -0
  286. package/themes/styles/ionic/ion-content.scss +3 -0
  287. package/themes/styles/ionic/ion-datetime.scss +6 -0
  288. package/themes/styles/ionic/ion-item.scss +10 -0
  289. package/themes/styles/ionic/ion-list.scss +4 -0
  290. package/themes/styles/ionic/ion-modal.scss +8 -0
  291. package/themes/styles/ionic/ion-popover.scss +31 -0
  292. package/themes/styles/ionic/ion-progress-bar.scss +3 -0
  293. package/themes/styles/ionic/ion-searchbar.scss +4 -0
  294. package/themes/styles/ionic/ion-toast.scss +14 -0
  295. package/themes/styles/ionic.scss +13 -0
  296. package/themes/styles/login-default.scss +87 -0
  297. package/themes/styles/mixins.scss +467 -0
  298. package/themes/styles/styles.scss +1 -0
  299. package/themes/styles/translucid.scss +21 -0
@@ -0,0 +1,73 @@
1
+ import { ActivatedRoute, RouterLinkWithHref } from '@angular/router';
2
+ import { Component } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { firstValueFrom } from 'rxjs';
5
+ import { CommonModule } from '@angular/common';
6
+ import { IonicModule } from '@ionic/angular';
7
+ import { FormsModule } from '@angular/forms';
8
+ import { RouteProviderService } from '../../services/route/route.provider.service';
9
+ import { EnvironmentService } from '../../services/environment.service';
10
+ import { LoadingComponent } from '../loading/loading.component';
11
+ import { GenericService } from '../../services/generics.service';
12
+ import { InputsModule } from '../inputs/inputs.module';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/router";
15
+ import * as i2 from "../../services/environment.service";
16
+ import * as i3 from "../../services/generics.service";
17
+ import * as i4 from "../../services/route/route.provider.service";
18
+ import * as i5 from "@angular/common";
19
+ import * as i6 from "@ionic/angular";
20
+ import * as i7 from "@ngx-translate/core";
21
+ /** Pagina Default - mostra os botões de rotas horizontalmente - componente padrão */
22
+ export class DefaultPage {
23
+ constructor(route, coreService, genericService, routeProviderService) {
24
+ this.route = route;
25
+ this.coreService = coreService;
26
+ this.genericService = genericService;
27
+ this.routeProviderService = routeProviderService;
28
+ this.useTranslation = false;
29
+ this.TranslationModule = {
30
+ Permissao: 'Entities.Permissao.',
31
+ PermissaoGrupo: 'Entities.PermissaoGrupo.'
32
+ };
33
+ this.title = this.coreService.environment.applicationName;
34
+ this.lstMenu = [];
35
+ this.configuration = null;
36
+ }
37
+ async ngOnInit() {
38
+ this.loading = true;
39
+ this.configuration = await firstValueFrom(this.route.data);
40
+ this.lstMenu = await firstValueFrom(this.routeProviderService.GetData());
41
+ this.loading = false;
42
+ }
43
+ SetTitle(item) {
44
+ this.genericService.SetTitle(item.title);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, deps: [{ token: i1.ActivatedRoute }, { token: i2.EnvironmentService }, { token: i3.GenericService }, { token: i4.RouteProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPage, isStandalone: true, selector: "app-default", ngImport: i0, template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-8\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(configuration?.image){\r\n <ion-img [class]=\"configuration.image.classes\" [src]=\"configuration.image.src\" (ion-error)=\"configuration.image = null\"></ion-img>\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i6.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i6.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i6.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: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i6.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i6.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, decorators: [{
50
+ type: Component,
51
+ args: [{ standalone: true, selector: 'app-default', imports: [
52
+ CommonModule,
53
+ FormsModule,
54
+ IonicModule,
55
+ InputsModule,
56
+ RouterLinkWithHref,
57
+ LoadingComponent,
58
+ TranslateModule,
59
+ ], template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-8\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(configuration?.image){\r\n <ion-img [class]=\"configuration.image.classes\" [src]=\"configuration.image.src\" (ion-error)=\"configuration.image = null\"></ion-img>\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"mx-1 mt-2 flex-grow shrink-0\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"] }]
60
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.EnvironmentService }, { type: i3.GenericService }, { type: i4.RouteProviderService }] });
61
+ export class DefaultPageConfiguration {
62
+ constructor(image = null, useTranslation = false) {
63
+ this.image = image;
64
+ this.useTranslation = useTranslation;
65
+ }
66
+ }
67
+ export class DefaultPageImage {
68
+ constructor(src = null, classes = '') {
69
+ this.src = src;
70
+ this.classes = classes;
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFHdkQscUZBQXFGO0FBZ0JyRixNQUFNLE9BQU8sV0FBVztJQVF0QixZQUNVLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLGNBQThCLEVBQzlCLG9CQUEwQztRQUgxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFWcEQsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsc0JBQWlCLEdBQVE7WUFDdkIsU0FBUyxFQUFPLHFCQUFxQjtZQUNyQyxjQUFjLEVBQUUsMEJBQTBCO1NBQzNDLENBQUM7UUFVRixVQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1FBRTdELFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsa0JBQWEsR0FBb0MsSUFBSSxDQUFDO0lBTHRELENBQUM7SUFNRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTZCLENBQUM7UUFDdkYsSUFBSSxDQUFDLE9BQU8sR0FBUyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBN0JVLFdBQVc7bUdBQVgsV0FBVyx1RUMvQnhCLGkyRkFvRGMsc0dEaENWLFlBQVksMkpBQ1osV0FBVyw4QkFDWCxXQUFXLGtoRUFDWCxZQUFZLCtCQUNaLGtCQUFrQixvT0FDbEIsZ0JBQWdCLHdGQUNoQixlQUFlOzs0RkFLTixXQUFXO2tCQWZ2QixTQUFTO2lDQUNJLElBQUksWUFDTixhQUFhLFdBQ2Q7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7O0FBb0NILE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDUyxRQUFpQyxJQUFJLEVBQ3JDLGlCQUEwQixLQUFLO1FBRC9CLFVBQUssR0FBTCxLQUFLLENBQWdDO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtJQUV4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1MsTUFBcUIsSUFBSSxFQUN6QixVQUFrQixFQUFFO1FBRHBCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWE7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBSb3V0ZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlL3JvdXRlLnByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi9kcmF3ZXIvbWVudSc7XHJcblxyXG4vKiogUGFnaW5hIERlZmF1bHQgLSBtb3N0cmEgb3MgYm90w7VlcyBkZSByb3RhcyBob3Jpem9udGFsbWVudGUgLSBjb21wb25lbnRlIHBhZHLDo28gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0JyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgSW5wdXRzTW9kdWxlLFxyXG4gICAgUm91dGVyTGlua1dpdGhIcmVmLFxyXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LnBhZ2UuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC5wYWdlLnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBcclxuICB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFRyYW5zbGF0aW9uTW9kdWxlOiBhbnkgPSB7XHJcbiAgICBQZXJtaXNzYW8gICAgIDogJ0VudGl0aWVzLlBlcm1pc3Nhby4nLFxyXG4gICAgUGVybWlzc2FvR3J1cG86ICdFbnRpdGllcy5QZXJtaXNzYW9HcnVwby4nXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgY29yZVNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZVByb3ZpZGVyU2VydmljZTogUm91dGVQcm92aWRlclNlcnZpY2UgXHJcbiAgKSB7IFxyXG4gIH1cclxuICBcclxuICB0aXRsZTogc3RyaW5nID0gdGhpcy5jb3JlU2VydmljZS5lbnZpcm9ubWVudC5hcHBsaWNhdGlvbk5hbWU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBsc3RNZW51OiBNZW51W10gPSBbXSBcclxuICBjb25maWd1cmF0aW9uOiBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbDtcclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJvdXRlLmRhdGEpIGFzIERlZmF1bHRQYWdlQ29uZmlndXJhdGlvbjtcclxuICAgIHRoaXMubHN0TWVudSAgICAgICA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucm91dGVQcm92aWRlclNlcnZpY2UuR2V0RGF0YSgpKTtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgU2V0VGl0bGUoaXRlbTogTWVudSl7XHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlNldFRpdGxlKGl0ZW0udGl0bGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlQ29uZmlndXJhdGlvbntcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpbWFnZTogRGVmYXVsdFBhZ2VJbWFnZSB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2VcclxuICApe1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlSW1hZ2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGwsXHJcbiAgICBwdWJsaWMgY2xhc3Nlczogc3RyaW5nID0gJydcclxuICApe31cclxufVxyXG4iLCI8aW9uLWNvbnRlbnQgW2Z1bGxzY3JlZW5dPVwidHJ1ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICA8aW9uLWJyZWFkY3J1bWJzPlxyXG4gICAgICA8aW9uLWJyZWFkY3J1bWIgW3JvdXRlckxpbmtdPVwiW251bGxdXCI+XHJcbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJob21lXCI+PC9pb24taWNvbj4gSW5pY2lvXHJcbiAgICAgIDwvaW9uLWJyZWFkY3J1bWI+XHJcbiAgICA8L2lvbi1icmVhZGNydW1icz5cclxuICBcclxuICAgIDxpb24tY2FyZD5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAhcC04XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBzaHJpbmstMCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgQGlmKGNvbmZpZ3VyYXRpb24/LmltYWdlKXtcclxuICAgICAgICAgICAgPGlvbi1pbWcgW2NsYXNzXT1cImNvbmZpZ3VyYXRpb24uaW1hZ2UuY2xhc3Nlc1wiIFtzcmNdPVwiY29uZmlndXJhdGlvbi5pbWFnZS5zcmNcIiAoaW9uLWVycm9yKT1cImNvbmZpZ3VyYXRpb24uaW1hZ2UgPSBudWxsXCI+PC9pb24taW1nPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LTh4bCBmb250LXBvcHBpbnMgdy1mdWxsXCI+IHt7dGl0bGV9fSA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIhb3ZlcmZsb3cteS1hdXRvIHctZnVsbCBwb3J0cmFpdDpncm93IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICA8bG9hZGluZyBbdHlwZV09XCIzXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvbG9hZGluZz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1zdGFydCBqdXN0aWZ5LXN0YXJ0IG10LTQgcG9ydHJhaXQ6IWdyaWQgcG9ydHJhaXQ6IWdyaWQtY29scy0xXCI+IFxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGxzdE1lbnU7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwibXgtMSBtdC0yIGZsZXgtZ3JvdyBzaHJpbmstMFwiIFtyb3V0ZXJMaW5rXT1cIltpdGVtLnJvdXRlXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwiaXRlbS5pY29uXCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgaXRlbS5pZCB8IHRyYW5zbGF0ZSkgOiBpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVHcm91cFwiKXtcclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJteC0xIG10LTIgZmxleC1ncm93IHNocmluay0wXCIgKGNsaWNrKT1cInBvcG92ZXIucHJlc2VudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgI3BvcG92ZXIgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG9cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGlzdCBjbGFzcz1cIm5vLW91dGVyLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIGNsYXNzPVwiYmctdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiU2V0VGl0bGUobWVudSlcIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBpdGVtLmxzdE1lbnVcIiBbcm91dGVyTGlua109XCJbJy4vJyArIG1lbnUucm91dGVdXCIgbGluZXM9XCJub25lXCIgZGV0YWlsPVwiZmFsc2VcIiByb3V0ZXJMaW5rQWN0aXZlPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIm1lbnUuaWNvblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIG1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbWVudS50aXRsZX19ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvaW9uLWNvbnRlbnQ+Il19
@@ -0,0 +1,60 @@
1
+ import { ContentChild, Directive } from '@angular/core';
2
+ import { Output, EventEmitter, HostBinding, HostListener } from '@angular/core';
3
+ import { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';
4
+ import * as i0 from "@angular/core";
5
+ export class DragDropFileDirective {
6
+ constructor() {
7
+ this.fileDropped = new EventEmitter();
8
+ }
9
+ // Dragover listener
10
+ onDragOver(evt) {
11
+ evt.preventDefault();
12
+ evt.stopPropagation();
13
+ this.fileOver = true;
14
+ this.dragDropOverlay.fileOver = true;
15
+ }
16
+ // Dragleave listener
17
+ onDragLeave(evt) {
18
+ evt.preventDefault();
19
+ evt.stopPropagation();
20
+ this.fileOver = false;
21
+ this.dragDropOverlay.fileOver = false;
22
+ }
23
+ // Drop listener
24
+ onDrop(evt) {
25
+ evt.preventDefault();
26
+ evt.stopPropagation();
27
+ this.fileOver = false;
28
+ this.dragDropOverlay.fileOver = false;
29
+ let files = evt.dataTransfer.files;
30
+ if (files.length > 0) {
31
+ this.fileDropped.emit(Array.from(files));
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DragDropFileDirective, selector: "[DragDropFile]", outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, properties: { "class.fileOver": "this.fileOver" } }, queries: [{ propertyName: "dragDropOverlay", first: true, predicate: DragDropOverlayComponent, descendants: true }], ngImport: i0 }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[DragDropFile]'
41
+ }]
42
+ }], ctorParameters: () => [], propDecorators: { fileOver: [{
43
+ type: HostBinding,
44
+ args: ['class.fileOver']
45
+ }], fileDropped: [{
46
+ type: Output
47
+ }], dragDropOverlay: [{
48
+ type: ContentChild,
49
+ args: [DragDropOverlayComponent]
50
+ }], onDragOver: [{
51
+ type: HostListener,
52
+ args: ['dragover', ['$event']]
53
+ }], onDragLeave: [{
54
+ type: HostListener,
55
+ args: ['dragleave', ['$event']]
56
+ }], onDrop: [{
57
+ type: HostListener,
58
+ args: ['drop', ['$event']]
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBSzNGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEM7UUFHVSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFIbkMsQ0FBQztJQU9qQixvQkFBb0I7SUFDa0IsVUFBVSxDQUFDLEdBQWM7UUFDN0QsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELHFCQUFxQjtJQUN5QixXQUFXLENBQUMsR0FBYztRQUN0RSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ3lCLE1BQU0sQ0FBQyxHQUFjO1FBQzVELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBbkNVLHFCQUFxQjttR0FBckIscUJBQXFCLHdUQU9sQix3QkFBd0I7OzRGQVAzQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7d0RBS2dDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNuQixXQUFXO3NCQUFwQixNQUFNO2dCQUVpQyxlQUFlO3NCQUF0RCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFHQSxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRVSxXQUFXO3NCQUF4RCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRSSxNQUFNO3NCQUE5QyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kcmFnLWRyb3Atb3ZlcmxheS9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbRHJhZ0Ryb3BGaWxlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdEcm9wRmlsZURpcmVjdGl2ZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZU92ZXInKSBmaWxlT3ZlcjogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgZmlsZURyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChEcmFnRHJvcE92ZXJsYXlDb21wb25lbnQpIGRyYWdEcm9wT3ZlcmxheTogRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50IFxyXG5cclxuICAvLyBEcmFnb3ZlciBsaXN0ZW5lclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSkgb25EcmFnT3ZlcihldnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcclxuICAgIHRoaXMuZHJhZ0Ryb3BPdmVybGF5LmZpbGVPdmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vIERyYWdsZWF2ZSBsaXN0ZW5lclxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmRyYWdEcm9wT3ZlcmxheS5maWxlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuICBcclxuICAvLyBEcm9wIGxpc3RlbmVyXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbkRyb3AoZXZ0OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmFnRHJvcE92ZXJsYXkuZmlsZU92ZXIgPSBmYWxzZTtcclxuICAgIGxldCBmaWxlcyA9IGV2dC5kYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpbGVEcm9wcGVkLmVtaXQoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DragDropFileDirective } from './drag-drop-file.directive';
4
+ import { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';
5
+ import { IonicModule } from '@ionic/angular';
6
+ import * as i0 from "@angular/core";
7
+ const values = [
8
+ DragDropFileDirective,
9
+ DragDropOverlayComponent
10
+ ];
11
+ export class DragDropFileModule {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileModule, declarations: [DragDropFileDirective,
14
+ DragDropOverlayComponent], imports: [CommonModule,
15
+ IonicModule], exports: [DragDropFileDirective,
16
+ DragDropOverlayComponent] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileModule, imports: [CommonModule,
18
+ IonicModule] }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropFileModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ declarations: [...values],
24
+ exports: [...values],
25
+ imports: [
26
+ CommonModule,
27
+ IonicModule
28
+ ]
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWZpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0MsTUFBTSxNQUFNLEdBQUc7SUFDYixxQkFBcUI7SUFDckIsd0JBQXdCO0NBQ3pCLENBQUE7QUFXRCxNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFiN0IscUJBQXFCO1lBQ3JCLHdCQUF3QixhQVF0QixZQUFZO1lBQ1osV0FBVyxhQVZiLHFCQUFxQjtZQUNyQix3QkFBd0I7Z0hBWWIsa0JBQWtCLFlBSjNCLFlBQVk7WUFDWixXQUFXOzs0RkFHRixrQkFBa0I7a0JBUjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUUsR0FBRyxNQUFNLENBQUU7b0JBQzNCLE9BQU8sRUFBTyxDQUFFLEdBQUcsTUFBTSxDQUFFO29CQUMzQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BGaWxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWRyb3AtZmlsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2RyYWctZHJvcC1vdmVybGF5L2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuY29uc3QgdmFsdWVzID0gW1xyXG4gIERyYWdEcm9wRmlsZURpcmVjdGl2ZSxcclxuICBEcmFnRHJvcE92ZXJsYXlDb21wb25lbnRcclxuXVxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbIC4uLnZhbHVlcyBdLFxyXG4gIGV4cG9ydHMgICAgIDogWyAuLi52YWx1ZXMgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdEcm9wRmlsZU1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@ionic/angular";
5
+ export class DragDropOverlayComponent {
6
+ constructor() { }
7
+ ngOnInit() { }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DragDropOverlayComponent, selector: "drag-drop-overlay", ngImport: i0, template: "<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n </div>\r\n</div>", styles: [".fileOver{top:0!important;--tw-backdrop-blur: blur(4px) !important;--tw-backdrop-grayscale: grayscale(.5) !important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.fileOver div{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.fileOver div ion-icon{color:var(--ion-color-dark)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragDropOverlayComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'drag-drop-overlay', template: "<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n </div>\r\n</div>", styles: [".fileOver{top:0!important;--tw-backdrop-blur: blur(4px) !important;--tw-backdrop-grayscale: grayscale(.5) !important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.fileOver div{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.fileOver div ion-icon{color:var(--ion-color-dark)}\n"] }]
14
+ }], ctorParameters: () => [] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFsRCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBSSxDQUFDOytHQUpGLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlEQ1RyQyx5V0FJTTs7NEZES08sd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkcmFnLWRyb3Atb3ZlcmxheScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcmFnLWRyb3Atb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhZ0Ryb3BPdmVybGF5Q29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgZmlsZU92ZXI6IGJvb2xlYW47XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBzaXplLWZ1bGwgei01MCBwLTQgcG9pbnRlci1ldmVudHMtbm9uZVwiIFtuZ0NsYXNzXT1cInsnZmlsZU92ZXInOiBmaWxlT3Zlcn1cIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9yZGVyLTQgYm9yZGVyLWRhc2hlZCBib3JkZXItdHJhbnNwYXJlbnQgZGVmYXVsdC10cmFuc2l0aW9uIHJvdW5kZWQtMnhsIHNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC05eGwgdGV4dC10cmFuc3BhcmVudFwiIG5hbWU9XCJjbG91ZC11cGxvYWRcIj48L2lvbi1pY29uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { RouterLinkWithHref } from '@angular/router';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { CommonModule } from '@angular/common';
5
+ import { AuthService } from '../../../services/auth.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/auth.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@ionic/angular";
10
+ export class DefaultDrawerEndComponent {
11
+ constructor(authService) {
12
+ this.authService = authService;
13
+ this.colapsed = false;
14
+ }
15
+ ngOnInit() {
16
+ this.authService.LoadToken().then((res) => {
17
+ this.Token = res;
18
+ });
19
+ }
20
+ Loggout() { this.authService.Loggout(); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultDrawerEndComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultDrawerEndComponent, isStandalone: true, selector: "default-drawer-end", inputs: { colapsed: "colapsed" }, ngImport: i0, template: "<div class=\"mt-1 w-full default-transition flex p-3\" [ngClass]=\"{'!w-16': colapsed}\">\r\n <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span>\r\n </div>\r\n\r\n <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.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: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultDrawerEndComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ standalone: true, imports: [
27
+ CommonModule,
28
+ IonicModule,
29
+ RouterLinkWithHref,
30
+ ], selector: 'default-drawer-end', template: "<div class=\"mt-1 w-full default-transition flex p-3\" [ngClass]=\"{'!w-16': colapsed}\">\r\n <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span>\r\n </div>\r\n\r\n <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n</div>" }]
31
+ }], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { colapsed: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQWE3RCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1MsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUYvQixDQUFDO0lBS0wsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBR0QsT0FBTyxLQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDOytHQWhCcEMseUJBQXlCO21HQUF6Qix5QkFBeUIsZ0hDakJ0Qyw2eEJBV00seURERkYsWUFBWSw0SEFDWixXQUFXOzs0RkFPRix5QkFBeUI7a0JBWHJDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CLFlBQ1Msb0JBQW9CO2dGQVVyQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgUm91dGVyTGlua1dpdGhIcmVmLFxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICdkZWZhdWx0LWRyYXdlci1lbmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWRyYXdlci1lbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtZHJhd2VyLWVuZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdERyYXdlckVuZENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBUb2tlbjogYW55O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5Mb2FkVG9rZW4oKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5Ub2tlbiA9IHJlcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgTG9nZ291dCgpOiB2b2lkIHsgdGhpcy5hdXRoU2VydmljZS5Mb2dnb3V0KCk7IH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXQtMSB3LWZ1bGwgZGVmYXVsdC10cmFuc2l0aW9uIGZsZXggcC0zXCIgW25nQ2xhc3NdPVwieychdy0xNic6IGNvbGFwc2VkfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEwIHNocmluay0wIGFzcGVjdC1zcXVhcmUgcm91bmRlZC0yeGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInVwcGVyY2FzZSB0ZXh0LXdoaXRlXCI+e3tUb2tlbiA/IFRva2VuLk5vbWVbMF0gOiAnJ319PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJncm93IG1pbi13LTEwIHAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpcyBvdmVyZmxvdy1oaWRkZW4gYmxvY2sgZGVmYXVsdC10cmFuc2l0aW9uXCIgW25nQ2xhc3NdPVwieydvcGFjaXR5LTAgdy0wJzogY29sYXBzZWR9XCI+XHJcbiAgICA8c3Bhbj57e1Rva2VuID8gVG9rZW4uTm9tZSA6ICcnfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJMb2dnb3V0KClcIiBjbGFzcz1cInNpemUtMTAgc2hyaW5rLTBcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiPlxyXG4gICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiZXhpdC1vdXRsaW5lXCI+PC9pb24taWNvbj4gXHJcbiAgPC9pb24tYnV0dG9uPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,49 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, QueryList, ViewChildren } from '@angular/core';
3
+ import { IonAccordionGroup, IonicModule, NavController } from '@ionic/angular';
4
+ import { Menu } from '.././menu';
5
+ import { Router } from '@angular/router';
6
+ import { GenericService } from '../../../services/generics.service';
7
+ import { NgVarDirective } from '../../../directives/ng-var.directive';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/router";
11
+ import * as i2 from "@ionic/angular";
12
+ import * as i3 from "../../../services/generics.service";
13
+ import * as i4 from "@angular/common";
14
+ import * as i5 from "@ngx-translate/core";
15
+ export class DrawerGroupComponent {
16
+ constructor(router, navController, genericService) {
17
+ this.router = router;
18
+ this.navController = navController;
19
+ this.genericService = genericService;
20
+ this.TranslationModule = {
21
+ Permissao: 'Entities.Permissao.',
22
+ PermissaoGrupo: 'Entities.PermissaoGrupo.'
23
+ };
24
+ }
25
+ ngOnInit() { }
26
+ HandleNav(item) {
27
+ this.SetTitle(item);
28
+ this.navController.navigateRoot('/' + item.route);
29
+ }
30
+ SetTitle(item) {
31
+ this.genericService.SetTitle(item.title);
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerGroupComponent, deps: [{ token: i1.Router }, { token: i2.NavController }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DrawerGroupComponent, isStandalone: true, selector: "drawer-group", inputs: { MenuGroup: "MenuGroup", colapsed: "colapsed", useTranslation: "useTranslation" }, viewQueries: [{ propertyName: "lstIonAcordionGroup", predicate: IonAccordionGroup, descendants: true }], ngImport: i0, template: "<div class=\"w-full text-center mb-2\">\r\n <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n <ion-label class=\"text-center\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n <ion-text class=\"text-lg\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </ion-label>\r\n </ion-item>\r\n</div>\r\n\r\n<div class=\"grid gap-2 w-full overflow-hidden\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mGroup)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </ion-item>\r\n } \r\n @else if (mGroup.type == \"MenuGroup\") {\r\n <!-- MenuGroup -->\r\n <div class=\"w-full overflow-hidden\">\r\n <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n </ion-label>\r\n </ion-item>\r\n <div slot=\"content\">\r\n <div class=\"pl-8\">\r\n <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n @for (mMenu of mGroup.lstMenu; track $index) {\r\n @if (mMenu.type == \"Menu\") {\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mMenu)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n </ion-label>\r\n </ion-item>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n </div>\r\n }\r\n }\r\n</div>\r\n", styles: [".bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%)}.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%)}@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: i2.IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerGroupComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ standalone: true, imports: [CommonModule, IonicModule, NgVarDirective, TranslateModule], selector: 'drawer-group', template: "<div class=\"w-full text-center mb-2\">\r\n <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n <ion-label class=\"text-center\">\r\n <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n <ion-text class=\"text-lg\">\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n </ion-text>\r\n </ion-label>\r\n </ion-item>\r\n</div>\r\n\r\n<div class=\"grid gap-2 w-full overflow-hidden\">\r\n @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n <!-- Menu -->\r\n @if(mGroup.type == \"Menu\"){\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mGroup)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}} \r\n </ion-label>\r\n </ion-item>\r\n } \r\n @else if (mGroup.type == \"MenuGroup\") {\r\n <!-- MenuGroup -->\r\n <div class=\"w-full overflow-hidden\">\r\n <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n <ion-label>\r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n </ion-label>\r\n </ion-item>\r\n <div slot=\"content\">\r\n <div class=\"pl-8\">\r\n <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n @for (mMenu of mGroup.lstMenu; track $index) {\r\n @if (mMenu.type == \"Menu\") {\r\n <ion-item \r\n class=\"bg-inactive\" lines=\"none\" \r\n (click)=\"HandleNav(mMenu)\"\r\n [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n <ion-label class=\"ion-text-nowrap\">\r\n {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n </ion-label>\r\n </ion-item>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n </div>\r\n }\r\n }\r\n</div>\r\n", styles: [".bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%)}.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%)}@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"] }]
39
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.NavController }, { type: i3.GenericService }], propDecorators: { MenuGroup: [{
40
+ type: Input
41
+ }], colapsed: [{
42
+ type: Input
43
+ }], useTranslation: [{
44
+ type: Input
45
+ }], lstIonAcordionGroup: [{
46
+ type: ViewChildren,
47
+ args: [IonAccordionGroup]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBU3RELE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDUyxNQUFjLEVBQ2IsYUFBNEIsRUFDNUIsY0FBOEI7UUFGL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVh4QyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztJQVNFLENBQUM7SUFFTCxRQUFRLEtBQUksQ0FBQztJQUViLFNBQVMsQ0FBQyxJQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQXhCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw0TUEwQmpCLGlCQUFpQixnREMxQ2pDLG1oR0E2REEsaXRCRGxEWSxZQUFZLDRIQUFFLFdBQVcsODZCQUFrQixlQUFlOzs0RkFLekQsb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxZQUMzRCxjQUFjO29JQVVmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQWtCMkIsbUJBQW1CO3NCQUFuRCxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uaWNNb2R1bGUsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uL21lbnUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ1ZhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgTmdWYXJEaXJlY3RpdmUsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcbiAgc2VsZWN0b3I6ICdkcmF3ZXItZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyYXdlci1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyR3JvdXBDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLidcclxuICB9O1xyXG4gIEBJbnB1dCgpIE1lbnVHcm91cDogTWVudTtcclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgSGFuZGxlTmF2KGl0ZW06IE1lbnUgfCBhbnkpe1xyXG4gICAgdGhpcy5TZXRUaXRsZShpdGVtKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoJy8nICsgaXRlbS5yb3V0ZSk7XHJcbiAgfVxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oSW9uQWNjb3JkaW9uR3JvdXApIGxzdElvbkFjb3JkaW9uR3JvdXA6IFF1ZXJ5TGlzdDxJb25BY2NvcmRpb24+XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBtYi0yXCI+XHJcbiAgPGlvbi1pdGVtIGNsYXNzPVwiYmctaW5hY3RpdmUgYmctYWN0aXZlXCIgbGluZXM9XCJub25lXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDFyZW1cIj5cclxuICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LTJ4bFwiIFtuYW1lXT1cIk1lbnVHcm91cC5pY29uXCI+PC9pb24taWNvbj4gPGJyPlxyXG4gICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWxnXCI+XHJcbiAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIE1lbnVHcm91cC5pZCB8IHRyYW5zbGF0ZSkgOiBNZW51R3JvdXAudGl0bGV9fSBcclxuICAgICAgPC9pb24tdGV4dD5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gIDwvaW9uLWl0ZW0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTIgdy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gIEBmb3IgKG1Hcm91cCBvZiBNZW51R3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8IS0tIE1lbnUgLS0+XHJcbiAgICBAaWYobUdyb3VwLnR5cGUgPT0gXCJNZW51XCIpe1xyXG4gICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgY2xhc3M9XCJiZy1pbmFjdGl2ZVwiIGxpbmVzPVwibm9uZVwiIFxyXG4gICAgICAgIChjbGljayk9XCJIYW5kbGVOYXYobUdyb3VwKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydjb2xhcHNlZCc6IGNvbGFwc2VkLCAnYmctYWN0aXZlJyA6IHJvdXRlci5pc0FjdGl2ZSgnLycgKyBtR3JvdXAucm91dGUsIGZhbHNlKX1cIj5cclxuICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgbUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IG1Hcm91cC50aXRsZX19ICAgICAgICAgIFxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgfSBcclxuICAgIEBlbHNlIGlmIChtR3JvdXAudHlwZSA9PSBcIk1lbnVHcm91cFwiKSB7XHJcbiAgICAgIDwhLS0gTWVudUdyb3VwIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwIGNsYXNzPVwiaW9uLXRleHQtbm93cmFwIHctZnVsbFwiPlxyXG4gICAgICAgICAgPGlvbi1hY2NvcmRpb24gY2xhc3M9XCJiZy10cmFuc3BhcmVudFwiIFt2YWx1ZV09XCJtR3JvdXBcIj5cclxuICAgICAgICAgICAgPGlvbi1pdGVtIHNsb3Q9XCJoZWFkZXJcIiBjb2xvcj1cImxpZ2h0XCIgY2xhc3M9XCJpb24tdGV4dC1ub3dyYXAgYmctaW5hY3RpdmVcIiBzdHlsZT1cIi0taW9uLWNvbG9yLWJhc2U6IHZhcigtLWJhY2tncm91bmQpICFpbXBvcnRhbnRcIj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwibUdyb3VwLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgbUdyb3VwLmlkIHwgdHJhbnNsYXRlKSA6IG1Hcm91cC50aXRsZX19XHJcbiAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkaXYgc2xvdD1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGwtOFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBib3JkZXItbC0yIGJvcmRlci1zb2xpZCByb3VuZGVkLWJsLTJ4bCBncmlkIGdhcC0yIHBsLTIgcHktMlwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDMwJSwgdHJhbnNwYXJlbnQgNzAlKVwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChtTWVudSBvZiBtR3JvdXAubHN0TWVudTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChtTWVudS50eXBlID09IFwiTWVudVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctaW5hY3RpdmVcIiBsaW5lcz1cIm5vbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkhhbmRsZU5hdihtTWVudSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2NvbGFwc2VkJzogY29sYXBzZWQsICdiZy1hY3RpdmUnIDogcm91dGVyLmlzQWN0aXZlKCcvJyArIG1NZW51LnJvdXRlLCBmYWxzZSl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBbbmFtZV09XCJtTWVudS5pY29uXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvICsgbU1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbU1lbnUudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2lvbi1hY2NvcmRpb24+XHJcbiAgICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,117 @@
1
+ import { Component, computed, effect, EventEmitter, input, Input, Output } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { DrawerGroupComponent } from './drawer-group/drawer-group.component';
6
+ import { LoadingComponent } from '../../components/loading/loading.component';
7
+ import { GenericService } from '../../services/generics.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/generics.service";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@ionic/angular";
12
+ import * as i4 from "@ngx-translate/core";
13
+ export class DrawerComponent {
14
+ constructor(genericService) {
15
+ this.genericService = genericService;
16
+ this.TranslationModule = {
17
+ Permissao: 'Entities.Permissao.',
18
+ PermissaoGrupo: 'Entities.PermissaoGrupo.'
19
+ };
20
+ this.loading = true;
21
+ this.lstMenu = input();
22
+ this.lstFlattenMenu = computed(() => { return FlattenMenus(this.lstMenu()); });
23
+ this.colapsed = false;
24
+ this.colapsedChange = new EventEmitter;
25
+ this.useTranslation = false;
26
+ this.CurrentGroupActive = null;
27
+ this._enterColapsed = false;
28
+ effect(() => {
29
+ //Handle Menu Title
30
+ const lstFlat = this.lstFlattenMenu();
31
+ const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));
32
+ const group = FindMenuParent(this.lstMenu(), currentMenu);
33
+ if (group) {
34
+ this.CurrentGroupActive = group;
35
+ }
36
+ else {
37
+ this.CurrentGroupActive = this.lstMenu()[0];
38
+ }
39
+ });
40
+ }
41
+ ToggleCollapsed() {
42
+ this.colapsedChange.emit(!this._enterColapsed);
43
+ this._enterColapsed = false;
44
+ }
45
+ onMouseEnter() {
46
+ if (this.colapsed) {
47
+ this._enterColapsed = true;
48
+ this.colapsedChange.emit(false);
49
+ }
50
+ }
51
+ onMouseLeave() {
52
+ if (this._enterColapsed) {
53
+ this._enterColapsed = false;
54
+ this.colapsedChange.emit(true);
55
+ }
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 w-[19rem] flex flex-col bg-light\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"w-full px-2 h-14 pt-2 flex justify-between items-center text-3xl text-center\">\r\n <ion-button id=\"drawer-button\" class=\"shrink-0 portrait:hidden aspect-square h-12 z-10 default-transition m-0\" size=\"small\" fill=\"outline\" color=\"dark\" style=\"--border-radius: 999rem; --border-width: 0;\" (click)=\"ToggleCollapsed()\"> \r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <div class=\"size-full\">\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': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"menu-conteiner\" class=\"mask-y flex flex-col relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex\">\r\n <div class=\"h-full w-16 p-2 shrink-0\">\r\n <div class=\"grid gap-2\">\r\n @for (item of lstMenu(); track $index) {\r\n <ion-item \r\n id=\"group-menu\" [title]=\"item.title\" class=\"bg-inactive relative overflow-visible\" lines=\"none\" style=\"--padding-start: 0;\"\r\n (click)=\"CurrentGroupActive = item\" \r\n [ngClass]=\"{'bg-active': CurrentGroupActive == item}\"\r\n >\r\n <div id=\"tooltip\" class=\"opacity-0 !pointer-events-none -translate-x-4 absolute top-0 bottom-0 default-transition left-14 px-2 my-auto text-nowrap h-8 bg-[var(--ion-color-secondary)] -z-30 rounded-xl flex items-center justify-center\">\r\n <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--ion-color-secondary)]\"></div>\r\n <ion-icon class=\"z-50 mr-2\" [name]=\"item.icon\"></ion-icon>\r\n <ion-text class=\"z-50\"> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-text>\r\n </div>\r\n <div class=\"absolute top-0 size-full flex items-center justify-center overflow-visible\">\r\n <ion-icon class=\"text-2xl\" [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n </ion-item>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full border-dashed border-l relative\" style=\"border-color: color-mix(in srgb, var(--ion-color-dark) 20%, transparent 80%);\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 px-2 py-2 size-full default-transition opacity-0 translate-x-full z-0 mask-y overflow-y-auto\" [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\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</div>\r\n", styles: ["#drawer-button{border-radius:9999px}#drawer-button:hover{background-color:color-mix(in srgb,var(--ion-color-dark-tint) 50%,transparent 50%)}#drawer-button:hover ion-icon{color:var(--ion-color-light)}#menu-conteiner{width:100%;height:100%;overflow-y:auto;overflow-x:hidden}#group-menu{--min-height: 3rem;--min-width: 3rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#group-menu:hover #tooltip{width:fit-content!important;--tw-translate-x: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}.bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%) }.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%) }@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.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: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { 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: i4.TranslatePipe, name: "translate" }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ standalone: true, imports: [
63
+ CommonModule,
64
+ IonicModule,
65
+ LoadingComponent,
66
+ DrawerGroupComponent,
67
+ TranslateModule
68
+ ], selector: 'drawer', template: "<div class=\"absolute left-0 top-0 h-full w-[19rem] flex flex-col bg-light\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"w-full px-2 h-14 pt-2 flex justify-between items-center text-3xl text-center\">\r\n <ion-button id=\"drawer-button\" class=\"shrink-0 portrait:hidden aspect-square h-12 z-10 default-transition m-0\" size=\"small\" fill=\"outline\" color=\"dark\" style=\"--border-radius: 999rem; --border-width: 0;\" (click)=\"ToggleCollapsed()\"> \r\n <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <div class=\"size-full\">\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': colapsed }\"> \r\n {{title}}\r\n </ion-text>\r\n }\r\n <div #ref class=\"size-full flex items-center justify-center\">\r\n <ng-content select=\"[slot=logo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div id=\"menu-conteiner\" class=\"mask-y flex flex-col relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n <div class=\"size-full shrink flex\">\r\n <div class=\"h-full w-16 p-2 shrink-0\">\r\n <div class=\"grid gap-2\">\r\n @for (item of lstMenu(); track $index) {\r\n <ion-item \r\n id=\"group-menu\" [title]=\"item.title\" class=\"bg-inactive relative overflow-visible\" lines=\"none\" style=\"--padding-start: 0;\"\r\n (click)=\"CurrentGroupActive = item\" \r\n [ngClass]=\"{'bg-active': CurrentGroupActive == item}\"\r\n >\r\n <div id=\"tooltip\" class=\"opacity-0 !pointer-events-none -translate-x-4 absolute top-0 bottom-0 default-transition left-14 px-2 my-auto text-nowrap h-8 bg-[var(--ion-color-secondary)] -z-30 rounded-xl flex items-center justify-center\">\r\n <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--ion-color-secondary)]\"></div>\r\n <ion-icon class=\"z-50 mr-2\" [name]=\"item.icon\"></ion-icon>\r\n <ion-text class=\"z-50\"> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-text>\r\n </div>\r\n <div class=\"absolute top-0 size-full flex items-center justify-center overflow-visible\">\r\n <ion-icon class=\"text-2xl\" [name]=\"item.icon\"></ion-icon>\r\n </div>\r\n </ion-item>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full border-dashed border-l relative\" style=\"border-color: color-mix(in srgb, var(--ion-color-dark) 20%, transparent 80%);\">\r\n @for (mGroup of lstMenu(); track $index) {\r\n <div class=\"absolute top-0 left-0 px-2 py-2 size-full default-transition opacity-0 translate-x-full z-0 mask-y overflow-y-auto\" [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\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</div>\r\n", styles: ["#drawer-button{border-radius:9999px}#drawer-button:hover{background-color:color-mix(in srgb,var(--ion-color-dark-tint) 50%,transparent 50%)}#drawer-button:hover ion-icon{color:var(--ion-color-light)}#menu-conteiner{width:100%;height:100%;overflow-y:auto;overflow-x:hidden}#group-menu{--min-height: 3rem;--min-width: 3rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}#group-menu:hover #tooltip{width:fit-content!important;--tw-translate-x: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;opacity:1!important}.bg-active{--background: color-mix(in srgb, var(--ion-color-secondary) 70%, transparent 30%) !important}.bg-inactive{cursor:pointer;--border-radius: 1rem;--background: color-mix(in srgb, var(--ion-color-light-shade) 50%, transparent 50%) }.bg-inactive::part(native){transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-inactive:hover{--background: color-mix(in srgb, var(--ion-color-light-shade) 70%, transparent 30%) }@media (prefers-color-scheme: dark){.bg-inactive{--background: color-mix(in srgb, var(--ion-color-light-tint) 70%, transparent 30%)}.bg-inactive:hover{--background: var(--ion-color-light-tint)}}\n"] }]
69
+ }], ctorParameters: () => [{ type: i1.GenericService }], propDecorators: { loading: [{
70
+ type: Input
71
+ }], colapsed: [{
72
+ type: Input
73
+ }], colapsedChange: [{
74
+ type: Output
75
+ }], title: [{
76
+ type: Input
77
+ }], useTranslation: [{
78
+ type: Input
79
+ }] } });
80
+ /**
81
+ * Flattens a hierarchical Menu[] structure into a single array
82
+ * containing all Menu items from the original array and all nested items
83
+ * @param menus The array of Menu items to flatten
84
+ * @returns A flattened array containing all Menu items
85
+ */
86
+ function FlattenMenus(menus) {
87
+ const result = [];
88
+ function addMenuItems(items) {
89
+ for (const menu of items) {
90
+ // Add current menu to result
91
+ result.push(menu);
92
+ // Process nested menus if they exist
93
+ if (menu.lstMenu && menu.lstMenu.length > 0) {
94
+ addMenuItems(menu.lstMenu);
95
+ }
96
+ }
97
+ }
98
+ addMenuItems(menus);
99
+ return result;
100
+ }
101
+ function FindMenuParent(menus, targetMenu) {
102
+ for (const menu of menus) {
103
+ // Check if current menu has the target in its direct children
104
+ if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {
105
+ return menu;
106
+ }
107
+ // Search deeper in the hierarchy
108
+ if (menu.lstMenu && menu.lstMenu.length > 0) {
109
+ const parent = FindMenuParent(menu.lstMenu, targetMenu);
110
+ if (parent) {
111
+ return parent;
112
+ }
113
+ }
114
+ }
115
+ return null;
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FwcGhpcmUtaW9uLWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBY2pFLE1BQU0sT0FBTyxlQUFlO0lBZ0IxQixZQUNVLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWZ4QyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztRQUVPLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDakMsWUFBTyxHQUF3QixLQUFLLEVBQVUsQ0FBQTtRQUM5QyxtQkFBYyxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQTBCLElBQUksWUFBcUIsQ0FBQztRQUVuRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQWtCekMsdUJBQWtCLEdBQVMsSUFBSSxDQUFDO1FBT2hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBcEI5QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsbUJBQW1CO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RixNQUFNLEtBQUssR0FBZ0IsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RSxJQUFHLEtBQUssRUFBQyxDQUFDO2dCQUNSLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDbEMsQ0FBQztpQkFDRyxDQUFDO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQW5EVSxlQUFlO21HQUFmLGVBQWUseXdCQ3RCNUIsODNHQXdEQSwyNkNENUNJLFlBQVksNEhBQ1osV0FBVyxrd0JBQ1gsZ0JBQWdCLHlGQUNoQixvQkFBb0IsNkdBQ3BCLGVBQWU7OzRGQU1OLGVBQWU7a0JBYjNCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDaEIsWUFDUyxRQUFRO21GQVdULE9BQU87c0JBQWYsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7O0FBd0NSOzs7OztHQUtHO0FBQ0gsU0FBUyxZQUFZLENBQUMsS0FBYTtJQUNqQyxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFMUIsU0FBUyxZQUFZLENBQUMsS0FBYTtRQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLDZCQUE2QjtZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWxCLHFDQUFxQztZQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFhLEVBQUUsVUFBZ0I7SUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6Qiw4REFBOEQ7UUFDOUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4RCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIElucHV0U2lnbmFsLCBPdXRwdXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuL21lbnUnO1xyXG5cclxuaW1wb3J0IHsgRHJhd2VyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2RyYXdlci1ncm91cC9kcmF3ZXItZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpY3Muc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgRHJhd2VyR3JvdXBDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIHNlbGVjdG9yOiAnZHJhd2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCB7XHJcblxyXG4gIFRyYW5zbGF0aW9uTW9kdWxlOiBhbnkgPSB7XHJcbiAgICBQZXJtaXNzYW8gICAgIDogJ0VudGl0aWVzLlBlcm1pc3Nhby4nLFxyXG4gICAgUGVybWlzc2FvR3J1cG86ICdFbnRpdGllcy5QZXJtaXNzYW9HcnVwby4nXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbHN0TWVudTogSW5wdXRTaWduYWw8TWVudVtdPiA9IGlucHV0PE1lbnVbXT4oKSBcclxuICBsc3RGbGF0dGVuTWVudTogU2lnbmFsPE1lbnVbXT4gPSBjb21wdXRlZCgoKSA9PiB7IHJldHVybiBGbGF0dGVuTWVudXModGhpcy5sc3RNZW51KCkpIH0pO1xyXG5cclxuICBASW5wdXQoKSBjb2xhcHNlZDogYm9vbGVhbiA9IGZhbHNlOyAgXHJcbiAgQE91dHB1dCgpIGNvbGFwc2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+OyAgXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2UsXHJcbiAgKSB7IFxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgLy9IYW5kbGUgTWVudSBUaXRsZVxyXG4gICAgICBjb25zdCBsc3RGbGF0ID0gdGhpcy5sc3RGbGF0dGVuTWVudSgpO1xyXG4gICAgICBjb25zdCBjdXJyZW50TWVudSA9IGxzdEZsYXQuZmluZChwID0+IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygnLycgKyBwLnJvdXRlKSk7XHJcbiAgICAgIGNvbnN0IGdyb3VwOiBNZW51IHwgbnVsbCA9IEZpbmRNZW51UGFyZW50KHRoaXMubHN0TWVudSgpLCBjdXJyZW50TWVudSk7XHJcbiAgICAgIGlmKGdyb3VwKXtcclxuICAgICAgICB0aGlzLkN1cnJlbnRHcm91cEFjdGl2ZSA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5DdXJyZW50R3JvdXBBY3RpdmUgPSB0aGlzLmxzdE1lbnUoKVswXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEN1cnJlbnRHcm91cEFjdGl2ZTogTWVudSA9IG51bGw7XHJcblxyXG4gIFRvZ2dsZUNvbGxhcHNlZCgpe1xyXG4gICAgdGhpcy5jb2xhcHNlZENoYW5nZS5lbWl0KCF0aGlzLl9lbnRlckNvbGFwc2VkKTtcclxuICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIF9lbnRlckNvbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb25Nb3VzZUVudGVyKCl7XHJcbiAgICBpZih0aGlzLmNvbGFwc2VkKXtcclxuICAgICAgdGhpcy5fZW50ZXJDb2xhcHNlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29sYXBzZWRDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uTW91c2VMZWF2ZSgpe1xyXG4gICAgaWYodGhpcy5fZW50ZXJDb2xhcHNlZCl7XHJcbiAgICAgIHRoaXMuX2VudGVyQ29sYXBzZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb2xhcHNlZENoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZsYXR0ZW5zIGEgaGllcmFyY2hpY2FsIE1lbnVbXSBzdHJ1Y3R1cmUgaW50byBhIHNpbmdsZSBhcnJheVxyXG4gKiBjb250YWluaW5nIGFsbCBNZW51IGl0ZW1zIGZyb20gdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBhbGwgbmVzdGVkIGl0ZW1zXHJcbiAqIEBwYXJhbSBtZW51cyBUaGUgYXJyYXkgb2YgTWVudSBpdGVtcyB0byBmbGF0dGVuXHJcbiAqIEByZXR1cm5zIEEgZmxhdHRlbmVkIGFycmF5IGNvbnRhaW5pbmcgYWxsIE1lbnUgaXRlbXNcclxuICovXHJcbmZ1bmN0aW9uIEZsYXR0ZW5NZW51cyhtZW51czogTWVudVtdKTogTWVudVtdIHtcclxuICBjb25zdCByZXN1bHQ6IE1lbnVbXSA9IFtdO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZE1lbnVJdGVtcyhpdGVtczogTWVudVtdKSB7XHJcbiAgICBmb3IgKGNvbnN0IG1lbnUgb2YgaXRlbXMpIHtcclxuICAgICAgLy8gQWRkIGN1cnJlbnQgbWVudSB0byByZXN1bHRcclxuICAgICAgcmVzdWx0LnB1c2gobWVudSk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBQcm9jZXNzIG5lc3RlZCBtZW51cyBpZiB0aGV5IGV4aXN0XHJcbiAgICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBhZGRNZW51SXRlbXMobWVudS5sc3RNZW51KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBhZGRNZW51SXRlbXMobWVudXMpO1xyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEZpbmRNZW51UGFyZW50KG1lbnVzOiBNZW51W10sIHRhcmdldE1lbnU6IE1lbnUpOiBNZW51IHwgbnVsbCB7XHJcbiAgZm9yIChjb25zdCBtZW51IG9mIG1lbnVzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBjdXJyZW50IG1lbnUgaGFzIHRoZSB0YXJnZXQgaW4gaXRzIGRpcmVjdCBjaGlsZHJlblxyXG4gICAgaWYgKG1lbnUubHN0TWVudSAmJiBtZW51LmxzdE1lbnUuc29tZShtID0+IG0gPT09IHRhcmdldE1lbnUpKSB7XHJcbiAgICAgIHJldHVybiBtZW51O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBTZWFyY2ggZGVlcGVyIGluIHRoZSBoaWVyYXJjaHlcclxuICAgIGlmIChtZW51LmxzdE1lbnUgJiYgbWVudS5sc3RNZW51Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gRmluZE1lbnVQYXJlbnQobWVudS5sc3RNZW51LCB0YXJnZXRNZW51KTtcclxuICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcmV0dXJuIG51bGw7XHJcbn0iLCI8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGgtZnVsbCB3LVsxOXJlbV0gZmxleCBmbGV4LWNvbCBiZy1saWdodFwiIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTIgaC0xNCBwdC0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB0ZXh0LTN4bCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgPGlvbi1idXR0b24gaWQ9XCJkcmF3ZXItYnV0dG9uXCIgY2xhc3M9XCJzaHJpbmstMCBwb3J0cmFpdDpoaWRkZW4gYXNwZWN0LXNxdWFyZSBoLTEyIHotMTAgZGVmYXVsdC10cmFuc2l0aW9uIG0tMFwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc3R5bGU9XCItLWJvcmRlci1yYWRpdXM6IDk5OXJlbTsgLS1ib3JkZXItd2lkdGg6IDA7XCIgKGNsaWNrKT1cIlRvZ2dsZUNvbGxhcHNlZCgpXCI+IFxyXG4gICAgICA8aW9uLWljb24gbmFtZT1cIm1lbnVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGxcIj5cclxuICAgICAgQGlmICghcmVmLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb24gei0wXCIgW25nQ2xhc3NdPVwieydvcGFjaXR5LTAgLXRyYW5zbGF0ZS14LTEvMic6IGNvbGFwc2VkIH1cIj4gXHJcbiAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgI3JlZiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWxvZ29dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGlkPVwibWVudS1jb250ZWluZXJcIiBjbGFzcz1cIm1hc2steSBmbGV4IGZsZXgtY29sIHJlbGF0aXZlXCI+XHJcbiAgICA8bG9hZGluZyBbdHlwZV09XCIzXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIHRleHQ9XCJcIj48L2xvYWRpbmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2l6ZS1mdWxsIHNocmluayBmbGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgdy0xNiBwLTIgc2hyaW5rLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMlwiPlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNZW51KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8aW9uLWl0ZW0gXHJcbiAgICAgICAgICAgICAgaWQ9XCJncm91cC1tZW51XCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIiBjbGFzcz1cImJnLWluYWN0aXZlIHJlbGF0aXZlIG92ZXJmbG93LXZpc2libGVcIiBsaW5lcz1cIm5vbmVcIiBzdHlsZT1cIi0tcGFkZGluZy1zdGFydDogMDtcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDdXJyZW50R3JvdXBBY3RpdmUgPSBpdGVtXCIgXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydiZy1hY3RpdmUnOiBDdXJyZW50R3JvdXBBY3RpdmUgPT0gaXRlbX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cInRvb2x0aXBcIiBjbGFzcz1cIm9wYWNpdHktMCAhcG9pbnRlci1ldmVudHMtbm9uZSAtdHJhbnNsYXRlLXgtNCBhYnNvbHV0ZSB0b3AtMCBib3R0b20tMCBkZWZhdWx0LXRyYW5zaXRpb24gbGVmdC0xNCBweC0yIG15LWF1dG8gdGV4dC1ub3dyYXAgaC04IGJnLVt2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5KV0gLXotMzAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIC1sZWZ0LTEgdG9wLTAgcm91bmRlZCBib3R0b20tMCBteS1hdXRvIHJvdGF0ZS00NSBoLTQgYXNwZWN0LXNxdWFyZSBiZy1bdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSldXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ6LTUwIG1yLTJcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwiei01MFwiPiBcclxuICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW9HcnVwbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBzaXplLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctdmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC0yeGxcIiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgYm9yZGVyLWRhc2hlZCBib3JkZXItbCByZWxhdGl2ZVwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLWRhcmspIDIwJSwgdHJhbnNwYXJlbnQgODAlKTtcIj5cclxuICAgICAgICBAZm9yIChtR3JvdXAgb2YgbHN0TWVudSgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcHgtMiBweS0yIHNpemUtZnVsbCBkZWZhdWx0LXRyYW5zaXRpb24gb3BhY2l0eS0wIHRyYW5zbGF0ZS14LWZ1bGwgei0wIG1hc2steSBvdmVyZmxvdy15LWF1dG9cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMTAwICF0cmFuc2xhdGUteC0wJzogQ3VycmVudEdyb3VwQWN0aXZlID09IG1Hcm91cH1cIj5cclxuICAgICAgICAgICAgPGRyYXdlci1ncm91cCBbTWVudUdyb3VwXT1cIm1Hcm91cFwiIFt1c2VUcmFuc2xhdGlvbl09XCJ1c2VUcmFuc2xhdGlvblwiIFtjb2xhcHNlZF09XCJjb2xhcHNlZFwiPjwvZHJhd2VyLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiBcclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdy1mdWxsXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWRyYXdlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,15 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxJQUFJO0lBT2YsWUFBWSxJQUEwQixFQUFFLEtBQWEsRUFBRSxJQUFvQixFQUFFLFVBQWtCLEVBQUUsRUFBRSxRQUF1QixJQUFJO1FBQzVILElBQUksQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUcsSUFBSSxFQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQztRQUNwQixDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGNsYXNzIE1lbnV7XHJcbiAgaWQ6IG51bWJlcjtcclxuICByb3V0ZTogc3RyaW5nIHwgbnVsbDtcclxuICBpY29uIDogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGxzdE1lbnU6IE1lbnVbXTtcclxuICB0eXBlOiAnTWVudScgfCAnTWVudUdyb3VwJ1xyXG4gIGNvbnN0cnVjdG9yKHR5cGU6ICdNZW51JyB8ICdNZW51R3JvdXAnLCB0aXRsZTogc3RyaW5nLCBpY29uIDogc3RyaW5nIHwgbnVsbCwgbHN0TWVudTogTWVudVtdID0gW10sIHJvdXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCl7XHJcbiAgICB0aGlzLnR5cGUgID0gdHlwZTsgXHJcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICB0aGlzLnJvdXRlID0gcm91dGU7XHJcbiAgICBpZihpY29uKXtcclxuICAgICAgdGhpcy5pY29uICA9IGljb247XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pY29uID0gXCJsYXllcnNcIjtcclxuICAgIH1cclxuICAgIHRoaXMubHN0TWVudSA9IGxzdE1lbnU7XHJcbiAgfVxyXG59Il19