@sapphire-ion/framework 1.2.63 → 1.3.2

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 (498) hide show
  1. package/build.ps1 +39 -0
  2. package/ng-package.json +10 -0
  3. package/package.json +43 -47
  4. package/src/lib/classes/comparison/comparison-operator.ts +17 -0
  5. package/src/lib/classes/comparison/comparison-value-type.ts +34 -0
  6. package/src/lib/classes/comparison/comparison.ts +45 -0
  7. package/src/lib/classes/comparison/properties/bool-property.ts +16 -0
  8. package/src/lib/classes/comparison/properties/date-property.ts +28 -0
  9. package/src/lib/classes/comparison/properties/datetime-property.ts +28 -0
  10. package/src/lib/classes/comparison/properties/decimal-property.ts +28 -0
  11. package/src/lib/classes/comparison/properties/enum-property.ts +28 -0
  12. package/src/lib/classes/comparison/properties/implicit-property.ts +13 -0
  13. package/src/lib/classes/comparison/properties/int-property.ts +28 -0
  14. package/src/lib/classes/comparison/properties/long-property.ts +28 -0
  15. package/src/lib/classes/comparison/properties/string-property.ts +16 -0
  16. package/src/lib/classes/comparison/properties/time-property.ts +28 -0
  17. package/{lib/classes/credentials.d.ts → src/lib/classes/credentials.ts} +5 -5
  18. package/src/lib/classes/environment.ts +37 -0
  19. package/src/lib/classes/filters/view-filtros.ts +18 -0
  20. package/src/lib/classes/infinite-scroll.ts +112 -0
  21. package/src/lib/classes/inputs/table-field-form-builder.ts +12 -0
  22. package/src/lib/classes/inputs/table-field.ts +62 -0
  23. package/src/lib/classes/page-option.ts +8 -0
  24. package/src/lib/classes/routes/default-routing-factory.ts +24 -0
  25. package/src/lib/classes/routes/id-preloader-configuration.ts +21 -0
  26. package/src/lib/classes/routes/route-data.ts +9 -0
  27. package/src/lib/components/carousel/carousel-image/carousel-image.component.html +4 -0
  28. package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +15 -0
  29. package/src/lib/components/carousel/carousel-item/carousel-item.component.html +3 -0
  30. package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +14 -0
  31. package/src/lib/components/carousel/carousel.component.html +22 -0
  32. package/src/lib/components/carousel/carousel.component.ts +83 -0
  33. package/src/lib/components/carousel/carousel.module.ts +20 -0
  34. package/src/lib/components/carousel/i-carousel-item.component.ts +8 -0
  35. package/src/lib/components/content-block/content-block.component.html +6 -0
  36. package/src/lib/components/content-block/content-block.component.ts +25 -0
  37. package/src/lib/components/default/default-list/abstract-list.ts +56 -0
  38. package/src/lib/components/default/default-list/default-list.component.html +60 -0
  39. package/src/lib/components/default/default-list/default-list.component.ts +72 -0
  40. package/src/lib/components/default/default-list/header-list/header-list.component.html +32 -0
  41. package/src/lib/components/default/default-list/header-list/header-list.component.ts +85 -0
  42. package/src/lib/components/default/default-list/list.ts +127 -0
  43. package/src/lib/components/default/default-pagination/default-pagination.component.html +52 -0
  44. package/src/lib/components/default/default-pagination/default-pagination.component.ts +118 -0
  45. package/src/lib/components/default/default-table/default-table.component.html +104 -0
  46. package/src/lib/components/default/default-table/default-table.component.ts +255 -0
  47. package/src/lib/components/default/default-table/th-filter/th-filter.component.html +69 -0
  48. package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +205 -0
  49. package/src/lib/components/default/default-view/abstract-view.ts +25 -0
  50. package/src/lib/components/default/default-view/default-view.component.html +111 -0
  51. package/src/lib/components/default/default-view/default-view.component.ts +56 -0
  52. package/src/lib/components/default/default-view/header-view/header-view.component.html +64 -0
  53. package/src/lib/components/default/default-view/header-view/header-view.component.ts +62 -0
  54. package/src/lib/components/default/default-view/view.ts +195 -0
  55. package/src/lib/components/default/default.module.ts +61 -0
  56. package/src/lib/components/default-page/default.page.html +63 -0
  57. package/src/lib/components/default-page/default.page.ts +84 -0
  58. package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +44 -0
  59. package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +21 -0
  60. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +5 -0
  61. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +17 -0
  62. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +12 -0
  63. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +35 -0
  64. package/src/lib/components/drawer/drawer-group/drawer-group.component.html +79 -0
  65. package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +49 -0
  66. package/src/lib/components/drawer/drawer.component.html +120 -0
  67. package/src/lib/components/drawer/drawer.component.ts +157 -0
  68. package/src/lib/components/drawer/menu.ts +20 -0
  69. package/src/lib/components/filter/filter.component.html +43 -0
  70. package/src/lib/components/filter/filter.component.ts +141 -0
  71. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +35 -0
  72. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +19 -0
  73. package/src/lib/components/image/image.component.html +17 -0
  74. package/src/lib/components/image/image.component.ts +95 -0
  75. package/src/lib/components/info-popover/info-popover.component.html +23 -0
  76. package/src/lib/components/info-popover/info-popover.component.ts +75 -0
  77. package/src/lib/components/inputs/custom-input.ts +94 -0
  78. package/src/lib/components/inputs/input-bool/input-bool.component.html +26 -0
  79. package/src/lib/components/inputs/input-bool/input-bool.component.ts +39 -0
  80. package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +14 -0
  81. package/src/lib/components/inputs/input-cep/input-cep.component.html +27 -0
  82. package/src/lib/components/inputs/input-cep/input-cep.component.ts +41 -0
  83. package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +4 -0
  84. package/src/lib/components/inputs/input-color/input-color.component.html +79 -0
  85. package/src/lib/components/inputs/input-color/input-color.component.ts +544 -0
  86. package/{lib/components/inputs/input-configuration.d.ts → src/lib/components/inputs/input-configuration.ts} +23 -10
  87. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +28 -0
  88. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +99 -0
  89. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +4 -0
  90. package/src/lib/components/inputs/input-date/input-date.component.html +89 -0
  91. package/src/lib/components/inputs/input-date/input-date.component.ts +269 -0
  92. package/src/lib/components/inputs/input-date/input-date.configuration.ts +8 -0
  93. package/src/lib/components/inputs/input-decimal/input-decimal.component.html +32 -0
  94. package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +283 -0
  95. package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +47 -0
  96. package/src/lib/components/inputs/input-default-configurations.ts +15 -0
  97. package/src/lib/components/inputs/input-file/download-button/download-button.component.html +56 -0
  98. package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +91 -0
  99. package/src/lib/components/inputs/input-file/input-file.component.html +56 -0
  100. package/src/lib/components/inputs/input-file/input-file.component.ts +97 -0
  101. package/src/lib/components/inputs/input-file/input-file.configuration.ts +25 -0
  102. package/src/lib/components/inputs/input-icon/fluenticons.ts +3733 -0
  103. package/src/lib/components/inputs/input-icon/input-icon.component.html +8 -0
  104. package/src/lib/components/inputs/input-icon/input-icon.component.ts +52 -0
  105. package/src/lib/components/inputs/input-icon/ionicons.ts +1359 -0
  106. package/src/lib/components/inputs/input-provider-factory.ts +12 -0
  107. package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +19 -0
  108. package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +16 -0
  109. package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +19 -0
  110. package/src/lib/components/inputs/input-select/input-select.component.html +176 -0
  111. package/src/lib/components/inputs/input-select/input-select.component.ts +366 -0
  112. package/src/lib/components/inputs/input-select/input.select.configuration.ts +300 -0
  113. package/src/lib/components/inputs/input-string/input-string.component.html +27 -0
  114. package/src/lib/components/inputs/input-string/input-string.component.ts +31 -0
  115. package/src/lib/components/inputs/input-string/input-string.configuration.ts +20 -0
  116. package/src/lib/components/inputs/input-telefone/input-telefone.component.html +29 -0
  117. package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +63 -0
  118. package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +8 -0
  119. package/src/lib/components/inputs/input-textarea/input-textarea.component.html +27 -0
  120. package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +75 -0
  121. package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +7 -0
  122. package/src/lib/components/inputs/input-type.ts +22 -0
  123. package/src/lib/components/inputs/input-validators.ts +111 -0
  124. package/src/lib/components/inputs/inputs.module.ts +74 -0
  125. package/src/lib/components/loading/loading.component.html +28 -0
  126. package/src/lib/components/loading/loading.component.ts +29 -0
  127. package/src/lib/components/login/login-admin/login-admin.component.html +28 -0
  128. package/src/lib/components/login/login-admin/login-admin.component.ts +51 -0
  129. package/src/lib/components/login/login.component.html +104 -0
  130. package/src/lib/components/login/login.component.ts +96 -0
  131. package/src/lib/components/main-content/main-content.component.html +145 -0
  132. package/src/lib/components/main-content/main-content.component.ts +93 -0
  133. package/src/lib/components/popover/sion-popover/sion-popover.component.html +21 -0
  134. package/src/lib/components/popover/sion-popover/sion-popover.component.ts +182 -0
  135. package/src/lib/components/popover/sion-popover.module.ts +12 -0
  136. package/src/lib/components/sion-card/sion-card.component.html +12 -0
  137. package/src/lib/components/sion-card/sion-card.component.ts +23 -0
  138. package/src/lib/components/stepper/step/step.component.html +11 -0
  139. package/src/lib/components/stepper/step/step.component.ts +44 -0
  140. package/src/lib/components/stepper/stepper.component.html +3 -0
  141. package/src/lib/components/stepper/stepper.component.ts +37 -0
  142. package/src/lib/components/stepper/stepper.module.ts +15 -0
  143. package/src/lib/components/tabs/tab/tab.component.html +8 -0
  144. package/src/lib/components/tabs/tab/tab.component.ts +28 -0
  145. package/src/lib/components/tabs/tabs/tabs.component.html +14 -0
  146. package/src/lib/components/tabs/tabs/tabs.component.ts +42 -0
  147. package/src/lib/components/tabs/tabs.module.ts +15 -0
  148. package/src/lib/components/text-tooltip/text-tooltip.component.html +8 -0
  149. package/src/lib/components/text-tooltip/text-tooltip.component.scss +0 -0
  150. package/src/lib/components/text-tooltip/text-tooltip.component.ts +45 -0
  151. package/src/lib/components/tooltip/tooltip.component.html +53 -0
  152. package/src/lib/components/tooltip/tooltip.component.ts +16 -0
  153. package/src/lib/core.module.ts +29 -0
  154. package/src/lib/directives/ng-var.directive.ts +26 -0
  155. package/src/lib/guards/auth.guard.ts +19 -0
  156. package/src/lib/guards/error.interceptor.ts +108 -0
  157. package/src/lib/guards/token.interceptor.ts +28 -0
  158. package/src/lib/index.ts +191 -0
  159. package/src/lib/pipes/secure.pipe.ts +39 -0
  160. package/src/lib/services/auth.service.ts +150 -0
  161. package/src/lib/services/crypto.service.ts +164 -0
  162. package/src/lib/services/environment.service.ts +17 -0
  163. package/src/lib/services/generic.service.ts +85 -0
  164. package/src/lib/services/modal-focus-trap.service.ts +65 -0
  165. package/src/lib/services/navigation-context.service.ts +121 -0
  166. package/src/lib/services/popover-focus-trap.service.ts +65 -0
  167. package/src/lib/services/route/route.cache.service.ts +17 -0
  168. package/src/lib/services/route/route.provider.service.ts +49 -0
  169. package/src/lib/services/usuario.service.ts +44 -0
  170. package/src/lib/services/utils.service.ts +216 -0
  171. package/src/lib/services/web/api-url-provider.service.ts +48 -0
  172. package/src/lib/services/web/http.ativo.service.ts +37 -0
  173. package/src/lib/services/web/http.service.ts +206 -0
  174. package/src/lib/services/web/storage.service.ts +210 -0
  175. package/src/public-api.ts +5 -0
  176. package/tailwind.config.js +27 -0
  177. package/tsconfig.lib.json +29 -0
  178. package/tsconfig.lib.prod.json +23 -0
  179. package/tsconfig.spec.json +27 -0
  180. package/esm2022/lib/classes/comparison/comparison-operator.mjs +0 -18
  181. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +0 -25
  182. package/esm2022/lib/classes/comparison/comparison.mjs +0 -41
  183. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +0 -15
  184. package/esm2022/lib/classes/comparison/properties/date-property.mjs +0 -27
  185. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +0 -27
  186. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +0 -27
  187. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +0 -27
  188. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +0 -12
  189. package/esm2022/lib/classes/comparison/properties/int-property.mjs +0 -27
  190. package/esm2022/lib/classes/comparison/properties/long-property.mjs +0 -27
  191. package/esm2022/lib/classes/comparison/properties/string-property.mjs +0 -15
  192. package/esm2022/lib/classes/comparison/properties/time-property.mjs +0 -27
  193. package/esm2022/lib/classes/credentials.mjs +0 -2
  194. package/esm2022/lib/classes/environment.mjs +0 -34
  195. package/esm2022/lib/classes/filters/view-filtros.mjs +0 -18
  196. package/esm2022/lib/classes/infinite-scroll.mjs +0 -90
  197. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +0 -10
  198. package/esm2022/lib/classes/inputs/table-field.mjs +0 -79
  199. package/esm2022/lib/classes/page-option.mjs +0 -2
  200. package/esm2022/lib/classes/routes/default-routing-factory.mjs +0 -23
  201. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +0 -22
  202. package/esm2022/lib/classes/routes/route-data.mjs +0 -9
  203. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +0 -18
  204. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +0 -15
  205. package/esm2022/lib/components/carousel/carousel.component.mjs +0 -79
  206. package/esm2022/lib/components/carousel/carousel.module.mjs +0 -31
  207. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +0 -16
  208. package/esm2022/lib/components/content-block/content-block.component.mjs +0 -27
  209. package/esm2022/lib/components/default/default-list/abstract-list.mjs +0 -49
  210. package/esm2022/lib/components/default/default-list/default-list.component.mjs +0 -95
  211. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +0 -98
  212. package/esm2022/lib/components/default/default-list/list.mjs +0 -120
  213. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +0 -123
  214. package/esm2022/lib/components/default/default-table/default-table.component.mjs +0 -216
  215. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +0 -212
  216. package/esm2022/lib/components/default/default-view/abstract-view.mjs +0 -22
  217. package/esm2022/lib/components/default/default-view/default-view.component.mjs +0 -76
  218. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +0 -81
  219. package/esm2022/lib/components/default/default-view/view.mjs +0 -198
  220. package/esm2022/lib/components/default/default.module.mjs +0 -98
  221. package/esm2022/lib/components/default-page/default.page.mjs +0 -75
  222. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +0 -60
  223. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +0 -31
  224. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +0 -15
  225. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +0 -34
  226. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +0 -52
  227. package/esm2022/lib/components/drawer/drawer.component.mjs +0 -156
  228. package/esm2022/lib/components/drawer/menu.mjs +0 -15
  229. package/esm2022/lib/components/filter/filter.component.mjs +0 -145
  230. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +0 -17
  231. package/esm2022/lib/components/image/image.component.mjs +0 -91
  232. package/esm2022/lib/components/info-popover/info-popover.component.mjs +0 -91
  233. package/esm2022/lib/components/inputs/custom-input.mjs +0 -85
  234. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +0 -46
  235. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +0 -16
  236. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +0 -50
  237. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +0 -4
  238. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +0 -481
  239. package/esm2022/lib/components/inputs/input-configuration.mjs +0 -2
  240. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +0 -116
  241. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +0 -6
  242. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +0 -263
  243. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +0 -11
  244. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +0 -276
  245. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +0 -50
  246. package/esm2022/lib/components/inputs/input-default-configurations.mjs +0 -14
  247. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +0 -102
  248. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +0 -100
  249. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +0 -24
  250. package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +0 -3734
  251. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +0 -60
  252. package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +0 -1360
  253. package/esm2022/lib/components/inputs/input-provider-factory.mjs +0 -12
  254. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +0 -16
  255. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +0 -16
  256. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +0 -16
  257. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +0 -376
  258. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +0 -233
  259. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +0 -41
  260. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +0 -20
  261. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +0 -74
  262. package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +0 -12
  263. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +0 -82
  264. package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +0 -7
  265. package/esm2022/lib/components/inputs/input-type.mjs +0 -24
  266. package/esm2022/lib/components/inputs/input-validators.mjs +0 -121
  267. package/esm2022/lib/components/inputs/inputs.module.mjs +0 -133
  268. package/esm2022/lib/components/loading/loading.component.mjs +0 -34
  269. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +0 -52
  270. package/esm2022/lib/components/login/login.component.mjs +0 -99
  271. package/esm2022/lib/components/main-content/main-content.component.mjs +0 -100
  272. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +0 -182
  273. package/esm2022/lib/components/popover/sion-popover.module.mjs +0 -21
  274. package/esm2022/lib/components/sion-card/sion-card.component.mjs +0 -26
  275. package/esm2022/lib/components/stepper/step/step.component.mjs +0 -43
  276. package/esm2022/lib/components/stepper/stepper.component.mjs +0 -36
  277. package/esm2022/lib/components/stepper/stepper.module.mjs +0 -25
  278. package/esm2022/lib/components/tabs/tab/tab.component.mjs +0 -41
  279. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +0 -56
  280. package/esm2022/lib/components/tabs/tabs.module.mjs +0 -22
  281. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +0 -51
  282. package/esm2022/lib/components/tooltip/tooltip.component.mjs +0 -21
  283. package/esm2022/lib/core.module.mjs +0 -38
  284. package/esm2022/lib/directives/ng-var.directive.mjs +0 -29
  285. package/esm2022/lib/guards/auth.guard.mjs +0 -26
  286. package/esm2022/lib/guards/error.interceptor.mjs +0 -107
  287. package/esm2022/lib/guards/token.interceptor.mjs +0 -25
  288. package/esm2022/lib/index.mjs +0 -188
  289. package/esm2022/lib/pipes/secure.pipe.mjs +0 -42
  290. package/esm2022/lib/services/auth.service.mjs +0 -146
  291. package/esm2022/lib/services/environment.service.mjs +0 -26
  292. package/esm2022/lib/services/generic.service.mjs +0 -84
  293. package/esm2022/lib/services/modal-focus-trap.service.mjs +0 -62
  294. package/esm2022/lib/services/navigation-context.service.mjs +0 -111
  295. package/esm2022/lib/services/popover-focus-trap.service.mjs +0 -62
  296. package/esm2022/lib/services/route/route.cache.service.mjs +0 -15
  297. package/esm2022/lib/services/route/route.provider.service.mjs +0 -42
  298. package/esm2022/lib/services/usuario.service.mjs +0 -49
  299. package/esm2022/lib/services/utils.service.mjs +0 -190
  300. package/esm2022/lib/services/web/api-url-provider.service.mjs +0 -29
  301. package/esm2022/lib/services/web/http.ativo.service.mjs +0 -37
  302. package/esm2022/lib/services/web/http.service.mjs +0 -184
  303. package/esm2022/lib/services/web/storage.service.mjs +0 -186
  304. package/esm2022/public-api.mjs +0 -5
  305. package/esm2022/sapphire-ion-framework.mjs +0 -5
  306. package/fesm2022/sapphire-ion-framework.mjs +0 -12491
  307. package/fesm2022/sapphire-ion-framework.mjs.map +0 -1
  308. package/index.d.ts +0 -5
  309. package/lib/classes/comparison/comparison-operator.d.ts +0 -9
  310. package/lib/classes/comparison/comparison-value-type.d.ts +0 -23
  311. package/lib/classes/comparison/comparison.d.ts +0 -25
  312. package/lib/classes/comparison/properties/bool-property.d.ts +0 -7
  313. package/lib/classes/comparison/properties/date-property.d.ts +0 -11
  314. package/lib/classes/comparison/properties/datetime-property.d.ts +0 -11
  315. package/lib/classes/comparison/properties/decimal-property.d.ts +0 -11
  316. package/lib/classes/comparison/properties/enum-property.d.ts +0 -11
  317. package/lib/classes/comparison/properties/implicit-property.d.ts +0 -6
  318. package/lib/classes/comparison/properties/int-property.d.ts +0 -11
  319. package/lib/classes/comparison/properties/long-property.d.ts +0 -11
  320. package/lib/classes/comparison/properties/string-property.d.ts +0 -7
  321. package/lib/classes/comparison/properties/time-property.d.ts +0 -11
  322. package/lib/classes/environment.d.ts +0 -14
  323. package/lib/classes/filters/view-filtros.d.ts +0 -10
  324. package/lib/classes/infinite-scroll.d.ts +0 -26
  325. package/lib/classes/inputs/table-field-form-builder.d.ts +0 -5
  326. package/lib/classes/inputs/table-field.d.ts +0 -20
  327. package/lib/classes/page-option.d.ts +0 -7
  328. package/lib/classes/routes/default-routing-factory.d.ts +0 -8
  329. package/lib/classes/routes/id-preloader-configuration.d.ts +0 -28
  330. package/lib/classes/routes/route-data.d.ts +0 -5
  331. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +0 -10
  332. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +0 -9
  333. package/lib/components/carousel/carousel.component.d.ts +0 -32
  334. package/lib/components/carousel/carousel.module.d.ts +0 -12
  335. package/lib/components/carousel/i-carousel-item.component.d.ts +0 -9
  336. package/lib/components/content-block/content-block.component.d.ts +0 -15
  337. package/lib/components/default/default-list/abstract-list.d.ts +0 -21
  338. package/lib/components/default/default-list/default-list.component.d.ts +0 -47
  339. package/lib/components/default/default-list/header-list/header-list.component.d.ts +0 -45
  340. package/lib/components/default/default-list/list.d.ts +0 -40
  341. package/lib/components/default/default-pagination/default-pagination.component.d.ts +0 -36
  342. package/lib/components/default/default-table/default-table.component.d.ts +0 -90
  343. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +0 -23
  344. package/lib/components/default/default-view/abstract-view.d.ts +0 -18
  345. package/lib/components/default/default-view/default-view.component.d.ts +0 -40
  346. package/lib/components/default/default-view/header-view/header-view.component.d.ts +0 -36
  347. package/lib/components/default/default-view/view.d.ts +0 -67
  348. package/lib/components/default/default.module.d.ts +0 -31
  349. package/lib/components/default-page/default.page.d.ts +0 -35
  350. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +0 -14
  351. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +0 -10
  352. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +0 -9
  353. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +0 -13
  354. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +0 -22
  355. package/lib/components/drawer/drawer.component.d.ts +0 -31
  356. package/lib/components/drawer/menu.d.ts +0 -9
  357. package/lib/components/filter/filter.component.d.ts +0 -29
  358. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +0 -8
  359. package/lib/components/image/image.component.d.ts +0 -23
  360. package/lib/components/info-popover/info-popover.component.d.ts +0 -15
  361. package/lib/components/inputs/custom-input.d.ts +0 -40
  362. package/lib/components/inputs/input-bool/input-bool.component.d.ts +0 -16
  363. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +0 -17
  364. package/lib/components/inputs/input-cep/input-cep.component.d.ts +0 -18
  365. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +0 -3
  366. package/lib/components/inputs/input-color/input-color.component.d.ts +0 -77
  367. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +0 -19
  368. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +0 -5
  369. package/lib/components/inputs/input-date/input-date.component.d.ts +0 -61
  370. package/lib/components/inputs/input-date/input-date.configuration.d.ts +0 -11
  371. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +0 -27
  372. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +0 -28
  373. package/lib/components/inputs/input-default-configurations.d.ts +0 -13
  374. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +0 -40
  375. package/lib/components/inputs/input-file/input-file.component.d.ts +0 -28
  376. package/lib/components/inputs/input-file/input-file.configuration.d.ts +0 -8
  377. package/lib/components/inputs/input-icon/fluenticons.d.ts +0 -1
  378. package/lib/components/inputs/input-icon/input-icon.component.d.ts +0 -20
  379. package/lib/components/inputs/input-icon/ionicons.d.ts +0 -1
  380. package/lib/components/inputs/input-provider-factory.d.ts +0 -4
  381. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +0 -18
  382. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +0 -14
  383. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +0 -18
  384. package/lib/components/inputs/input-select/input-select.component.d.ts +0 -83
  385. package/lib/components/inputs/input-select/input.select.configuration.d.ts +0 -127
  386. package/lib/components/inputs/input-string/input-string.component.d.ts +0 -14
  387. package/lib/components/inputs/input-string/input-string.configuration.d.ts +0 -15
  388. package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +0 -19
  389. package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +0 -9
  390. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +0 -17
  391. package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +0 -4
  392. package/lib/components/inputs/input-type.d.ts +0 -22
  393. package/lib/components/inputs/input-validators.d.ts +0 -25
  394. package/lib/components/inputs/inputs.module.d.ts +0 -33
  395. package/lib/components/loading/loading.component.d.ts +0 -18
  396. package/lib/components/login/login-admin/login-admin.component.d.ts +0 -20
  397. package/lib/components/login/login.component.d.ts +0 -29
  398. package/lib/components/main-content/main-content.component.d.ts +0 -27
  399. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +0 -43
  400. package/lib/components/popover/sion-popover.module.d.ts +0 -9
  401. package/lib/components/sion-card/sion-card.component.d.ts +0 -11
  402. package/lib/components/stepper/step/step.component.d.ts +0 -15
  403. package/lib/components/stepper/stepper.component.d.ts +0 -14
  404. package/lib/components/stepper/stepper.module.d.ts +0 -10
  405. package/lib/components/tabs/tab/tab.component.d.ts +0 -19
  406. package/lib/components/tabs/tabs/tabs.component.d.ts +0 -18
  407. package/lib/components/tabs/tabs.module.d.ts +0 -12
  408. package/lib/components/text-tooltip/text-tooltip.component.d.ts +0 -16
  409. package/lib/components/tooltip/tooltip.component.d.ts +0 -7
  410. package/lib/core.module.d.ts +0 -16
  411. package/lib/directives/ng-var.directive.d.ts +0 -12
  412. package/lib/guards/auth.guard.d.ts +0 -11
  413. package/lib/guards/error.interceptor.d.ts +0 -32
  414. package/lib/guards/token.interceptor.d.ts +0 -11
  415. package/lib/index.d.ts +0 -118
  416. package/lib/pipes/secure.pipe.d.ts +0 -15
  417. package/lib/services/auth.service.d.ts +0 -47
  418. package/lib/services/environment.service.d.ts +0 -10
  419. package/lib/services/generic.service.d.ts +0 -22
  420. package/lib/services/modal-focus-trap.service.d.ts +0 -13
  421. package/lib/services/navigation-context.service.d.ts +0 -14
  422. package/lib/services/popover-focus-trap.service.d.ts +0 -13
  423. package/lib/services/route/route.cache.service.d.ts +0 -7
  424. package/lib/services/route/route.provider.service.d.ts +0 -13
  425. package/lib/services/usuario.service.d.ts +0 -21
  426. package/lib/services/utils.service.d.ts +0 -53
  427. package/lib/services/web/api-url-provider.service.d.ts +0 -13
  428. package/lib/services/web/http.ativo.service.d.ts +0 -20
  429. package/lib/services/web/http.service.d.ts +0 -59
  430. package/lib/services/web/storage.service.d.ts +0 -46
  431. package/public-api.d.ts +0 -1
  432. /package/{themes → src/lib}/compiled-styles.scss +0 -0
  433. /package/{themes → src/lib}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  434. /package/{themes → src/lib}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  435. /package/{themes → src/lib}/components/carousel/carousel.component.scss +0 -0
  436. /package/{themes → src/lib}/components/content-block/content-block.component.scss +0 -0
  437. /package/{themes → src/lib}/components/default/default-list/default-list.component.scss +0 -0
  438. /package/{themes → src/lib}/components/default/default-list/header-list/header-list.component.scss +0 -0
  439. /package/{themes → src/lib}/components/default/default-pagination/default-pagination.component.scss +0 -0
  440. /package/{themes → src/lib}/components/default/default-table/default-table.component.scss +0 -0
  441. /package/{themes → src/lib}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
  442. /package/{themes → src/lib}/components/default/default-view/default-view.component.scss +0 -0
  443. /package/{themes → src/lib}/components/default/default-view/header-view/header-view.component.scss +0 -0
  444. /package/{themes → src/lib}/components/default-page/default.page.scss +0 -0
  445. /package/{themes → src/lib}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
  446. /package/{themes → src/lib}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  447. /package/{themes → src/lib}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
  448. /package/{themes → src/lib}/components/drawer/drawer.component.scss +0 -0
  449. /package/{themes → src/lib}/components/filter/filter.component.scss +0 -0
  450. /package/{themes → src/lib}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
  451. /package/{themes → src/lib}/components/image/image.component.scss +0 -0
  452. /package/{themes → src/lib}/components/info-popover/info-popover.component.scss +0 -0
  453. /package/{themes → src/lib}/components/inputs/input-bool/input-bool.component.scss +0 -0
  454. /package/{themes → src/lib}/components/inputs/input-cep/input-cep.component.scss +0 -0
  455. /package/{themes → src/lib}/components/inputs/input-color/input-color.component.scss +0 -0
  456. /package/{themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss → src/lib/components/inputs/input-color/input-color.configuration.ts} +0 -0
  457. /package/{themes/components/inputs/input-icon/input-icon.component.scss → src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss} +0 -0
  458. /package/{themes → src/lib}/components/inputs/input-date/input-date.component.scss +0 -0
  459. /package/{themes → src/lib}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
  460. /package/{themes → src/lib}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
  461. /package/{themes → src/lib}/components/inputs/input-file/input-file.component.scss +0 -0
  462. /package/{themes/components/inputs/input-string/input-string.component.scss → src/lib/components/inputs/input-icon/input-icon.component.scss} +0 -0
  463. /package/{themes → src/lib}/components/inputs/input-select/input-select.component.scss +0 -0
  464. /package/{themes/components/inputs/input-telefone/input-telefone.component.scss → src/lib/components/inputs/input-string/input-string.component.scss} +0 -0
  465. /package/{themes/components/loading/loading.component.scss → src/lib/components/inputs/input-telefone/input-telefone.component.scss} +0 -0
  466. /package/{themes → src/lib}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  467. /package/{themes → src/lib}/components/inputs/inputs.scss +0 -0
  468. /package/{themes/components/sion-card/sion-card.component.scss → src/lib/components/loading/loading.component.scss} +0 -0
  469. /package/{themes → src/lib}/components/login/login-admin/login-admin.component.scss +0 -0
  470. /package/{themes → src/lib}/components/login/login.component.scss +0 -0
  471. /package/{themes → src/lib}/components/main-content/main-content.component.scss +0 -0
  472. /package/{themes → src/lib}/components/popover/sion-popover/sion-popover.component.scss +0 -0
  473. /package/{themes/components/stepper/stepper.component.scss → src/lib/components/sion-card/sion-card.component.scss} +0 -0
  474. /package/{themes → src/lib}/components/stepper/step/step.component.scss +0 -0
  475. /package/{themes/components/tabs/tab/tab.component.scss → src/lib/components/stepper/stepper.component.scss} +0 -0
  476. /package/{themes/components/text-tooltip/text-tooltip.component.scss → src/lib/components/tabs/tab/tab.component.scss} +0 -0
  477. /package/{themes → src/lib}/components/tabs/tabs/tabs.component.scss +0 -0
  478. /package/{themes → src/lib}/components/tooltip/tooltip.component.scss +0 -0
  479. /package/{themes → src/lib}/styles/components.scss +0 -0
  480. /package/{themes → src/lib}/styles/core.styles.scss +0 -0
  481. /package/{themes → src/lib}/styles/ionic/ion-action-sheet.scss +0 -0
  482. /package/{themes → src/lib}/styles/ionic/ion-alert.scss +0 -0
  483. /package/{themes → src/lib}/styles/ionic/ion-button.scss +0 -0
  484. /package/{themes → src/lib}/styles/ionic/ion-card.scss +0 -0
  485. /package/{themes → src/lib}/styles/ionic/ion-content.scss +0 -0
  486. /package/{themes → src/lib}/styles/ionic/ion-datetime.scss +0 -0
  487. /package/{themes → src/lib}/styles/ionic/ion-item.scss +0 -0
  488. /package/{themes → src/lib}/styles/ionic/ion-list.scss +0 -0
  489. /package/{themes → src/lib}/styles/ionic/ion-modal.scss +0 -0
  490. /package/{themes → src/lib}/styles/ionic/ion-popover.scss +0 -0
  491. /package/{themes → src/lib}/styles/ionic/ion-progress-bar.scss +0 -0
  492. /package/{themes → src/lib}/styles/ionic/ion-searchbar.scss +0 -0
  493. /package/{themes → src/lib}/styles/ionic/ion-toast.scss +0 -0
  494. /package/{themes → src/lib}/styles/ionic.scss +0 -0
  495. /package/{themes → src/lib}/styles/login-default.scss +0 -0
  496. /package/{themes → src/lib}/styles/mixins.scss +0 -0
  497. /package/{themes → src/lib}/styles/styles.scss +0 -0
  498. /package/{themes → src/lib}/styles/translucid.scss +0 -0
