@sapphire-ion/framework 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
  3. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
  4. package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
  5. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
  6. package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
  7. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
  8. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
  9. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
  10. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
  11. package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
  12. package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
  13. package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
  14. package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
  15. package/esm2022/lib/classes/credentials.mjs +2 -0
  16. package/esm2022/lib/classes/environment.mjs +32 -0
  17. package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
  18. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
  19. package/esm2022/lib/classes/inputs/table-field.mjs +63 -0
  20. package/esm2022/lib/classes/page-option.mjs +2 -0
  21. package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
  22. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
  23. package/esm2022/lib/classes/routes/route-data.mjs +9 -0
  24. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
  25. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
  27. package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
  28. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
  29. package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
  30. package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
  31. package/esm2022/lib/components/default/default-list/default-list.component.mjs +94 -0
  32. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
  33. package/esm2022/lib/components/default/default-list/list.mjs +110 -0
  34. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
  35. package/esm2022/lib/components/default/default-table/default-table.component.mjs +206 -0
  36. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +182 -0
  37. package/esm2022/lib/components/default/default-view/abstract-view.mjs +18 -0
  38. package/esm2022/lib/components/default/default-view/default-view.component.mjs +51 -0
  39. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +72 -0
  40. package/esm2022/lib/components/default/default-view/view.mjs +170 -0
  41. package/esm2022/lib/components/default/default.module.mjs +87 -0
  42. package/esm2022/lib/components/default-page/default.page.mjs +73 -0
  43. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
  44. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
  45. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
  46. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
  47. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +49 -0
  48. package/esm2022/lib/components/drawer/drawer.component.mjs +117 -0
  49. package/esm2022/lib/components/drawer/menu.mjs +15 -0
  50. package/esm2022/lib/components/filter/filter.component.mjs +124 -0
  51. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
  52. package/esm2022/lib/components/image/image.component.mjs +91 -0
  53. package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
  54. package/esm2022/lib/components/inputs/custom-input.mjs +77 -0
  55. package/esm2022/lib/components/inputs/custom-signal-input.mjs +74 -0
  56. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +43 -0
  57. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
  58. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +487 -0
  59. package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
  60. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +93 -0
  61. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
  62. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +119 -0
  63. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +8 -0
  64. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +269 -0
  65. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +45 -0
  66. package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
  67. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +91 -0
  68. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +128 -0
  69. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +11 -0
  70. package/esm2022/lib/components/inputs/input-loading/input-loading.component.mjs +16 -0
  71. package/esm2022/lib/components/inputs/input-provider-factory.mjs +15 -0
  72. package/esm2022/lib/components/inputs/input-select/ISelect.mjs +11 -0
  73. package/esm2022/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.mjs +42 -0
  74. package/esm2022/lib/components/inputs/input-select/input-select-option/input-select-option.component.mjs +46 -0
  75. package/esm2022/lib/components/inputs/input-select/input-select-template.directive.mjs +16 -0
  76. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +322 -0
  77. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +164 -0
  78. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +50 -0
  79. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +18 -0
  80. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +47 -0
  81. package/esm2022/lib/components/inputs/input-type.mjs +18 -0
  82. package/esm2022/lib/components/inputs/input-validators.mjs +90 -0
  83. package/esm2022/lib/components/inputs/inputs.module.mjs +101 -0
  84. package/esm2022/lib/components/loading/loading.component.mjs +34 -0
  85. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
  86. package/esm2022/lib/components/login/login.component.mjs +93 -0
  87. package/esm2022/lib/components/main-content/main-content.component.mjs +62 -0
  88. package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
  89. package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
  90. package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
  91. package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
  92. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
  93. package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
  94. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
  95. package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
  96. package/esm2022/lib/core.module.mjs +29 -0
  97. package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
  98. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  99. package/esm2022/lib/guards/error.interceptor.mjs +106 -0
  100. package/esm2022/lib/guards/token.interceptor.mjs +25 -0
  101. package/esm2022/lib/index.mjs +172 -0
  102. package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
  103. package/esm2022/lib/services/auth.service.mjs +149 -0
  104. package/esm2022/lib/services/environment.service.mjs +26 -0
  105. package/esm2022/lib/services/generics.service.mjs +84 -0
  106. package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
  107. package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
  108. package/esm2022/lib/services/usuario.service.mjs +49 -0
  109. package/esm2022/lib/services/utils.service.mjs +149 -0
  110. package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
  111. package/esm2022/lib/services/web/http.ativo.service.mjs +55 -0
  112. package/esm2022/lib/services/web/http.service.mjs +175 -0
  113. package/esm2022/lib/services/web/storage.service.mjs +115 -0
  114. package/esm2022/public-api.mjs +5 -0
  115. package/esm2022/sapphire-ion-framework.mjs +5 -0
  116. package/fesm2022/sapphire-ion-framework.mjs +6080 -0
  117. package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
  118. package/index.d.ts +5 -0
  119. package/lib/classes/comparison/comparison-operator.d.ts +9 -0
  120. package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
  121. package/lib/classes/comparison/comparison.d.ts +25 -0
  122. package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
  123. package/lib/classes/comparison/properties/date-property.d.ts +11 -0
  124. package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
  125. package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
  126. package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
  127. package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
  128. package/lib/classes/comparison/properties/int-property.d.ts +11 -0
  129. package/lib/classes/comparison/properties/long-property.d.ts +11 -0
  130. package/lib/classes/comparison/properties/string-property.d.ts +7 -0
  131. package/lib/classes/comparison/properties/time-property.d.ts +11 -0
  132. package/lib/classes/credentials.d.ts +5 -0
  133. package/lib/classes/environment.d.ts +13 -0
  134. package/lib/classes/filters/view-filtros.d.ts +10 -0
  135. package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
  136. package/lib/classes/inputs/table-field.d.ts +19 -0
  137. package/lib/classes/page-option.d.ts +7 -0
  138. package/lib/classes/routes/default-routing-factory.d.ts +8 -0
  139. package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
  140. package/lib/classes/routes/route-data.d.ts +5 -0
  141. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
  142. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
  143. package/lib/components/carousel/carousel.component.d.ts +32 -0
  144. package/lib/components/carousel/carousel.module.d.ts +12 -0
  145. package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
  146. package/lib/components/content-block/content-block.component.d.ts +15 -0
  147. package/lib/components/default/default-list/abstract-list.d.ts +21 -0
  148. package/lib/components/default/default-list/default-list.component.d.ts +42 -0
  149. package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
  150. package/lib/components/default/default-list/list.d.ts +37 -0
  151. package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
  152. package/lib/components/default/default-table/default-table.component.d.ts +71 -0
  153. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +20 -0
  154. package/lib/components/default/default-view/abstract-view.d.ts +16 -0
  155. package/lib/components/default/default-view/default-view.component.d.ts +26 -0
  156. package/lib/components/default/default-view/header-view/header-view.component.d.ts +25 -0
  157. package/lib/components/default/default-view/view.d.ts +55 -0
  158. package/lib/components/default/default.module.d.ts +28 -0
  159. package/lib/components/default-page/default.page.d.ts +35 -0
  160. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
  161. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
  162. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
  163. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
  164. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
  165. package/lib/components/drawer/drawer.component.d.ts +23 -0
  166. package/lib/components/drawer/menu.d.ts +9 -0
  167. package/lib/components/filter/filter.component.d.ts +29 -0
  168. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
  169. package/lib/components/image/image.component.d.ts +23 -0
  170. package/lib/components/info-popover/info-popover.component.d.ts +15 -0
  171. package/lib/components/inputs/custom-input.d.ts +36 -0
  172. package/lib/components/inputs/custom-signal-input.d.ts +38 -0
  173. package/lib/components/inputs/input-bool/input-bool.component.d.ts +19 -0
  174. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
  175. package/lib/components/inputs/input-color/input-color.component.d.ts +80 -0
  176. package/lib/components/inputs/input-configuration.d.ts +8 -0
  177. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +24 -0
  178. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
  179. package/lib/components/inputs/input-date/input-date.component.d.ts +30 -0
  180. package/lib/components/inputs/input-date/input-date.configuration.d.ts +7 -0
  181. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +41 -0
  182. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +25 -0
  183. package/lib/components/inputs/input-default-configurations.d.ts +13 -0
  184. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +36 -0
  185. package/lib/components/inputs/input-file/input-file.component.d.ts +39 -0
  186. package/lib/components/inputs/input-file/input-file.configuration.d.ts +11 -0
  187. package/lib/components/inputs/input-loading/input-loading.component.d.ts +7 -0
  188. package/lib/components/inputs/input-provider-factory.d.ts +4 -0
  189. package/lib/components/inputs/input-select/ISelect.d.ts +21 -0
  190. package/lib/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.d.ts +18 -0
  191. package/lib/components/inputs/input-select/input-select-option/input-select-option.component.d.ts +24 -0
  192. package/lib/components/inputs/input-select/input-select-template.directive.d.ts +8 -0
  193. package/lib/components/inputs/input-select/input-select.component.d.ts +66 -0
  194. package/lib/components/inputs/input-select/input.select.configuration.d.ts +87 -0
  195. package/lib/components/inputs/input-string/input-string.component.d.ts +19 -0
  196. package/lib/components/inputs/input-string/input-string.configuration.d.ts +14 -0
  197. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +18 -0
  198. package/lib/components/inputs/input-type.d.ts +16 -0
  199. package/lib/components/inputs/input-validators.d.ts +19 -0
  200. package/lib/components/inputs/inputs.module.d.ts +28 -0
  201. package/lib/components/loading/loading.component.d.ts +18 -0
  202. package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
  203. package/lib/components/login/login.component.d.ts +28 -0
  204. package/lib/components/main-content/main-content.component.d.ts +17 -0
  205. package/lib/components/stepper/step/step.component.d.ts +15 -0
  206. package/lib/components/stepper/stepper.component.d.ts +17 -0
  207. package/lib/components/stepper/stepper.module.d.ts +10 -0
  208. package/lib/components/tabs/tab/tab.component.d.ts +19 -0
  209. package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
  210. package/lib/components/tabs/tabs.module.d.ts +12 -0
  211. package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
  212. package/lib/components/tooltip/tooltip.component.d.ts +7 -0
  213. package/lib/core.module.d.ts +11 -0
  214. package/lib/directives/ng-var.directive.d.ts +12 -0
  215. package/lib/guards/auth.guard.d.ts +11 -0
  216. package/lib/guards/error.interceptor.d.ts +32 -0
  217. package/lib/guards/token.interceptor.d.ts +11 -0
  218. package/lib/index.d.ts +108 -0
  219. package/lib/pipes/secure.pipe.d.ts +15 -0
  220. package/lib/services/auth.service.d.ts +47 -0
  221. package/lib/services/environment.service.d.ts +10 -0
  222. package/lib/services/generics.service.d.ts +22 -0
  223. package/lib/services/route/route.cache.service.d.ts +7 -0
  224. package/lib/services/route/route.provider.service.d.ts +13 -0
  225. package/lib/services/usuario.service.d.ts +21 -0
  226. package/lib/services/utils.service.d.ts +36 -0
  227. package/lib/services/web/api-url-provider.service.d.ts +13 -0
  228. package/lib/services/web/http.ativo.service.d.ts +31 -0
  229. package/lib/services/web/http.service.d.ts +51 -0
  230. package/lib/services/web/storage.service.d.ts +25 -0
  231. package/package.json +41 -0
  232. package/public-api.d.ts +1 -0
  233. package/themes/compiled-styles.scss +2291 -0
  234. package/themes/components/_inputs_new/input-string/input-string.component.scss +0 -0
  235. package/themes/components/_inputs_new/inputs.scss +15 -0
  236. package/themes/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  237. package/themes/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  238. package/themes/components/carousel/carousel.component.scss +9 -0
  239. package/themes/components/content-block/content-block.component.scss +0 -0
  240. package/themes/components/default/default-list/default-list.component.scss +0 -0
  241. package/themes/components/default/default-list/header-list/header-list.component.scss +0 -0
  242. package/themes/components/default/default-pagination/default-pagination.component.scss +22 -0
  243. package/themes/components/default/default-table/default-table.component.scss +33 -0
  244. package/themes/components/default/default-table/th-filter/th-filter.component.scss +24 -0
  245. package/themes/components/default/default-view/default-view.component.scss +5 -0
  246. package/themes/components/default/default-view/header-view/header-view.component.scss +7 -0
  247. package/themes/components/default-page/default.page.scss +4 -0
  248. package/themes/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +9 -0
  249. package/themes/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  250. package/themes/components/drawer/drawer-group/drawer-group.component.scss +22 -0
  251. package/themes/components/drawer/drawer.component.scss +46 -0
  252. package/themes/components/filter/filter.component.scss +0 -0
  253. package/themes/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +19 -0
  254. package/themes/components/image/image.component.scss +0 -0
  255. package/themes/components/info-popover/info-popover.component.scss +3 -0
  256. package/themes/components/inputs/input-bool/input-bool.component.scss +14 -0
  257. package/themes/components/inputs/input-color/input-color.component.scss +48 -0
  258. package/themes/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
  259. package/themes/components/inputs/input-date/input-date.component.scss +41 -0
  260. package/themes/components/inputs/input-decimal/input-decimal.component.scss +44 -0
  261. package/themes/components/inputs/input-file/download-button/download-button.component.scss +3 -0
  262. package/themes/components/inputs/input-file/input-file.component.scss +3 -0
  263. package/themes/components/inputs/input-loading/input-loading.component.scss +0 -0
  264. package/themes/components/inputs/input-select/input-select-internal-option/input-select-internal-option.component.scss +0 -0
  265. package/themes/components/inputs/input-select/input-select-option/input-select-option.component.scss +0 -0
  266. package/themes/components/inputs/input-select/input-select.component.scss +28 -0
  267. package/themes/components/inputs/input-string/input-string.component.scss +0 -0
  268. package/themes/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  269. package/themes/components/inputs/inputs.scss +67 -0
  270. package/themes/components/loading/loading.component.scss +0 -0
  271. package/themes/components/login/login-admin/login-admin.component.scss +3 -0
  272. package/themes/components/login/login.component.scss +40 -0
  273. package/themes/components/main-content/main-content.component.scss +9 -0
  274. package/themes/components/stepper/step/step.component.scss +48 -0
  275. package/themes/components/stepper/stepper.component.scss +0 -0
  276. package/themes/components/tabs/tab/tab.component.scss +0 -0
  277. package/themes/components/tabs/tabs/tabs.component.scss +23 -0
  278. package/themes/components/text-tooltip/text-tooltip.component.scss +0 -0
  279. package/themes/components/tooltip/tooltip.component.scss +23 -0
  280. package/themes/styles/components.scss +52 -0
  281. package/themes/styles/core.styles.scss +409 -0
  282. package/themes/styles/ionic/ion-action-sheet.scss +8 -0
  283. package/themes/styles/ionic/ion-alert.scss +9 -0
  284. package/themes/styles/ionic/ion-button.scss +3 -0
  285. package/themes/styles/ionic/ion-card.scss +3 -0
  286. package/themes/styles/ionic/ion-content.scss +3 -0
  287. package/themes/styles/ionic/ion-datetime.scss +6 -0
  288. package/themes/styles/ionic/ion-item.scss +10 -0
  289. package/themes/styles/ionic/ion-list.scss +4 -0
  290. package/themes/styles/ionic/ion-modal.scss +8 -0
  291. package/themes/styles/ionic/ion-popover.scss +31 -0
  292. package/themes/styles/ionic/ion-progress-bar.scss +3 -0
  293. package/themes/styles/ionic/ion-searchbar.scss +4 -0
  294. package/themes/styles/ionic/ion-toast.scss +14 -0
  295. package/themes/styles/ionic.scss +13 -0
  296. package/themes/styles/login-default.scss +87 -0
  297. package/themes/styles/mixins.scss +467 -0
  298. package/themes/styles/styles.scss +1 -0
  299. package/themes/styles/translucid.scss +21 -0
