@sapphire-ion/framework 1.2.43 → 1.2.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
  2. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
  3. package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
  4. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
  5. package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
  6. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
  7. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
  8. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
  9. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
  10. package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
  11. package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
  12. package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
  13. package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
  14. package/esm2022/lib/classes/credentials.mjs +2 -0
  15. package/esm2022/lib/classes/environment.mjs +34 -0
  16. package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
  17. package/esm2022/lib/classes/infinite-scroll.mjs +90 -0
  18. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
  19. package/esm2022/lib/classes/inputs/table-field.mjs +79 -0
  20. package/esm2022/lib/classes/page-option.mjs +2 -0
  21. package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
  22. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
  23. package/esm2022/lib/classes/routes/route-data.mjs +9 -0
  24. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
  25. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
  27. package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
  28. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
  29. package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
  30. package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
  31. package/esm2022/lib/components/default/default-list/default-list.component.mjs +95 -0
  32. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
  33. package/esm2022/lib/components/default/default-list/list.mjs +120 -0
  34. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
  35. package/esm2022/lib/components/default/default-table/default-table.component.mjs +216 -0
  36. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +206 -0
  37. package/esm2022/lib/components/default/default-view/abstract-view.mjs +22 -0
  38. package/esm2022/lib/components/default/default-view/default-view.component.mjs +63 -0
  39. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +78 -0
  40. package/esm2022/lib/components/default/default-view/view.mjs +188 -0
  41. package/esm2022/lib/components/default/default.module.mjs +98 -0
  42. package/esm2022/lib/components/default-page/default.page.mjs +75 -0
  43. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
  44. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
  45. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
  46. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
  47. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +52 -0
  48. package/esm2022/lib/components/drawer/drawer.component.mjs +156 -0
  49. package/esm2022/lib/components/drawer/menu.mjs +15 -0
  50. package/esm2022/lib/components/filter/filter.component.mjs +145 -0
  51. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
  52. package/esm2022/lib/components/image/image.component.mjs +91 -0
  53. package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
  54. package/esm2022/lib/components/inputs/custom-input.mjs +85 -0
  55. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +46 -0
  56. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
  57. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +50 -0
  58. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +4 -0
  59. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +481 -0
  60. package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
  61. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +116 -0
  62. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
  63. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +235 -0
  64. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
  65. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +243 -0
  66. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +50 -0
  67. package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
  68. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +99 -0
  69. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +101 -0
  70. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +24 -0
  71. package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +3734 -0
  72. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +60 -0
  73. package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +1360 -0
  74. package/esm2022/lib/components/inputs/input-provider-factory.mjs +12 -0
  75. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
  76. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +16 -0
  77. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
  78. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +373 -0
  79. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +229 -0
  80. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +41 -0
  81. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +20 -0
  82. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +74 -0
  83. package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +12 -0
  84. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +74 -0
  85. package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
  86. package/esm2022/lib/components/inputs/input-type.mjs +24 -0
  87. package/esm2022/lib/components/inputs/input-validators.mjs +121 -0
  88. package/esm2022/lib/components/inputs/inputs.module.mjs +133 -0
  89. package/esm2022/lib/components/loading/loading.component.mjs +34 -0
  90. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
  91. package/esm2022/lib/components/login/login.component.mjs +99 -0
  92. package/esm2022/lib/components/main-content/main-content.component.mjs +100 -0
  93. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +182 -0
  94. package/esm2022/lib/components/popover/sion-popover.module.mjs +21 -0
  95. package/esm2022/lib/components/sion-card/sion-card.component.mjs +26 -0
  96. package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
  97. package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
  98. package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
  99. package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
  100. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
  101. package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
  102. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
  103. package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
  104. package/esm2022/lib/core.module.mjs +38 -0
  105. package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
  106. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  107. package/esm2022/lib/guards/error.interceptor.mjs +107 -0
  108. package/esm2022/lib/guards/token.interceptor.mjs +25 -0
  109. package/esm2022/lib/index.mjs +187 -0
  110. package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
  111. package/esm2022/lib/services/auth.service.mjs +146 -0
  112. package/esm2022/lib/services/environment.service.mjs +26 -0
  113. package/esm2022/lib/services/generic.service.mjs +84 -0
  114. package/esm2022/lib/services/modal-focus-trap.service.mjs +62 -0
  115. package/esm2022/lib/services/popover-focus-trap.service.mjs +62 -0
  116. package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
  117. package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
  118. package/esm2022/lib/services/usuario.service.mjs +49 -0
  119. package/esm2022/lib/services/utils.service.mjs +190 -0
  120. package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
  121. package/esm2022/lib/services/web/http.ativo.service.mjs +37 -0
  122. package/esm2022/lib/services/web/http.service.mjs +177 -0
  123. package/esm2022/lib/services/web/storage.service.mjs +183 -0
  124. package/esm2022/public-api.mjs +5 -0
  125. package/esm2022/sapphire-ion-framework.mjs +5 -0
  126. package/fesm2022/sapphire-ion-framework.mjs +12265 -0
  127. package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
  128. package/index.d.ts +5 -0
  129. package/lib/classes/comparison/comparison-operator.d.ts +9 -0
  130. package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
  131. package/lib/classes/comparison/comparison.d.ts +25 -0
  132. package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
  133. package/lib/classes/comparison/properties/date-property.d.ts +11 -0
  134. package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
  135. package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
  136. package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
  137. package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
  138. package/lib/classes/comparison/properties/int-property.d.ts +11 -0
  139. package/lib/classes/comparison/properties/long-property.d.ts +11 -0
  140. package/lib/classes/comparison/properties/string-property.d.ts +7 -0
  141. package/lib/classes/comparison/properties/time-property.d.ts +11 -0
  142. package/{src/lib/classes/credentials.ts → lib/classes/credentials.d.ts} +5 -5
  143. package/lib/classes/environment.d.ts +14 -0
  144. package/lib/classes/filters/view-filtros.d.ts +10 -0
  145. package/lib/classes/infinite-scroll.d.ts +26 -0
  146. package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
  147. package/lib/classes/inputs/table-field.d.ts +20 -0
  148. package/lib/classes/page-option.d.ts +7 -0
  149. package/lib/classes/routes/default-routing-factory.d.ts +8 -0
  150. package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
  151. package/lib/classes/routes/route-data.d.ts +5 -0
  152. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
  153. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
  154. package/lib/components/carousel/carousel.component.d.ts +32 -0
  155. package/lib/components/carousel/carousel.module.d.ts +12 -0
  156. package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
  157. package/lib/components/content-block/content-block.component.d.ts +15 -0
  158. package/lib/components/default/default-list/abstract-list.d.ts +21 -0
  159. package/lib/components/default/default-list/default-list.component.d.ts +47 -0
  160. package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
  161. package/lib/components/default/default-list/list.d.ts +40 -0
  162. package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
  163. package/lib/components/default/default-table/default-table.component.d.ts +90 -0
  164. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +23 -0
  165. package/lib/components/default/default-view/abstract-view.d.ts +18 -0
  166. package/lib/components/default/default-view/default-view.component.d.ts +32 -0
  167. package/lib/components/default/default-view/header-view/header-view.component.d.ts +29 -0
  168. package/lib/components/default/default-view/view.d.ts +59 -0
  169. package/lib/components/default/default.module.d.ts +31 -0
  170. package/lib/components/default-page/default.page.d.ts +35 -0
  171. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
  172. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
  173. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
  174. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
  175. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
  176. package/lib/components/drawer/drawer.component.d.ts +31 -0
  177. package/lib/components/drawer/menu.d.ts +9 -0
  178. package/lib/components/filter/filter.component.d.ts +29 -0
  179. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
  180. package/lib/components/image/image.component.d.ts +23 -0
  181. package/lib/components/info-popover/info-popover.component.d.ts +15 -0
  182. package/lib/components/inputs/custom-input.d.ts +40 -0
  183. package/lib/components/inputs/input-bool/input-bool.component.d.ts +16 -0
  184. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
  185. package/lib/components/inputs/input-cep/input-cep.component.d.ts +18 -0
  186. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +3 -0
  187. package/lib/components/inputs/input-color/input-color.component.d.ts +77 -0
  188. package/{src/lib/components/inputs/input-configuration.ts → lib/components/inputs/input-configuration.d.ts} +10 -23
  189. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +19 -0
  190. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
  191. package/lib/components/inputs/input-date/input-date.component.d.ts +60 -0
  192. package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
  193. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +26 -0
  194. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +28 -0
  195. package/lib/components/inputs/input-default-configurations.d.ts +13 -0
  196. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +39 -0
  197. package/lib/components/inputs/input-file/input-file.component.d.ts +27 -0
  198. package/lib/components/inputs/input-file/input-file.configuration.d.ts +8 -0
  199. package/lib/components/inputs/input-icon/fluenticons.d.ts +1 -0
  200. package/lib/components/inputs/input-icon/input-icon.component.d.ts +20 -0
  201. package/lib/components/inputs/input-icon/ionicons.d.ts +1 -0
  202. package/lib/components/inputs/input-provider-factory.d.ts +4 -0
  203. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +18 -0
  204. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +14 -0
  205. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +18 -0
  206. package/lib/components/inputs/input-select/input-select.component.d.ts +83 -0
  207. package/lib/components/inputs/input-select/input.select.configuration.d.ts +122 -0
  208. package/lib/components/inputs/input-string/input-string.component.d.ts +14 -0
  209. package/lib/components/inputs/input-string/input-string.configuration.d.ts +15 -0
  210. package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +19 -0
  211. package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +9 -0
  212. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +16 -0
  213. package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
  214. package/lib/components/inputs/input-type.d.ts +22 -0
  215. package/lib/components/inputs/input-validators.d.ts +25 -0
  216. package/lib/components/inputs/inputs.module.d.ts +33 -0
  217. package/lib/components/loading/loading.component.d.ts +18 -0
  218. package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
  219. package/lib/components/login/login.component.d.ts +29 -0
  220. package/lib/components/main-content/main-content.component.d.ts +27 -0
  221. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +43 -0
  222. package/lib/components/popover/sion-popover.module.d.ts +9 -0
  223. package/lib/components/sion-card/sion-card.component.d.ts +11 -0
  224. package/lib/components/stepper/step/step.component.d.ts +15 -0
  225. package/lib/components/stepper/stepper.component.d.ts +14 -0
  226. package/lib/components/stepper/stepper.module.d.ts +10 -0
  227. package/lib/components/tabs/tab/tab.component.d.ts +19 -0
  228. package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
  229. package/lib/components/tabs/tabs.module.d.ts +12 -0
  230. package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
  231. package/lib/components/tooltip/tooltip.component.d.ts +7 -0
  232. package/lib/core.module.d.ts +16 -0
  233. package/lib/directives/ng-var.directive.d.ts +12 -0
  234. package/lib/guards/auth.guard.d.ts +11 -0
  235. package/lib/guards/error.interceptor.d.ts +32 -0
  236. package/lib/guards/token.interceptor.d.ts +11 -0
  237. package/lib/index.d.ts +117 -0
  238. package/lib/pipes/secure.pipe.d.ts +15 -0
  239. package/lib/services/auth.service.d.ts +47 -0
  240. package/lib/services/environment.service.d.ts +10 -0
  241. package/lib/services/generic.service.d.ts +22 -0
  242. package/lib/services/modal-focus-trap.service.d.ts +13 -0
  243. package/lib/services/popover-focus-trap.service.d.ts +13 -0
  244. package/lib/services/route/route.cache.service.d.ts +7 -0
  245. package/lib/services/route/route.provider.service.d.ts +13 -0
  246. package/lib/services/usuario.service.d.ts +21 -0
  247. package/lib/services/utils.service.d.ts +53 -0
  248. package/lib/services/web/api-url-provider.service.d.ts +13 -0
  249. package/lib/services/web/http.ativo.service.d.ts +20 -0
  250. package/lib/services/web/http.service.d.ts +59 -0
  251. package/lib/services/web/storage.service.d.ts +46 -0
  252. package/package.json +47 -43
  253. package/public-api.d.ts +1 -0
  254. package/{src/lib → themes}/compiled-styles.scss +2551 -2551
  255. package/build.ps1 +0 -39
  256. package/ng-package.json +0 -10
  257. package/src/lib/classes/comparison/comparison-operator.ts +0 -17
  258. package/src/lib/classes/comparison/comparison-value-type.ts +0 -34
  259. package/src/lib/classes/comparison/comparison.ts +0 -45
  260. package/src/lib/classes/comparison/properties/bool-property.ts +0 -16
  261. package/src/lib/classes/comparison/properties/date-property.ts +0 -28
  262. package/src/lib/classes/comparison/properties/datetime-property.ts +0 -28
  263. package/src/lib/classes/comparison/properties/decimal-property.ts +0 -28
  264. package/src/lib/classes/comparison/properties/enum-property.ts +0 -28
  265. package/src/lib/classes/comparison/properties/implicit-property.ts +0 -13
  266. package/src/lib/classes/comparison/properties/int-property.ts +0 -28
  267. package/src/lib/classes/comparison/properties/long-property.ts +0 -28
  268. package/src/lib/classes/comparison/properties/string-property.ts +0 -16
  269. package/src/lib/classes/comparison/properties/time-property.ts +0 -28
  270. package/src/lib/classes/environment.ts +0 -37
  271. package/src/lib/classes/filters/view-filtros.ts +0 -18
  272. package/src/lib/classes/infinite-scroll.ts +0 -112
  273. package/src/lib/classes/inputs/table-field-form-builder.ts +0 -12
  274. package/src/lib/classes/inputs/table-field.ts +0 -62
  275. package/src/lib/classes/page-option.ts +0 -8
  276. package/src/lib/classes/routes/default-routing-factory.ts +0 -24
  277. package/src/lib/classes/routes/id-preloader-configuration.ts +0 -21
  278. package/src/lib/classes/routes/route-data.ts +0 -9
  279. package/src/lib/components/carousel/carousel-image/carousel-image.component.html +0 -4
  280. package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +0 -15
  281. package/src/lib/components/carousel/carousel-item/carousel-item.component.html +0 -3
  282. package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +0 -14
  283. package/src/lib/components/carousel/carousel.component.html +0 -22
  284. package/src/lib/components/carousel/carousel.component.ts +0 -83
  285. package/src/lib/components/carousel/carousel.module.ts +0 -20
  286. package/src/lib/components/carousel/i-carousel-item.component.ts +0 -8
  287. package/src/lib/components/content-block/content-block.component.html +0 -6
  288. package/src/lib/components/content-block/content-block.component.ts +0 -25
  289. package/src/lib/components/default/default-list/abstract-list.ts +0 -56
  290. package/src/lib/components/default/default-list/default-list.component.html +0 -60
  291. package/src/lib/components/default/default-list/default-list.component.ts +0 -72
  292. package/src/lib/components/default/default-list/header-list/header-list.component.html +0 -32
  293. package/src/lib/components/default/default-list/header-list/header-list.component.ts +0 -85
  294. package/src/lib/components/default/default-list/list.ts +0 -127
  295. package/src/lib/components/default/default-pagination/default-pagination.component.html +0 -52
  296. package/src/lib/components/default/default-pagination/default-pagination.component.ts +0 -118
  297. package/src/lib/components/default/default-table/default-table.component.html +0 -104
  298. package/src/lib/components/default/default-table/default-table.component.ts +0 -255
  299. package/src/lib/components/default/default-table/th-filter/th-filter.component.html +0 -69
  300. package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +0 -183
  301. package/src/lib/components/default/default-view/abstract-view.ts +0 -25
  302. package/src/lib/components/default/default-view/default-view.component.html +0 -111
  303. package/src/lib/components/default/default-view/default-view.component.ts +0 -44
  304. package/src/lib/components/default/default-view/header-view/header-view.component.html +0 -64
  305. package/src/lib/components/default/default-view/header-view/header-view.component.ts +0 -57
  306. package/src/lib/components/default/default-view/view.ts +0 -183
  307. package/src/lib/components/default/default.module.ts +0 -61
  308. package/src/lib/components/default-page/default.page.html +0 -63
  309. package/src/lib/components/default-page/default.page.ts +0 -84
  310. package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +0 -44
  311. package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +0 -21
  312. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +0 -5
  313. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +0 -17
  314. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +0 -12
  315. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +0 -35
  316. package/src/lib/components/drawer/drawer-group/drawer-group.component.html +0 -79
  317. package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +0 -49
  318. package/src/lib/components/drawer/drawer.component.html +0 -120
  319. package/src/lib/components/drawer/drawer.component.ts +0 -157
  320. package/src/lib/components/drawer/menu.ts +0 -20
  321. package/src/lib/components/filter/filter.component.html +0 -43
  322. package/src/lib/components/filter/filter.component.ts +0 -141
  323. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +0 -35
  324. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +0 -19
  325. package/src/lib/components/image/image.component.html +0 -17
  326. package/src/lib/components/image/image.component.ts +0 -95
  327. package/src/lib/components/info-popover/info-popover.component.html +0 -23
  328. package/src/lib/components/info-popover/info-popover.component.ts +0 -75
  329. package/src/lib/components/inputs/custom-input.ts +0 -94
  330. package/src/lib/components/inputs/input-bool/input-bool.component.html +0 -26
  331. package/src/lib/components/inputs/input-bool/input-bool.component.ts +0 -39
  332. package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +0 -14
  333. package/src/lib/components/inputs/input-cep/input-cep.component.html +0 -27
  334. package/src/lib/components/inputs/input-cep/input-cep.component.ts +0 -41
  335. package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +0 -4
  336. package/src/lib/components/inputs/input-color/input-color.component.html +0 -79
  337. package/src/lib/components/inputs/input-color/input-color.component.ts +0 -544
  338. package/src/lib/components/inputs/input-color/input-color.configuration.ts +0 -0
  339. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +0 -28
  340. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +0 -99
  341. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +0 -4
  342. package/src/lib/components/inputs/input-date/input-date.component.html +0 -88
  343. package/src/lib/components/inputs/input-date/input-date.component.ts +0 -241
  344. package/src/lib/components/inputs/input-date/input-date.configuration.ts +0 -6
  345. package/src/lib/components/inputs/input-decimal/input-decimal.component.html +0 -31
  346. package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +0 -249
  347. package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +0 -47
  348. package/src/lib/components/inputs/input-default-configurations.ts +0 -15
  349. package/src/lib/components/inputs/input-file/download-button/download-button.component.html +0 -56
  350. package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +0 -89
  351. package/src/lib/components/inputs/input-file/input-file.component.html +0 -59
  352. package/src/lib/components/inputs/input-file/input-file.component.ts +0 -96
  353. package/src/lib/components/inputs/input-file/input-file.configuration.ts +0 -25
  354. package/src/lib/components/inputs/input-icon/fluenticons.ts +0 -3733
  355. package/src/lib/components/inputs/input-icon/input-icon.component.html +0 -8
  356. package/src/lib/components/inputs/input-icon/input-icon.component.ts +0 -52
  357. package/src/lib/components/inputs/input-icon/ionicons.ts +0 -1359
  358. package/src/lib/components/inputs/input-provider-factory.ts +0 -12
  359. package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +0 -19
  360. package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +0 -16
  361. package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +0 -19
  362. package/src/lib/components/inputs/input-select/input-select.component.html +0 -176
  363. package/src/lib/components/inputs/input-select/input-select.component.ts +0 -361
  364. package/src/lib/components/inputs/input-select/input.select.configuration.ts +0 -292
  365. package/src/lib/components/inputs/input-string/input-string.component.html +0 -27
  366. package/src/lib/components/inputs/input-string/input-string.component.ts +0 -31
  367. package/src/lib/components/inputs/input-string/input-string.configuration.ts +0 -18
  368. package/src/lib/components/inputs/input-telefone/input-telefone.component.html +0 -29
  369. package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +0 -63
  370. package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +0 -8
  371. package/src/lib/components/inputs/input-textarea/input-textarea.component.html +0 -27
  372. package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +0 -31
  373. package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +0 -7
  374. package/src/lib/components/inputs/input-type.ts +0 -22
  375. package/src/lib/components/inputs/input-validators.ts +0 -111
  376. package/src/lib/components/inputs/inputs.module.ts +0 -74
  377. package/src/lib/components/loading/loading.component.html +0 -28
  378. package/src/lib/components/loading/loading.component.ts +0 -29
  379. package/src/lib/components/login/login-admin/login-admin.component.html +0 -28
  380. package/src/lib/components/login/login-admin/login-admin.component.ts +0 -51
  381. package/src/lib/components/login/login.component.html +0 -104
  382. package/src/lib/components/login/login.component.ts +0 -96
  383. package/src/lib/components/main-content/main-content.component.html +0 -145
  384. package/src/lib/components/main-content/main-content.component.ts +0 -93
  385. package/src/lib/components/popover/sion-popover/sion-popover.component.html +0 -21
  386. package/src/lib/components/popover/sion-popover/sion-popover.component.ts +0 -182
  387. package/src/lib/components/popover/sion-popover.module.ts +0 -12
  388. package/src/lib/components/sion-card/sion-card.component.html +0 -12
  389. package/src/lib/components/sion-card/sion-card.component.ts +0 -23
  390. package/src/lib/components/stepper/step/step.component.html +0 -11
  391. package/src/lib/components/stepper/step/step.component.ts +0 -44
  392. package/src/lib/components/stepper/stepper.component.html +0 -3
  393. package/src/lib/components/stepper/stepper.component.ts +0 -37
  394. package/src/lib/components/stepper/stepper.module.ts +0 -15
  395. package/src/lib/components/tabs/tab/tab.component.html +0 -8
  396. package/src/lib/components/tabs/tab/tab.component.ts +0 -28
  397. package/src/lib/components/tabs/tabs/tabs.component.html +0 -14
  398. package/src/lib/components/tabs/tabs/tabs.component.ts +0 -42
  399. package/src/lib/components/tabs/tabs.module.ts +0 -15
  400. package/src/lib/components/text-tooltip/text-tooltip.component.html +0 -8
  401. package/src/lib/components/text-tooltip/text-tooltip.component.ts +0 -45
  402. package/src/lib/components/tooltip/tooltip.component.html +0 -53
  403. package/src/lib/components/tooltip/tooltip.component.ts +0 -16
  404. package/src/lib/core.module.ts +0 -29
  405. package/src/lib/directives/ng-var.directive.ts +0 -26
  406. package/src/lib/guards/auth.guard.ts +0 -19
  407. package/src/lib/guards/error.interceptor.ts +0 -108
  408. package/src/lib/guards/token.interceptor.ts +0 -28
  409. package/src/lib/index.ts +0 -190
  410. package/src/lib/pipes/secure.pipe.ts +0 -39
  411. package/src/lib/services/auth.service.ts +0 -153
  412. package/src/lib/services/crypto.service.ts +0 -164
  413. package/src/lib/services/environment.service.ts +0 -17
  414. package/src/lib/services/generic.service.ts +0 -85
  415. package/src/lib/services/modal-focus-trap.service.ts +0 -65
  416. package/src/lib/services/popover-focus-trap.service.ts +0 -65
  417. package/src/lib/services/route/route.cache.service.ts +0 -17
  418. package/src/lib/services/route/route.provider.service.ts +0 -49
  419. package/src/lib/services/usuario.service.ts +0 -44
  420. package/src/lib/services/utils.service.ts +0 -216
  421. package/src/lib/services/web/api-url-provider.service.ts +0 -48
  422. package/src/lib/services/web/http.ativo.service.ts +0 -37
  423. package/src/lib/services/web/http.service.ts +0 -193
  424. package/src/lib/services/web/storage.service.ts +0 -206
  425. package/src/public-api.ts +0 -5
  426. package/tailwind.config.js +0 -27
  427. package/tsconfig.lib.json +0 -29
  428. package/tsconfig.lib.prod.json +0 -23
  429. package/tsconfig.spec.json +0 -27
  430. /package/{src/lib → themes}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  431. /package/{src/lib → themes}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  432. /package/{src/lib → themes}/components/carousel/carousel.component.scss +0 -0
  433. /package/{src/lib → themes}/components/content-block/content-block.component.scss +0 -0
  434. /package/{src/lib → themes}/components/default/default-list/default-list.component.scss +0 -0
  435. /package/{src/lib → themes}/components/default/default-list/header-list/header-list.component.scss +0 -0
  436. /package/{src/lib → themes}/components/default/default-pagination/default-pagination.component.scss +0 -0
  437. /package/{src/lib → themes}/components/default/default-table/default-table.component.scss +0 -0
  438. /package/{src/lib → themes}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
  439. /package/{src/lib → themes}/components/default/default-view/default-view.component.scss +0 -0
  440. /package/{src/lib → themes}/components/default/default-view/header-view/header-view.component.scss +0 -0
  441. /package/{src/lib → themes}/components/default-page/default.page.scss +0 -0
  442. /package/{src/lib → themes}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
  443. /package/{src/lib → themes}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  444. /package/{src/lib → themes}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
  445. /package/{src/lib → themes}/components/drawer/drawer.component.scss +0 -0
  446. /package/{src/lib → themes}/components/filter/filter.component.scss +0 -0
  447. /package/{src/lib → themes}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
  448. /package/{src/lib → themes}/components/image/image.component.scss +0 -0
  449. /package/{src/lib → themes}/components/info-popover/info-popover.component.scss +0 -0
  450. /package/{src/lib → themes}/components/inputs/input-bool/input-bool.component.scss +0 -0
  451. /package/{src/lib → themes}/components/inputs/input-cep/input-cep.component.scss +0 -0
  452. /package/{src/lib → themes}/components/inputs/input-color/input-color.component.scss +0 -0
  453. /package/{src/lib → themes}/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
  454. /package/{src/lib → themes}/components/inputs/input-date/input-date.component.scss +0 -0
  455. /package/{src/lib → themes}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
  456. /package/{src/lib → themes}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
  457. /package/{src/lib → themes}/components/inputs/input-file/input-file.component.scss +0 -0
  458. /package/{src/lib → themes}/components/inputs/input-icon/input-icon.component.scss +0 -0
  459. /package/{src/lib → themes}/components/inputs/input-select/input-select.component.scss +0 -0
  460. /package/{src/lib → themes}/components/inputs/input-string/input-string.component.scss +0 -0
  461. /package/{src/lib → themes}/components/inputs/input-telefone/input-telefone.component.scss +0 -0
  462. /package/{src/lib → themes}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  463. /package/{src/lib → themes}/components/inputs/inputs.scss +0 -0
  464. /package/{src/lib → themes}/components/loading/loading.component.scss +0 -0
  465. /package/{src/lib → themes}/components/login/login-admin/login-admin.component.scss +0 -0
  466. /package/{src/lib → themes}/components/login/login.component.scss +0 -0
  467. /package/{src/lib → themes}/components/main-content/main-content.component.scss +0 -0
  468. /package/{src/lib → themes}/components/popover/sion-popover/sion-popover.component.scss +0 -0
  469. /package/{src/lib → themes}/components/sion-card/sion-card.component.scss +0 -0
  470. /package/{src/lib → themes}/components/stepper/step/step.component.scss +0 -0
  471. /package/{src/lib → themes}/components/stepper/stepper.component.scss +0 -0
  472. /package/{src/lib → themes}/components/tabs/tab/tab.component.scss +0 -0
  473. /package/{src/lib → themes}/components/tabs/tabs/tabs.component.scss +0 -0
  474. /package/{src/lib → themes}/components/text-tooltip/text-tooltip.component.scss +0 -0
  475. /package/{src/lib → themes}/components/tooltip/tooltip.component.scss +0 -0
  476. /package/{src/lib → themes}/styles/components.scss +0 -0
  477. /package/{src/lib → themes}/styles/core.styles.scss +0 -0
  478. /package/{src/lib → themes}/styles/ionic/ion-action-sheet.scss +0 -0
  479. /package/{src/lib → themes}/styles/ionic/ion-alert.scss +0 -0
  480. /package/{src/lib → themes}/styles/ionic/ion-button.scss +0 -0
  481. /package/{src/lib → themes}/styles/ionic/ion-card.scss +0 -0
  482. /package/{src/lib → themes}/styles/ionic/ion-content.scss +0 -0
  483. /package/{src/lib → themes}/styles/ionic/ion-datetime.scss +0 -0
  484. /package/{src/lib → themes}/styles/ionic/ion-item.scss +0 -0
  485. /package/{src/lib → themes}/styles/ionic/ion-list.scss +0 -0
  486. /package/{src/lib → themes}/styles/ionic/ion-modal.scss +0 -0
  487. /package/{src/lib → themes}/styles/ionic/ion-popover.scss +0 -0
  488. /package/{src/lib → themes}/styles/ionic/ion-progress-bar.scss +0 -0
  489. /package/{src/lib → themes}/styles/ionic/ion-searchbar.scss +0 -0
  490. /package/{src/lib → themes}/styles/ionic/ion-toast.scss +0 -0
  491. /package/{src/lib → themes}/styles/ionic.scss +0 -0
  492. /package/{src/lib → themes}/styles/login-default.scss +0 -0
  493. /package/{src/lib → themes}/styles/mixins.scss +0 -0
  494. /package/{src/lib → themes}/styles/styles.scss +0 -0
  495. /package/{src/lib → themes}/styles/translucid.scss +0 -0