@@ -1,81 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { IonBackButton, NavController } from '@ionic/angular';
3
- import { ActivatedRoute } from '@angular/router';
4
- import { NavigationContextService } from '../../../../services/navigation-context.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ionic/angular";
7
- import * as i2 from "@angular/router";
8
- import * as i3 from "../../../../services/navigation-context.service";
9
- import * as i4 from "@angular/common";
10
- export class HeaderViewComponent {
11
- constructor(navController, activatedRoute, navContext) {
12
- this.navController = navController;
13
- this.activatedRoute = activatedRoute;
14
- this.navContext = navContext;
15
- this.novo = false;
16
- this.progress = null;
17
- this.saveEmitter = new EventEmitter();
18
- /** Habilita/Desabilita o focus no primeiro campo da view */
19
- this.focusInFirstField = false;
20
- /** Remove o botão de volta */
21
- this.noBack = false;
22
- /** Remove o botão de Novo */
23
- this.noNew = false;
24
- /** Parâmetro usado em telas dentro de telas, para que o retorno sempre seja a tela anterior */
25
- this.useDefaultRouting = false;
26
- /**
27
- * Rota para voltar, caso não seja definida, o componente irá tentar usar rota do ionic
28
- */
29
- this.backRouterLink = undefined;
30
- }
31
- ngOnInit() { }
32
- get DefaultBackRoute() {
33
- return this.navContext.getBackRoute() ?? '/';
34
- }
35
- Back($event = null) {
36
- this.IonBackButtonElement.onClick($event);
37
- }
38
- New() {
39
- if (!this.novo) {
40
- this.navController.navigateForward(['../'], {
41
- relativeTo: this.activatedRoute,
42
- replaceUrl: true
43
- });
44
- }
45
- }
46
- Save() {
47
- this.saveEmitter.emit();
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }, { token: i3.NavigationContextService }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, decorators: [{
53
- type: Component,
54
- args: [{ selector: 'header-view', template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"] }]
55
- }], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }, { type: i3.NavigationContextService }], propDecorators: { novo: [{
56
- type: Input
57
- }], loading: [{
58
- type: Input
59
- }], progress: [{
60
- type: Input
61
- }], saveEmitter: [{
62
- type: Output,
63
- args: ['save']
64
- }], focusInFirstField: [{
65
- type: Input
66
- }], noBack: [{
67
- type: Input
68
- }], noNew: [{
69
- type: Input
70
- }], useDefaultRouting: [{
71
- type: Input
72
- }], backRouterLink: [{
73
- type: Input
74
- }], IonBackButtonElement: [{
75
- type: ViewChild,
76
- args: [IonBackButton]
77
- }], NewIonButtonElement: [{
78
- type: ViewChild,
79
- args: ['new']
80
- }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2hlYWRlci12aWV3L2hlYWRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7OztBQU8zRixNQUFNLE9BQU8sbUJBQW1CO0lBcUI5QixZQUNVLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFVBQXFDO1FBRnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUEyQjtRQXRCdEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUV4QixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNFLDREQUE0RDtRQUNuRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDNUMsOEJBQThCO1FBQ3JCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsNkJBQTZCO1FBQ3BCLFVBQUssR0FBYSxLQUFLLENBQUM7UUFDakMsK0ZBQStGO1FBQ3RGLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUM1Qzs7VUFFRTtRQUNPLG1CQUFjLEdBQXlDLFNBQVMsQ0FBQztJQU10RSxDQUFDO0lBRUwsUUFBUSxLQUFJLENBQUM7SUFFYixJQUFjLGdCQUFnQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0lBQy9DLENBQUM7SUFHTSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUk7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQy9CLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0FqRFUsbUJBQW1CO21HQUFuQixtQkFBbUIsbVdBaUNuQixhQUFhLDZJQzNDMUIsaTlGQStETTs7NEZEckRPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO3NKQU1kLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFVSxXQUFXO3NCQUExQixNQUFNO3VCQUFDLE1BQU07Z0JBR0wsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBY29CLG9CQUFvQjtzQkFBN0MsU0FBUzt1QkFBQyxhQUFhO2dCQUlOLG1CQUFtQjtzQkFBcEMsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbkJhY2tCdXR0b24sIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoZWFkZXItdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBAT3V0cHV0KCdzYXZlJykgc2F2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgIFxyXG5cclxuICAvKiogSGFiaWxpdGEvRGVzYWJpbGl0YSBvIGZvY3VzIG5vIHByaW1laXJvIGNhbXBvIGRhIHZpZXcgKi9cclxuICBASW5wdXQoKSBmb2N1c0luRmlyc3RGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gZGUgdm9sdGEgKi9cclxuICBASW5wdXQoKSBub0JhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gYm90w6NvIGRlIE5vdm8gKi9cclxuICBASW5wdXQoKSBub05ldyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUGFyw6JtZXRybyB1c2FkbyBlbSB0ZWxhcyBkZW50cm8gZGUgdGVsYXMsIHBhcmEgcXVlIG8gcmV0b3JubyBzZW1wcmUgc2VqYSBhIHRlbGEgYW50ZXJpb3IgKi9cclxuICBASW5wdXQoKSB1c2VEZWZhdWx0Um91dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiAgXHJcbiAgICogUm90YSBwYXJhIHZvbHRhciwgY2FzbyBuw6NvIHNlamEgZGVmaW5pZGEsIG8gY29tcG9uZW50ZSBpcsOhIHRlbnRhciB1c2FyIHJvdGEgZG8gaW9uaWNcclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2tSb3V0ZXJMaW5rOiBzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRleHQgOiBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgRGVmYXVsdEJhY2tSb3V0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmF2Q29udGV4dC5nZXRCYWNrUm91dGUoKSA/PyAnLyc7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKElvbkJhY2tCdXR0b24pIElvbkJhY2tCdXR0b25FbGVtZW50OiBJb25CYWNrQnV0dG9uOyBcclxuICBwdWJsaWMgQmFjaygkZXZlbnQgPSBudWxsKXtcclxuICAgIHRoaXMuSW9uQmFja0J1dHRvbkVsZW1lbnQub25DbGljaygkZXZlbnQpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ25ldycpIE5ld0lvbkJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7IFxyXG4gIHB1YmxpYyBOZXcoKXtcclxuICAgIGlmKCF0aGlzLm5vdm8pe1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVGb3J3YXJkKFsnLi4vJ10sIHsgXHJcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICByZXBsYWNlVXJsOiB0cnVlIFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFNhdmUoKTogdm9pZHtcclxuICAgIHRoaXMuc2F2ZUVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLTcgZmxleFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEvMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0zXCI+XHJcbiAgICBAaWYoIW5vQmFjayl7XHJcbiAgICAgIEBpZih1c2VEZWZhdWx0Um91dGluZyB8fCBiYWNrUm91dGVyTGluayl7XHJcbiAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJtLTBcIiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiBbcm91dGVyTGlua109XCJiYWNrUm91dGVyTGluayA/IGJhY2tSb3V0ZXJMaW5rIDogRGVmYXVsdEJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC1bMS43cmVtXVwiIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInRleHQtYmFzZVwiPlZvbHRhcjwvaW9uLXRleHQ+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNle1xyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDEwMCU7XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiB0ZXh0PVwiVm9sdGFyXCIgW2RlZmF1bHRIcmVmXT1cIkRlZmF1bHRCYWNrUm91dGVcIj48L2lvbi1iYWNrLWJ1dHRvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSA8aW9uLWNhcmQgYnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJoLWZ1bGwgdy0xMiBtLTAgZGVmYXVsdC10cmFuc2l0aW9uXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KVwiPlxyXG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIGJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICBAaWYoIXVzZURlZmF1bHRSb3V0aW5nKXtcclxuICAgICAgICAgICAgPGlvbi1iYWNrLWJ1dHRvbiBjbGFzcz1cInNjYWxlLTc1IHNpemUtZnVsbFwiIHN0eWxlPVwiLS1taW4taGVpZ2h0OiAxMDAlO1wiIHRleHQ9XCJcIiAgW2RlZmF1bHRIcmVmXT1cIkJhY2tSb3V0ZVwiID5cclxuICAgICAgICAgICAgPC9pb24tYmFjay1idXR0b24+XHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cInNpemUtZnVsbFwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIFtyb3V0ZXJMaW5rXT1cIkJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvaW9uLWNhcmQ+IC0tPlxyXG4gICAgfVxyXG4gICAgQGlmKCFub0JhY2spe1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGJvcmRlci1yLTIgYm9yZGVyLXItcHJpbWFyeSBib3JkZXItc29saWQgbWFzay15LzUwXCI+PC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiLW14LTJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJTYXZlKClcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwic2F2ZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBTYWx2YXJcclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdy1bMTI1JV0gaC1bMTI1JV0gLXRvcC1bMTIuNSVdIC1sZWZ0LVsxMi41JV0gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uIGJhY2tkcm9wLWJsdXItc21cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCAtdHJhbnNsYXRlLXktOCc6ICFsb2FkaW5nfVwiPlxyXG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInRleHQtc20gbXQtMVwiPjxiPlxyXG4gICAgICAgICAgQGlmKHByb2dyZXNzKXtcclxuICAgICAgICAgICAge3socHJvZ3Jlc3MgKiAxMDApIHwgbnVtYmVyOiAnMS4xLTEnfX0lXHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7ezAgfCBudW1iZXI6ICcxLjEtMSd9fSVcclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2I+PC9pb24tdGV4dD5cclxuICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBbdmFsdWVdPVwicHJvZ3Jlc3NcIiBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInctZnVsbCBkZWZhdWx0LXRyYW5zaXRpb25cIj48L2lvbi1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInctMS8yIGZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICAgIEBpZighKG5vTmV3IHx8IG5vdm8pKXtcclxuICAgICAgPGlvbi1idXR0b24gI25ldyBbcm91dGVyTGlua109XCJbJy4uLyddXCIgY2xhc3M9XCJtLTBcIiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBuYW1lPVwiYWRkXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBOb3ZvXHJcbiAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,198 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild, ViewChildren } from "@angular/core";
2
- import { FormBuilder } from "@angular/forms";
3
- import { ActivatedRoute } from "@angular/router";
4
- import { GenericService } from "../../../services/generic.service";
5
- import { TableFieldFormBuilder } from "../../../classes/inputs/table-field-form-builder";
6
- import { firstValueFrom, lastValueFrom } from "rxjs";
7
- import { HeaderViewComponent } from "./header-view/header-view.component";
8
- import { CustomInput } from "../../inputs/custom-input";
9
- import { Timeout } from "../../../services/utils.service";
10
- import { NavigationContextService } from '../../../services/navigation-context.service';
11
- import * as i0 from "@angular/core";
12
- export class View {
13
- constructor() {
14
- /** Id do dado a ser carregado */
15
- this.id = null;
16
- this.loading = false;
17
- this.submitted = false;
18
- /** Habilita/Desabilita o focus no primeiro campo da view
19
- * 1 - para ativar no novo e no editar
20
- * 2 - para ativar apenas no novo
21
- * 3 - para desativar para os dois casos
22
- */
23
- this.startInFirstField = 2;
24
- this.nested = false;
25
- /** Lista de TableFields a serem invocados de acordo com sua configuração.
26
- * Automaticamente preenchido com service.lstTableFieldsView ou service.lstTableFields quando não informado
27
- */
28
- this.lstTableFields = [];
29
- this.redirectPath = "/view/:id";
30
- this.ViewDidRefreshEmitter = new EventEmitter();
31
- /** Emite o id da entidade salva apos o salvamento */
32
- this.SaveEmitter = new EventEmitter();
33
- this.genericService = inject(GenericService);
34
- this.activatedRoute = inject(ActivatedRoute);
35
- this.elementRef = inject(ElementRef);
36
- this.fb = inject(FormBuilder);
37
- this.navContext = inject(NavigationContextService);
38
- }
39
- async ngOnInit() {
40
- if (this.lstTableFields.length == 0) {
41
- if (this.service.lstTableFieldsView.length != 0) {
42
- this.lstTableFields = this.service.lstTableFieldsView;
43
- }
44
- else {
45
- this.lstTableFields = this.service.lstTableFields;
46
- }
47
- }
48
- if (this.id == null) {
49
- this.id = this.genericService.GetId(this.activatedRoute, 0);
50
- }
51
- if (!this.service) {
52
- console.warn("[ View service is not valid! ]");
53
- }
54
- if (instanceOfViewWillCreateForm(this)) {
55
- this.OnViewWillCreateForm();
56
- }
57
- await this.CreateForm();
58
- if (instanceOfViewDidCreateForm(this)) {
59
- this.OnViewDidCreateForm();
60
- }
61
- if (this.elementRef && this.elementRef.nativeElement && this.elementRef.nativeElement.parentElement) {
62
- this.nested = this.elementRef.nativeElement.parentElement.tagName.toUpperCase() != "ION-CONTENT";
63
- }
64
- else {
65
- this.nested = true;
66
- }
67
- await this.Refresh();
68
- if (this.startInFirstField == 1) {
69
- await this.FocusOnFirstField();
70
- }
71
- else if (this.startInFirstField == 2) {
72
- if (!this.id) {
73
- await this.FocusOnFirstField();
74
- }
75
- }
76
- }
77
- async FocusOnFirstField() {
78
- try {
79
- await Timeout(100);
80
- this.lstCustomInputs.first.setFocus(null);
81
- }
82
- catch { }
83
- }
84
- async Refresh() {
85
- this.loading = true;
86
- try {
87
- await this.Load();
88
- }
89
- finally { }
90
- this.loading = false;
91
- this.ViewDidRefreshEmitter.emit();
92
- }
93
- async Load() {
94
- if (!this.id) {
95
- return;
96
- }
97
- const res = await firstValueFrom(this.service.Get(this.id));
98
- this.frm.patchValue(res);
99
- }
100
- async CreateForm() {
101
- this.frm = TableFieldFormBuilder.create(this.lstTableFields, this.fb);
102
- await this.LoadIdComparison();
103
- }
104
- async LoadIdComparison() {
105
- try {
106
- const data = await firstValueFrom(this.activatedRoute.data);
107
- if (!data) {
108
- return;
109
- }
110
- const id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);
111
- if (!id) {
112
- return;
113
- }
114
- this.frm.controls[data.idPreloaderConfiguration.propertyName].setValue(id);
115
- this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName).disabled = true;
116
- }
117
- catch { }
118
- }
119
- async Save() {
120
- await lastValueFrom(this.service.Save(this.frm, this));
121
- this.SaveEmitter.emit(this.id);
122
- }
123
- get BackRoute() {
124
- return this.navContext.getBackRoute() ?? '/';
125
- }
126
- GetCurrentRouting() { return this.activatedRoute; }
127
- NavigateToList() {
128
- const back = this.navContext.getBackRoute() ?? '/';
129
- this.navController.navigateBack(back);
130
- }
131
- onKeyPress($event) {
132
- if (!(this.elementRef.nativeElement.contains(document.activeElement) || document.activeElement == this.elementRef.nativeElement)) {
133
- return;
134
- }
135
- if ($event.key == 'Escape') {
136
- this.HeaderViewComponentElement.Back($event);
137
- $event.preventDefault();
138
- return;
139
- }
140
- if (($event.ctrlKey || $event.metaKey) && ($event.key == 'Enter')) {
141
- this.Save();
142
- $event.preventDefault();
143
- return;
144
- }
145
- if ($event.altKey && $event.key == 'Insert') {
146
- this.HeaderViewComponentElement.New();
147
- $event.preventDefault();
148
- return;
149
- }
150
- }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: View, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: View, selector: "ng-component", inputs: { id: "id", loading: "loading", submitted: "submitted", progress: "progress", service: "service", startInFirstField: "startInFirstField", lstTableFields: "lstTableFields", redirectPath: "redirectPath" }, outputs: { ViewDidRefreshEmitter: "ViewDidRefresh", SaveEmitter: "Save" }, host: { listeners: { "window:keydown": "onKeyPress($event)" } }, viewQueries: [{ propertyName: "Wrapper", first: true, predicate: [".wrapper"], descendants: true }, { propertyName: "HeaderViewComponentElement", first: true, predicate: HeaderViewComponent, descendants: true }, { propertyName: "lstCustomInputs", predicate: CustomInput, descendants: true }], ngImport: i0, template: '', isInline: true, styles: [""] }); }
153
- }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: View, decorators: [{
155
- type: Component,
156
- args: [{ template: '' }]
157
- }], ctorParameters: () => [], propDecorators: { id: [{
158
- type: Input
159
- }], loading: [{
160
- type: Input
161
- }], submitted: [{
162
- type: Input
163
- }], progress: [{
164
- type: Input
165
- }], service: [{
166
- type: Input
167
- }], startInFirstField: [{
168
- type: Input
169
- }], lstTableFields: [{
170
- type: Input
171
- }], redirectPath: [{
172
- type: Input
173
- }], Wrapper: [{
174
- type: ViewChild,
175
- args: ['.wrapper']
176
- }], lstCustomInputs: [{
177
- type: ViewChildren,
178
- args: [CustomInput]
179
- }], ViewDidRefreshEmitter: [{
180
- type: Output,
181
- args: ['ViewDidRefresh']
182
- }], SaveEmitter: [{
183
- type: Output,
184
- args: ['Save']
185
- }], HeaderViewComponentElement: [{
186
- type: ViewChild,
187
- args: [HeaderViewComponent]
188
- }], onKeyPress: [{
189
- type: HostListener,
190
- args: ['window:keydown', ['$event']]
191
- }] } });
192
- function instanceOfViewWillCreateForm(object) {
193
- return 'OnViewWillCreateForm' in object;
194
- }
195
- function instanceOfViewDidCreateForm(object) {
196
- return 'OnViewDidCreateForm' in object;
197
- }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlqRCxPQUFPLEVBQUUsY0FBYyxFQUFJLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFHeEYsTUFBTSxPQUFnQixJQUFJO0lBdUJ4QjtRQXRCQSxpQ0FBaUM7UUFDeEIsT0FBRSxHQUF5QixJQUFJLENBQUM7UUFDaEMsWUFBTyxHQUFjLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBS3BDOzs7O1dBSUc7UUFDTSxzQkFBaUIsR0FBWSxDQUFDLENBQUM7UUFPOUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQVVsQzs7WUFFSTtRQUNLLG1CQUFjLEdBQWlCLEVB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b0JHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHaUIsT0FBTztzQkFBN0IsU0FBUzt1QkFBQyxVQUFVO2dCQXFDTSxlQUFlO3NCQUF6QyxZQUFZO3VCQUFDLFdBQVc7Z0JBUUMscUJBQXFCO3NCQUE5QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFvQ1IsV0FBVztzQkFBMUIsTUFBTTt1QkFBQyxNQUFNO2dCQW9Ca0IsMEJBQTBCO3NCQUF6RCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFHOUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQixFQUFDLENBQUMsUUFBUSxDQUFDOztBQTBCM0MsU0FBUyw0QkFBNEIsQ0FBQyxNQUFXO0lBQy9DLE9BQU8sc0JBQXNCLElBQUksTUFBTSxDQUFDO0FBQzFDLENBQUM7QUFJRCxTQUFTLDJCQUEyQixDQUFDLE1BQVc7SUFDOUMsT0FBTyxxQkFBcUIsSUFBSSxNQUFNLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgdmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgICAgICB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSAgIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQtZm9ybS1idWlsZGVyXCI7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGxhc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBIZWFkZXJWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGRcIjtcclxuaW1wb3J0IHsgUm91dGVEYXRhIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvcm91dGVzL3JvdXRlLWRhdGFcIjtcclxuaW1wb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tIFwiLi4vLi4vaW5wdXRzL2N1c3RvbS1pbnB1dFwiO1xyXG5pbXBvcnQgeyBUaW1lb3V0IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJywgc3R5bGVzOiAnJyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlldzxUIGV4dGVuZHMgSHR0cFNlcnZpY2UgfCBIdHRwU2VydmljZUF0aXZvPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIElkIGRvIGRhZG8gYSBzZXIgY2FycmVnYWRvICovXHJcbiAgQElucHV0KCkgaWQgICAgICAgOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBsb2FkaW5nICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUHJvZ3Jlc3NvIGRlIHNhbHZhbWVudG8gKi9cclxuICBASW5wdXQoKSBwcm9ncmVzcyA6IG51bWJlcjtcclxuICAvKiogU2VydmljZSBhIHNlciB1dGxpemFkbyBuYSB2aWV3ICovXHJcbiAgQElucHV0KCkgc2VydmljZSAgOiBUO1xyXG4gIC8qKiBIYWJpbGl0YS9EZXNhYmlsaXRhIG8gZm9jdXMgbm8gcHJpbWVpcm8gY2FtcG8gZGEgdmlld1xyXG4gICAqIDEgLSBwYXJhIGF0aXZhciBubyBub3ZvIGUgbm8gZWRpdGFyXHJcbiAgICogMiAtIHBhcmEgYXRpdmFyIGFwZW5hcyBubyBub3ZvXHJcbiAgICogMyAtIHBhcmEgZGVzYXRpdmFyIHBhcmEgb3MgZG9pcyBjYXNvc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0YXJ0SW5GaXJzdEZpZWxkIDogbnVtYmVyID0gMjtcclxuXHJcbiAgcHJvdGVjdGVkIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZTtcclxuICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXI7XHJcbiAgcHJvdGVjdGVkIG5hdkNvbnRleHQgOiBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICBwcm90ZWN0ZWQgbmVzdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcclxuICAgIHRoaXMuZWxlbWVudFJlZiAgICAgPSBpbmplY3QoRWxlbWVudFJlZilcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXHJcbiAgICB0aGlzLm5hdkNvbnRleHQgICAgID0gaW5qZWN0KE5hdmlnYXRpb25Db250ZXh0U2VydmljZSlcclxuICB9XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBUYWJsZUZpZWxkcyBhIHNlcmVtIGludm9jYWRvcyBkZSBhY29yZG8gY29tIHN1YSBjb25maWd1cmHDp8Ojby5cclxuICAgKiBBdXRvbWF0aWNhbWVudGUgcHJlZW5jaGlkbyBjb20gc2VydmljZS5sc3RUYWJsZUZpZWxkc1ZpZXcgb3Ugc2VydmljZS5sc3RUYWJsZUZpZWxkcyBxdWFuZG8gbsOjbyBpbmZvcm1hZG9cclxuICAgICovXHJcbiAgQElucHV0KCkgbHN0VGFibGVGaWVsZHM6IFRhYmxlRmllbGRbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWRpcmVjdFBhdGg6IHN0cmluZyB8IG51bGwgPSBcIi92aWV3LzppZFwiXHJcbiAgXHJcbiAgXHJcbiAgQFZpZXdDaGlsZCgnLndyYXBwZXInKSBXcmFwcGVyOiBIVE1MRWxlbWVudDtcclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMubHN0VGFibGVGaWVsZHMubGVuZ3RoID09IDApe1xyXG4gICAgICBpZih0aGlzLnNlcnZpY2UubHN0VGFibGVGaWVsZHNWaWV3Lmxlbmd0aCAhPSAwKXtcclxuICAgICAgICB0aGlzLmxzdFRhYmxlRmllbGRzID0gdGhpcy5zZXJ2aWNlLmxzdFRhYmxlRmllbGRzVmlldztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5sc3RUYWJsZUZpZWxkcyA9IHRoaXMuc2VydmljZS5sc3RUYWJsZUZpZWxkcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuaWQgPT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmdlbmVyaWNTZXJ2aWNlLkdldElkKHRoaXMuYWN0aXZhdGVkUm91dGUsIDApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZighdGhpcy5zZXJ2aWNlKXsgY29uc29sZS53YXJuKFwiWyBWaWV3IHNlcnZpY2UgaXMgbm90IHZhbGlkISBdXCIpOyB9XHJcbiAgICBpZiAoaW5zdGFuY2VPZlZpZXdXaWxsQ3JlYXRlRm9ybSh0aGlzKSkgeyB0aGlzLk9uVmlld1dpbGxDcmVhdGVGb3JtKCkgfVxyXG4gICAgYXdhaXQgdGhpcy5DcmVhdGVGb3JtKCk7XHJcbiAgICBpZiAoaW5zdGFuY2VPZlZpZXdEaWRDcmVhdGVGb3JtKHRoaXMpKSB7IHRoaXMuT25WaWV3RGlkQ3JlYXRlRm9ybSgpIH1cclxuICBcclxuICAgIGlmKHRoaXMuZWxlbWVudFJlZiAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSAhPSBcIklPTi1DT05URU5UXCI7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuUmVmcmVzaCgpO1xyXG5cclxuICAgIGlmKHRoaXMuc3RhcnRJbkZpcnN0RmllbGQgPT0gMSl7XHJcbiAgICAgIGF3YWl0IHRoaXMuRm9jdXNPbkZpcnN0RmllbGQoKTtcclxuICAgIH1lbHNlIGlmICh0aGlzLnN0YXJ0SW5GaXJzdEZpZWxkID09IDIpe1xyXG4gICAgICBpZighdGhpcy5pZCl7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5Gb2N1c09uRmlyc3RGaWVsZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihDdXN0b21JbnB1dCkgbHN0Q3VzdG9tSW5wdXRzOiBRdWVyeUxpc3Q8Q3VzdG9tSW5wdXQ8YW55Pj47XHJcbiAgYXN5bmMgRm9jdXNPbkZpcnN0RmllbGQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnl7XHJcbiAgICAgIGF3YWl0IFRpbWVvdXQoMTAwKTtcclxuICAgICAgdGhpcy5sc3RDdXN0b21JbnB1dHMuZmlyc3Quc2V0Rm9jdXMobnVsbCk7XHJcbiAgICB9Y2F0Y2h7fVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgnVmlld0RpZFJlZnJlc2gnKSBWaWV3RGlkUmVmcmVzaEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBhc3luYyBSZWZyZXNoKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRyeXtcclxuICAgICAgYXdhaXQgdGhpcy5Mb2FkKCk7XHJcbiAgICB9ZmluYWxseXsgfVxyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLlZpZXdEaWRSZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBMb2FkKCk6IFByb21pc2U8dm9pZD57XHJcbiAgICBpZighdGhpcy5pZCl7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLkdldCh0aGlzLmlkKSk7XHJcbiAgICB0aGlzLmZybS5wYXRjaFZhbHVlKHJlcyk7XHJcbiAgfVxyXG5cclxuICBmcm06IEZvcm1Hcm91cDtcclxuICBhc3luYyBDcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mcm0gPSBUYWJsZUZpZWxkRm9ybUJ1aWxkZXIuY3JlYXRlKHRoaXMubHN0VGFibGVGaWVsZHMsIHRoaXMuZmIpO1xyXG4gICAgYXdhaXQgdGhpcy5Mb2FkSWRDb21wYXJpc29uKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBMb2FkSWRDb21wYXJpc29uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5e1xyXG4gICAgICBjb25zdCBkYXRhOiBSb3V0ZURhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEpIGFzIFJvdXRlRGF0YTtcclxuICAgICAgaWYoIWRhdGEpeyByZXR1cm47IH1cclxuICAgICAgY29uc3QgaWQgICA9IHRoaXMuZ2VuZXJpY1NlcnZpY2UuR2V0SWQodGhpcy5hY3RpdmF0ZWRSb3V0ZSwgZGF0YS5pZFByZWxvYWRlckNvbmZpZ3VyYXRpb24ucm91dGVEZXB0aCk7XHJcbiAgICAgIFxyXG4gICAgICBpZighaWQpeyByZXR1cm47IH1cclxuXHJcbiAgICAgIHRoaXMuZnJtLmNvbnRyb2xzW2RhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZV0uc2V0VmFsdWUoaWQpO1xyXG4gICAgICB0aGlzLmxzdFRhYmxlRmllbGRzLmZpbmQocCA9PiBwLmluZGV4ID09IGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZSkuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfWNhdGNoeyB9XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdGUgbyBpZCBkYSBlbnRpZGFkZSBzYWx2YSBhcG9zIG8gc2FsdmFtZW50byAqL1xyXG4gIEBPdXRwdXQoJ1NhdmUnKSBTYXZlRW1pdHRlcjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBhc3luYyBTYXZlKCkge1xyXG4gICAgYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuU2F2ZSh0aGlzLmZybSwgdGhpcykpO1xyXG4gICAgdGhpcy5TYXZlRW1pdHRlci5lbWl0KHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBCYWNrUm91dGUoKXtcclxuICAgIHJldHVybiB0aGlzLm5hdkNvbnRleHQuZ2V0QmFja1JvdXRlKCkgPz8gJy8nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEN1cnJlbnRSb3V0aW5nKCk6IEFjdGl2YXRlZFJvdXRlIHsgcmV0dXJuIHRoaXMuYWN0aXZhdGVkUm91dGU7IH1cclxuXHJcbiAgcHJvdGVjdGVkIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXI7XHJcblxyXG4gIHByb3RlY3RlZCBOYXZpZ2F0ZVRvTGlzdCgpOiB2b2lkIHtcclxuICBjb25zdCBiYWNrID0gdGhpcy5uYXZDb250ZXh0LmdldEJhY2tSb3V0ZSgpID8/ICcvJztcclxuICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVCYWNrKGJhY2spO1xyXG59XHJcblxyXG5cclxuICBAVmlld0NoaWxkKEhlYWRlclZpZXdDb21wb25lbnQpIEhlYWRlclZpZXdDb21wb25lbnRFbGVtZW50OiBIZWFkZXJWaWV3Q29tcG9uZW50O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsWyckZXZlbnQnXSlcclxuICBvbktleVByZXNzKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYoISh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCRldmVudC5rZXkgPT0gJ0VzY2FwZScpe1xyXG4gICAgICB0aGlzLkhlYWRlclZpZXdDb21wb25lbnRFbGVtZW50LkJhY2soJGV2ZW50KTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCgkZXZlbnQuY3RybEtleSB8fCAkZXZlbnQubWV0YUtleSkgJiYgKCRldmVudC5rZXkgPT0gJ0VudGVyJykpe1xyXG4gICAgICB0aGlzLlNhdmUoKTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCRldmVudC5hbHRLZXkgJiYgJGV2ZW50LmtleSA9PSAnSW5zZXJ0Jyl7XHJcbiAgICAgIHRoaXMuSGVhZGVyVmlld0NvbXBvbmVudEVsZW1lbnQuTmV3KCk7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdXaWxsQ3JlYXRlRm9ybXtcclxuICBPblZpZXdXaWxsQ3JlYXRlRm9ybSgpOiB2b2lkIHwgYW55O1xyXG59IFxyXG5mdW5jdGlvbiBpbnN0YW5jZU9mVmlld1dpbGxDcmVhdGVGb3JtKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFZpZXdXaWxsQ3JlYXRlRm9ybSB7XHJcbiAgcmV0dXJuICdPblZpZXdXaWxsQ3JlYXRlRm9ybScgaW4gb2JqZWN0O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlld0RpZENyZWF0ZUZvcm0ge1xyXG4gIE9uVmlld0RpZENyZWF0ZUZvcm0oKTogdm9pZCB8IGFueTtcclxufSBcclxuZnVuY3Rpb24gaW5zdGFuY2VPZlZpZXdEaWRDcmVhdGVGb3JtKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFZpZXdEaWRDcmVhdGVGb3JtIHtcclxuICByZXR1cm4gJ09uVmlld0RpZENyZWF0ZUZvcm0nIGluIG9iamVjdDtcclxufVxyXG5cclxuIl19
@@ -1,98 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { IonicModule } from '@ionic/angular';
5
- import { RouterLink, RouterLinkWithHref, RouterModule, RouterOutlet } from '@angular/router';
6
- import { NgVarDirective } from '../../directives/ng-var.directive';
7
- import { InputsModule } from '../inputs/inputs.module';
8
- import { LoadingComponent } from '../loading/loading.component';
9
- import { DefaultListComponent } from './default-list/default-list.component';
10
- import { DefaultViewComponent } from './default-view/default-view.component';
11
- import { HeaderListComponent } from './default-list/header-list/header-list.component';
12
- import { HeaderViewComponent } from './default-view/header-view/header-view.component';
13
- import { DefaultTableComponent } from './default-table/default-table.component';
14
- import { DefaultPaginationComponent } from './default-pagination/default-pagination.component';
15
- import { ThFilterComponent } from './default-table/th-filter/th-filter.component';
16
- import { SIonPopoverModule } from '../popover/sion-popover.module';
17
- import { ContentBlockComponent } from '../content-block/content-block.component';
18
- import { CdkDragPlaceholder } from "@angular/cdk/drag-drop";
19
- import * as i0 from "@angular/core";
20
- const lstComponents = [
21
- HeaderListComponent,
22
- DefaultListComponent,
23
- DefaultViewComponent,
24
- HeaderViewComponent,
25
- DefaultTableComponent,
26
- DefaultPaginationComponent,
27
- ThFilterComponent
28
- ];
29
- /** Modulo parão, inclui os seguiintes componentes:
30
- * - HeaderListComponent,
31
- - DefaultListComponent,
32
- - DefaultViewComponent,
33
- - HeaderViewComponent,
34
- - DefaultTableComponent,
35
- - DefaultPaginationComponent,
36
- */
37
- export class DefaultModule {
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
39
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DefaultModule, declarations: [HeaderListComponent,
40
- DefaultListComponent,
41
- DefaultViewComponent,
42
- HeaderViewComponent,
43
- DefaultTableComponent,
44
- DefaultPaginationComponent,
45
- ThFilterComponent], imports: [IonicModule,
46
- CommonModule,
47
- InputsModule,
48
- ReactiveFormsModule,
49
- RouterLinkWithHref,
50
- FormsModule,
51
- RouterModule,
52
- RouterOutlet,
53
- RouterLink,
54
- LoadingComponent,
55
- NgVarDirective,
56
- SIonPopoverModule,
57
- ContentBlockComponent,
58
- CdkDragPlaceholder], exports: [HeaderListComponent,
59
- DefaultListComponent,
60
- DefaultViewComponent,
61
- HeaderViewComponent,
62
- DefaultTableComponent,
63
- DefaultPaginationComponent,
64
- ThFilterComponent] }); }
65
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultModule, imports: [IonicModule,
66
- CommonModule,
67
- InputsModule,
68
- ReactiveFormsModule,
69
- FormsModule,
70
- RouterModule,
71
- LoadingComponent,
72
- SIonPopoverModule,
73
- ContentBlockComponent] }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultModule, decorators: [{
76
- type: NgModule,
77
- args: [{
78
- declarations: [...lstComponents],
79
- exports: [...lstComponents],
80
- imports: [
81
- IonicModule,
82
- CommonModule,
83
- InputsModule,
84
- ReactiveFormsModule,
85
- RouterLinkWithHref,
86
- FormsModule,
87
- RouterModule,
88
- RouterOutlet,
89
- RouterLink,
90
- LoadingComponent,
91
- NgVarDirective,
92
- SIonPopoverModule,
93
- ContentBlockComponent,
94
- CdkDragPlaceholder
95
- ]
96
- }]
97
- }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTVELE1BQU0sYUFBYSxHQUFHO0lBQ3BCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFFcEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsMEJBQTBCO0lBQzFCLGlCQUFpQjtDQUNsQixDQUFBO0FBRUQ7Ozs7Ozs7R0FPRztBQXFCSCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsaUJBdEN4QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBRXBCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLDBCQUEwQjtZQUMxQixpQkFBaUIsYUFlZixXQUFXO1lBQ1gsWUFBWTtZQUNaLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsa0JBQWtCLGFBbkNwQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBRXBCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLDBCQUEwQjtZQUMxQixpQkFBaUI7Z0hBK0JOLGFBQWEsWUFoQnRCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLG1CQUFtQjtZQUVuQixXQUFXO1lBQ1gsWUFBWTtZQUdaLGdCQUFnQjtZQUVoQixpQkFBaUI7WUFDakIscUJBQXFCOzs0RkFJWixhQUFhO2tCQXBCekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQztvQkFDaEMsT0FBTyxFQUFPLENBQUMsR0FBRyxhQUFhLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjtxQkFDckI7aUJBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFJvdXRlckxpbmssIFJvdXRlckxpbmtXaXRoSHJlZiwgUm91dGVyTW9kdWxlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgTmdWYXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25nLXZhci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcblxyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlZmF1bHRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0LWxpc3QvZGVmYXVsdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlZmF1bHRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0LXZpZXcvZGVmYXVsdC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlYWRlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtbGlzdC9oZWFkZXItbGlzdC9oZWFkZXItbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIZWFkZXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0LXZpZXcvaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVmYXVsdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVmYXVsdFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGhGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtdGFibGUvdGgtZmlsdGVyL3RoLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uL3BvcG92ZXIvc2lvbi1wb3BvdmVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbnRlbnRCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnQtYmxvY2svY29udGVudC1ibG9jay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnUGxhY2Vob2xkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5cclxuY29uc3QgbHN0Q29tcG9uZW50cyA9IFtcclxuICBIZWFkZXJMaXN0Q29tcG9uZW50LFxyXG4gIERlZmF1bHRMaXN0Q29tcG9uZW50LFxyXG5cclxuICBEZWZhdWx0Vmlld0NvbXBvbmVudCxcclxuICBIZWFkZXJWaWV3Q29tcG9uZW50LFxyXG4gIERlZmF1bHRUYWJsZUNvbXBvbmVudCxcclxuICBEZWZhdWx0UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICBUaEZpbHRlckNvbXBvbmVudFxyXG5dXHJcblxyXG4vKiogTW9kdWxvIHBhcsOjbywgaW5jbHVpIG9zIHNlZ3VpaW50ZXMgY29tcG9uZW50ZXM6XHJcbiAqICAtIEhlYWRlckxpc3RDb21wb25lbnQsXHJcbiAgICAtIERlZmF1bHRMaXN0Q29tcG9uZW50LFxyXG4gICAgLSBEZWZhdWx0Vmlld0NvbXBvbmVudCxcclxuICAgIC0gSGVhZGVyVmlld0NvbXBvbmVudCxcclxuICAgIC0gRGVmYXVsdFRhYmxlQ29tcG9uZW50LFxyXG4gICAgLSBEZWZhdWx0UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbLi4ubHN0Q29tcG9uZW50c10sXHJcbiAgZXhwb3J0cyAgICAgOiBbLi4ubHN0Q29tcG9uZW50c10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJbnB1dHNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTGlua1dpdGhIcmVmLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBSb3V0ZXJPdXRsZXQsXHJcbiAgICBSb3V0ZXJMaW5rLFxyXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIE5nVmFyRGlyZWN0aXZlLFxyXG4gICAgU0lvblBvcG92ZXJNb2R1bGUsXHJcbiAgICBDb250ZW50QmxvY2tDb21wb25lbnQsXHJcbiAgICBDZGtEcmFnUGxhY2Vob2xkZXJcclxuXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdE1vZHVsZSB7IH1cclxuIl19
@@ -1,75 +0,0 @@
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/generic.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/generic.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.lstImage = null;
36
- }
37
- async ngOnInit() {
38
- this.loading = true;
39
- const conf = await firstValueFrom(this.route.data);
40
- this.lstImage = Array.isArray(conf.image) ? conf.image :
41
- conf.image ? [conf.image] : undefined;
42
- this.lstMenu = await firstValueFrom(this.routeProviderService.GetData());
43
- this.loading = false;
44
- }
45
- SetTitle(item) {
46
- this.genericService.SetTitle(item.title);
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPage, deps: [{ token: i1.ActivatedRoute }, { token: i2.EnvironmentService }, { token: i3.GenericService }, { token: i4.RouteProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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-6\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(lstImage){\r\n @for (item of lstImage; track $index) {\r\n <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n }\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\r\n <div class=\"overflow-hidden p-2 w-full relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" [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=\"grow min-w-fit\" (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\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\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 </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" }] }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPage, decorators: [{
52
- type: Component,
53
- args: [{ standalone: true, selector: 'app-default', imports: [
54
- CommonModule,
55
- FormsModule,
56
- IonicModule,
57
- InputsModule,
58
- RouterLinkWithHref,
59
- LoadingComponent,
60
- TranslateModule,
61
- ], 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-6\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(lstImage){\r\n @for (item of lstImage; track $index) {\r\n <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n }\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\r\n <div class=\"overflow-hidden p-2 w-full relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" [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=\"grow min-w-fit\" (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\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\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 </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"] }]
62
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.EnvironmentService }, { type: i3.GenericService }, { type: i4.RouteProviderService }] });
63
- export class DefaultPageConfiguration {
64
- constructor(image = null, useTranslation = false) {
65
- this.image = image;
66
- this.useTranslation = useTranslation;
67
- }
68
- }
69
- export class DefaultPageImage {
70
- constructor(src = null, classes = '') {
71
- this.src = src;
72
- this.classes = classes;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQUd2RCxxRkFBcUY7QUFnQnJGLE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQ1UsS0FBcUIsRUFDckIsV0FBK0IsRUFDL0IsY0FBOEIsRUFDOUIsb0JBQTBDO1FBSDFDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVZwRCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztRQVVGLFVBQUssR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFFN0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixhQUFRLEdBQXVCLElBQUksQ0FBQztJQU5wQyxDQUFDO0lBUUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNkIsQ0FBQztRQUUvRSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVyRSxJQUFJLENBQUMsT0FBTyxHQUFTLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0FwQ1UsV0FBVzttR0FBWCxXQUFXLHVFQy9CeEIsNGxHQThEYyxzR0QxQ1YsWUFBWSwySkFDWixXQUFXLDhCQUNYLFdBQVcsa2hFQUNYLFlBQVksK0JBQ1osa0JBQWtCLG9PQUNsQixnQkFBZ0Isd0ZBQ2hCLGVBQWU7OzRGQUtOLFdBQVc7a0JBZnZCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsV0FDZDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjs7QUEyQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNTLFFBQXNELElBQUksRUFDMUQsaUJBQTBCLEtBQUs7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBcUQ7UUFDMUQsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBRXhDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDUyxNQUFxQixJQUFJLEVBQ3pCLFVBQWtCLEVBQUU7UUFEcEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJvdXRlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUvcm91dGUucHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0cy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vZHJhd2VyL21lbnUnO1xyXG5cclxuLyoqIFBhZ2luYSBEZWZhdWx0IC0gbW9zdHJhIG9zIGJvdMO1ZXMgZGUgcm90YXMgaG9yaXpvbnRhbG1lbnRlIC0gY29tcG9uZW50ZSBwYWRyw6NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdhcHAtZGVmYXVsdCcsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZSxcclxuICAgIElucHV0c01vZHVsZSxcclxuICAgIFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC5wYWdlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQucGFnZS5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLidcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBjb3JlU2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlUHJvdmlkZXJTZXJ2aWNlOiBSb3V0ZVByb3ZpZGVyU2VydmljZSBcclxuICApIHsgXHJcbiAgfVxyXG4gIFxyXG4gIHRpdGxlOiBzdHJpbmcgPSB0aGlzLmNvcmVTZXJ2aWNlLmVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZTtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxzdE1lbnU6IE1lbnVbXSA9IFtdO1xyXG5cclxuICBsc3RJbWFnZTogRGVmYXVsdFBhZ2VJbWFnZVtdID0gbnVsbDtcclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb25mID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yb3V0ZS5kYXRhKSBhcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb247XHJcblxyXG4gICAgdGhpcy5sc3RJbWFnZSA9IEFycmF5LmlzQXJyYXkoY29uZi5pbWFnZSkgPyBjb25mLmltYWdlIDogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZi5pbWFnZSA/IFtjb25mLmltYWdlXSA6IHVuZGVmaW5lZDtcclxuXHJcbiAgICB0aGlzLmxzdE1lbnUgICAgICAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJvdXRlUHJvdmlkZXJTZXJ2aWNlLkdldERhdGEoKSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb257XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaW1hZ2U6IERlZmF1bHRQYWdlSW1hZ2UgfCBEZWZhdWx0UGFnZUltYWdlW10gfCBudWxsID0gbnVsbCxcclxuICAgIHB1YmxpYyB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKXtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUltYWdlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzcmM6IHN0cmluZyB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIGNsYXNzZXM6IHN0cmluZyA9ICcnXHJcbiAgKXt9XHJcbn1cclxuIiwiPGlvbi1jb250ZW50IFtmdWxsc2NyZWVuXT1cInRydWVcIj5cclxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgPGlvbi1icmVhZGNydW1icz5cclxuICAgICAgPGlvbi1icmVhZGNydW1iIFtyb3V0ZXJMaW5rXT1cIltudWxsXVwiPlxyXG4gICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiaG9tZVwiPjwvaW9uLWljb24+IEluaWNpb1xyXG4gICAgICA8L2lvbi1icmVhZGNydW1iPlxyXG4gICAgPC9pb24tYnJlYWRjcnVtYnM+XHJcbiAgXHJcbiAgICA8aW9uLWNhcmQ+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgIXAtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgc2hyaW5rLTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgIEBpZihsc3RJbWFnZSl7XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbHN0SW1hZ2U7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxpb24taW1nIFtjbGFzc109XCJpdGVtLmNsYXNzZXNcIiBbc3JjXT1cIml0ZW0uc3JjXCIgKGlvbi1lcnJvcik9XCJsc3RJbWFnZVwiPjwvaW9uLWltZz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LTh4bCBmb250LXBvcHBpbnMgdy1mdWxsXCI+IHt7dGl0bGV9fSA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHAtMiB3LWZ1bGwgcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxsb2FkaW5nIFt0eXBlXT1cIjNcIiBbbG9hZGluZ109XCJsb2FkaW5nXCI+PC9sb2FkaW5nPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtd3JhcCBwb3J0cmFpdDohZ3JpZCBnYXAtMlwiPlxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGxzdE1lbnU7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwiZ3JvdyBtaW4tdy1maXRcIiBbcm91dGVyTGlua109XCJbaXRlbS5yb3V0ZV1cIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZihpdGVtLnR5cGUgPT0gXCJNZW51R3JvdXBcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwiZ3JvdyBtaW4tdy1maXRcIiAoY2xpY2spPVwicG9wb3Zlci5wcmVzZW50KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgaXRlbS5pZCB8IHRyYW5zbGF0ZSkgOiBpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgI3BvcG92ZXIgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG9cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGlzdCBjbGFzcz1cIm5vLW91dGVyLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIGNsYXNzPVwiYmctdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiU2V0VGl0bGUobWVudSlcIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBpdGVtLmxzdE1lbnVcIiBbcm91dGVyTGlua109XCJbJy4vJyArIG1lbnUucm91dGVdXCIgbGluZXM9XCJub25lXCIgZGV0YWlsPVwiZmFsc2VcIiByb3V0ZXJMaW5rQWN0aXZlPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIm1lbnUuaWNvblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIG1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbWVudS50aXRsZX19ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIiFvdmVyZmxvdy15LWF1dG8gdy1mdWxsIHBvcnRyYWl0Omdyb3cgcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxsb2FkaW5nIFt0eXBlXT1cIjNcIiBbbG9hZGluZ109XCJsb2FkaW5nXCI+PC9sb2FkaW5nPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLXN0YXJ0IGp1c3RpZnktc3RhcnQgbXQtNCBwb3J0cmFpdDohZ3JpZCBwb3J0cmFpdDohZ3JpZC1jb2xzLTFcIj4gXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvaW9uLWNvbnRlbnQ+Il19