@@ -0,0 +1,206 @@
1
+ import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { formatNumber } from '@angular/common';
4
+ import { CompileLstTableField } from '../../../classes/comparison/comparison';
5
+ import { InputSelectConfiguration } from '../../../components/inputs/input-select/input.select.configuration';
6
+ import { StorageService } from '../../../services/web/storage.service';
7
+ import { InputType } from '../../inputs/input-type';
8
+ import { Utils } from '../../../services/utils.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../../services/web/storage.service";
11
+ import * as i2 from "@angular/router";
12
+ import * as i3 from "@ionic/angular";
13
+ import * as i4 from "@angular/common";
14
+ import * as i5 from "../../inputs/input-file/download-button/download-button.component";
15
+ import * as i6 from "@angular/forms";
16
+ import * as i7 from "../../loading/loading.component";
17
+ import * as i8 from "../default-pagination/default-pagination.component";
18
+ import * as i9 from "./th-filter/th-filter.component";
19
+ /** Componente de tabela padrão */
20
+ export class DefaultTableComponent {
21
+ constructor(storageService, activatedRoute, router) {
22
+ this.storageService = storageService;
23
+ this.activatedRoute = activatedRoute;
24
+ this.router = router;
25
+ this.limitChange = new EventEmitter();
26
+ this.pageChange = new EventEmitter();
27
+ this.orderByPropertyChange = new EventEmitter();
28
+ this.ascendingChange = new EventEmitter();
29
+ //#endregion [ Pagination ]
30
+ /** Filtros (usando two way data binding) */
31
+ this.filter = [];
32
+ this.filterChange = new EventEmitter();
33
+ /** Evento emitido quando um dos dados é ativado. Emite o id do dado */
34
+ this.ativarEmitter = new EventEmitter;
35
+ this.refreshEmitter = new EventEmitter();
36
+ /** Lista de dados a ser exibidos */
37
+ this.items = [];
38
+ /** Lista de campos a ser exibidos */
39
+ this.lstTableFields = [];
40
+ /** Remove os filtros no cabeçalho da tabela */
41
+ this.noFilters = false;
42
+ /** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro */
43
+ this.columnClass = null;
44
+ /** Aplica style de CSS na coluna de acirdo com o retorno da função passada como parametro */
45
+ this.columnStyle = null;
46
+ /** Remove a paginação da listagem */
47
+ this.noPagination = false;
48
+ /** Caminho de redirecionamento do item */
49
+ this.itemPath = "view/:id";
50
+ this.InputTypeFile = InputType.File;
51
+ }
52
+ Redirect(field, item) {
53
+ if (field.index == 'ativo') {
54
+ return;
55
+ }
56
+ else if (field.type == 'File') {
57
+ return;
58
+ }
59
+ else {
60
+ if (this.itemPath) {
61
+ const id = item.id;
62
+ const path = this.itemPath.replace(":id", id.toString());
63
+ this.router.navigate([`./${path}`], { relativeTo: this.activatedRoute });
64
+ }
65
+ }
66
+ }
67
+ ngOnInit() {
68
+ if (this.defaultService && this.lstTableFields.length == 0) {
69
+ this.lstTableFields = this.defaultService.lstTableFields;
70
+ }
71
+ if (this.lstTableFields.length == 0) {
72
+ console.warn("[ Warning! ] [ Table configuration is empty]");
73
+ }
74
+ this.lstTableFields.filter(tf => tf.configuration instanceof InputSelectConfiguration).forEach(tf => tf.configuration.loader.Refresh());
75
+ }
76
+ SwitchOrder(field) {
77
+ if (this.orderByProperty != field.index) {
78
+ this.orderByProperty = field.index;
79
+ this.ascending = true;
80
+ }
81
+ else if (this.ascending) {
82
+ this.ascending = false;
83
+ }
84
+ else {
85
+ this.orderByProperty = null;
86
+ }
87
+ this.orderByPropertyChange.emit(this.orderByProperty);
88
+ this.ascendingChange.emit(this.ascending);
89
+ this.EmitChange();
90
+ }
91
+ EmitPage(value) {
92
+ this.pageChange.emit(value);
93
+ this.EmitChange();
94
+ }
95
+ EmitChange() {
96
+ this.refreshEmitter.emit();
97
+ }
98
+ GetField(item, field) {
99
+ const value = item[field.index];
100
+ const type = field.type;
101
+ if (['Number', 'Decimal', 'Currency'].includes(type)) {
102
+ const config = field.configuration;
103
+ return config.prefix + ' ' + formatNumber(value, "pt-BR", `1.${config.precision}-${config.precision}`) + ' ' + config.sufix;
104
+ }
105
+ else if (type == 'DateTime') {
106
+ if (!value) {
107
+ return "-";
108
+ }
109
+ return Utils.DateISOToDDMMYYYYHHMM(value);
110
+ }
111
+ else if (type == 'Date') {
112
+ if (!value) {
113
+ return "-";
114
+ }
115
+ return Utils.DateISOToDDMMYYYY(value);
116
+ }
117
+ return value;
118
+ }
119
+ GetSelectLabel(item, tField) {
120
+ const configuration = tField.configuration;
121
+ return configuration.loader.GetLabel(this.GetField(item, tField));
122
+ }
123
+ GetTypeOf(val) {
124
+ return typeof (val);
125
+ }
126
+ Ativar(id) {
127
+ this.ativarEmitter.emit(id);
128
+ }
129
+ ChangeFilter() {
130
+ this.filterChange.emit(CompileLstTableField(this.lstTableFields));
131
+ this.refreshEmitter.emit();
132
+ }
133
+ GetTdClasses(field, item) {
134
+ var classes = "";
135
+ if (['DateTime', 'Time', 'Date'].includes(field.type)) {
136
+ classes += 'font-mono ';
137
+ }
138
+ if (this.columnClass) {
139
+ classes += this.columnClass(field.index, item);
140
+ }
141
+ return classes;
142
+ }
143
+ GetTdStyle(field, item) {
144
+ if (this.columnStyle) {
145
+ return this.columnStyle(field, item);
146
+ }
147
+ return "";
148
+ }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultTableComponent, deps: [{ token: i1.StorageService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultTableComponent, selector: "default-table", inputs: { defaultService: ["service", "defaultService"], acoesTemplate: "acoesTemplate", total: "total", limit: "limit", page: "page", orderByProperty: "orderByProperty", ascending: "ascending", filter: "filter", loading: "loading", items: "items", lstTableFields: "lstTableFields", noFilters: "noFilters", columnClass: "columnClass", columnStyle: "columnStyle", noPagination: "noPagination", itemPath: "itemPath" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", orderByPropertyChange: "orderByPropertyChange", ascendingChange: "ascendingChange", filterChange: "filterChange", ativarEmitter: "ativar", refreshEmitter: "refresh" }, ngImport: i0, template: "<section class=\"w-full h-full rounded-2xl flex flex-col overflow-y-hidden relative\" [ngClass]=\"{ 'loading' : loading }\">\r\n \r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': !loading }\">\r\n <loading [type]=\"2\"></loading>\r\n </div>\r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': items.length != 0 || loading }\">\r\n <b><ion-icon class=\"align-sub\" name=\"remove-circle\"></ion-icon> Sem dados</b>\r\n </div>\r\n\r\n <div id=\"wrapper\" class=\"relative overflow-y-auto w-full grow-0 mb-auto pb-2\">\r\n <table class=\"z-20\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" class=\"px-3 !h-10\" *ngIf=\"acoesTemplate\">\r\n <span>A\u00E7\u00F5es</span>\r\n </th>\r\n @for (field of lstTableFields; let i = $index; track i) {\r\n @if (!field.hidden) {\r\n <th scope=\"col\" class=\"p-2 px-3\" id=\"th-filter-select\">\r\n <div class=\"flex items-center justify-start h-full\" style=\"white-space: var(--ion-table-filter-wrap);\"> \r\n @if(!noFilters){\r\n <th-filter *ngIf=\"(field.type != InputTypeFile) && !(field.filter && field.disabledChange()) && !noFilters\"\r\n [field]=\"field\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n <span>{{field.header}}</span>\r\n\r\n <a *ngIf=\"!(!(field.type != InputTypeFile) && !(field.filter && field.disabledChange())) && !noFilters\" class=\"order-switch h-5 flex items-center justify-center px-1 ml-2 shrink-0 cursor-pointer rounded-2xl\" (click)=\"SwitchOrder(field)\" [ngClass]=\"{ 'ordering-asc' : orderByProperty == field.index && ascending, 'ordering-desc' : orderByProperty == field.index && !ascending}\">\r\n <ion-icon id=\"up\" name=\"arrow-up\" class=\"-mt-1\"></ion-icon>\r\n <ion-icon id=\"down\" name=\"arrow-down\" class=\"-ml-1 -mb-1\"></ion-icon>\r\n </a>\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr [hidden]=\"loading\" *ngFor=\"let item of items\">\r\n @if(acoesTemplate){\r\n <td class=\"whitespace-nowrap py-1 px-3\" [style]=\"GetTdStyle('Acoes', item)\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (field of lstTableFields; track $index) {\r\n @if (!field.hidden) {\r\n <td class=\"px-3 py-2\" \r\n [ngClass]=\"GetTdClasses(field, item)\" \r\n [style]=\"GetTdStyle(field, item)\" \r\n (click)=\"Redirect(field, item)\"\r\n style=\"white-space: var(--ion-table-row-wrap);\"\r\n >\r\n @if (field.index == 'ativo') {\r\n <div class=\"w-full h-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"loading\" (ionChange)=\"Ativar(item.id)\" ></ion-toggle>\r\n </div>\r\n } @else {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n @if (field.configuration.type == \"toggle\") {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-toggle>\r\n </div>\r\n }\r\n @else {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-checkbox [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-checkbox>\r\n </div>\r\n }\r\n }\r\n @case (\"File\") {\r\n <download-button [(ngModel)]=\"item[field.index]\" [configuration]=\"field.configuration\"></download-button>\r\n }\r\n @case (\"Select\") {\r\n {{GetSelectLabel(item, field)}}\r\n }\r\n @default {\r\n {{GetField(item, field)}} \r\n }\r\n }\r\n }\r\n </td>\r\n }\r\n }\r\n </tr>\r\n\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination){\r\n <div class=\"shrink-0 mt-auto w-full\">\r\n <default-pagination\r\n [page]=\"page\"\r\n (pageChange)=\"EmitPage($event)\"\r\n [total]=\"total\"\r\n [limit]=\"limit\"\r\n [length]=\"items.length\"\r\n [loading]=\"loading\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</section>\r\n", styles: ["section{transition:height .6s;transition-timing-function:ease-in-out}#th-filter-select:hover .order-switch{background-color:var(--ion-color-step-200)}#th-filter-select:hover .order-switch #up,#th-filter-select:hover .order-switch #down{opacity:1!important;color:var(--ion-color-step-700)!important}#th-filter-select .order-switch{transition:background-color .3s}#th-filter-select .order-switch #up,#th-filter-select .order-switch #down{opacity:0;transition:all .3s}#th-filter-select .order-switch.ordering-asc #up{color:var(--ion-color-primary)!important;opacity:1}#th-filter-select .order-switch.ordering-asc #down,#th-filter-select .order-switch.ordering-desc #up{color:var(--ion-color-step-800)!important;opacity:1}#th-filter-select .order-switch.ordering-desc #down{color:var(--ion-color-primary)!important;opacity:1}.unique-conteiner{position:absolute;top:2.5rem;z-index:30;margin-top:2.5rem;margin-bottom:2.5rem;display:flex;min-height:2.5rem;width:100%;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem;text-align:center}#wrapper{-webkit-mask-image:linear-gradient(180deg,#000 98%,#0000);mask-image:linear-gradient(180deg,#000 98%,#0000)}\n"], dependencies: [{ kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DownloadButtonComponent, selector: "download-button", inputs: ["expand", "value", "size", "params", "disabled", "post", "configuration"], outputs: ["valueChange"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i8.DefaultPaginationComponent, selector: "default-pagination", inputs: ["total", "limit", "length", "loading", "page"], outputs: ["pageChange", "change"] }, { kind: "component", type: i9.ThFilterComponent, selector: "th-filter", inputs: ["field"], outputs: ["change"] }] }); }
151
+ }
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultTableComponent, decorators: [{
153
+ type: Component,
154
+ args: [{ selector: 'default-table', template: "<section class=\"w-full h-full rounded-2xl flex flex-col overflow-y-hidden relative\" [ngClass]=\"{ 'loading' : loading }\">\r\n \r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': !loading }\">\r\n <loading [type]=\"2\"></loading>\r\n </div>\r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': items.length != 0 || loading }\">\r\n <b><ion-icon class=\"align-sub\" name=\"remove-circle\"></ion-icon> Sem dados</b>\r\n </div>\r\n\r\n <div id=\"wrapper\" class=\"relative overflow-y-auto w-full grow-0 mb-auto pb-2\">\r\n <table class=\"z-20\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" class=\"px-3 !h-10\" *ngIf=\"acoesTemplate\">\r\n <span>A\u00E7\u00F5es</span>\r\n </th>\r\n @for (field of lstTableFields; let i = $index; track i) {\r\n @if (!field.hidden) {\r\n <th scope=\"col\" class=\"p-2 px-3\" id=\"th-filter-select\">\r\n <div class=\"flex items-center justify-start h-full\" style=\"white-space: var(--ion-table-filter-wrap);\"> \r\n @if(!noFilters){\r\n <th-filter *ngIf=\"(field.type != InputTypeFile) && !(field.filter && field.disabledChange()) && !noFilters\"\r\n [field]=\"field\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n <span>{{field.header}}</span>\r\n\r\n <a *ngIf=\"!(!(field.type != InputTypeFile) && !(field.filter && field.disabledChange())) && !noFilters\" class=\"order-switch h-5 flex items-center justify-center px-1 ml-2 shrink-0 cursor-pointer rounded-2xl\" (click)=\"SwitchOrder(field)\" [ngClass]=\"{ 'ordering-asc' : orderByProperty == field.index && ascending, 'ordering-desc' : orderByProperty == field.index && !ascending}\">\r\n <ion-icon id=\"up\" name=\"arrow-up\" class=\"-mt-1\"></ion-icon>\r\n <ion-icon id=\"down\" name=\"arrow-down\" class=\"-ml-1 -mb-1\"></ion-icon>\r\n </a>\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr [hidden]=\"loading\" *ngFor=\"let item of items\">\r\n @if(acoesTemplate){\r\n <td class=\"whitespace-nowrap py-1 px-3\" [style]=\"GetTdStyle('Acoes', item)\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (field of lstTableFields; track $index) {\r\n @if (!field.hidden) {\r\n <td class=\"px-3 py-2\" \r\n [ngClass]=\"GetTdClasses(field, item)\" \r\n [style]=\"GetTdStyle(field, item)\" \r\n (click)=\"Redirect(field, item)\"\r\n style=\"white-space: var(--ion-table-row-wrap);\"\r\n >\r\n @if (field.index == 'ativo') {\r\n <div class=\"w-full h-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"loading\" (ionChange)=\"Ativar(item.id)\" ></ion-toggle>\r\n </div>\r\n } @else {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n @if (field.configuration.type == \"toggle\") {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-toggle>\r\n </div>\r\n }\r\n @else {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-checkbox [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-checkbox>\r\n </div>\r\n }\r\n }\r\n @case (\"File\") {\r\n <download-button [(ngModel)]=\"item[field.index]\" [configuration]=\"field.configuration\"></download-button>\r\n }\r\n @case (\"Select\") {\r\n {{GetSelectLabel(item, field)}}\r\n }\r\n @default {\r\n {{GetField(item, field)}} \r\n }\r\n }\r\n }\r\n </td>\r\n }\r\n }\r\n </tr>\r\n\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination){\r\n <div class=\"shrink-0 mt-auto w-full\">\r\n <default-pagination\r\n [page]=\"page\"\r\n (pageChange)=\"EmitPage($event)\"\r\n [total]=\"total\"\r\n [limit]=\"limit\"\r\n [length]=\"items.length\"\r\n [loading]=\"loading\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</section>\r\n", styles: ["section{transition:height .6s;transition-timing-function:ease-in-out}#th-filter-select:hover .order-switch{background-color:var(--ion-color-step-200)}#th-filter-select:hover .order-switch #up,#th-filter-select:hover .order-switch #down{opacity:1!important;color:var(--ion-color-step-700)!important}#th-filter-select .order-switch{transition:background-color .3s}#th-filter-select .order-switch #up,#th-filter-select .order-switch #down{opacity:0;transition:all .3s}#th-filter-select .order-switch.ordering-asc #up{color:var(--ion-color-primary)!important;opacity:1}#th-filter-select .order-switch.ordering-asc #down,#th-filter-select .order-switch.ordering-desc #up{color:var(--ion-color-step-800)!important;opacity:1}#th-filter-select .order-switch.ordering-desc #down{color:var(--ion-color-primary)!important;opacity:1}.unique-conteiner{position:absolute;top:2.5rem;z-index:30;margin-top:2.5rem;margin-bottom:2.5rem;display:flex;min-height:2.5rem;width:100%;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem;text-align:center}#wrapper{-webkit-mask-image:linear-gradient(180deg,#000 98%,#0000);mask-image:linear-gradient(180deg,#000 98%,#0000)}\n"] }]
155
+ }], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.ActivatedRoute }, { type: i2.Router }], propDecorators: { defaultService: [{
156
+ type: Input,
157
+ args: ['service']
158
+ }], acoesTemplate: [{
159
+ type: Input
160
+ }], total: [{
161
+ type: Input
162
+ }], limit: [{
163
+ type: Input
164
+ }], limitChange: [{
165
+ type: Output
166
+ }], page: [{
167
+ type: Input
168
+ }], pageChange: [{
169
+ type: Output
170
+ }], orderByProperty: [{
171
+ type: Input
172
+ }], orderByPropertyChange: [{
173
+ type: Output
174
+ }], ascending: [{
175
+ type: Input
176
+ }], ascendingChange: [{
177
+ type: Output
178
+ }], filter: [{
179
+ type: Input,
180
+ args: ['filter']
181
+ }], filterChange: [{
182
+ type: Output
183
+ }], ativarEmitter: [{
184
+ type: Output,
185
+ args: ['ativar']
186
+ }], refreshEmitter: [{
187
+ type: Output,
188
+ args: ['refresh']
189
+ }], loading: [{
190
+ type: Input
191
+ }], items: [{
192
+ type: Input
193
+ }], lstTableFields: [{
194
+ type: Input
195
+ }], noFilters: [{
196
+ type: Input
197
+ }], columnClass: [{
198
+ type: Input
199
+ }], columnStyle: [{
200
+ type: Input
201
+ }], noPagination: [{
202
+ type: Input
203
+ }], itemPath: [{
204
+ type: Input
205
+ }] } });
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdGFibGUvZGVmYXVsdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYXBwaGlyZS1pb24tZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdGFibGUvZGVmYXVsdC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQWMsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFFeEQsa0NBQWtDO0FBTWxDLE1BQU0sT0FBTyxxQkFBcUI7SUEwRGhDLFlBQ1MsY0FBK0IsRUFDOUIsY0FBOEIsRUFDOUIsTUFBc0I7UUFGdkIsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdB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QUF0QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmb3JtYXROdW1iZXIgIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IENvbXBhcmlzb24sIENvbXBpbGVMc3RUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24nO1xyXG5pbXBvcnQgeyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGVjaW1hbC9pbnB1dC1kZWNpbWFsLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBkZSB0YWJlbGEgcGFkcsOjbyAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RlZmF1bHQtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VGFibGVDb21wb25lbnQ8VCBleHRlbmRzIEh0dHBTZXJ2aWNlPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgXHJcbiAgLyoqIFNlcnZpY2UgYSBzZXIgdXRpbGl6YWRvIG5hIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCdzZXJ2aWNlJykgZGVmYXVsdFNlcnZpY2U6IFQ7XHJcbi8qKiBUZW1wbGF0ZSBkZSBhw6fDtWVzLCBkZXZlIHNlciB1bSBlbGVtZW50byBgYGA8bmctdGVtcGxhdGU+YGBgICovXHJcbiAgQElucHV0KCkgYWNvZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8jcmVnaW9uIFsgUGFnaW5hdGlvbiBdXHJcbiAgLyoqIFZhbG9yIHRvdGFsIGRlIGRhZG9zICovXHJcbiAgQElucHV0KCkgdG90YWw6IG51bWJlcjtcclxuXHJcbiAgLyoqIE7Dum1lcm8gZGUgcMOhZ2luYXMgbcOheGltbyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIGxpbWl0OiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIGxpbWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIFxyXG4gIC8qKiBWYWxvciBkYSBwYWdpbmEsIHNldGFkbyA9IDEgcXVhbmRvIHRyb2NhLXNlIG8gdmFsb3IgZGUgbGltaXRlIGRlIHBhZ2luYXMgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgXHJcbiAgLyoqIFByb3ByaWVkYWRlIGRlIG9yZGVuYcOnw6NvICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgQElucHV0KCkgb3JkZXJCeVByb3BlcnR5OiBzdHJpbmcgfCBudWxsO1xyXG4gIEBPdXRwdXQoKSBvcmRlckJ5UHJvcGVydHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcclxuICBcclxuICAvKiogUHJvcHJpZWRhZGUgZGUgb3JkZW5hw6fDo29cclxuICAgKiBTZSA9IHRydWUgIE9yZGVuYXLDoSBkZSBtZW5vciBhbyBtYWlvciBcclxuICAgKiBTZSA9IGZhbHNlIE9yZGVuYXLDoSBkZSBtYWlvciBhbyBtZW5vciAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIGFzY2VuZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYXNjZW5kaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgLy8jZW5kcmVnaW9uIFsgUGFnaW5hdGlvbiBdXHJcblxyXG4gIC8qKiBGaWx0cm9zICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovICBcclxuICBASW5wdXQoJ2ZpbHRlcicpIGZpbHRlcjogQ29tcGFyaXNvbltdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPENvbXBhcmlzb25bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBhcmlzb25bXT4oKTtcclxuICBcclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIHVtIGRvcyBkYWRvcyDDqSBhdGl2YWRvLiBFbWl0ZSBvIGlkIGRvIGRhZG8gKi8gIFxyXG4gIEBPdXRwdXQoJ2F0aXZhcicpIGF0aXZhckVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xyXG4gIEBPdXRwdXQoJ3JlZnJlc2gnKSByZWZyZXNoRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBkYWRvcyBhIHNlciBleGliaWRvcyAqL1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIFxyXG4gIC8qKiBMaXN0YSBkZSBjYW1wb3MgYSBzZXIgZXhpYmlkb3MgKi9cclxuICBASW5wdXQoKSBsc3RUYWJsZUZpZWxkczogVGFibGVGaWVsZFtdID0gW107XHJcblxyXG4gIC8qKiBSZW1vdmUgb3MgZmlsdHJvcyBubyBjYWJlw6dhbGhvIGRhIHRhYmVsYSAgKi9cclxuICBASW5wdXQoKSBub0ZpbHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKiogQXBsaWNhIGNsYXNzZXMgZGUgQ1NTIG5hIGNvbHVuYSBkZSBhY2lyZG8gY29tIG8gcmV0b3JubyBkYSBmdW7Dp8OjbyBwYXNzYWRhIGNvbW8gcGFyYW1ldHJvICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbkNsYXNzOiAoKGluZGV4OnN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICAvKiogQXBsaWNhIHN0eWxlIGRlIENTUyBuYSBjb2x1bmEgZGUgYWNpcmRvIGNvbSBvIHJldG9ybm8gZGEgZnVuw6fDo28gcGFzc2FkYSBjb21vIHBhcmFtZXRybyAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5TdHlsZTogKChpbmRleDpzdHJpbmcsIG9iamVjdDogYW55KSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqIFJlbW92ZSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9QYWdpbmF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIENhbWluaG8gZGUgcmVkaXJlY2lvbmFtZW50byBkbyBpdGVtICovXHJcbiAgQElucHV0KCkgaXRlbVBhdGg6IHN0cmluZyB8IG51bGwgPSBcInZpZXcvOmlkXCJcclxuICBJbnB1dFR5cGVGaWxlID0gSW5wdXRUeXBlLkZpbGVcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RvcmFnZVNlcnZpY2UgOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXIgICAgICAgIDogUm91dGVyLFxyXG4gICkgeyB9XHJcblxyXG4gIFJlZGlyZWN0KGZpZWxkOiBUYWJsZUZpZWxkLCBpdGVtOiBhbnkpOiB2b2lke1xyXG4gICAgaWYoZmllbGQuaW5kZXggPT0gJ2F0aXZvJyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1lbHNlXHJcbiAgICBpZihmaWVsZC50eXBlICA9PSAnRmlsZScpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYodGhpcy5pdGVtUGF0aCl7XHJcbiAgICAgICAgY29uc3QgaWQgPSBpdGVtLmlkOyBcclxuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5pdGVtUGF0aC5yZXBsYWNlKFwiOmlkXCIsIGlkLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi8ke3BhdGh9YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMuZGVmYXVsdFNlcnZpY2UgJiYgdGhpcy5sc3RUYWJsZUZpZWxkcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgIHRoaXMubHN0VGFibGVGaWVsZHMgPSB0aGlzLmRlZmF1bHRTZXJ2aWNlLmxzdFRhYmxlRmllbGRzO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5sc3RUYWJsZUZpZWxkcy5sZW5ndGggPT0gMCl7IGNvbnNvbGUud2FybihcIlsgV2FybmluZyEgXSBbIFRhYmxlIGNvbmZpZ3VyYXRpb24gaXMgZW1wdHldXCIpIH1cclxuXHJcbiAgICB0aGlzLmxzdFRhYmxlRmllbGRzLmZpbHRlcih0ZiA9PiB0Zi5jb25maWd1cmF0aW9uIGluc3RhbmNlb2YgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKS5mb3JFYWNoKHRmID0+IHRmLmNvbmZpZ3VyYXRpb24ubG9hZGVyLlJlZnJlc2goKSk7XHJcbiAgfVxyXG5cclxuICBTd2l0Y2hPcmRlcihmaWVsZDogVGFibGVGaWVsZCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLm9yZGVyQnlQcm9wZXJ0eSAhPSBmaWVsZC5pbmRleCl7XHJcbiAgICAgIHRoaXMub3JkZXJCeVByb3BlcnR5ID0gZmllbGQuaW5kZXg7XHJcbiAgICAgIHRoaXMuYXNjZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYodGhpcy5hc2NlbmRpbmcpe1xyXG4gICAgICB0aGlzLmFzY2VuZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZXsgdGhpcy5vcmRlckJ5UHJvcGVydHkgPSBudWxsOyB9XHJcblxyXG4gICAgdGhpcy5vcmRlckJ5UHJvcGVydHlDaGFuZ2UuZW1pdCh0aGlzLm9yZGVyQnlQcm9wZXJ0eSlcclxuICAgIHRoaXMuYXNjZW5kaW5nQ2hhbmdlLmVtaXQodGhpcy5hc2NlbmRpbmcpO1xyXG5cclxuICAgIHRoaXMuRW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgRW1pdFBhZ2UodmFsdWU6IG51bWJlcik6IHZvaWR7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLkVtaXRDaGFuZ2UoKVxyXG4gIH1cclxuXHJcbiAgRW1pdENoYW5nZSgpOiB2b2lke1xyXG4gICAgdGhpcy5yZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBHZXRGaWVsZChpdGVtOiBhbnksIGZpZWxkIDogVGFibGVGaWVsZCk6IGFueXtcclxuICAgIGNvbnN0IHZhbHVlID0gaXRlbVtmaWVsZC5pbmRleF07XHJcbiAgICBjb25zdCB0eXBlID0gZmllbGQudHlwZTtcclxuICAgIGlmKFsnTnVtYmVyJywnRGVjaW1hbCcsJ0N1cnJlbmN5J10uaW5jbHVkZXModHlwZSkpe1xyXG4gICAgICBjb25zdCBjb25maWc6IElucHV0RGVjaW1hbENvbmZpZ3VyYXRpb24gPSAoZmllbGQuY29uZmlndXJhdGlvbiBhcyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uKVxyXG4gICAgICByZXR1cm4gY29uZmlnLnByZWZpeCArICcgJyArIGZvcm1hdE51bWJlcih2YWx1ZSwgXCJwdC1CUlwiLCBgMS4ke2NvbmZpZy5wcmVjaXNpb259LSR7Y29uZmlnLnByZWNpc2lvbn1gKSArICcgJyArIGNvbmZpZy5zdWZpeDtcclxuICAgIH1lbHNlXHJcbiAgICBpZih0eXBlID09ICdEYXRlVGltZScpe1xyXG4gICAgICBpZighdmFsdWUpeyByZXR1cm4gXCItXCI7IH1cclxuICAgICAgcmV0dXJuIFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZSEhNTSh2YWx1ZSk7XHJcbiAgICB9ZWxzZVxyXG4gICAgaWYodHlwZSA9PSAnRGF0ZScpe1xyXG4gICAgICBpZighdmFsdWUpeyByZXR1cm4gXCItXCI7IH1cclxuICAgICAgcmV0dXJuIFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEdldFNlbGVjdExhYmVsKGl0ZW06IGFueSwgdEZpZWxkOiBUYWJsZUZpZWxkKTogc3RyaW5ne1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uID0gdEZpZWxkLmNvbmZpZ3VyYXRpb247XHJcbiAgICByZXR1cm4gY29uZmlndXJhdGlvbi5sb2FkZXIuR2V0TGFiZWwodGhpcy5HZXRGaWVsZChpdGVtLCB0RmllbGQpKTtcclxuICB9XHJcblxyXG4gIEdldFR5cGVPZih2YWwpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdHlwZW9mKHZhbClcclxuICB9XHJcblxyXG4gIEF0aXZhcihpZCk6IHZvaWR7XHJcbiAgICB0aGlzLmF0aXZhckVtaXR0ZXIuZW1pdChpZCk7XHJcbiAgfVxyXG5cclxuICBDaGFuZ2VGaWx0ZXIoKTogdm9pZHtcclxuICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQoQ29tcGlsZUxzdFRhYmxlRmllbGQodGhpcy5sc3RUYWJsZUZpZWxkcykpO1xyXG4gICAgdGhpcy5yZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBHZXRUZENsYXNzZXMoZmllbGQsIGl0ZW0pOiBzdHJpbmd7XHJcbiAgICB2YXIgY2xhc3NlcyA6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBpZihbJ0RhdGVUaW1lJywgJ1RpbWUnLCAnRGF0ZSddLmluY2x1ZGVzKGZpZWxkLnR5cGUpKXtcclxuICAgICAgY2xhc3NlcyArPSAnZm9udC1tb25vICc7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNvbHVtbkNsYXNzKXtcclxuICAgICAgY2xhc3NlcyArPSB0aGlzLmNvbHVtbkNsYXNzKGZpZWxkLmluZGV4LCBpdGVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjbGFzc2VzO1xyXG4gIH1cclxuICBHZXRUZFN0eWxlKGZpZWxkLCBpdGVtKTogc3RyaW5ne1xyXG4gICAgaWYodGhpcy5jb2x1bW5TdHlsZSl7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtblN0eWxlKGZpZWxkLCBpdGVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxufSIsIjxzZWN0aW9uIGNsYXNzPVwidy1mdWxsIGgtZnVsbCByb3VuZGVkLTJ4bCBmbGV4IGZsZXgtY29sIG92ZXJmbG93LXktaGlkZGVuIHJlbGF0aXZlXCIgW25nQ2xhc3NdPVwieyAnbG9hZGluZycgOiBsb2FkaW5nIH1cIj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInVuaXF1ZS1jb250ZWluZXIgZGVmYXVsdC10cmFuc2l0aW9uXCIgW25nQ2xhc3NdPVwieychLXotNTAgIS10cmFuc2xhdGUteS0xMiAhb3BhY2l0eS0wJzogIWxvYWRpbmcgfVwiPlxyXG4gICAgICAgIDxsb2FkaW5nIFt0eXBlXT1cIjJcIj48L2xvYWRpbmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1bmlxdWUtY29udGVpbmVyIGRlZmF1bHQtdHJhbnNpdGlvblwiIFtuZ0NsYXNzXT1cInsnIS16LTUwICEtdHJhbnNsYXRlLXktMTIgIW9wYWNpdHktMCc6IGl0ZW1zLmxlbmd0aCAhPSAwIHx8IGxvYWRpbmcgfVwiPlxyXG4gICAgICAgIDxiPjxpb24taWNvbiBjbGFzcz1cImFsaWduLXN1YlwiIG5hbWU9XCJyZW1vdmUtY2lyY2xlXCI+PC9pb24taWNvbj4gU2VtIGRhZG9zPC9iPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBpZD1cIndyYXBwZXJcIiBjbGFzcz1cInJlbGF0aXZlIG92ZXJmbG93LXktYXV0byB3LWZ1bGwgZ3Jvdy0wIG1iLWF1dG8gcGItMlwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInotMjBcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwicHgtMyAhaC0xMFwiICpuZ0lmPVwiYWNvZXNUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Bw6fDtWVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgbHN0VGFibGVGaWVsZHM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmhpZGRlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJwLTIgcHgtM1wiIGlkPVwidGgtZmlsdGVyLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGgtZnVsbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IHZhcigtLWlvbi10YWJsZS1maWx0ZXItd3JhcCk7XCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIW5vRmlsdGVycyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGgtZmlsdGVyICpuZ0lmPVwiKGZpZWxkLnR5cGUgIT0gSW5wdXRUeXBlRmlsZSkgJiYgIShmaWVsZC5maWx0ZXIgJiYgZmllbGQuZGlzYWJsZWRDaGFuZ2UoKSkgJiYgIW5vRmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJDaGFuZ2VGaWx0ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90aC1maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tmaWVsZC5oZWFkZXJ9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiISghKGZpZWxkLnR5cGUgIT0gSW5wdXRUeXBlRmlsZSkgJiYgIShmaWVsZC5maWx0ZXIgJiYgZmllbGQuZGlzYWJsZWRDaGFuZ2UoKSkpICYmICFub0ZpbHRlcnNcIiBjbGFzcz1cIm9yZGVyLXN3aXRjaCBoLTUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMSBtbC0yIHNocmluay0wIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtMnhsXCIgKGNsaWNrKT1cIlN3aXRjaE9yZGVyKGZpZWxkKVwiIFtuZ0NsYXNzXT1cInsgJ29yZGVyaW5nLWFzYycgOiBvcmRlckJ5UHJvcGVydHkgPT0gZmllbGQuaW5kZXggJiYgYXNjZW5kaW5nLCAnb3JkZXJpbmctZGVzYycgOiBvcmRlckJ5UHJvcGVydHkgPT0gZmllbGQuaW5kZXggJiYgIWFzY2VuZGluZ31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBpZD1cInVwXCIgICBuYW1lPVwiYXJyb3ctdXBcIiAgIGNsYXNzPVwiLW10LTFcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGlkPVwiZG93blwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCItbWwtMSAtbWItMVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8dHIgW2hpZGRlbl09XCJsb2FkaW5nXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYoYWNvZXNUZW1wbGF0ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIHB5LTEgcHgtM1wiIFtzdHlsZV09XCJHZXRUZFN0eWxlKCdBY29lcycsIGl0ZW0pXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjb2VzVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGxzdFRhYmxlRmllbGRzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJweC0zIHB5LTJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJHZXRUZENsYXNzZXMoZmllbGQsIGl0ZW0pXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cIkdldFRkU3R5bGUoZmllbGQsIGl0ZW0pXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJlZGlyZWN0KGZpZWxkLCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogdmFyKC0taW9uLXRhYmxlLXJvdy13cmFwKTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuaW5kZXggPT0gJ2F0aXZvJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0XCIgW3JvdXRlckxpbmtdPVwibnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10b2dnbGUgW2NoZWNrZWRdPVwiaXRlbVtmaWVsZC5pbmRleF1cIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChpb25DaGFuZ2UpPVwiQXRpdmFyKGl0ZW0uaWQpXCIgPjwvaW9uLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChcIkJvb2xcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuY29uZmlndXJhdGlvbi50eXBlID09IFwidG9nZ2xlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIi1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXRvZ2dsZSBbY2hlY2tlZF09XCJpdGVtW2ZpZWxkLmluZGV4XVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9pb24tdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiLWZ1bGwgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY2hlY2tib3ggW2NoZWNrZWRdPVwiaXRlbVtmaWVsZC5pbmRleF1cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoXCJGaWxlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZG93bmxvYWQtYnV0dG9uIFsobmdNb2RlbCldPVwiaXRlbVtmaWVsZC5pbmRleF1cIiBbY29uZmlndXJhdGlvbl09XCJmaWVsZC5jb25maWd1cmF0aW9uXCI+PC9kb3dubG9hZC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoXCJTZWxlY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7R2V0U2VsZWN0TGFiZWwoaXRlbSwgZmllbGQpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e0dldEZpZWxkKGl0ZW0sIGZpZWxkKX19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9aXRlbS1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZighbm9QYWdpbmF0aW9uKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgbXQtYXV0byB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgPGRlZmF1bHQtcGFnaW5hdGlvblxyXG4gICAgICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJFbWl0UGFnZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFt0b3RhbF09XCJ0b3RhbFwiXHJcbiAgICAgICAgICAgICAgICBbbGltaXRdPVwibGltaXRcIlxyXG4gICAgICAgICAgICAgICAgW2xlbmd0aF09XCJpdGVtcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgID48L2RlZmF1bHQtcGFnaW5hdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -0,0 +1,182 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { TableField } from '../../../../classes/inputs/table-field';
3
+ import { InputType } from '../../../inputs/input-type';
4
+ import { Utils } from '../../../../services/utils.service';
5
+ import { InputDecimalConfiguration, InputCurrencyConfiguration, InputNumberConfiguration } from '../../../inputs/input-decimal/input-decimal.configuration';
6
+ import { InputStringConfiguration } from '../../../inputs/input-string/input-string.configuration';
7
+ import { InputSelectConfiguration } from '../../../inputs/input-select/input.select.configuration';
8
+ import { InputDateConfiguration } from '../../../inputs/input-date/input-date.configuration';
9
+ import { InputFileConfiguration } from '../../../inputs/input-file/input-file.configuration';
10
+ import { InputBoolConfiguration } from '../../../inputs/input-bool/input-bool.configuration';
11
+ import { ImplicitProperty } from '../../../../classes/comparison/properties/implicit-property';
12
+ import { DecimalProperty } from '../../../../classes/comparison/properties/decimal-property';
13
+ import { StringProperty } from '../../../../classes/comparison/properties/string-property';
14
+ import { BoolProperty } from '../../../../classes/comparison/properties/bool-property';
15
+ import { DateProperty } from '../../../../classes/comparison/properties/date-property';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "@ionic/angular";
18
+ import * as i2 from "@angular/common";
19
+ import * as i3 from "../../../inputs/input-date/input-date.component";
20
+ import * as i4 from "../../../inputs/input-decimal/input-decimal.component";
21
+ import * as i5 from "../../../inputs/input-select/input-select.component";
22
+ import * as i6 from "../../../inputs/input-string/input-string.component";
23
+ import * as i7 from "@angular/forms";
24
+ export class ThFilterComponent {
25
+ constructor() {
26
+ this.guid = Utils.GenerateGUID();
27
+ this.isFilterActive = false;
28
+ this.model = null;
29
+ this.modelMinimum = null;
30
+ this.modelMaximum = null;
31
+ this.changeEmitter = new EventEmitter();
32
+ }
33
+ ngOnInit() {
34
+ this.configuration = this.field.configuration;
35
+ if (!this.configuration) {
36
+ if ([InputType.Date, InputType.DateTime, InputType.Time].includes(this.field.type)) {
37
+ this.configuration = new InputDateConfiguration();
38
+ }
39
+ else if (this.field.type == InputType.File) {
40
+ this.configuration = new InputFileConfiguration();
41
+ }
42
+ else if (this.field.type == InputType.Number) {
43
+ this.configuration = new InputNumberConfiguration();
44
+ }
45
+ else if (this.field.type == InputType.Decimal) {
46
+ this.configuration = new InputDecimalConfiguration();
47
+ }
48
+ else if (this.field.type == InputType.Currency) {
49
+ this.configuration = new InputCurrencyConfiguration();
50
+ }
51
+ else if (this.field.type == InputType.String) {
52
+ this.configuration = new InputStringConfiguration();
53
+ }
54
+ else if (this.field.type == InputType.Select) {
55
+ this.configuration = new InputSelectConfiguration();
56
+ }
57
+ else if (this.field.type == InputType.TextArea) {
58
+ this.configuration = new InputStringConfiguration();
59
+ }
60
+ else if (this.field.type == InputType.Bool) {
61
+ this.configuration = new InputBoolConfiguration();
62
+ }
63
+ }
64
+ if (this.configuration instanceof InputSelectConfiguration) {
65
+ this.configuration = new InputSelectConfiguration(this.configuration.bindValue, this.configuration.bindLabel, true, true, this.configuration.loadFrom, true);
66
+ }
67
+ if (this.configuration instanceof InputDateConfiguration) {
68
+ this.configuration = new InputDateConfiguration(true);
69
+ }
70
+ if (this.field.type == InputType.Bool) {
71
+ if (this.field.index == "ativo") {
72
+ this.configuration = this.configuration = new InputSelectConfiguration('value', 'label', true, true, [
73
+ { label: 'Somente Ativos', value: true },
74
+ { label: 'Somente Não Ativos', value: false },
75
+ ]);
76
+ this.model = true;
77
+ }
78
+ else {
79
+ this.configuration = new InputSelectConfiguration('value', 'label', true, false, [
80
+ { label: 'Sim', value: true },
81
+ { label: 'Não', value: false },
82
+ ]);
83
+ }
84
+ }
85
+ }
86
+ Change() {
87
+ if (((typeof (this.model) == 'string' && !this.model) ||
88
+ this.model == null ||
89
+ (Array.isArray(this.model) && this.model.length == 0)) &&
90
+ !this.modelMinimum && !this.modelMaximum) {
91
+ this.SetInactive();
92
+ return;
93
+ }
94
+ if ([InputType.Currency, InputType.Decimal, InputType.Number].includes(this.field.type)) {
95
+ var Comparison = [];
96
+ if (this.modelMinimum) {
97
+ var Bigger = new DecimalProperty(this.field.index).GreaterThanOrEqual(this.modelMinimum);
98
+ Comparison = [Bigger];
99
+ }
100
+ if (this.modelMaximum) {
101
+ var Smaller = new DecimalProperty(this.field.index).LessThanOrEqual(this.modelMaximum);
102
+ if (Comparison.length) {
103
+ Comparison.push(Smaller);
104
+ }
105
+ else {
106
+ Comparison = [Smaller];
107
+ }
108
+ }
109
+ this.field.filter = Comparison;
110
+ this.isFilterActive = true;
111
+ this.changeEmitter.emit();
112
+ return;
113
+ }
114
+ else if ([InputType.String].includes(this.field.type)) {
115
+ this.field.filter = [new StringProperty(this.field.index).IsContainedIn(this.model)];
116
+ this.isFilterActive = true;
117
+ this.changeEmitter.emit();
118
+ return;
119
+ }
120
+ else if (this.field.type == InputType.Select) {
121
+ this.field.filter = [new ImplicitProperty(this.field.index).IsContainedIn(this.model)];
122
+ this.isFilterActive = true;
123
+ this.changeEmitter.emit();
124
+ return;
125
+ }
126
+ else if (this.field.type == InputType.Bool) {
127
+ this.field.filter = [new BoolProperty(this.field.index).Equals(this.model)];
128
+ this.isFilterActive = true;
129
+ this.changeEmitter.emit();
130
+ return;
131
+ }
132
+ else if (this.field.type == InputType.Date || this.field.type == InputType.DateTime) {
133
+ if (this.modelMinimum) {
134
+ if (this.field.type == InputType.Date) {
135
+ this.modelMinimum = this.modelMinimum.split("T")[0] + "T23:59:59";
136
+ }
137
+ }
138
+ if (this.modelMaximum) {
139
+ if (this.field.type == InputType.Date) {
140
+ this.modelMaximum = this.modelMaximum.split("T")[0] + "T23:59:59";
141
+ }
142
+ }
143
+ var Comparison = [];
144
+ if (this.modelMinimum) {
145
+ var BiggerDate = new DateProperty(this.field.index).GreaterThanOrEqual(this.modelMinimum);
146
+ Comparison = [BiggerDate];
147
+ }
148
+ if (this.modelMaximum) {
149
+ var SmallerDate = new DateProperty(this.field.index).LessThanOrEqual(this.modelMaximum);
150
+ if (Comparison.length) {
151
+ Comparison.push(SmallerDate);
152
+ }
153
+ else {
154
+ Comparison = [SmallerDate];
155
+ }
156
+ }
157
+ this.field.filter = Comparison;
158
+ this.isFilterActive = true;
159
+ this.changeEmitter.emit();
160
+ return;
161
+ }
162
+ this.changeEmitter.emit();
163
+ }
164
+ SetInactive() {
165
+ this.field.filter = null;
166
+ this.isFilterActive = false;
167
+ this.changeEmitter.emit();
168
+ return;
169
+ }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThFilterComponent, selector: "th-filter", inputs: { field: "field" }, outputs: { changeEmitter: "change" }, ngImport: i0, template: "<div class=\"h-5 aspect-square mr-1 flex items-center justify-center cursor-pointer\">\r\n <ion-icon id=\"{{guid}}-trigger\" name=\"filter-circle\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<ion-popover [keepContentsMounted]=\"true\" class=\"popover-filter\" trigger=\"{{guid}}-trigger\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-card class=\"m-0 !border-0 bg-primary/30\">\r\n <ion-card-header class=\"bg-transparent\">\r\n <ion-card-title class=\"text-center text-sm\">\r\n Filtro - {{field.header}}\r\n </ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content [ngClass]=\"{'!p-0': ['Select', 'Bool', 'String', 'TextArea'].includes(field.type)}\" class=\"!p-2 bg-light rounded-t-2xl\">\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-template>\r\n</ion-popover>\r\n", styles: [".th-select{border-radius:0!important}.th-select ion-card{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card ion-item{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card div.w-12 ion-button{--border-width: 1px !important;--border-radius: 0rem 0rem 1rem 0rem !important}.popover-filter{--width: 18rem }\n"], dependencies: [{ kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.InputDateComponent, selector: "input-date, input-date-time, input-time", inputs: ["configuration"] }, { kind: "component", type: i4.InputDecimalComponent, selector: "input-decimal, input-number, input-currency, inout-percentage", inputs: ["configuration"] }, { kind: "component", type: i5.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration", "Search"], outputs: ["itemsChange", "configurationChange", "SearchChange"] }, { kind: "component", type: i6.InputStringComponent, selector: "input-string", inputs: ["configuration", "type"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
172
+ }
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThFilterComponent, decorators: [{
174
+ type: Component,
175
+ args: [{ selector: 'th-filter', template: "<div class=\"h-5 aspect-square mr-1 flex items-center justify-center cursor-pointer\">\r\n <ion-icon id=\"{{guid}}-trigger\" name=\"filter-circle\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<ion-popover [keepContentsMounted]=\"true\" class=\"popover-filter\" trigger=\"{{guid}}-trigger\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-card class=\"m-0 !border-0 bg-primary/30\">\r\n <ion-card-header class=\"bg-transparent\">\r\n <ion-card-title class=\"text-center text-sm\">\r\n Filtro - {{field.header}}\r\n </ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content [ngClass]=\"{'!p-0': ['Select', 'Bool', 'String', 'TextArea'].includes(field.type)}\" class=\"!p-2 bg-light rounded-t-2xl\">\r\n @switch (field.type) {\r\n @case ('String') {\r\n <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"\" (blur)=\"Change()\"></input-string>\r\n }\r\n @case ('Number') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-number>\r\n <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n </div>\r\n }\r\n @case ('Decimal') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n </div>\r\n }\r\n @case ('Currency') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor M\u00EDnimo\" [configuration]=\"field.configuration\"></input-currency>\r\n <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n </div>\r\n }\r\n @case ('Select') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('TextArea') {\r\n <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\"></input-string>\r\n }\r\n @case ('Bool') {\r\n <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n }\r\n @case ('Date') {\r\n <div class=\"size-full grid grid-cols-1 gap-2\">\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date>\r\n <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n </div>\r\n }\r\n @case ('DateTime') {\r\n <div class=\"grid grid-cols-1 gap-2\">\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data M\u00EDnima\" [configuration]=\"configuration\"></input-date-time>\r\n <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n </div>\r\n }\r\n }\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-template>\r\n</ion-popover>\r\n", styles: [".th-select{border-radius:0!important}.th-select ion-card{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card ion-item{--border-radius: 0 !important;--border-width: 0 !important;border-radius:0!important;border-width:0!important}.th-select ion-card div.w-12 ion-button{--border-width: 1px !important;--border-radius: 0rem 0rem 1rem 0rem !important}.popover-filter{--width: 18rem }\n"] }]
176
+ }], ctorParameters: () => [], propDecorators: { field: [{
177
+ type: Input
178
+ }], changeEmitter: [{
179
+ type: Output,
180
+ args: ['change']
181
+ }] } });
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGgtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS90aC1maWx0ZXIvdGgtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS90aC1maWx0ZXIvdGgtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDNUosT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkRBQTZELENBQUM7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QkFBOUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXRzL2lucHV0LXR5cGUnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXREZWNpbWFsQ29uZmlndXJhdGlvbiwgSW5wdXRDdXJyZW5jeUNvbmZpZ3VyYXRpb24sIElucHV0TnVtYmVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0U3RyaW5nQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2lucHV0cy9pbnB1dC1zdHJpbmcvaW5wdXQtc3RyaW5nLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnB1dHMvaW5wdXQtc2VsZWN0L2lucHV0LnNlbGVjdC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXREYXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2lucHV0cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0RmlsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dEJvb2xDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSW5wdXRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXRzL2lucHV0LWNvbmZpZ3VyYXRpb24nO1xyXG5cclxuaW1wb3J0IHsgSW1wbGljaXRQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2ltcGxpY2l0LXByb3BlcnR5JztcclxuaW1wb3J0IHsgRGVjaW1hbFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvZGVjaW1hbC1wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFN0cmluZ1Byb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvc3RyaW5nLXByb3BlcnR5JztcclxuaW1wb3J0IHsgQm9vbFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvYm9vbC1wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IERhdGVQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2RhdGUtcHJvcGVydHknO1xyXG5cclxuaW1wb3J0IHsgQ29tcGFyaXNvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGgtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGgtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRoRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgZmllbGQgOiBUYWJsZUZpZWxkIFxyXG5cclxuICBndWlkOiBzdHJpbmcgPSBVdGlscy5HZW5lcmF0ZUdVSUQoKTtcclxuICBjb25maWd1cmF0aW9uOiBJbnB1dENvbmZpZ3VyYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gdGhpcy5maWVsZC5jb25maWd1cmF0aW9uO1xyXG4gICAgXHJcbiAgICBpZighdGhpcy5jb25maWd1cmF0aW9uKXtcclxuICAgICAgaWYoW0lucHV0VHlwZS5EYXRlLCBJbnB1dFR5cGUuRGF0ZVRpbWUsIElucHV0VHlwZS5UaW1lXS5pbmNsdWRlcyh0aGlzLmZpZWxkLnR5cGUpKXsgdGhpcy5jb25maWd1cmF0aW9uID0gbmV3IElucHV0RGF0ZUNvbmZpZ3VyYXRpb24oKSB9IGVsc2VcclxuICAgICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5GaWxlICAgICl7IHRoaXMuY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dEZpbGVDb25maWd1cmF0aW9uKCkgICAgIH1lbHNlXHJcbiAgICAgIGlmKHRoaXMuZmllbGQudHlwZSA9PSBJbnB1dFR5cGUuTnVtYmVyICApeyB0aGlzLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXROdW1iZXJDb25maWd1cmF0aW9uKCkgICB9ZWxzZVxyXG4gICAgICBpZih0aGlzLmZpZWxkLnR5cGUgPT0gSW5wdXRUeXBlLkRlY2ltYWwgKXsgdGhpcy5jb25maWd1cmF0aW9uID0gbmV3IElucHV0RGVjaW1hbENvbmZpZ3VyYXRpb24oKSAgfWVsc2VcclxuICAgICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5DdXJyZW5jeSl7IHRoaXMuY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dEN1cnJlbmN5Q29uZmlndXJhdGlvbigpIH1lbHNlXHJcbiAgICAgIGlmKHRoaXMuZmllbGQudHlwZSA9PSBJbnB1dFR5cGUuU3RyaW5nICApeyB0aGlzLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTdHJpbmdDb25maWd1cmF0aW9uKCkgICB9ZWxzZVxyXG4gICAgICBpZih0aGlzLmZpZWxkLnR5cGUgPT0gSW5wdXRUeXBlLlNlbGVjdCAgKXsgdGhpcy5jb25maWd1cmF0aW9uID0gbmV3IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbigpICAgfWVsc2VcclxuICAgICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5UZXh0QXJlYSl7IFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dFN0cmluZ0NvbmZpZ3VyYXRpb24oKTsgXHJcbiAgICAgIH1lbHNlIFxyXG4gICAgICBpZih0aGlzLmZpZWxkLnR5cGUgPT0gSW5wdXRUeXBlLkJvb2wgICAgKXsgXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gbmV3IElucHV0Qm9vbENvbmZpZ3VyYXRpb24oKTsgXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24gaW5zdGFuY2VvZiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24pe1xyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5iaW5kVmFsdWUsXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmJpbmRMYWJlbCxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5jb25maWd1cmF0aW9uIGluc3RhbmNlb2YgSW5wdXREYXRlQ29uZmlndXJhdGlvbil7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IG5ldyBJbnB1dERhdGVDb25maWd1cmF0aW9uKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuZmllbGQudHlwZSA9PSBJbnB1dFR5cGUuQm9vbCl7XHJcbiAgICAgIGlmKHRoaXMuZmllbGQuaW5kZXggPT0gXCJhdGl2b1wiKXtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKCd2YWx1ZScsICdsYWJlbCcsIHRydWUsIHRydWUsIFtcclxuICAgICAgICAgIHsgbGFiZWw6ICdTb21lbnRlIEF0aXZvcycgICAgLCB2YWx1ZTogdHJ1ZSAgfSxcclxuICAgICAgICAgIHsgbGFiZWw6ICdTb21lbnRlIE7Do28gQXRpdm9zJywgdmFsdWU6IGZhbHNlIH0sXHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKCd2YWx1ZScsICdsYWJlbCcsIHRydWUsIGZhbHNlLCBbXHJcbiAgICAgICAgICB7IGxhYmVsOiAnU2ltJywgdmFsdWU6IHRydWUgIH0sXHJcbiAgICAgICAgICB7IGxhYmVsOiAnTsOjbycsIHZhbHVlOiBmYWxzZSB9LFxyXG4gICAgICAgIF0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRmlsdGVyQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG1vZGVsOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBtb2RlbE1pbmltdW06IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIG1vZGVsTWF4aW11bTogYW55IHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBDaGFuZ2UoKTogdm9pZHtcclxuICAgIGlmKCgodHlwZW9mKHRoaXMubW9kZWwpID09ICdzdHJpbmcnICYmICF0aGlzLm1vZGVsKSB8fCBcclxuICAgICAgICAgdGhpcy5tb2RlbCA9PSBudWxsIHx8IFxyXG4gICAgICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKSAmJiB0aGlzLm1vZGVsLmxlbmd0aCA9PSAwKSkgJiYgXHJcbiAgICAgICF0aGlzLm1vZGVsTWluaW11bSAmJiAhdGhpcy5tb2RlbE1heGltdW0pXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuU2V0SW5hY3RpdmUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKFtJbnB1dFR5cGUuQ3VycmVuY3ksIElucHV0VHlwZS5EZWNpbWFsLCBJbnB1dFR5cGUuTnVtYmVyXS5pbmNsdWRlcyh0aGlzLmZpZWxkLnR5cGUpKXtcclxuICAgICAgdmFyIENvbXBhcmlzb246IENvbXBhcmlzb25bXSA9IFtdO1xyXG4gICAgICBpZih0aGlzLm1vZGVsTWluaW11bSl7XHJcbiAgICAgICAgdmFyIEJpZ2dlciAgPSBuZXcgRGVjaW1hbFByb3BlcnR5KHRoaXMuZmllbGQuaW5kZXgpLkdyZWF0ZXJUaGFuT3JFcXVhbCh0aGlzLm1vZGVsTWluaW11bSk7XHJcbiAgICAgICAgQ29tcGFyaXNvbiA9IFtCaWdnZXJdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMubW9kZWxNYXhpbXVtKXtcclxuICAgICAgICB2YXIgU21hbGxlciA9IG5ldyBEZWNpbWFsUHJvcGVydHkodGhpcy5maWVsZC5pbmRleCkuTGVzc1RoYW5PckVxdWFsKHRoaXMubW9kZWxNYXhpbXVtKTtcclxuICAgICAgICBpZihDb21wYXJpc29uLmxlbmd0aCl7IENvbXBhcmlzb24ucHVzaChTbWFsbGVyKTsgfSBcclxuICAgICAgICBlbHNlICAgICAgICAgICAgICAgICB7IENvbXBhcmlzb24gPSBbU21hbGxlcl07IH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5maWVsZC5maWx0ZXIgPSBDb21wYXJpc29uO1xyXG4gICAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfWVsc2VcclxuICAgIGlmKFtJbnB1dFR5cGUuU3RyaW5nXS5pbmNsdWRlcyh0aGlzLmZpZWxkLnR5cGUpKXtcclxuICAgICAgdGhpcy5maWVsZC5maWx0ZXIgICA9IFtuZXcgU3RyaW5nUHJvcGVydHkodGhpcy5maWVsZC5pbmRleCkuSXNDb250YWluZWRJbih0aGlzLm1vZGVsKV07XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNoYW5nZUVtaXR0ZXIuZW1pdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ZWxzZVxyXG4gICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5TZWxlY3Qpe1xyXG4gICAgICB0aGlzLmZpZWxkLmZpbHRlciAgID0gW25ldyBJbXBsaWNpdFByb3BlcnR5KHRoaXMuZmllbGQuaW5kZXgpLklzQ29udGFpbmVkSW4odGhpcy5tb2RlbCldO1xyXG4gICAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfWVsc2VcclxuICAgIGlmKHRoaXMuZmllbGQudHlwZSA9PSBJbnB1dFR5cGUuQm9vbCl7XHJcbiAgICAgIHRoaXMuZmllbGQuZmlsdGVyICAgPSBbbmV3IEJvb2xQcm9wZXJ0eSh0aGlzLmZpZWxkLmluZGV4KS5FcXVhbHModGhpcy5tb2RlbCldO1xyXG4gICAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGFuZ2VFbWl0dGVyLmVtaXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlXHJcbiAgICBpZiAodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5EYXRlIHx8IHRoaXMuZmllbGQudHlwZSA9PSBJbnB1dFR5cGUuRGF0ZVRpbWUpe1xyXG4gICAgICBpZih0aGlzLm1vZGVsTWluaW11bSl7XHJcbiAgICAgICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5EYXRlKXsgdGhpcy5tb2RlbE1pbmltdW0gPSB0aGlzLm1vZGVsTWluaW11bS5zcGxpdChcIlRcIilbMF0gKyBcIlQyMzo1OTo1OVwiIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLm1vZGVsTWF4aW11bSl7XHJcbiAgICAgICAgaWYodGhpcy5maWVsZC50eXBlID09IElucHV0VHlwZS5EYXRlKXsgdGhpcy5tb2RlbE1heGltdW0gPSB0aGlzLm1vZGVsTWF4aW11bS5zcGxpdChcIlRcIilbMF0gKyBcIlQyMzo1OTo1OVwiIH1cclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIHZhciBDb21wYXJpc29uOiBDb21wYXJpc29uW10gPSBbXTtcclxuICAgICAgaWYodGhpcy5tb2RlbE1pbmltdW0pe1xyXG4gICAgICAgIHZhciBCaWdnZXJEYXRlICA9IG5ldyBEYXRlUHJvcGVydHkodGhpcy5maWVsZC5pbmRleCkuR3JlYXRlclRoYW5PckVxdWFsKHRoaXMubW9kZWxNaW5pbXVtKTtcclxuICAgICAgICBDb21wYXJpc29uID0gW0JpZ2dlckRhdGVdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMubW9kZWxNYXhpbXVtKXtcclxuICAgICAgICB2YXIgU21hbGxlckRhdGUgPSBuZXcgRGF0ZVByb3BlcnR5KHRoaXMuZmllbGQuaW5kZXgpLkxlc3NUaGFuT3JFcXVhbCh0aGlzLm1vZGVsTWF4aW11bSk7XHJcbiAgICAgICAgaWYoQ29tcGFyaXNvbi5sZW5ndGgpeyBDb21wYXJpc29uLnB1c2goU21hbGxlckRhdGUpOyB9IFxyXG4gICAgICAgIGVsc2UgICAgICAgICAgICAgICAgIHsgQ29tcGFyaXNvbiA9IFtTbWFsbGVyRGF0ZV0gIDsgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmllbGQuZmlsdGVyID0gQ29tcGFyaXNvbjtcclxuICAgICAgdGhpcy5pc0ZpbHRlckFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2hhbmdlRW1pdHRlci5lbWl0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZUVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgU2V0SW5hY3RpdmUoKTogdm9pZHtcclxuICAgIHRoaXMuZmllbGQuZmlsdGVyID0gbnVsbDtcclxuICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hhbmdlRW1pdHRlci5lbWl0KCk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoLTUgYXNwZWN0LXNxdWFyZSBtci0xIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgPGlvbi1pY29uIGlkPVwie3tndWlkfX0tdHJpZ2dlclwiIG5hbWU9XCJmaWx0ZXItY2lyY2xlXCIgY2xhc3M9XCJ0ZXh0LXhsIGFsaWduLXN1YiBzaXplLWZ1bGxcIiBbY29sb3JdPVwiaXNGaWx0ZXJBY3RpdmUgPyAnc2Vjb25kYXJ5JyA6ICdtZWRpdW0nIFwiPjwvaW9uLWljb24+XHJcbjwvZGl2PlxyXG5cclxuPGlvbi1wb3BvdmVyIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIiBjbGFzcz1cInBvcG92ZXItZmlsdGVyXCIgdHJpZ2dlcj1cInt7Z3VpZH19LXRyaWdnZXJcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICA8bmctdGVtcGxhdGU+XHJcbiAgICA8aW9uLWNhcmQgY2xhc3M9XCJtLTAgIWJvcmRlci0wIGJnLXByaW1hcnkvMzBcIj5cclxuICAgICAgPGlvbi1jYXJkLWhlYWRlciBjbGFzcz1cImJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgPGlvbi1jYXJkLXRpdGxlIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgRmlsdHJvIC0ge3tmaWVsZC5oZWFkZXJ9fVxyXG4gICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxyXG4gICAgICA8aW9uLWNhcmQtY29udGVudCBbbmdDbGFzc109XCJ7JyFwLTAnOiBbJ1NlbGVjdCcsICdCb29sJywgJ1N0cmluZycsICdUZXh0QXJlYSddLmluY2x1ZGVzKGZpZWxkLnR5cGUpfVwiIGNsYXNzPVwiIXAtMiBiZy1saWdodCByb3VuZGVkLXQtMnhsXCI+XHJcbiAgICAgICAgQHN3aXRjaCAoZmllbGQudHlwZSkge1xyXG4gICAgICAgICAgQGNhc2UgKCdTdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIDxpbnB1dC1zdHJpbmcgWyhuZ01vZGVsKV09XCJtb2RlbFwiIGNsYXNzPVwidGgtc2VsZWN0XCIgbGFiZWw9XCJcIiAoYmx1cik9XCJDaGFuZ2UoKVwiPjwvaW5wdXQtc3RyaW5nPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCdOdW1iZXInKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0LW51bWJlciAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbE1pbmltdW1cIiBsYWJlbD1cIlZhbG9yIE3DrW5pbW9cIiBbY29uZmlndXJhdGlvbl09XCJmaWVsZC5jb25maWd1cmF0aW9uXCI+PC9pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgICAgICAgPGlucHV0LW51bWJlciAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbE1heGltdW1cIiBsYWJlbD1cIlZhbG9yIE1heGltb1wiIFtjb25maWd1cmF0aW9uXT1cImZpZWxkLmNvbmZpZ3VyYXRpb25cIj48L2lucHV0LW51bWJlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ0RlY2ltYWwnKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0LWRlY2ltYWwgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxNaW5pbXVtXCIgbGFiZWw9XCJWYWxvciBNw61uaW1vXCIgW2NvbmZpZ3VyYXRpb25dPVwiZmllbGQuY29uZmlndXJhdGlvblwiPjwvaW5wdXQtZGVjaW1hbD5cclxuICAgICAgICAgICAgICA8aW5wdXQtZGVjaW1hbCAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbE1heGltdW1cIiBsYWJlbD1cIlZhbG9yIE1heGltb1wiIFtjb25maWd1cmF0aW9uXT1cImZpZWxkLmNvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRlY2ltYWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCdDdXJyZW5jeScpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQtY3VycmVuY3kgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxNaW5pbXVtXCIgbGFiZWw9XCJWYWxvciBNw61uaW1vXCIgW2NvbmZpZ3VyYXRpb25dPVwiZmllbGQuY29uZmlndXJhdGlvblwiPjwvaW5wdXQtY3VycmVuY3k+XHJcbiAgICAgICAgICAgICAgPGlucHV0LWN1cnJlbmN5IChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsTWF4aW11bVwiIGxhYmVsPVwiVmFsb3IgTWF4aW1vXCIgW2NvbmZpZ3VyYXRpb25dPVwiZmllbGQuY29uZmlndXJhdGlvblwiPjwvaW5wdXQtY3VycmVuY3k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCdTZWxlY3QnKSB7XHJcbiAgICAgICAgICAgIDxpbnB1dC1zZWxlY3QgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBjbGFzcz1cInRoLXNlbGVjdFwiIGxhYmVsPVwiXCIgW2NvbmZpZ3VyYXRpb25dPVwiY29uZmlndXJhdGlvblwiPjwvaW5wdXQtc2VsZWN0PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCdUZXh0QXJlYScpIHtcclxuICAgICAgICAgICAgPGlucHV0LXN0cmluZyAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIGNsYXNzPVwidGgtc2VsZWN0XCIgbGFiZWw9XCJcIj48L2lucHV0LXN0cmluZz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgnQm9vbCcpIHtcclxuICAgICAgICAgICAgPGlucHV0LXNlbGVjdCAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIGNsYXNzPVwidGgtc2VsZWN0XCIgbGFiZWw9XCJcIiBwbGFjZWhvbGRlcj1cIlwiIFtjb25maWd1cmF0aW9uXT1cImNvbmZpZ3VyYXRpb25cIj48L2lucHV0LXNlbGVjdD5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgnRGF0ZScpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBncmlkIGdyaWQtY29scy0xIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0LWRhdGUgKGNoYW5nZSk9XCJDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwibW9kZWxNaW5pbXVtXCIgbGFiZWw9XCJEYXRhIE3DrW5pbWFcIiBbY29uZmlndXJhdGlvbl09XCJjb25maWd1cmF0aW9uXCI+PC9pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgICAgIDxpbnB1dC1kYXRlIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsTWF4aW11bVwiIGxhYmVsPVwiRGF0YSBNYXhpbWFcIiBbY29uZmlndXJhdGlvbl09XCJjb25maWd1cmF0aW9uXCI+PC9pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgnRGF0ZVRpbWUnKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0LWRhdGUtdGltZSAoY2hhbmdlKT1cIkNoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbE1pbmltdW1cIiBsYWJlbD1cIkRhdGEgTcOtbmltYVwiIFtjb25maWd1cmF0aW9uXT1cImNvbmZpZ3VyYXRpb25cIj48L2lucHV0LWRhdGUtdGltZT5cclxuICAgICAgICAgICAgICA8aW5wdXQtZGF0ZS10aW1lIChjaGFuZ2UpPVwiQ2hhbmdlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsTWF4aW11bVwiIGxhYmVsPVwiRGF0YSBNYXhpbWFcIiBbY29uZmlndXJhdGlvbl09XCJjb25maWd1cmF0aW9uXCI+PC9pbnB1dC1kYXRlLXRpbWU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgPC9pb24tY2FyZD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1wb3BvdmVyPlxyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Component } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ /** Componente padrão para a invocação do DefaultView */
4
+ export class AbstractView {
5
+ ngOnInit() {
6
+ this.id = this.genericService.GetId(this.activatedRoute, 0);
7
+ }
8
+ static GetProvider(component) {
9
+ return [{ provide: AbstractView, useExisting: component }];
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractView, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AbstractView, selector: "ng-component", ngImport: i0, template: '', isInline: true, styles: [""] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractView, decorators: [{
15
+ type: Component,
16
+ args: [{ template: '' }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2Fic3RyYWN0LXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFNbEQsd0RBQXdEO0FBRXhELE1BQU0sT0FBZ0IsWUFBWTtJQU9oQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVM7UUFDakMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDOytHQWJtQixZQUFZO21HQUFaLFlBQVksb0RBRFgsRUFBRTs7NEZBQ0gsWUFBWTtrQkFEakMsU0FBUzsrQkFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZVwiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcGFkcsOjbyBwYXJhIGEgaW52b2Nhw6fDo28gZG8gRGVmYXVsdFZpZXcgKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJywgc3R5bGVzOiAnJyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RWaWV3PFQgZXh0ZW5kcyBIdHRwU2VydmljZT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBzZXJ2aWNlICAgICAgIDogVDtcclxuICBwdWJsaWMgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlO1xyXG4gIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XHJcbiAgXHJcbiAgcHVibGljIGlkOiBudW1iZXI7XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmljU2VydmljZS5HZXRJZCh0aGlzLmFjdGl2YXRlZFJvdXRlLCAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgR2V0UHJvdmlkZXIoY29tcG9uZW50KTogYW55W117XHJcbiAgICByZXR1cm4gW3sgcHJvdmlkZTogQWJzdHJhY3RWaWV3LCB1c2VFeGlzdGluZzogY29tcG9uZW50IH1dXHJcbiAgfVxyXG59XHJcbiJdfQ==