@@ -0,0 +1,98 @@
1
+ import { Component, Output, Input, EventEmitter, HostListener } from '@angular/core';
2
+ import { EnvironmentService } from '../../../../services/environment.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../../services/environment.service";
5
+ import * as i2 from "@ionic/angular";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/router";
8
+ /** Componente de cabeçalho de listagem padrão */
9
+ export class HeaderListComponent {
10
+ onNew() {
11
+ this.onNewEmitter.emit();
12
+ }
13
+ constructor(environmentService) {
14
+ this.environmentService = environmentService;
15
+ this.limitChange = new EventEmitter();
16
+ this.pageChange = new EventEmitter();
17
+ this.searchChange = new EventEmitter();
18
+ /** Evento de refersh
19
+ * Emitido em:
20
+ * - Troca de página
21
+ * - Pesquisa
22
+ */
23
+ this.refreshEmitter = new EventEmitter();
24
+ /** Link a ser acessado no click do botão NOVO */
25
+ this.link = "view";
26
+ /** Remove o botão NOVO */
27
+ this.noNew = false;
28
+ /** Remove o select de paginas */
29
+ this.noPage = false;
30
+ /** Remove o elemento de pesquisa */
31
+ this.noSearch = false;
32
+ /** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */
33
+ this.overrideNew = false;
34
+ /** Evento quando o botáo NOVO é clickado */
35
+ this.onNewEmitter = new EventEmitter();
36
+ this.lstLimits = [];
37
+ this.lstLimits = environmentService.environment.defaultPageLimits;
38
+ this.limit = this.lstLimits[0].value;
39
+ }
40
+ EmitSearch() {
41
+ this.searchChange.emit(this.search);
42
+ this.EmitChange();
43
+ }
44
+ EmitLimit() {
45
+ this.limitChange.emit(this.limit);
46
+ this.pageChange.emit(1);
47
+ this.EmitChange();
48
+ }
49
+ EmitChange() {
50
+ this.refreshEmitter.emit();
51
+ }
52
+ onKeyPress($event) {
53
+ if (($event.ctrlKey || $event.metaKey) && ($event.key == 'F' || $event.key == 'f')) {
54
+ document.getElementById("list_search").setFocus();
55
+ $event.preventDefault();
56
+ }
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderListComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderListComponent, selector: "header-list", inputs: { limit: "limit", page: "page", search: "search", loading: "loading", link: "link", noNew: "noNew", noPage: "noPage", noSearch: "noSearch", overrideNew: "overrideNew" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", searchChange: "searchChange", refreshEmitter: "refresh", onNewEmitter: "onNew" }, host: { listeners: { "window:keydown": "onKeyPress($event)" } }, ngImport: i0, template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "required", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderListComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'header-list', template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>" }]
64
+ }], ctorParameters: () => [{ type: i1.EnvironmentService }], propDecorators: { limit: [{
65
+ type: Input
66
+ }], limitChange: [{
67
+ type: Output
68
+ }], page: [{
69
+ type: Input
70
+ }], pageChange: [{
71
+ type: Output
72
+ }], search: [{
73
+ type: Input
74
+ }], searchChange: [{
75
+ type: Output
76
+ }], loading: [{
77
+ type: Input
78
+ }], refreshEmitter: [{
79
+ type: Output,
80
+ args: ['refresh']
81
+ }], link: [{
82
+ type: Input
83
+ }], noNew: [{
84
+ type: Input
85
+ }], noPage: [{
86
+ type: Input
87
+ }], noSearch: [{
88
+ type: Input
89
+ }], overrideNew: [{
90
+ type: Input
91
+ }], onNewEmitter: [{
92
+ type: Output,
93
+ args: ['onNew']
94
+ }], onKeyPress: [{
95
+ type: HostListener,
96
+ args: ['window:keydown', ['$event']]
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2hlYWRlci1saXN0L2hlYWRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9oZWFkZXItbGlzdC9oZWFkZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7O0FBRzlFLGtEQUFrRDtBQU1sRCxNQUFNLE9BQU8sbUJBQW1CO0lBdUM5QixLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF2Q2hELGdCQUFXLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBSTdFLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUk5RCxpQkFBWSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUl4Rjs7OztXQUlHO1FBQ2dCLG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFakYsaURBQWlEO1FBQ3hDLFNBQUksR0FBWSxNQUFNLENBQUM7UUFFaEMsMEJBQTBCO1FBQ2pCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDaEMsaUNBQWlDO1FBQ3hCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsb0NBQW9DO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHbkMsc0ZBQXNGO1FBQzdFLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDRDQUE0QztRQUMzQixpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBVzdFLGNBQVMsR0FBaUIsRUFBRSxDQUFBO1FBSjFCLElBQUksQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDdEMsQ0FBQztJQUdELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUdELFVBQVUsQ0FBQyxNQUFxQjtRQUM5QixJQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDaEYsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQXlCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0UsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDOytHQXZFVSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5YkNaaEMseWlEQStCTTs7NEZEbkJPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO3VGQU9iLEtBQUs7c0JBQWQsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLElBQUk7c0JBQVosS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdFLE1BQU07c0JBQWQsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFPYSxjQUFjO3NCQUFoQyxNQUFNO3VCQUFDLFNBQVM7Z0JBR1IsSUFBSTtzQkFBWixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07dUJBQUMsT0FBTztnQkE2QmYsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQixFQUFDLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJb25TZWFyY2hiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFnZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvcGFnZS1vcHRpb24nO1xyXG5cclxuLyoqIENvbXBvbmVudGUgZGUgY2FiZcOnYWxobyBkZSBsaXN0YWdlbSBwYWRyw6NvICAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hlYWRlci1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJMaXN0Q29tcG9uZW50IHtcclxuXHJcbiAgLyoqIE7Dum1lcm8gZGUgcMOhZ2luYXMgbcOheGltbyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpICBsaW1pdDogbnVtYmVyIHwgbnVsbDtcclxuICBAT3V0cHV0KCkgbGltaXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcclxuXHJcbiAgLyoqIFZhbG9yIGRhIHBhZ2luYSwgc2V0YWRvID0gMSBxdWFuZG8gdHJvY2Etc2UgbyB2YWxvciBkZSBsaW1pdGUgZGUgcGFnaW5hcyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgLyoqIENhbXBvIGRlIHBlc3F1aXNhICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgQElucHV0KCkgc2VhcmNoOiBzdHJpbmcgfCBudWxsO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcclxuICBcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxuICAvKiogRXZlbnRvIGRlIHJlZmVyc2hcclxuICAgKiBFbWl0aWRvIGVtOlxyXG4gICAqICAtIFRyb2NhIGRlIHDDoWdpbmFcclxuICAgKiAgLSBQZXNxdWlzYVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoJ3JlZnJlc2gnKSByZWZyZXNoRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogTGluayBhIHNlciBhY2Vzc2FkbyBubyBjbGljayBkbyBib3TDo28gTk9WTyAqL1xyXG4gIEBJbnB1dCgpIGxpbmsgOiBzdHJpbmcgPSBcInZpZXdcIjtcclxuXHJcbiAgLyoqIFJlbW92ZSBvIGJvdMOjbyBOT1ZPICovXHJcbiAgQElucHV0KCkgbm9OZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gc2VsZWN0IGRlIHBhZ2luYXMgKi9cclxuICBASW5wdXQoKSBub1BhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gZWxlbWVudG8gZGUgcGVzcXVpc2EgKi9cclxuICBASW5wdXQoKSBub1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcblxyXG4gIC8qKiBEZXNhYmlsaXRhIG8gcmVkaXJlY3QgZGUgbm92byBlbSB1bSBib3TDo28gcGFyYSBzZXIgdXRpbGl6YWRvIGNvbSBbb25OZXdFbWl0dGVyXSAqL1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlTmV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIEV2ZW50byBxdWFuZG8gbyBib3TDoW8gTk9WTyDDqSBjbGlja2FkbyAqL1xyXG4gIEBPdXRwdXQoJ29uTmV3Jykgb25OZXdFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG9uTmV3KCk6IHZvaWR7XHJcbiAgICB0aGlzLm9uTmV3RW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlKSB7IFxyXG4gICAgdGhpcy5sc3RMaW1pdHMgPSBlbnZpcm9ubWVudFNlcnZpY2UuZW52aXJvbm1lbnQuZGVmYXVsdFBhZ2VMaW1pdHM7XHJcbiAgICB0aGlzLmxpbWl0ID0gdGhpcy5sc3RMaW1pdHNbMF0udmFsdWVcclxuICB9XHJcblxyXG4gIGxzdExpbWl0czogUGFnZU9wdGlvbltdID0gW11cclxuICBFbWl0U2VhcmNoKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoKTtcclxuICAgIHRoaXMuRW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgRW1pdExpbWl0KCk6IHZvaWR7XHJcbiAgICB0aGlzLmxpbWl0Q2hhbmdlLmVtaXQodGhpcy5saW1pdCk7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCgxKTtcclxuICAgIFxyXG4gICAgdGhpcy5FbWl0Q2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBFbWl0Q2hhbmdlKCl7XHJcbiAgICB0aGlzLnJlZnJlc2hFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJyxbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZigoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICgkZXZlbnQua2V5ID09ICdGJyB8fCAkZXZlbnQua2V5ID09ICdmJykpe1xyXG4gICAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsaXN0X3NlYXJjaFwiKSBhcyBhbnkgYXMgSW9uU2VhcmNoYmFyKS5zZXRGb2N1cygpO1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgdy1mdWxsIGdhcC0yXCI+XHJcbiAgQGlmICghbm9QYWdlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9ydHJhaXQ6YmFzaXMtW2NhbGMoNTAlLTAuMjVyZW0pXSBsYW5kc2NhcGU6dy00OCBwb3J0cmFpdDpvcmRlci0xXCI+XHJcbiAgICAgIDxpb24taXRlbSBjbGFzcz1cInJvdW5kZWQtMnhsIHctZnVsbCBoLWZ1bGwgdHJhbnNsdWNpZC1ib3JkZXJcIiBsaW5lcz1cImZ1bGxcIiBzdHlsZT1cIi0tYm9yZGVyLXJhZGl1czogMXJlbSAhaW1wb3J0YW50OyAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50XCIgPlxyXG4gICAgICAgIDxpb24tc2VsZWN0IFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgWyhuZ01vZGVsKV09XCJsaW1pdFwiIChpb25DaGFuZ2UpPVwiRW1pdExpbWl0KClcIiBpbnRlcmZhY2U9XCJwb3BvdmVyXCI+XHJcbiAgICAgICAgICBAZm9yIChsaW1pdCBvZiBsc3RMaW1pdHM7IHRyYWNrIGxpbWl0KSB7XHJcbiAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwibGltaXQudmFsdWVcIj57e2xpbWl0LmxhYmVsfX08L2lvbi1zZWxlY3Qtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaW9uLXNlbGVjdD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBcclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gIEBpZighbm9TZWFyY2gpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJwb3J0cmFpdDpiYXNpcy1mdWxsIHBvcnRyYWl0Om9yZGVyLTMgZ3JvdyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICA8aW9uLXNlYXJjaGJhciBjbGFzcz1cInctZnVsbCBtaW4taC0wIHAtMCBtLTBcIiBbZGVib3VuY2VdPVwiNTAwXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiAoaW9uSW5wdXQpPVwidGhpcy5FbWl0U2VhcmNoKClcIiBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiUGVzcXVpc2FyLi4uXCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICBAaWYoIW5vTmV3KXtcclxuICAgIDxkaXYgY2xhc3M9XCJwb3J0cmFpdDpiYXNpcy1bY2FsYyg1MCUtMC4yNXJlbSldIGxhbmRzY2FwZTpiYXNpcy0yNCBwb3J0cmFpdDpvcmRlci0yXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIFtyb3V0ZXJMaW5rXT1cIm92ZXJyaWRlTmV3ID8gbnVsbCA6IFtsaW5rXVwiIChjbGljayk9XCJvbk5ldygpXCIgY2xhc3M9XCJzaXplLWZ1bGwgbS0wIHJvdW5kZWQtMnhsIHRleHQtYmFzZVwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiPlxyXG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWRkXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5Ob3ZvPC9pb24tdGV4dD5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,120 @@
1
+ import { Component, effect, EventEmitter, Input, model, Output } from '@angular/core';
2
+ import { firstValueFrom } from "rxjs";
3
+ import { CompileLstTableField } from "../../../classes/comparison/comparison";
4
+ import { ViewFiltros } from "../../../classes/filters/view-filtros";
5
+ import { LongProperty } from '../../../classes/comparison/properties/long-property';
6
+ import * as i0 from "@angular/core";
7
+ //Classe de listagem, implemente carregamento e filtragem de dados
8
+ export class List {
9
+ constructor() {
10
+ /** @optional Filtro a ser aplicado na busca da listagem na API */
11
+ this.preloadFilter = model([]);
12
+ this.lstDados = [];
13
+ this.nested = false;
14
+ this.loading = true;
15
+ this.originalFilters = [];
16
+ /** Filtro précarregado */
17
+ this.frm = new ViewFiltros();
18
+ /** Lista de campos a serem substituídos pelo padrão, armazenado no service enviado como parâmetro */
19
+ this.lstTableFields = [];
20
+ this.WillRefresh = new EventEmitter();
21
+ this.DidRefresh = new EventEmitter();
22
+ effect(() => {
23
+ this.SetFilters();
24
+ });
25
+ }
26
+ async ngOnInit() {
27
+ this.originalFilters = this.frm.filter;
28
+ if (this.lstTableFields.length == 0) {
29
+ this.lstTableFields = this.service.lstTableFields;
30
+ }
31
+ if (!this.service.route) {
32
+ console.warn("[ Warning! ] [ Url is undefined ]");
33
+ }
34
+ if (!this.service.title) {
35
+ console.warn("[ Warning! ] [ titulo is undefined ]");
36
+ }
37
+ //[ Nested element ]
38
+ if (this.elementRef.nativeElement.parentElement) {
39
+ this.nested = this.elementRef.nativeElement.parentElement.tagName.toUpperCase() != "ION-CONTENT";
40
+ }
41
+ else {
42
+ this.nested = true;
43
+ }
44
+ await this.SetFilters();
45
+ if (this.nested) {
46
+ this.Refresh();
47
+ }
48
+ }
49
+ /** Carrega os filtros pré-carregados e os filtros compilados */
50
+ async SetFilters() {
51
+ await this.LoadIdComparison();
52
+ const compiled = CompileLstTableField(this.lstTableFields);
53
+ const preloadFilter = this.preloadFilter();
54
+ // Adiciona os filtros pré-carregados, os filtros compilados e os filtros originais e remove os nulos
55
+ this.frm.filter = [...preloadFilter, ...compiled, ...this.originalFilters].filter(p => p);
56
+ }
57
+ async LoadIdComparison() {
58
+ try {
59
+ const data = (await firstValueFrom(this.activatedRoute.data));
60
+ const id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);
61
+ var index = this.lstTableFields.indexOf(this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName));
62
+ const filter = new LongProperty(data.idPreloaderConfiguration.propertyName).Equals(id);
63
+ filter.value = id;
64
+ filter.disableChange = data.idPreloaderConfiguration.disableChange;
65
+ this.lstTableFields[index].filter = [filter];
66
+ }
67
+ finally {
68
+ return;
69
+ }
70
+ }
71
+ async Refresh(event) {
72
+ this.WillRefresh.emit();
73
+ this.loading = true;
74
+ try {
75
+ await this.Load();
76
+ }
77
+ finally { }
78
+ if (event) {
79
+ event.target.complete();
80
+ }
81
+ this.loading = false;
82
+ this.DidRefresh.emit();
83
+ }
84
+ async Load() {
85
+ var vRetorno;
86
+ try {
87
+ if (this.loadFrom) {
88
+ vRetorno = await firstValueFrom(this.service[this.loadFrom.name](this.frm));
89
+ }
90
+ else {
91
+ vRetorno = await firstValueFrom(this.service.List(this.frm));
92
+ }
93
+ this.lstDados = vRetorno.lstDados;
94
+ this.total = vRetorno.total;
95
+ }
96
+ finally { }
97
+ return;
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: List, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: List, selector: "ng-component", inputs: { service: { classPropertyName: "service", publicName: "service", isSignal: false, isRequired: false, transformFunction: null }, preloadFilter: { classPropertyName: "preloadFilter", publicName: "preloadFilter", isSignal: true, isRequired: false, transformFunction: null }, loadFrom: { classPropertyName: "loadFrom", publicName: "loadFrom", isSignal: false, isRequired: false, transformFunction: null }, frm: { classPropertyName: "frm", publicName: "frm", isSignal: false, isRequired: false, transformFunction: null }, lstTableFields: { classPropertyName: "lstTableFields", publicName: "lstTableFields", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { preloadFilter: "preloadFilterChange", WillRefresh: "WillRefresh", DidRefresh: "DidRefresh" }, ngImport: i0, template: '', isInline: true, styles: [""] }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: List, decorators: [{
103
+ type: Component,
104
+ args: [{ template: '' }]
105
+ }], ctorParameters: () => [], propDecorators: { service: [{
106
+ type: Input
107
+ }], loadFrom: [{
108
+ type: Input
109
+ }], frm: [{
110
+ type: Input
111
+ }], lstTableFields: [{
112
+ type: Input
113
+ }], WillRefresh: [{
114
+ type: Output,
115
+ args: ['WillRefresh']
116
+ }], DidRefresh: [{
117
+ type: Output,
118
+ args: ['DidRefresh']
119
+ }] } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUF1QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSx3Q0FBd0MsQ0FBQztBQUcxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQUVwRixrRUFBa0U7QUFFbEUsTUFBTSxPQUFnQixJQUFJO0lBT3hCO1FBTUEsa0VBQWtFO1FBQ2xFLGtCQUFhLEdBQThCLEtBQUssQ0FBZSxFQUFFLENBQUMsQ0FBQztRQU9uRSxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBRW5CLFdBQU0sR0FBYyxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFhLElBQUksQ0FBQztRQUV6QixvQkFBZSxHQUFpQixFQUFFLENBQUM7UUFFbkMsMkJBQTJCO1FBQ2xCLFFBQUcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU5QyxxR0FBcUc7UUFDNUYsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO1FBK0NwQixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQXhFOUUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUF1QkQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJ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LEtBQUs7Z0JBYUcsUUFBUTtzQkFBaEIsS0FBSztnQkFXRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkErQ2lCLFdBQVc7c0JBQWpDLE1BQU07dUJBQUMsYUFBYTtnQkFDQyxVQUFVO3NCQUEvQixNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIG1vZGVsLCBNb2RlbFNpZ25hbCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVmcmVzaGVyQ3VzdG9tRXZlbnQgfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb21waWxlTHN0VGFibGVGaWVsZCwgQ29tcGFyaXNvbiB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvblwiO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSwgVmlld1JldG9ybm8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFZpZXdGaWx0cm9zIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvZmlsdGVycy92aWV3LWZpbHRyb3NcIjtcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZFwiO1xyXG5pbXBvcnQgeyBSb3V0ZURhdGEgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9yb3V0ZXMvcm91dGUtZGF0YVwiO1xyXG5pbXBvcnQgeyBMb25nUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9sb25nLXByb3BlcnR5JztcclxuXHJcbi8vQ2xhc3NlIGRlIGxpc3RhZ2VtLCBpbXBsZW1lbnRlIGNhcnJlZ2FtZW50byBlIGZpbHRyYWdlbSBkZSBkYWRvc1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnLCBzdHlsZXM6ICcnIH0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0PFQgZXh0ZW5kcyBIdHRwU2VydmljZTxWPiwgViA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwcm90ZWN0ZWQgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XHJcbiAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc2VydmljZTogVDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IFxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5TZXRGaWx0ZXJzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIEBvcHRpb25hbCBGaWx0cm8gYSBzZXIgYXBsaWNhZG8gbmEgYnVzY2EgZGEgbGlzdGFnZW0gbmEgQVBJICovXHJcbiAgcHJlbG9hZEZpbHRlcjogTW9kZWxTaWduYWw8Q29tcGFyaXNvbltdPiA9IG1vZGVsPENvbXBhcmlzb25bXT4oW10pOyBcclxuICBcclxuICAvL1RPRE8gRklYIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83Mzc2MTgwNSBcclxuICAvKiogRW5kLXBvaW50IGRlIGNhcnJlZ2FtZW50byBkZSBkYWRvcy4gRGV2ZSBzZXIgdW1hIGZ1bsOnw6NvIG5vIHNlcnZpY2UgYXBsaWNhZG8gKi9cclxuICBASW5wdXQoKSBsb2FkRnJvbTogKHZpZXc6IFZpZXdGaWx0cm9zKSA9PiBPYnNlcnZhYmxlPFZpZXdSZXRvcm5vPjtcclxuXHJcblxyXG4gIGxzdERhZG9zOiBWW10gPSBbXTtcclxuICB0b3RhbCAgIDogbnVtYmVyO1xyXG4gIG5lc3RlZCAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZyA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIG9yaWdpbmFsRmlsdGVyczogQ29tcGFyaXNvbltdID0gW107XHJcblxyXG4gIC8qKiBGaWx0cm8gcHLDqWNhcnJlZ2FkbyAgKi9cclxuICBASW5wdXQoKSBmcm06IFZpZXdGaWx0cm9zID0gbmV3IFZpZXdGaWx0cm9zKCk7XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBjYW1wb3MgYSBzZXJlbSBzdWJzdGl0dcOtZG9zIHBlbG8gcGFkcsOjbywgYXJtYXplbmFkbyBubyBzZXJ2aWNlIGVudmlhZG8gY29tbyBwYXLDom1ldHJvICovXHJcbiAgQElucHV0KCkgbHN0VGFibGVGaWVsZHM6IFRhYmxlRmllbGRbXSA9IFtdO1xyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMub3JpZ2luYWxGaWx0ZXJzID0gdGhpcy5mcm0uZmlsdGVyO1xyXG5cclxuICAgIGlmKHRoaXMubHN0VGFibGVGaWVsZHMubGVuZ3RoID09IDApe1xyXG4gICAgICB0aGlzLmxzdFRhYmxlRmllbGRzID0gdGhpcy5zZXJ2aWNlLmxzdFRhYmxlRmllbGRzO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuc2VydmljZS5yb3V0ZSl7IGNvbnNvbGUud2FybihcIlsgV2FybmluZyEgXSBbIFVybCBpcyB1bmRlZmluZWQgXVwiKX1cclxuICAgIGlmKCF0aGlzLnNlcnZpY2UudGl0bGUpeyBjb25zb2xlLndhcm4oXCJbIFdhcm5pbmchIF0gWyB0aXR1bG8gaXMgdW5kZWZpbmVkIF1cIil9XHJcbiAgICBcclxuICAgIC8vWyBOZXN0ZWQgZWxlbWVudCBdXHJcbiAgICBpZih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSAhPSBcIklPTi1DT05URU5UXCI7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuU2V0RmlsdGVycygpO1xyXG4gICAgaWYodGhpcy5uZXN0ZWQpeyB0aGlzLlJlZnJlc2goKTsgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENhcnJlZ2Egb3MgZmlsdHJvcyBwcsOpLWNhcnJlZ2Fkb3MgZSBvcyBmaWx0cm9zIGNvbXBpbGFkb3MgKi9cclxuICBwcm90ZWN0ZWQgYXN5bmMgU2V0RmlsdGVycygpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgYXdhaXQgdGhpcy5Mb2FkSWRDb21wYXJpc29uKCk7XHJcbiAgICBjb25zdCBjb21waWxlZCAgICAgID0gQ29tcGlsZUxzdFRhYmxlRmllbGQodGhpcy5sc3RUYWJsZUZpZWxkcyk7XHJcbiAgICBjb25zdCBwcmVsb2FkRmlsdGVyID0gdGhpcy5wcmVsb2FkRmlsdGVyKCk7XHJcbiAgICAvLyBBZGljaW9uYSBvcyBmaWx0cm9zIHByw6ktY2FycmVnYWRvcywgb3MgZmlsdHJvcyBjb21waWxhZG9zIGUgb3MgZmlsdHJvcyBvcmlnaW5haXMgZSByZW1vdmUgb3MgbnVsb3NcclxuICAgIHRoaXMuZnJtLmZpbHRlciAgICAgPSBbLi4ucHJlbG9hZEZpbHRlciwgLi4uY29tcGlsZWQsIC4uLnRoaXMub3JpZ2luYWxGaWx0ZXJzXS5maWx0ZXIocCA9PiBwKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIExvYWRJZENvbXBhcmlzb24oKTogUHJvbWlzZTx2b2lkPntcclxuICAgIHRyeXtcclxuICAgICAgY29uc3QgZGF0YTogUm91dGVEYXRhID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YSkpIGFzIFJvdXRlRGF0YTtcclxuXHJcbiAgICAgIGNvbnN0IGlkICAgPSB0aGlzLmdlbmVyaWNTZXJ2aWNlLkdldElkKHRoaXMuYWN0aXZhdGVkUm91dGUsIGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnJvdXRlRGVwdGgpO1xyXG4gICAgICB2YXIgaW5kZXg6IG51bWJlciA9IHRoaXMubHN0VGFibGVGaWVsZHMuaW5kZXhPZih0aGlzLmxzdFRhYmxlRmllbGRzLmZpbmQocCA9PiBwLmluZGV4ID09IGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZSkpO1xyXG4gICAgICBjb25zdCBmaWx0ZXI6IENvbXBhcmlzb24gPSBuZXcgTG9uZ1Byb3BlcnR5KGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZSkuRXF1YWxzKGlkKTtcclxuXHJcbiAgICAgIGZpbHRlci52YWx1ZSA9IGlkO1xyXG4gICAgICBmaWx0ZXIuZGlzYWJsZUNoYW5nZSA9IGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLmRpc2FibGVDaGFuZ2U7XHJcbiAgICAgIHRoaXMubHN0VGFibGVGaWVsZHNbaW5kZXhdLmZpbHRlciA9IFtmaWx0ZXJdO1xyXG4gICAgfWZpbmFsbHl7IFxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCdXaWxsUmVmcmVzaCcpIFdpbGxSZWZyZXNoOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgnRGlkUmVmcmVzaCcpIERpZFJlZnJlc2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgYXN5bmMgUmVmcmVzaChldmVudD86IFJlZnJlc2hlckN1c3RvbUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLldpbGxSZWZyZXNoLmVtaXQoKTtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0cnl7XHJcbiAgICAgIGF3YWl0IHRoaXMuTG9hZCgpO1xyXG4gICAgfVxyXG4gICAgZmluYWxseXsgfVxyXG4gICAgXHJcbiAgICBpZihldmVudCl7IGV2ZW50LnRhcmdldC5jb21wbGV0ZSgpOyB9XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuRGlkUmVmcmVzaC5lbWl0KCk7XHJcbiAgfVxyXG4gIFxyXG4gIGFzeW5jIExvYWQoKTogUHJvbWlzZTx2b2lkPntcclxuICAgIHZhciB2UmV0b3JubzogVmlld1JldG9ybm87XHJcblxyXG4gICAgdHJ5e1xyXG4gICAgICBpZih0aGlzLmxvYWRGcm9tKXtcclxuICAgICAgICB2UmV0b3JubyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZVt0aGlzLmxvYWRGcm9tLm5hbWVdKHRoaXMuZnJtKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2UmV0b3JubyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZS5MaXN0KHRoaXMuZnJtKSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sc3REYWRvcyA9IHZSZXRvcm5vLmxzdERhZG9zOyBcclxuICAgICAgdGhpcy50b3RhbCAgICA9IHZSZXRvcm5vLnRvdGFsOyBcclxuICAgIH0gZmluYWxseXsgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,123 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { GenericService } from '../../../services/generic.service';
3
+ import { Utils } from '../../../services/utils.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/generic.service";
6
+ import * as i2 from "@ionic/angular";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/forms";
9
+ /** Componente de paginação padrão */
10
+ export class DefaultPaginationComponent {
11
+ /** Valor total de dados */
12
+ set _total(value) {
13
+ this.total = value;
14
+ this.TotalPages = this.GetTotalPages();
15
+ this.lstPages = this.GetlstPages();
16
+ }
17
+ ;
18
+ /** Limite de páginas */
19
+ set _limit(value) {
20
+ this.limit = value;
21
+ this.TotalPages = this.GetTotalPages();
22
+ this.lstPages = this.GetlstPages();
23
+ }
24
+ ;
25
+ constructor(genericService) {
26
+ this.genericService = genericService;
27
+ this.total = 0;
28
+ this.limit = 0;
29
+ this.pageChange = new EventEmitter();
30
+ /** Evento emitido na mudança de valores (Pagina) */
31
+ this.changeEmitter = new EventEmitter();
32
+ this.pop_id = "popover-id-" + Utils.GenerateGUID();
33
+ this.lstPages = [];
34
+ this.TotalPages = 0;
35
+ }
36
+ ngOnInit() { }
37
+ GetlstPages() {
38
+ if (!this.TotalPages) {
39
+ return [];
40
+ }
41
+ var startIndex;
42
+ var start = [];
43
+ startIndex = this.page - 1;
44
+ var _ = [];
45
+ for (let i = this.TotalPages - 4; i <= this.TotalPages; i++) {
46
+ if (i > 0) {
47
+ _.push(i);
48
+ }
49
+ }
50
+ for (let i = startIndex; i <= this.TotalPages && i < startIndex + 5; i++) {
51
+ if (i > 0) {
52
+ start.push(i);
53
+ }
54
+ }
55
+ if (startIndex == 0 && this.TotalPages >= 5) {
56
+ start.push(5);
57
+ }
58
+ if (start[0] > _[0]) {
59
+ return _;
60
+ }
61
+ return start;
62
+ }
63
+ GetTotalPages() {
64
+ return this.limit ? Math.ceil(this.total / this.limit) : Math.ceil(this.total / this.total);
65
+ }
66
+ PageAdd() {
67
+ if (this.page + 1 > this.TotalPages) {
68
+ return;
69
+ }
70
+ this.SetPage(this.page + 1);
71
+ }
72
+ PageSub() {
73
+ if (this.page - 1 < 1) {
74
+ return;
75
+ }
76
+ this.SetPage(this.page - 1);
77
+ }
78
+ SetPage(value) {
79
+ if (value != this.page) {
80
+ this.pageChange.emit(value);
81
+ this.EmitChange();
82
+ setTimeout(() => {
83
+ this.TotalPages = this.GetTotalPages();
84
+ this.lstPages = this.GetlstPages();
85
+ }, 100);
86
+ }
87
+ }
88
+ SetPageManual() {
89
+ if (this._page && this._page > 0 && this._page <= this.TotalPages) {
90
+ this.SetPage(this._page);
91
+ }
92
+ else {
93
+ this.genericService.PresentToast("Página inválida");
94
+ }
95
+ }
96
+ EmitChange() {
97
+ this.changeEmitter.emit();
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPaginationComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DefaultPaginationComponent, selector: "default-pagination", inputs: { _total: ["total", "_total"], _limit: ["limit", "_limit"], length: "length", loading: "loading", page: "page" }, outputs: { pageChange: "pageChange", changeEmitter: "change" }, ngImport: i0, template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl p-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando &nbsp;\r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> &nbsp;\r\n de \r\n @if (total != null) {\r\n <b>&nbsp; {{total}} &nbsp;</b> itens\r\n }\r\n @else{\r\n <b>&nbsp; - &nbsp; </b> itens\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n </div>\r\n</div>", styles: ["#pagination{background-color:color-mix(in srgb,var(--ion-color-dark) 10%,var(--ion-color-light));color:var(--ion-color-step-700)}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i2.NumericValueAccessor, selector: "ion-input[type=number],ion-input-otp:not([type=text]),ion-range" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPaginationComponent, decorators: [{
103
+ type: Component,
104
+ args: [{ selector: 'default-pagination', template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl p-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando &nbsp;\r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> &nbsp;\r\n de \r\n @if (total != null) {\r\n <b>&nbsp; {{total}} &nbsp;</b> itens\r\n }\r\n @else{\r\n <b>&nbsp; - &nbsp; </b> itens\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n </div>\r\n</div>", styles: ["#pagination{background-color:color-mix(in srgb,var(--ion-color-dark) 10%,var(--ion-color-light));color:var(--ion-color-step-700)}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"] }]
105
+ }], ctorParameters: () => [{ type: i1.GenericService }], propDecorators: { _total: [{
106
+ type: Input,
107
+ args: ['total']
108
+ }], _limit: [{
109
+ type: Input,
110
+ args: ['limit']
111
+ }], length: [{
112
+ type: Input
113
+ }], loading: [{
114
+ type: Input
115
+ }], page: [{
116
+ type: Input
117
+ }], pageChange: [{
118
+ type: Output
119
+ }], changeEmitter: [{
120
+ type: Output,
121
+ args: ['change']
122
+ }] } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1wYWdpbmF0aW9uL2RlZmF1bHQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQUV4RCxzQ0FBc0M7QUFNdEMsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQywyQkFBMkI7SUFDM0IsSUFBb0IsTUFBTSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUFBLENBQUM7SUFDRix3QkFBd0I7SUFDeEIsSUFBb0IsTUFBTSxDQUFDLEtBQW9CO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFBQSxDQUFDO0lB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RXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbi8qKiBDb21wb25lbnRlIGRlIHBhZ2luYcOnw6NvIHBhZHLDo28gICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVmYXVsdC1wYWdpbmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdpbmF0aW9uQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICB0b3RhbDogbnVtYmVyID0gMDtcclxuICBsaW1pdDogbnVtYmVyIHwgbnVsbCA9IDA7XHJcbiAgLyoqIFZhbG9yIHRvdGFsIGRlIGRhZG9zICovXHJcbiAgQElucHV0KCd0b3RhbCcpIHNldCBfdG90YWwodmFsdWU6IG51bWJlcil7ICBcclxuICAgIHRoaXMudG90YWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuVG90YWxQYWdlcyA9IHRoaXMuR2V0VG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5sc3RQYWdlcyA9IHRoaXMuR2V0bHN0UGFnZXMoKTtcclxuICB9O1xyXG4gIC8qKiBMaW1pdGUgZGUgcMOhZ2luYXMgKi9cclxuICBASW5wdXQoJ2xpbWl0Jykgc2V0IF9saW1pdCh2YWx1ZTogbnVtYmVyIHwgbnVsbCl7IFxyXG4gICAgdGhpcy5saW1pdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5Ub3RhbFBhZ2VzID0gdGhpcy5HZXRUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmxzdFBhZ2VzID0gdGhpcy5HZXRsc3RQYWdlcygpO1xyXG4gIH07XHJcblxyXG4gIC8qKiBRdWFudGlkYWRlIGRlIGRhZG9zIGVtIHRlbGEgKi9cclxuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIFxyXG4gIC8qKiBQYWdpbmEgYXR1YWwgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgXHJcbiAgLyoqIEV2ZW50byBlbWl0aWRvIG5hIG11ZGFuw6dhIGRlIHZhbG9yZXMgKFBhZ2luYSkgKi9cclxuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuICBwb3BfaWQ6IHN0cmluZyA9IFwicG9wb3Zlci1pZC1cIiArIFV0aWxzLkdlbmVyYXRlR1VJRCgpO1xyXG5cclxuICBHZXRsc3RQYWdlcygpOiBudW1iZXJbXSB7XHJcbiAgICBpZighdGhpcy5Ub3RhbFBhZ2VzKXsgcmV0dXJuIFtdOyB9XHJcbiAgICB2YXIgc3RhcnRJbmRleDogbnVtYmVyO1xyXG4gICAgdmFyIHN0YXJ0OiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAgIHN0YXJ0SW5kZXggPSB0aGlzLnBhZ2UgLSAxO1xyXG5cclxuICAgIHZhciBfOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgZm9yKGxldCBpID0gdGhpcy5Ub3RhbFBhZ2VzIC0gNDsgaSA8PSB0aGlzLlRvdGFsUGFnZXMgOyBpKyspe1xyXG4gICAgICBpZihpID4gMCl7XHJcbiAgICAgICAgXy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yKGxldCBpID0gc3RhcnRJbmRleDsgaSA8PSB0aGlzLlRvdGFsUGFnZXMgJiYgaSA8IHN0YXJ0SW5kZXggKyA1OyBpKyspe1xyXG4gICAgICBpZihpID4gMCl7XHJcbiAgICAgICAgc3RhcnQucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYoc3RhcnRJbmRleCA9PSAwICYmIHRoaXMuVG90YWxQYWdlcyA+PSA1KXtcclxuICAgICAgc3RhcnQucHVzaCg1KTtcclxuICAgIH1cclxuXHJcbiAgICBpZihzdGFydFswXSA+IF9bMF0pe1xyXG4gICAgICByZXR1cm4gXztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RhcnQ7XHJcbiAgfVxyXG5cclxuICBHZXRUb3RhbFBhZ2VzKCk6IG51bWJlcntcclxuICAgIHJldHVybiB0aGlzLmxpbWl0ID8gTWF0aC5jZWlsKHRoaXMudG90YWwgLyB0aGlzLmxpbWl0KSA6IE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy50b3RhbClcclxuICB9XHJcblxyXG4gIGxzdFBhZ2VzICA6IG51bWJlcltdID0gW107XHJcbiAgVG90YWxQYWdlczogbnVtYmVyID0gMDtcclxuXHJcbiAgUGFnZUFkZCgpOiB2b2lke1xyXG4gICAgaWYodGhpcy5wYWdlICsgMSA+IHRoaXMuVG90YWxQYWdlcyl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5TZXRQYWdlKHRoaXMucGFnZSArIDEpO1xyXG4gIH1cclxuICBcclxuICBQYWdlU3ViKCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLnBhZ2UgLSAxIDwgMSl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5TZXRQYWdlKHRoaXMucGFnZSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgU2V0UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZHtcclxuICAgIGlmKHZhbHVlICE9IHRoaXMucGFnZSl7XHJcbiAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgdGhpcy5FbWl0Q2hhbmdlKClcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuVG90YWxQYWdlcyA9IHRoaXMuR2V0VG90YWxQYWdlcygpO1xyXG4gICAgICAgIHRoaXMubHN0UGFnZXMgPSB0aGlzLkdldGxzdFBhZ2VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfcGFnZTogbnVtYmVyO1xyXG4gIFNldFBhZ2VNYW51YWwoKXtcclxuICAgIGlmKHRoaXMuX3BhZ2UgJiYgdGhpcy5fcGFnZSA+IDAgJiYgdGhpcy5fcGFnZSA8PSB0aGlzLlRvdGFsUGFnZXMpe1xyXG4gICAgICB0aGlzLlNldFBhZ2UodGhpcy5fcGFnZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJQw6FnaW5hIGludsOhbGlkYVwiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgRW1pdENoYW5nZSgpOiB2b2lke1xyXG4gICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcbn0iLCI8ZGl2IGlkPVwicGFnaW5hdGlvblwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1iLTJ4bCBwLTIgcG9ydHJhaXQ6ZmxleC1jb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBmbGV4IHBvcnRyYWl0Omp1c3RpZnktY2VudGVyXCI+XHJcbiAgICA8aW9uLXNwaW5uZXIgW2hpZGRlbl09XCIhKGxvYWRpbmcgJiYgbHN0UGFnZXMubGVuZ3RoID09IDApXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDxpb24tdGV4dCBbaGlkZGVuXT1cImxvYWRpbmcgJiYgbHN0UGFnZXMubGVuZ3RoID09IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICBNb3N0cmFuZG8gJm5ic3A7XHJcbiAgICAgICAgPGlvbi1za2VsZXRvbi10ZXh0ICpuZ0lmPVwibG9hZGluZ1wiIFthbmltYXRlZF09XCJ0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMmNoXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cclxuICAgICAgICA8YiAqbmdJZj1cIiFsb2FkaW5nXCI+e3tsaW1pdCAqIHBhZ2UgLSBsaW1pdCArIGxlbmd0aH19PC9iPiAgJm5ic3A7XHJcbiAgICAgICAgZGUgXHJcbiAgICAgICAgQGlmICh0b3RhbCAhPSBudWxsKSB7XHJcbiAgICAgICAgICA8Yj4mbmJzcDsge3t0b3RhbH19ICZuYnNwOzwvYj4gaXRlbnNcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2V7XHJcbiAgICAgICAgICA8Yj4mbmJzcDsgLSAmbmJzcDsgPC9iPiBpdGVuc1xyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi10ZXh0PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCBmbGV4IHBvcnRyYWl0Omp1c3RpZnktY2VudGVyXCIgKm5nSWY9XCJ0b3RhbCAhPSBudWxsXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJQYWdlU3ViKClcIj5cclxuICAgICAgPGlvbi1pY29uIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0yMCc6IHBhZ2UgPT0gMX1cIiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkZWZhdWx0IHRyYW5zaXRpb25cIj48L2lvbi1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGlvbi1zcGlubmVyICpuZ0lmPVwibG9hZGluZyAmJiBsc3RQYWdlcy5sZW5ndGggPT0gMFwiPjwvaW9uLXNwaW5uZXI+XHJcblxyXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwicGFnZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxzdFBhZ2VzXCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQnIDogcGFnZSA9PSBpdGVtIH1cIiAoY2xpY2spPVwiU2V0UGFnZShpdGVtKVwiPiB7e2l0ZW19fSA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJQYWdlQWRkKClcIj5cclxuICAgICAgPGlvbi1pY29uIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0yMCc6IHBhZ2UgPT0gVG90YWxQYWdlcyB9XCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZFwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZGVmYXVsdCB0cmFuc2l0aW9uXCI+PC9pb24taWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIEBpZiAoVG90YWxQYWdlcyA+IDUpIHtcclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwicGFnZVwiIFtpZF09XCJwb3BfaWRcIj48aW9uLWljb24gbmFtZT1cInNlYXJjaFwiPjwvaW9uLWljb24+PC9idXR0b24+XHJcbiAgICAgIDxpb24tcG9wb3ZlciBbdHJpZ2dlcl09XCJwb3BfaWRcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8aW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMCBwbC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTggcGItMlwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pbnB1dCBjbGFzcz1cIm51bWJlci1jbGFzc1wiIFsobmdNb2RlbCldPVwiX3BhZ2VcIiB0eXBlPVwiTnVtYmVyXCIgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCIgbGFiZWw9XCJQw6FnaW5hIFtNYXguIHt7VG90YWxQYWdlc319XVwiPjwvaW9uLWlucHV0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGNsYXNzPVwic2l6ZS1mdWxsXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIlNldFBhZ2VNYW51YWwoKVwiIHN0eWxlPVwiLS1ib3JkZXItcmFkaXVzOiAwcmVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cInctNCBhc3BlY3Qtc3F1YXJlXCIgc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvaW9uLXBvcG92ZXI+XHJcbiAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19