@sapphire-ion/framework 1.3.6 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/esm2022/lib/classes/comparison/comparison-operator.mjs +18 -0
  2. package/esm2022/lib/classes/comparison/comparison-value-type.mjs +25 -0
  3. package/esm2022/lib/classes/comparison/comparison.mjs +41 -0
  4. package/esm2022/lib/classes/comparison/properties/bool-property.mjs +15 -0
  5. package/esm2022/lib/classes/comparison/properties/date-property.mjs +27 -0
  6. package/esm2022/lib/classes/comparison/properties/datetime-property.mjs +27 -0
  7. package/esm2022/lib/classes/comparison/properties/decimal-property.mjs +27 -0
  8. package/esm2022/lib/classes/comparison/properties/enum-property.mjs +27 -0
  9. package/esm2022/lib/classes/comparison/properties/implicit-property.mjs +12 -0
  10. package/esm2022/lib/classes/comparison/properties/int-property.mjs +27 -0
  11. package/esm2022/lib/classes/comparison/properties/long-property.mjs +27 -0
  12. package/esm2022/lib/classes/comparison/properties/string-property.mjs +15 -0
  13. package/esm2022/lib/classes/comparison/properties/time-property.mjs +27 -0
  14. package/esm2022/lib/classes/credentials.mjs +2 -0
  15. package/esm2022/lib/classes/environment.mjs +34 -0
  16. package/esm2022/lib/classes/filters/view-filtros.mjs +18 -0
  17. package/esm2022/lib/classes/infinite-scroll.mjs +90 -0
  18. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +10 -0
  19. package/esm2022/lib/classes/inputs/table-field.mjs +79 -0
  20. package/esm2022/lib/classes/page-option.mjs +2 -0
  21. package/esm2022/lib/classes/routes/default-routing-factory.mjs +23 -0
  22. package/esm2022/lib/classes/routes/id-preloader-configuration.mjs +22 -0
  23. package/esm2022/lib/classes/routes/route-data.mjs +9 -0
  24. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +18 -0
  25. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +15 -0
  26. package/esm2022/lib/components/carousel/carousel.component.mjs +79 -0
  27. package/esm2022/lib/components/carousel/carousel.module.mjs +31 -0
  28. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +16 -0
  29. package/esm2022/lib/components/content-block/content-block.component.mjs +27 -0
  30. package/esm2022/lib/components/default/default-list/abstract-list.mjs +49 -0
  31. package/esm2022/lib/components/default/default-list/default-list.component.mjs +95 -0
  32. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +98 -0
  33. package/esm2022/lib/components/default/default-list/list.mjs +120 -0
  34. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +123 -0
  35. package/esm2022/lib/components/default/default-table/default-table.component.mjs +216 -0
  36. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +212 -0
  37. package/esm2022/lib/components/default/default-view/abstract-view.mjs +22 -0
  38. package/esm2022/lib/components/default/default-view/default-view.component.mjs +76 -0
  39. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +81 -0
  40. package/esm2022/lib/components/default/default-view/view.mjs +198 -0
  41. package/esm2022/lib/components/default/default.module.mjs +98 -0
  42. package/esm2022/lib/components/default-page/default.page.mjs +75 -0
  43. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +60 -0
  44. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +31 -0
  45. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +15 -0
  46. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +34 -0
  47. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +52 -0
  48. package/esm2022/lib/components/drawer/drawer.component.mjs +156 -0
  49. package/esm2022/lib/components/drawer/menu.mjs +15 -0
  50. package/esm2022/lib/components/filter/filter.component.mjs +145 -0
  51. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +17 -0
  52. package/esm2022/lib/components/image/image.component.mjs +91 -0
  53. package/esm2022/lib/components/info-popover/info-popover.component.mjs +91 -0
  54. package/esm2022/lib/components/inputs/custom-input.mjs +85 -0
  55. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +46 -0
  56. package/esm2022/lib/components/inputs/input-bool/input-bool.configuration.mjs +16 -0
  57. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +50 -0
  58. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +4 -0
  59. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +481 -0
  60. package/esm2022/lib/components/inputs/input-configuration.mjs +2 -0
  61. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +116 -0
  62. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.mjs +6 -0
  63. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +263 -0
  64. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +11 -0
  65. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +276 -0
  66. package/esm2022/lib/components/inputs/input-decimal/input-decimal.configuration.mjs +50 -0
  67. package/esm2022/lib/components/inputs/input-default-configurations.mjs +14 -0
  68. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +102 -0
  69. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +100 -0
  70. package/esm2022/lib/components/inputs/input-file/input-file.configuration.mjs +24 -0
  71. package/esm2022/lib/components/inputs/input-icon/fluenticons.mjs +3734 -0
  72. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +60 -0
  73. package/esm2022/lib/components/inputs/input-icon/ionicons.mjs +1360 -0
  74. package/esm2022/lib/components/inputs/input-provider-factory.mjs +12 -0
  75. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +16 -0
  76. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +16 -0
  77. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +16 -0
  78. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +376 -0
  79. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +233 -0
  80. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +41 -0
  81. package/esm2022/lib/components/inputs/input-string/input-string.configuration.mjs +20 -0
  82. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +74 -0
  83. package/esm2022/lib/components/inputs/input-telefone/input-telefone.configuration.mjs +12 -0
  84. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +82 -0
  85. package/esm2022/lib/components/inputs/input-textarea/input-textarea.configuration.mjs +7 -0
  86. package/esm2022/lib/components/inputs/input-type.mjs +24 -0
  87. package/esm2022/lib/components/inputs/input-validators.mjs +121 -0
  88. package/esm2022/lib/components/inputs/inputs.module.mjs +133 -0
  89. package/esm2022/lib/components/loading/loading.component.mjs +34 -0
  90. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +52 -0
  91. package/esm2022/lib/components/login/login.component.mjs +99 -0
  92. package/esm2022/lib/components/main-content/main-content.component.mjs +100 -0
  93. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +182 -0
  94. package/esm2022/lib/components/popover/sion-popover.module.mjs +21 -0
  95. package/esm2022/lib/components/sion-card/sion-card.component.mjs +26 -0
  96. package/esm2022/lib/components/stepper/step/step.component.mjs +43 -0
  97. package/esm2022/lib/components/stepper/stepper.component.mjs +36 -0
  98. package/esm2022/lib/components/stepper/stepper.module.mjs +25 -0
  99. package/esm2022/lib/components/tabs/tab/tab.component.mjs +41 -0
  100. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +56 -0
  101. package/esm2022/lib/components/tabs/tabs.module.mjs +22 -0
  102. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +51 -0
  103. package/esm2022/lib/components/tooltip/tooltip.component.mjs +21 -0
  104. package/esm2022/lib/core.module.mjs +38 -0
  105. package/esm2022/lib/directives/ng-var.directive.mjs +29 -0
  106. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  107. package/esm2022/lib/guards/error.interceptor.mjs +107 -0
  108. package/esm2022/lib/guards/token.interceptor.mjs +25 -0
  109. package/esm2022/lib/index.mjs +188 -0
  110. package/esm2022/lib/pipes/secure.pipe.mjs +42 -0
  111. package/esm2022/lib/services/auth.service.mjs +146 -0
  112. package/esm2022/lib/services/environment.service.mjs +26 -0
  113. package/esm2022/lib/services/generic.service.mjs +84 -0
  114. package/esm2022/lib/services/modal-focus-trap.service.mjs +62 -0
  115. package/esm2022/lib/services/navigation-context.service.mjs +111 -0
  116. package/esm2022/lib/services/popover-focus-trap.service.mjs +62 -0
  117. package/esm2022/lib/services/route/route.cache.service.mjs +15 -0
  118. package/esm2022/lib/services/route/route.provider.service.mjs +42 -0
  119. package/esm2022/lib/services/usuario.service.mjs +49 -0
  120. package/esm2022/lib/services/utils.service.mjs +190 -0
  121. package/esm2022/lib/services/web/api-url-provider.service.mjs +29 -0
  122. package/esm2022/lib/services/web/http.ativo.service.mjs +37 -0
  123. package/esm2022/lib/services/web/http.service.mjs +184 -0
  124. package/esm2022/lib/services/web/storage.service.mjs +186 -0
  125. package/esm2022/public-api.mjs +5 -0
  126. package/esm2022/sapphire-ion-framework.mjs +5 -0
  127. package/fesm2022/sapphire-ion-framework.mjs +12491 -0
  128. package/fesm2022/sapphire-ion-framework.mjs.map +1 -0
  129. package/index.d.ts +5 -0
  130. package/lib/classes/comparison/comparison-operator.d.ts +9 -0
  131. package/lib/classes/comparison/comparison-value-type.d.ts +23 -0
  132. package/lib/classes/comparison/comparison.d.ts +25 -0
  133. package/lib/classes/comparison/properties/bool-property.d.ts +7 -0
  134. package/lib/classes/comparison/properties/date-property.d.ts +11 -0
  135. package/lib/classes/comparison/properties/datetime-property.d.ts +11 -0
  136. package/lib/classes/comparison/properties/decimal-property.d.ts +11 -0
  137. package/lib/classes/comparison/properties/enum-property.d.ts +11 -0
  138. package/lib/classes/comparison/properties/implicit-property.d.ts +6 -0
  139. package/lib/classes/comparison/properties/int-property.d.ts +11 -0
  140. package/lib/classes/comparison/properties/long-property.d.ts +11 -0
  141. package/lib/classes/comparison/properties/string-property.d.ts +7 -0
  142. package/lib/classes/comparison/properties/time-property.d.ts +11 -0
  143. package/{src/lib/classes/credentials.ts → lib/classes/credentials.d.ts} +5 -5
  144. package/lib/classes/environment.d.ts +14 -0
  145. package/lib/classes/filters/view-filtros.d.ts +10 -0
  146. package/lib/classes/infinite-scroll.d.ts +26 -0
  147. package/lib/classes/inputs/table-field-form-builder.d.ts +5 -0
  148. package/lib/classes/inputs/table-field.d.ts +20 -0
  149. package/lib/classes/page-option.d.ts +7 -0
  150. package/lib/classes/routes/default-routing-factory.d.ts +8 -0
  151. package/lib/classes/routes/id-preloader-configuration.d.ts +28 -0
  152. package/lib/classes/routes/route-data.d.ts +5 -0
  153. package/lib/components/carousel/carousel-image/carousel-image.component.d.ts +10 -0
  154. package/lib/components/carousel/carousel-item/carousel-item.component.d.ts +9 -0
  155. package/lib/components/carousel/carousel.component.d.ts +32 -0
  156. package/lib/components/carousel/carousel.module.d.ts +12 -0
  157. package/lib/components/carousel/i-carousel-item.component.d.ts +9 -0
  158. package/lib/components/content-block/content-block.component.d.ts +15 -0
  159. package/lib/components/default/default-list/abstract-list.d.ts +21 -0
  160. package/lib/components/default/default-list/default-list.component.d.ts +47 -0
  161. package/lib/components/default/default-list/header-list/header-list.component.d.ts +45 -0
  162. package/lib/components/default/default-list/list.d.ts +40 -0
  163. package/lib/components/default/default-pagination/default-pagination.component.d.ts +36 -0
  164. package/lib/components/default/default-table/default-table.component.d.ts +90 -0
  165. package/lib/components/default/default-table/th-filter/th-filter.component.d.ts +23 -0
  166. package/lib/components/default/default-view/abstract-view.d.ts +18 -0
  167. package/lib/components/default/default-view/default-view.component.d.ts +40 -0
  168. package/lib/components/default/default-view/header-view/header-view.component.d.ts +36 -0
  169. package/lib/components/default/default-view/view.d.ts +67 -0
  170. package/lib/components/default/default.module.d.ts +31 -0
  171. package/lib/components/default-page/default.page.d.ts +35 -0
  172. package/lib/components/drag-drop-file/drag-drop-file.directive.d.ts +14 -0
  173. package/lib/components/drag-drop-file/drag-drop-file.module.d.ts +10 -0
  174. package/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.d.ts +9 -0
  175. package/lib/components/drawer/default-drawer-end/default-drawer-end.component.d.ts +13 -0
  176. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +22 -0
  177. package/lib/components/drawer/drawer.component.d.ts +31 -0
  178. package/lib/components/drawer/menu.d.ts +9 -0
  179. package/lib/components/filter/filter.component.d.ts +29 -0
  180. package/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.d.ts +8 -0
  181. package/lib/components/image/image.component.d.ts +23 -0
  182. package/lib/components/info-popover/info-popover.component.d.ts +15 -0
  183. package/lib/components/inputs/custom-input.d.ts +40 -0
  184. package/lib/components/inputs/input-bool/input-bool.component.d.ts +16 -0
  185. package/lib/components/inputs/input-bool/input-bool.configuration.d.ts +17 -0
  186. package/lib/components/inputs/input-cep/input-cep.component.d.ts +18 -0
  187. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +3 -0
  188. package/lib/components/inputs/input-color/input-color.component.d.ts +77 -0
  189. package/{src/lib/components/inputs/input-configuration.ts → lib/components/inputs/input-configuration.d.ts} +10 -23
  190. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +19 -0
  191. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.d.ts +5 -0
  192. package/lib/components/inputs/input-date/input-date.component.d.ts +61 -0
  193. package/lib/components/inputs/input-date/input-date.configuration.d.ts +11 -0
  194. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +27 -0
  195. package/lib/components/inputs/input-decimal/input-decimal.configuration.d.ts +28 -0
  196. package/lib/components/inputs/input-default-configurations.d.ts +13 -0
  197. package/lib/components/inputs/input-file/download-button/download-button.component.d.ts +40 -0
  198. package/lib/components/inputs/input-file/input-file.component.d.ts +28 -0
  199. package/lib/components/inputs/input-file/input-file.configuration.d.ts +8 -0
  200. package/lib/components/inputs/input-icon/fluenticons.d.ts +1 -0
  201. package/lib/components/inputs/input-icon/input-icon.component.d.ts +20 -0
  202. package/lib/components/inputs/input-icon/ionicons.d.ts +1 -0
  203. package/lib/components/inputs/input-provider-factory.d.ts +4 -0
  204. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +18 -0
  205. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +14 -0
  206. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +18 -0
  207. package/lib/components/inputs/input-select/input-select.component.d.ts +83 -0
  208. package/lib/components/inputs/input-select/input.select.configuration.d.ts +127 -0
  209. package/lib/components/inputs/input-string/input-string.component.d.ts +14 -0
  210. package/lib/components/inputs/input-string/input-string.configuration.d.ts +15 -0
  211. package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +19 -0
  212. package/lib/components/inputs/input-telefone/input-telefone.configuration.d.ts +9 -0
  213. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +17 -0
  214. package/lib/components/inputs/input-textarea/input-textarea.configuration.d.ts +4 -0
  215. package/lib/components/inputs/input-type.d.ts +22 -0
  216. package/lib/components/inputs/input-validators.d.ts +25 -0
  217. package/lib/components/inputs/inputs.module.d.ts +33 -0
  218. package/lib/components/loading/loading.component.d.ts +18 -0
  219. package/lib/components/login/login-admin/login-admin.component.d.ts +20 -0
  220. package/lib/components/login/login.component.d.ts +29 -0
  221. package/lib/components/main-content/main-content.component.d.ts +27 -0
  222. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +43 -0
  223. package/lib/components/popover/sion-popover.module.d.ts +9 -0
  224. package/lib/components/sion-card/sion-card.component.d.ts +11 -0
  225. package/lib/components/stepper/step/step.component.d.ts +15 -0
  226. package/lib/components/stepper/stepper.component.d.ts +14 -0
  227. package/lib/components/stepper/stepper.module.d.ts +10 -0
  228. package/lib/components/tabs/tab/tab.component.d.ts +19 -0
  229. package/lib/components/tabs/tabs/tabs.component.d.ts +18 -0
  230. package/lib/components/tabs/tabs.module.d.ts +12 -0
  231. package/lib/components/text-tooltip/text-tooltip.component.d.ts +16 -0
  232. package/lib/components/tooltip/tooltip.component.d.ts +7 -0
  233. package/lib/core.module.d.ts +16 -0
  234. package/lib/directives/ng-var.directive.d.ts +12 -0
  235. package/lib/guards/auth.guard.d.ts +11 -0
  236. package/lib/guards/error.interceptor.d.ts +32 -0
  237. package/lib/guards/token.interceptor.d.ts +11 -0
  238. package/lib/index.d.ts +118 -0
  239. package/lib/pipes/secure.pipe.d.ts +15 -0
  240. package/lib/services/auth.service.d.ts +47 -0
  241. package/lib/services/environment.service.d.ts +10 -0
  242. package/lib/services/generic.service.d.ts +22 -0
  243. package/lib/services/modal-focus-trap.service.d.ts +13 -0
  244. package/lib/services/navigation-context.service.d.ts +14 -0
  245. package/lib/services/popover-focus-trap.service.d.ts +13 -0
  246. package/lib/services/route/route.cache.service.d.ts +7 -0
  247. package/lib/services/route/route.provider.service.d.ts +13 -0
  248. package/lib/services/usuario.service.d.ts +21 -0
  249. package/lib/services/utils.service.d.ts +53 -0
  250. package/lib/services/web/api-url-provider.service.d.ts +13 -0
  251. package/lib/services/web/http.ativo.service.d.ts +20 -0
  252. package/lib/services/web/http.service.d.ts +59 -0
  253. package/lib/services/web/storage.service.d.ts +46 -0
  254. package/package.json +47 -43
  255. package/public-api.d.ts +1 -0
  256. package/build.ps1 +0 -39
  257. package/ng-package.json +0 -10
  258. package/src/lib/classes/comparison/comparison-operator.ts +0 -17
  259. package/src/lib/classes/comparison/comparison-value-type.ts +0 -34
  260. package/src/lib/classes/comparison/comparison.ts +0 -45
  261. package/src/lib/classes/comparison/properties/bool-property.ts +0 -16
  262. package/src/lib/classes/comparison/properties/date-property.ts +0 -28
  263. package/src/lib/classes/comparison/properties/datetime-property.ts +0 -28
  264. package/src/lib/classes/comparison/properties/decimal-property.ts +0 -28
  265. package/src/lib/classes/comparison/properties/enum-property.ts +0 -28
  266. package/src/lib/classes/comparison/properties/implicit-property.ts +0 -13
  267. package/src/lib/classes/comparison/properties/int-property.ts +0 -28
  268. package/src/lib/classes/comparison/properties/long-property.ts +0 -28
  269. package/src/lib/classes/comparison/properties/string-property.ts +0 -16
  270. package/src/lib/classes/comparison/properties/time-property.ts +0 -28
  271. package/src/lib/classes/environment.ts +0 -37
  272. package/src/lib/classes/filters/view-filtros.ts +0 -18
  273. package/src/lib/classes/infinite-scroll.ts +0 -112
  274. package/src/lib/classes/inputs/table-field-form-builder.ts +0 -12
  275. package/src/lib/classes/inputs/table-field.ts +0 -62
  276. package/src/lib/classes/page-option.ts +0 -8
  277. package/src/lib/classes/routes/default-routing-factory.ts +0 -24
  278. package/src/lib/classes/routes/id-preloader-configuration.ts +0 -21
  279. package/src/lib/classes/routes/route-data.ts +0 -9
  280. package/src/lib/components/carousel/carousel-image/carousel-image.component.html +0 -4
  281. package/src/lib/components/carousel/carousel-image/carousel-image.component.ts +0 -15
  282. package/src/lib/components/carousel/carousel-item/carousel-item.component.html +0 -3
  283. package/src/lib/components/carousel/carousel-item/carousel-item.component.ts +0 -14
  284. package/src/lib/components/carousel/carousel.component.html +0 -22
  285. package/src/lib/components/carousel/carousel.component.ts +0 -83
  286. package/src/lib/components/carousel/carousel.module.ts +0 -20
  287. package/src/lib/components/carousel/i-carousel-item.component.ts +0 -8
  288. package/src/lib/components/content-block/content-block.component.html +0 -6
  289. package/src/lib/components/content-block/content-block.component.ts +0 -25
  290. package/src/lib/components/default/default-list/abstract-list.ts +0 -56
  291. package/src/lib/components/default/default-list/default-list.component.html +0 -60
  292. package/src/lib/components/default/default-list/default-list.component.ts +0 -72
  293. package/src/lib/components/default/default-list/header-list/header-list.component.html +0 -32
  294. package/src/lib/components/default/default-list/header-list/header-list.component.ts +0 -85
  295. package/src/lib/components/default/default-list/list.ts +0 -127
  296. package/src/lib/components/default/default-pagination/default-pagination.component.html +0 -52
  297. package/src/lib/components/default/default-pagination/default-pagination.component.ts +0 -118
  298. package/src/lib/components/default/default-table/default-table.component.html +0 -104
  299. package/src/lib/components/default/default-table/default-table.component.ts +0 -255
  300. package/src/lib/components/default/default-table/th-filter/th-filter.component.html +0 -69
  301. package/src/lib/components/default/default-table/th-filter/th-filter.component.ts +0 -205
  302. package/src/lib/components/default/default-view/abstract-view.ts +0 -25
  303. package/src/lib/components/default/default-view/default-view.component.html +0 -111
  304. package/src/lib/components/default/default-view/default-view.component.ts +0 -56
  305. package/src/lib/components/default/default-view/header-view/header-view.component.html +0 -64
  306. package/src/lib/components/default/default-view/header-view/header-view.component.ts +0 -62
  307. package/src/lib/components/default/default-view/view.ts +0 -195
  308. package/src/lib/components/default/default.module.ts +0 -61
  309. package/src/lib/components/default-page/default.page.html +0 -63
  310. package/src/lib/components/default-page/default.page.ts +0 -84
  311. package/src/lib/components/drag-drop-file/drag-drop-file.directive.ts +0 -44
  312. package/src/lib/components/drag-drop-file/drag-drop-file.module.ts +0 -21
  313. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html +0 -5
  314. package/src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts +0 -17
  315. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html +0 -12
  316. package/src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts +0 -35
  317. package/src/lib/components/drawer/drawer-group/drawer-group.component.html +0 -79
  318. package/src/lib/components/drawer/drawer-group/drawer-group.component.ts +0 -49
  319. package/src/lib/components/drawer/drawer.component.html +0 -120
  320. package/src/lib/components/drawer/drawer.component.ts +0 -157
  321. package/src/lib/components/drawer/menu.ts +0 -20
  322. package/src/lib/components/filter/filter.component.html +0 -43
  323. package/src/lib/components/filter/filter.component.ts +0 -141
  324. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html +0 -35
  325. package/src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts +0 -19
  326. package/src/lib/components/image/image.component.html +0 -17
  327. package/src/lib/components/image/image.component.ts +0 -95
  328. package/src/lib/components/info-popover/info-popover.component.html +0 -23
  329. package/src/lib/components/info-popover/info-popover.component.ts +0 -75
  330. package/src/lib/components/inputs/custom-input.ts +0 -94
  331. package/src/lib/components/inputs/input-bool/input-bool.component.html +0 -26
  332. package/src/lib/components/inputs/input-bool/input-bool.component.ts +0 -39
  333. package/src/lib/components/inputs/input-bool/input-bool.configuration.ts +0 -14
  334. package/src/lib/components/inputs/input-cep/input-cep.component.html +0 -27
  335. package/src/lib/components/inputs/input-cep/input-cep.component.ts +0 -41
  336. package/src/lib/components/inputs/input-cep/input-cep.configuration.ts +0 -4
  337. package/src/lib/components/inputs/input-color/input-color.component.html +0 -79
  338. package/src/lib/components/inputs/input-color/input-color.component.ts +0 -544
  339. package/src/lib/components/inputs/input-color/input-color.configuration.ts +0 -0
  340. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html +0 -28
  341. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts +0 -99
  342. package/src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts +0 -4
  343. package/src/lib/components/inputs/input-date/input-date.component.html +0 -89
  344. package/src/lib/components/inputs/input-date/input-date.component.ts +0 -269
  345. package/src/lib/components/inputs/input-date/input-date.configuration.ts +0 -8
  346. package/src/lib/components/inputs/input-decimal/input-decimal.component.html +0 -32
  347. package/src/lib/components/inputs/input-decimal/input-decimal.component.ts +0 -283
  348. package/src/lib/components/inputs/input-decimal/input-decimal.configuration.ts +0 -47
  349. package/src/lib/components/inputs/input-default-configurations.ts +0 -15
  350. package/src/lib/components/inputs/input-file/download-button/download-button.component.html +0 -56
  351. package/src/lib/components/inputs/input-file/download-button/download-button.component.ts +0 -91
  352. package/src/lib/components/inputs/input-file/input-file.component.html +0 -56
  353. package/src/lib/components/inputs/input-file/input-file.component.ts +0 -97
  354. package/src/lib/components/inputs/input-file/input-file.configuration.ts +0 -25
  355. package/src/lib/components/inputs/input-icon/fluenticons.ts +0 -3733
  356. package/src/lib/components/inputs/input-icon/input-icon.component.html +0 -8
  357. package/src/lib/components/inputs/input-icon/input-icon.component.ts +0 -52
  358. package/src/lib/components/inputs/input-icon/ionicons.ts +0 -1359
  359. package/src/lib/components/inputs/input-provider-factory.ts +0 -12
  360. package/src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts +0 -19
  361. package/src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts +0 -16
  362. package/src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts +0 -19
  363. package/src/lib/components/inputs/input-select/input-select.component.html +0 -176
  364. package/src/lib/components/inputs/input-select/input-select.component.ts +0 -366
  365. package/src/lib/components/inputs/input-select/input.select.configuration.ts +0 -300
  366. package/src/lib/components/inputs/input-string/input-string.component.html +0 -27
  367. package/src/lib/components/inputs/input-string/input-string.component.ts +0 -31
  368. package/src/lib/components/inputs/input-string/input-string.configuration.ts +0 -20
  369. package/src/lib/components/inputs/input-telefone/input-telefone.component.html +0 -29
  370. package/src/lib/components/inputs/input-telefone/input-telefone.component.ts +0 -63
  371. package/src/lib/components/inputs/input-telefone/input-telefone.configuration.ts +0 -8
  372. package/src/lib/components/inputs/input-textarea/input-textarea.component.html +0 -27
  373. package/src/lib/components/inputs/input-textarea/input-textarea.component.ts +0 -75
  374. package/src/lib/components/inputs/input-textarea/input-textarea.configuration.ts +0 -7
  375. package/src/lib/components/inputs/input-type.ts +0 -22
  376. package/src/lib/components/inputs/input-validators.ts +0 -111
  377. package/src/lib/components/inputs/inputs.module.ts +0 -74
  378. package/src/lib/components/loading/loading.component.html +0 -28
  379. package/src/lib/components/loading/loading.component.ts +0 -29
  380. package/src/lib/components/login/login-admin/login-admin.component.html +0 -28
  381. package/src/lib/components/login/login-admin/login-admin.component.ts +0 -51
  382. package/src/lib/components/login/login.component.html +0 -104
  383. package/src/lib/components/login/login.component.ts +0 -96
  384. package/src/lib/components/main-content/main-content.component.html +0 -145
  385. package/src/lib/components/main-content/main-content.component.ts +0 -93
  386. package/src/lib/components/popover/sion-popover/sion-popover.component.html +0 -21
  387. package/src/lib/components/popover/sion-popover/sion-popover.component.ts +0 -182
  388. package/src/lib/components/popover/sion-popover.module.ts +0 -12
  389. package/src/lib/components/sion-card/sion-card.component.html +0 -12
  390. package/src/lib/components/sion-card/sion-card.component.ts +0 -23
  391. package/src/lib/components/stepper/step/step.component.html +0 -11
  392. package/src/lib/components/stepper/step/step.component.ts +0 -44
  393. package/src/lib/components/stepper/stepper.component.html +0 -3
  394. package/src/lib/components/stepper/stepper.component.ts +0 -37
  395. package/src/lib/components/stepper/stepper.module.ts +0 -15
  396. package/src/lib/components/tabs/tab/tab.component.html +0 -8
  397. package/src/lib/components/tabs/tab/tab.component.ts +0 -28
  398. package/src/lib/components/tabs/tabs/tabs.component.html +0 -14
  399. package/src/lib/components/tabs/tabs/tabs.component.ts +0 -42
  400. package/src/lib/components/tabs/tabs.module.ts +0 -15
  401. package/src/lib/components/text-tooltip/text-tooltip.component.html +0 -8
  402. package/src/lib/components/text-tooltip/text-tooltip.component.ts +0 -45
  403. package/src/lib/components/tooltip/tooltip.component.html +0 -53
  404. package/src/lib/components/tooltip/tooltip.component.ts +0 -16
  405. package/src/lib/core.module.ts +0 -29
  406. package/src/lib/directives/ng-var.directive.ts +0 -26
  407. package/src/lib/guards/auth.guard.ts +0 -19
  408. package/src/lib/guards/error.interceptor.ts +0 -108
  409. package/src/lib/guards/token.interceptor.ts +0 -28
  410. package/src/lib/index.ts +0 -191
  411. package/src/lib/pipes/secure.pipe.ts +0 -39
  412. package/src/lib/services/auth.service.ts +0 -150
  413. package/src/lib/services/crypto.service.ts +0 -164
  414. package/src/lib/services/environment.service.ts +0 -17
  415. package/src/lib/services/generic.service.ts +0 -85
  416. package/src/lib/services/modal-focus-trap.service.ts +0 -65
  417. package/src/lib/services/navigation-context.service.ts +0 -121
  418. package/src/lib/services/popover-focus-trap.service.ts +0 -65
  419. package/src/lib/services/route/route.cache.service.ts +0 -17
  420. package/src/lib/services/route/route.provider.service.ts +0 -49
  421. package/src/lib/services/usuario.service.ts +0 -44
  422. package/src/lib/services/utils.service.ts +0 -216
  423. package/src/lib/services/web/api-url-provider.service.ts +0 -48
  424. package/src/lib/services/web/http.ativo.service.ts +0 -37
  425. package/src/lib/services/web/http.service.ts +0 -206
  426. package/src/lib/services/web/storage.service.ts +0 -210
  427. package/src/public-api.ts +0 -5
  428. package/tailwind.config.js +0 -27
  429. package/tsconfig.lib.json +0 -29
  430. package/tsconfig.lib.prod.json +0 -23
  431. package/tsconfig.spec.json +0 -27
  432. /package/{src/lib → themes}/compiled-styles.scss +0 -0
  433. /package/{src/lib → themes}/components/carousel/carousel-image/carousel-image.component.scss +0 -0
  434. /package/{src/lib → themes}/components/carousel/carousel-item/carousel-item.component.scss +0 -0
  435. /package/{src/lib → themes}/components/carousel/carousel.component.scss +0 -0
  436. /package/{src/lib → themes}/components/content-block/content-block.component.scss +0 -0
  437. /package/{src/lib → themes}/components/default/default-list/default-list.component.scss +0 -0
  438. /package/{src/lib → themes}/components/default/default-list/header-list/header-list.component.scss +0 -0
  439. /package/{src/lib → themes}/components/default/default-pagination/default-pagination.component.scss +0 -0
  440. /package/{src/lib → themes}/components/default/default-table/default-table.component.scss +0 -0
  441. /package/{src/lib → themes}/components/default/default-table/th-filter/th-filter.component.scss +0 -0
  442. /package/{src/lib → themes}/components/default/default-view/default-view.component.scss +0 -0
  443. /package/{src/lib → themes}/components/default/default-view/header-view/header-view.component.scss +0 -0
  444. /package/{src/lib → themes}/components/default-page/default.page.scss +0 -0
  445. /package/{src/lib → themes}/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.scss +0 -0
  446. /package/{src/lib → themes}/components/drawer/default-drawer-end/default-drawer-end.component.scss +0 -0
  447. /package/{src/lib → themes}/components/drawer/drawer-group/drawer-group.component.scss +0 -0
  448. /package/{src/lib → themes}/components/drawer/drawer.component.scss +0 -0
  449. /package/{src/lib → themes}/components/filter/filter.component.scss +0 -0
  450. /package/{src/lib → themes}/components/http-responses-pages/forbidden-403/forbidden-403.component.scss +0 -0
  451. /package/{src/lib → themes}/components/image/image.component.scss +0 -0
  452. /package/{src/lib → themes}/components/info-popover/info-popover.component.scss +0 -0
  453. /package/{src/lib → themes}/components/inputs/input-bool/input-bool.component.scss +0 -0
  454. /package/{src/lib → themes}/components/inputs/input-cep/input-cep.component.scss +0 -0
  455. /package/{src/lib → themes}/components/inputs/input-color/input-color.component.scss +0 -0
  456. /package/{src/lib → themes}/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.scss +0 -0
  457. /package/{src/lib → themes}/components/inputs/input-date/input-date.component.scss +0 -0
  458. /package/{src/lib → themes}/components/inputs/input-decimal/input-decimal.component.scss +0 -0
  459. /package/{src/lib → themes}/components/inputs/input-file/download-button/download-button.component.scss +0 -0
  460. /package/{src/lib → themes}/components/inputs/input-file/input-file.component.scss +0 -0
  461. /package/{src/lib → themes}/components/inputs/input-icon/input-icon.component.scss +0 -0
  462. /package/{src/lib → themes}/components/inputs/input-select/input-select.component.scss +0 -0
  463. /package/{src/lib → themes}/components/inputs/input-string/input-string.component.scss +0 -0
  464. /package/{src/lib → themes}/components/inputs/input-telefone/input-telefone.component.scss +0 -0
  465. /package/{src/lib → themes}/components/inputs/input-textarea/input-textarea.component.scss +0 -0
  466. /package/{src/lib → themes}/components/inputs/inputs.scss +0 -0
  467. /package/{src/lib → themes}/components/loading/loading.component.scss +0 -0
  468. /package/{src/lib → themes}/components/login/login-admin/login-admin.component.scss +0 -0
  469. /package/{src/lib → themes}/components/login/login.component.scss +0 -0
  470. /package/{src/lib → themes}/components/main-content/main-content.component.scss +0 -0
  471. /package/{src/lib → themes}/components/popover/sion-popover/sion-popover.component.scss +0 -0
  472. /package/{src/lib → themes}/components/sion-card/sion-card.component.scss +0 -0
  473. /package/{src/lib → themes}/components/stepper/step/step.component.scss +0 -0
  474. /package/{src/lib → themes}/components/stepper/stepper.component.scss +0 -0
  475. /package/{src/lib → themes}/components/tabs/tab/tab.component.scss +0 -0
  476. /package/{src/lib → themes}/components/tabs/tabs/tabs.component.scss +0 -0
  477. /package/{src/lib → themes}/components/text-tooltip/text-tooltip.component.scss +0 -0
  478. /package/{src/lib → themes}/components/tooltip/tooltip.component.scss +0 -0
  479. /package/{src/lib → themes}/styles/components.scss +0 -0
  480. /package/{src/lib → themes}/styles/core.styles.scss +0 -0
  481. /package/{src/lib → themes}/styles/ionic/ion-action-sheet.scss +0 -0
  482. /package/{src/lib → themes}/styles/ionic/ion-alert.scss +0 -0
  483. /package/{src/lib → themes}/styles/ionic/ion-button.scss +0 -0
  484. /package/{src/lib → themes}/styles/ionic/ion-card.scss +0 -0
  485. /package/{src/lib → themes}/styles/ionic/ion-content.scss +0 -0
  486. /package/{src/lib → themes}/styles/ionic/ion-datetime.scss +0 -0
  487. /package/{src/lib → themes}/styles/ionic/ion-item.scss +0 -0
  488. /package/{src/lib → themes}/styles/ionic/ion-list.scss +0 -0
  489. /package/{src/lib → themes}/styles/ionic/ion-modal.scss +0 -0
  490. /package/{src/lib → themes}/styles/ionic/ion-popover.scss +0 -0
  491. /package/{src/lib → themes}/styles/ionic/ion-progress-bar.scss +0 -0
  492. /package/{src/lib → themes}/styles/ionic/ion-searchbar.scss +0 -0
  493. /package/{src/lib → themes}/styles/ionic/ion-toast.scss +0 -0
  494. /package/{src/lib → themes}/styles/ionic.scss +0 -0
  495. /package/{src/lib → themes}/styles/login-default.scss +0 -0
  496. /package/{src/lib → themes}/styles/mixins.scss +0 -0
  497. /package/{src/lib → themes}/styles/styles.scss +0 -0
  498. /package/{src/lib → themes}/styles/translucid.scss +0 -0
@@ -0,0 +1,190 @@
1
+ import { ActionSheetController } from '@ionic/angular';
2
+ import { FilePicker } from '@capawesome/capacitor-file-picker';
3
+ import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
4
+ import { Injectable } from '@angular/core';
5
+ import moment from 'moment';
6
+ import { Buffer } from 'buffer';
7
+ import mime from 'mime';
8
+ import { Capacitor } from '@capacitor/core';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ionic/angular";
11
+ export class UtilsService {
12
+ constructor(actionSheetController) {
13
+ this.actionSheetController = actionSheetController;
14
+ }
15
+ /** Retorna um array de arquivos de acordo com o tipo de configutação */
16
+ async SelectFile(configuration) {
17
+ let SelectType;
18
+ (function (SelectType) {
19
+ SelectType[SelectType["camera"] = 1] = "camera";
20
+ SelectType[SelectType["galery"] = 2] = "galery";
21
+ SelectType[SelectType["file"] = 3] = "file";
22
+ SelectType[SelectType["deny"] = 4] = "deny";
23
+ })(SelectType || (SelectType = {}));
24
+ const btnCamera = { text: 'Câmera', icon: 'camera', data: SelectType.camera };
25
+ const btnGalery = { text: 'Galeria', icon: 'image', data: SelectType.galery };
26
+ const btnFile = { text: 'Selecionar Arquivo', icon: 'document', data: SelectType.file };
27
+ const btnDeny = { text: 'Cancelar', icon: 'close-circle', data: SelectType.deny, role: 'cancel', };
28
+ const isApp = (!document.URL.startsWith('http') || document.URL.startsWith('http://localhost:8080'));
29
+ var lstBtn = [];
30
+ if (isApp) {
31
+ lstBtn.push(btnCamera);
32
+ lstBtn.push(btnGalery);
33
+ }
34
+ lstBtn.push(btnFile);
35
+ lstBtn.push(btnDeny);
36
+ var res;
37
+ if (lstBtn.length > 2) {
38
+ const actionSheet = await this.actionSheetController.create({ buttons: lstBtn });
39
+ actionSheet.present();
40
+ res = await actionSheet.onDidDismiss();
41
+ }
42
+ else {
43
+ res = { role: 'confirm', data: lstBtn[0].data };
44
+ }
45
+ if (['backdrop', 'cancel'].includes(res.role)) {
46
+ return;
47
+ }
48
+ if ([SelectType.camera, SelectType.galery].includes(res.data)) {
49
+ const Source = res.data == SelectType.camera ? CameraSource.Camera : CameraSource.Photos;
50
+ //const photo = await Camera.getPhoto({ resultType: CameraResultType.Uri, source: Source, quality: 100 });
51
+ console.error("[ TODO ]");
52
+ return null;
53
+ }
54
+ else {
55
+ const res = FilePicker.pickFiles({ types: configuration.types, limit: 1 });
56
+ const files = (await res).files;
57
+ return files.map(p => p.blob)[0];
58
+ }
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, deps: [{ token: i1.ActionSheetController }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, decorators: [{
64
+ type: Injectable,
65
+ args: [{
66
+ providedIn: 'root'
67
+ }]
68
+ }], ctorParameters: () => [{ type: i1.ActionSheetController }] });
69
+ export class Utils {
70
+ /** Converte de unix para Date object */
71
+ static UNIXToDate(unix_timestamp) {
72
+ var date = new Date(unix_timestamp * 1000);
73
+ return date;
74
+ }
75
+ /**
76
+ * @param DateStr - Date on ISO format, e.g:
77
+ * [ 2010-10-05T14:48:00.000Z ]
78
+ * @returns Date on format DD/MM/YYYY
79
+ */
80
+ static DateISOToDDMMYYYYHHMM(iso, onInvalidDateString = '-') {
81
+ if (!iso) {
82
+ return onInvalidDateString;
83
+ }
84
+ return moment(iso).format("DD/MM/YYYY HH:mm");
85
+ }
86
+ /**
87
+ * @param iso - Date on ISO format, e.g:
88
+ * [ 2010-10-05T14:48:00.000Z ]
89
+ * @returns Date on format DD/MM/YYYY
90
+ */
91
+ static DateISOToDDMMYYYY(iso, onInvalidDateString = '-') {
92
+ if (!iso) {
93
+ return onInvalidDateString;
94
+ }
95
+ return moment(iso).format("DD/MM/YYYY");
96
+ }
97
+ static GenerateGUID() {
98
+ return 'id-xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
99
+ var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
100
+ return v.toString(16);
101
+ });
102
+ }
103
+ /**
104
+ * @param file: base64 | Blob
105
+ */
106
+ static async DownloadFile(file, fileName) {
107
+ var blob = null;
108
+ if (!(file instanceof Blob)) {
109
+ blob = await Utils.Base64ToBlob(file, Utils.FindMimeFromNameOrExtension(fileName));
110
+ }
111
+ else {
112
+ blob = file;
113
+ }
114
+ var fileURL = URL.createObjectURL(blob);
115
+ const linkElement = document.createElement("a");
116
+ linkElement.setAttribute("href", fileURL);
117
+ linkElement.setAttribute("target", "_blank");
118
+ linkElement.setAttribute("download", fileName);
119
+ let me = new MouseEvent("click", {
120
+ view: window,
121
+ bubbles: true,
122
+ cancelable: false,
123
+ });
124
+ linkElement.dispatchEvent(me);
125
+ }
126
+ static async BlobToBase64(blob) {
127
+ const ab = await blob.arrayBuffer();
128
+ return Buffer.from(ab).toString("base64");
129
+ }
130
+ static async Base64ToBlob(base64, mimeType) {
131
+ return new Blob([Buffer.from(base64, "base64")], { type: mimeType });
132
+ }
133
+ static async GetPhoto(params) {
134
+ const quality = params?.quality || 70;
135
+ const source = params?.source || CameraSource.Camera;
136
+ const ph = await Camera.getPhoto({
137
+ resultType: CameraResultType.Uri,
138
+ source: source,
139
+ quality: quality
140
+ });
141
+ const file = await fetch(ph.webPath);
142
+ const blob = await file.blob();
143
+ return { blob, fileName: ph.path.split('/').at(-1) };
144
+ }
145
+ static async PickFile(options) {
146
+ const Pick = await FilePicker.pickFiles(options);
147
+ let lstBlob = Pick.files.map(async (vFile) => {
148
+ let blob = null;
149
+ if (Capacitor.isNativePlatform()) {
150
+ blob = new Blob([await (await fetch(Capacitor.convertFileSrc(vFile.path))).blob()], { type: vFile.mimeType });
151
+ }
152
+ else {
153
+ blob = vFile.blob;
154
+ }
155
+ return {
156
+ blob,
157
+ mimeType: vFile.mimeType,
158
+ name: vFile.name,
159
+ size: vFile.size,
160
+ };
161
+ });
162
+ return Promise.all(lstBlob);
163
+ }
164
+ static FindMimeFromNameOrExtension(pathOrExtension) {
165
+ return mime.getType(pathOrExtension) || 'application/octet-stream';
166
+ }
167
+ }
168
+ export function Search(items, Search, bindLabel) {
169
+ return items.filter(p => bindLabel(p)?.toLowerCase().includes(Search.toLowerCase()));
170
+ }
171
+ export function Timeout(timeout) {
172
+ return new Promise(resolve => setTimeout(resolve, timeout));
173
+ }
174
+ //[ Base 64 ]
175
+ function DecodeBase64(b64) {
176
+ return JSON.parse(Buffer.from(b64, 'base64').toString('utf-8'));
177
+ }
178
+ function DecodeBase64AsString(b64) {
179
+ return Buffer.from(b64, 'base64').toString('utf-8');
180
+ }
181
+ function EncodeBase64(obj) {
182
+ if (typeof obj == "object") {
183
+ return Buffer.from(JSON.stringify(obj)).toString('base64');
184
+ }
185
+ else if (typeof obj == "string") {
186
+ return Buffer.from(obj).toString('base64');
187
+ }
188
+ }
189
+ export const INT_MAX = 2_147_483_646;
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBaUQsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RyxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBSzVDLE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQW9CLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQ2hFLENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFxQztRQUNwRCxJQUFLLFVBS0o7UUFMRCxXQUFLLFVBQVU7WUFDYiwrQ0FBVSxDQUFBO1lBQ1YsK0NBQVUsQ0FBQTtZQUNWLDJDQUFVLENBQUE7WUFDViwyQ0FBVSxDQUFBO1FBQ1osQ0FBQyxFQUxJLFVBQVUsS0FBVixVQUFVLFFBS2Q7UUFFRCxNQUFNLFNBQVMsR0FBc0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFjLElBQUksRUFBRSxRQUFRLEVBQVEsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNsSCxNQUFNLFNBQVMsR0FBc0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFhLElBQUksRUFBRSxPQUFP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YixTQUFTLFlBQVksQ0FBSSxHQUFXO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxHQUFXO0lBQ3ZDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFpQjtJQUNyQyxJQUFHLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBQyxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FFRCxJQUFHLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBQyxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uU2hlZXRCdXR0b24sIEFjdGlvblNoZWV0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRmlsZVBpY2tlciwgUGlja0ZpbGVzUmVzdWx0LCBQaWNrZWRGaWxlLCBQaWNrRmlsZXNPcHRpb25zIH0gZnJvbSAnQGNhcGF3ZXNvbWUvY2FwYWNpdG9yLWZpbGUtcGlja2VyJztcclxuaW1wb3J0IHsgQ2FtZXJhLCBDYW1lcmFSZXN1bHRUeXBlLCBDYW1lcmFTb3VyY2UgfSBmcm9tICdAY2FwYWNpdG9yL2NhbWVyYSc7XHJcbmltcG9ydCB7IE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XHJcbmltcG9ydCBtaW1lIGZyb20gJ21pbWUnO1xyXG5pbXBvcnQgeyBJbnB1dEZpbGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBDYXBhY2l0b3IgfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNle1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvblNoZWV0Q29udHJvbGxlcjogQWN0aW9uU2hlZXRDb250cm9sbGVyKSB7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB1bSBhcnJheSBkZSBhcnF1aXZvcyBkZSBhY29yZG8gY29tIG8gdGlwbyBkZSBjb25maWd1dGHDp8OjbyAqL1xyXG4gIGFzeW5jIFNlbGVjdEZpbGUoY29uZmlndXJhdGlvbjogSW5wdXRGaWxlQ29uZmlndXJhdGlvbik6IFByb21pc2U8RmlsZT57XHJcbiAgICBlbnVtIFNlbGVjdFR5cGUge1xyXG4gICAgICBjYW1lcmEgPSAxLFxyXG4gICAgICBnYWxlcnkgPSAyLFxyXG4gICAgICBmaWxlICAgPSAzLFxyXG4gICAgICBkZW55ICAgPSA0LFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJ0bkNhbWVyYTogQWN0aW9uU2hlZXRCdXR0b24gPSB7IHRleHQ6ICdDw6JtZXJhJyAgICAgICAgICAgICwgaWNvbjogJ2NhbWVyYScgICAgICAsIGRhdGE6IFNlbGVjdFR5cGUuY2FtZXJhIH1cclxuICAgIGNvbnN0IGJ0bkdhbGVyeTogQWN0aW9uU2hlZXRCdXR0b24gPSB7IHRleHQ6ICdHYWxlcmlhJyAgICAgICAgICAgLCBpY29uOiAnaW1hZ2UnICAgICAgICwgZGF0YTogU2VsZWN0VHlwZS5nYWxlcnkgfVxyXG4gICAgY29uc3QgYnRuRmlsZSAgOiBBY3Rpb25TaGVldEJ1dHRvbiA9IHsgdGV4dDogJ1NlbGVjaW9uYXIgQXJxdWl2bycsIGljb246ICdkb2N1bWVudCcgICAgLCBkYXRhOiBTZWxlY3RUeXBlLmZpbGUgICB9XHJcbiAgICBjb25zdCBidG5EZW55ICA6IEFjdGlvblNoZWV0QnV0dG9uID0geyB0ZXh0OiAnQ2FuY2VsYXInICAgICAgICAgICwgaWNvbjogJ2Nsb3NlLWNpcmNsZScsIGRhdGE6IFNlbGVjdFR5cGUuZGVueSwgcm9sZTogJ2NhbmNlbCcsIH07XHJcblxyXG4gICAgY29uc3QgaXNBcHAgPSAoIWRvY3VtZW50LlVSTC5zdGFydHNXaXRoKCdodHRwJykgfHwgZG9jdW1lbnQuVVJMLnN0YXJ0c1dpdGgoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCcpKTtcclxuXHJcbiAgICB2YXIgbHN0QnRuOiBhbnlbXSA9IFtdO1xyXG4gICAgaWYoaXNBcHApeyBcclxuICAgICAgbHN0QnRuLnB1c2goYnRuQ2FtZXJhKTsgXHJcbiAgICAgIGxzdEJ0bi5wdXNoKGJ0bkdhbGVyeSk7XHJcbiAgICB9XHJcbiAgICBsc3RCdG4ucHVzaChidG5GaWxlKTtcclxuICAgIGxzdEJ0bi5wdXNoKGJ0bkRlbnkpO1xyXG5cclxuICAgIHZhciByZXM6IE92ZXJsYXlFdmVudERldGFpbDxhbnk+O1xyXG4gICAgaWYobHN0QnRuLmxlbmd0aCA+IDIpe1xyXG4gICAgICBjb25zdCBhY3Rpb25TaGVldCA9IGF3YWl0IHRoaXMuYWN0aW9uU2hlZXRDb250cm9sbGVyLmNyZWF0ZSh7IGJ1dHRvbnM6IGxzdEJ0biB9KTtcclxuICAgICAgYWN0aW9uU2hlZXQucHJlc2VudCgpO1xyXG4gICAgICByZXMgPSBhd2FpdCBhY3Rpb25TaGVldC5vbkRpZERpc21pc3MoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXMgPSB7IHJvbGU6ICdjb25maXJtJywgZGF0YTogbHN0QnRuWzBdLmRhdGEgfTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIGlmKFsnYmFja2Ryb3AnLCAnY2FuY2VsJ10uaW5jbHVkZXMocmVzLnJvbGUpKXsgcmV0dXJuOyB9XHJcblxyXG4gICAgaWYoW1NlbGVjdFR5cGUuY2FtZXJhLCBTZWxlY3RUeXBlLmdhbGVyeV0uaW5jbHVkZXMocmVzLmRhdGEpKXsgXHJcbiAgICAgIGNvbnN0IFNvdXJjZSA9IHJlcy5kYXRhID09IFNlbGVjdFR5cGUuY2FtZXJhID8gQ2FtZXJhU291cmNlLkNhbWVyYSA6IENhbWVyYVNvdXJjZS5QaG90b3NcclxuICAgICAgLy9jb25zdCBwaG90byA9IGF3YWl0IENhbWVyYS5nZXRQaG90byh7IHJlc3VsdFR5cGU6IENhbWVyYVJlc3VsdFR5cGUuVXJpLCBzb3VyY2U6IFNvdXJjZSwgcXVhbGl0eTogMTAwIH0pO1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiWyBUT0RPIF1cIilcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgcmVzOiBQcm9taXNlPFBpY2tGaWxlc1Jlc3VsdD4gPSBGaWxlUGlja2VyLnBpY2tGaWxlcyh7IHR5cGVzOiBjb25maWd1cmF0aW9uLnR5cGVzLCBsaW1pdDogMSB9KTtcclxuICAgICAgY29uc3QgZmlsZXM6IFBpY2tlZEZpbGVbXSA9IChhd2FpdCByZXMpLmZpbGVzO1xyXG4gICAgICByZXR1cm4gZmlsZXMubWFwKHAgPT4gPEZpbGU+cC5ibG9iKVswXTtcclxuICAgIH1cclxuICB9IFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXRpbHMge1xyXG4gIC8qKiBDb252ZXJ0ZSBkZSB1bml4IHBhcmEgRGF0ZSBvYmplY3QgKi9cclxuICBzdGF0aWMgVU5JWFRvRGF0ZSh1bml4X3RpbWVzdGFtcDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHVuaXhfdGltZXN0YW1wICogMTAwMCk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIERhdGVTdHIgLSBEYXRlIG9uIElTTyBmb3JtYXQsIGUuZzogXHJcbiAgICogWyAyMDEwLTEwLTA1VDE0OjQ4OjAwLjAwMFogXVxyXG4gICAqIEByZXR1cm5zIERhdGUgb24gZm9ybWF0IEREL01NL1lZWVlcclxuICAqL1xyXG4gIHN0YXRpYyBEYXRlSVNPVG9ERE1NWVlZWUhITU0oaXNvOiBzdHJpbmcsIG9uSW52YWxpZERhdGVTdHJpbmc6IHN0cmluZyA9ICctJyk6IHN0cmluZ3tcclxuICAgIGlmKCFpc28peyByZXR1cm4gb25JbnZhbGlkRGF0ZVN0cmluZzsgfVxyXG4gICAgcmV0dXJuIG1vbWVudChpc28pLmZvcm1hdChcIkREL01NL1lZWVkgSEg6bW1cIik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgICAqIEBwYXJhbSBpc28gLSBEYXRlIG9uIElTTyBmb3JtYXQsIGUuZzogXHJcbiAgICAgKiBbIDIwMTAtMTAtMDVUMTQ6NDg6MDAuMDAwWiBdXHJcbiAgICAgKiBAcmV0dXJucyBEYXRlIG9uIGZvcm1hdCBERC9NTS9ZWVlZXHJcbiAgICAqL1xyXG4gIHN0YXRpYyBEYXRlSVNPVG9ERE1NWVlZWShpc286IHN0cmluZywgb25JbnZhbGlkRGF0ZVN0cmluZzogc3RyaW5nID0gJy0nKTogc3RyaW5ne1xyXG4gICAgaWYoIWlzbyl7IHJldHVybiBvbkludmFsaWREYXRlU3RyaW5nOyB9XHJcbiAgICByZXR1cm4gbW9tZW50KGlzbykuZm9ybWF0KFwiREQvTU0vWVlZWVwiKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZW5lcmF0ZUdVSUQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnaWQteHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcclxuICAgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLFxyXG4gICAgICB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcclxuICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogQHBhcmFtIGZpbGU6IGJhc2U2NCB8IEJsb2JcclxuICAgKi9cclxuICBzdGF0aWMgYXN5bmMgRG93bmxvYWRGaWxlKGZpbGU6IHN0cmluZyB8IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpe1xyXG4gICAgdmFyIGJsb2I6IEJsb2IgPSBudWxsO1xyXG4gICAgaWYoIShmaWxlIGluc3RhbmNlb2YgQmxvYikpe1xyXG4gICAgICBibG9iID0gYXdhaXQgVXRpbHMuQmFzZTY0VG9CbG9iKGZpbGUsIFV0aWxzLkZpbmRNaW1lRnJvbU5hbWVPckV4dGVuc2lvbihmaWxlTmFtZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZXsgXHJcbiAgICAgIGJsb2IgPSBmaWxlOyBcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBmaWxlVVJMKTtcclxuICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcInRhcmdldFwiLCBcIl9ibGFua1wiKTtcclxuICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIGZpbGVOYW1lKTtcclxuXHJcbiAgICBsZXQgbWUgPSBuZXcgTW91c2VFdmVudChcImNsaWNrXCIsIHtcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGxpbmtFbGVtZW50LmRpc3BhdGNoRXZlbnQobWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBCbG9iVG9CYXNlNjQoYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBhYiA9IGF3YWl0IGJsb2IuYXJyYXlCdWZmZXIoKTtcclxuICAgIHJldHVybiBCdWZmZXIuZnJvbShhYikudG9TdHJpbmcoXCJiYXNlNjRcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFzeW5jIEJhc2U2NFRvQmxvYihiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtCdWZmZXIuZnJvbShiYXNlNjQsIFwiYmFzZTY0XCIpXSwgeyB0eXBlOiBtaW1lVHlwZSB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBHZXRQaG90byhwYXJhbXM/OiB7XHJcbiAgICBxdWFsaXR5PzogbnVtYmVyLFxyXG4gICAgc291cmNlPzogQ2FtZXJhU291cmNlXHJcbiAgfSk6IFByb21pc2U8e1xyXG4gICAgYmxvYjogQmxvYlxyXG4gICAgZmlsZU5hbWU6IHN0cmluZ1xyXG4gIH0+e1xyXG4gICAgY29uc3QgcXVhbGl0eSA9IHBhcmFtcz8ucXVhbGl0eSB8fCA3MDtcclxuICAgIGNvbnN0IHNvdXJjZSAgPSBwYXJhbXM/LnNvdXJjZSB8fCBDYW1lcmFTb3VyY2UuQ2FtZXJhO1xyXG4gICAgY29uc3QgcGggICA9IGF3YWl0IENhbWVyYS5nZXRQaG90byh7IFxyXG4gICAgICByZXN1bHRUeXBlOiBDYW1lcmFSZXN1bHRUeXBlLlVyaSwgXHJcbiAgICAgIHNvdXJjZSA6IHNvdXJjZSxcclxuICAgICAgcXVhbGl0eTogcXVhbGl0eVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmaWxlID0gYXdhaXQgZmV0Y2gocGgud2ViUGF0aCk7XHJcbiAgICBjb25zdCBibG9iID0gYXdhaXQgZmlsZS5ibG9iKCk7XHJcbiAgICByZXR1cm4geyBibG9iLCBmaWxlTmFtZTogcGgucGF0aC5zcGxpdCgnLycpLmF0KC0xKSB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBQaWNrRmlsZShvcHRpb25zPzogUGlja0ZpbGVzT3B0aW9ucyk6IFByb21pc2U8e1xyXG4gICAgYmxvYjogQmxvYixcclxuICAgIG1pbWVUeXBlOiBzdHJpbmcsXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBzaXplOiBudW1iZXIsXHJcbiAgfVtdPiB7XHJcbiAgICBjb25zdCBQaWNrID0gYXdhaXQgRmlsZVBpY2tlci5waWNrRmlsZXMob3B0aW9ucyk7XHJcbiAgICBsZXQgbHN0QmxvYiA9IFBpY2suZmlsZXMubWFwKGFzeW5jIHZGaWxlID0+IHtcclxuICAgICAgbGV0IGJsb2IgPSBudWxsO1xyXG4gICAgICBpZihDYXBhY2l0b3IuaXNOYXRpdmVQbGF0Zm9ybSgpKXtcclxuICAgICAgICBibG9iID0gbmV3IEJsb2IoW2F3YWl0IChhd2FpdCBmZXRjaChDYXBhY2l0b3IuY29udmVydEZpbGVTcmModkZpbGUucGF0aCkpKS5ibG9iKCldLCB7IHR5cGU6IHZGaWxlLm1pbWVUeXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgYmxvYiA9IHZGaWxlLmJsb2I7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBibG9iLFxyXG4gICAgICAgIG1pbWVUeXBlOiB2RmlsZS5taW1lVHlwZSxcclxuICAgICAgICBuYW1lOiB2RmlsZS5uYW1lLFxyXG4gICAgICAgIHNpemU6IHZGaWxlLnNpemUsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBQcm9taXNlLmFsbChsc3RCbG9iKTsgICAgXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgRmluZE1pbWVGcm9tTmFtZU9yRXh0ZW5zaW9uKHBhdGhPckV4dGVuc2lvbjogc3RyaW5nKXtcclxuICAgIHJldHVybiBtaW1lLmdldFR5cGUocGF0aE9yRXh0ZW5zaW9uKSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZWFyY2g8VCA9IGFueT4oaXRlbXM6IFRbXSwgU2VhcmNoOiBzdHJpbmcsIGJpbmRMYWJlbDogKChvYmo6IFQpID0+IHN0cmluZykpOiBUW10ge1xyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIocCA9PiBiaW5kTGFiZWwocCk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoU2VhcmNoLnRvTG93ZXJDYXNlKCkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXQodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPntcclxuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpKTtcclxufVxyXG5cclxuLy9bIEJhc2UgNjQgXVxyXG5mdW5jdGlvbiBEZWNvZGVCYXNlNjQ8VD4oYjY0OiBzdHJpbmcpOiBUe1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gRGVjb2RlQmFzZTY0QXNTdHJpbmcoYjY0OiBzdHJpbmcpIHtcclxuICByZXR1cm4gQnVmZmVyLmZyb20oYjY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEVuY29kZUJhc2U2NChvYmo6IGFueSB8IHN0cmluZyk6IHN0cmluZ3tcclxuICBpZih0eXBlb2Ygb2JqID09IFwib2JqZWN0XCIpe1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG9iaikpLnRvU3RyaW5nKCdiYXNlNjQnKTtcclxuICB9XHJcbiAgZWxzZVxyXG4gIGlmKHR5cGVvZiBvYmogPT0gXCJzdHJpbmdcIil7XHJcbiAgICByZXR1cm4gQnVmZmVyLmZyb20ob2JqKS50b1N0cmluZygnYmFzZTY0Jyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSU5UX01BWCA9IDJfMTQ3XzQ4M182NDY7Il19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { EnvironmentService } from '../environment.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../environment.service";
5
+ export class ApiUrlProviderService {
6
+ constructor(coreService) {
7
+ this.coreService = coreService;
8
+ //#region [ API URL ]
9
+ this._apiUrl = '';
10
+ this._production = coreService.environment.production;
11
+ this.apiUrl = this.coreService.environment.apiUrl;
12
+ ;
13
+ console.log(`%c [ @sapphire-ion/framework : ${this.coreService.environment.applicationName} started @ development ] | Conectado em: ${this.apiUrl}`, "background-color: #2fdf75; color: black;");
14
+ }
15
+ get apiUrl() { return this._apiUrl; }
16
+ set apiUrl(value) {
17
+ this._apiUrl = value;
18
+ }
19
+ get production() { return this._production; }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiUrlProviderService, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiUrlProviderService, providedIn: 'root' }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiUrlProviderService, decorators: [{
24
+ type: Injectable,
25
+ args: [{
26
+ providedIn: 'root'
27
+ }]
28
+ }], ctorParameters: () => [{ type: i1.EnvironmentService }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXVybC1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvYXBpLXVybC1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQU01RCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ1UsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBU3pDLHFCQUFxQjtRQUNkLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFSMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUFBLENBQUM7UUFFbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSw0Q0FBNEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLDBDQUEwQyxDQUFDLENBQUE7SUFDbE0sQ0FBQztJQUtELElBQVcsTUFBTSxLQUFZLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBVyxNQUFNLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBSUQsSUFBVyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzsrR0F0QnpDLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzIH0gZnJvbSAnQGNhcGFjaXRvci9wcmVmZXJlbmNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlVcmxQcm92aWRlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29yZVNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICApIHsgXHJcbiAgICB0aGlzLl9wcm9kdWN0aW9uID0gY29yZVNlcnZpY2UuZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcclxuXHJcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuY29yZVNlcnZpY2UuZW52aXJvbm1lbnQuYXBpVXJsOztcclxuXHJcbiAgICBjb25zb2xlLmxvZyhgJWMgWyBAc2FwcGhpcmUtaW9uL2ZyYW1ld29yayA6ICR7dGhpcy5jb3JlU2VydmljZS5lbnZpcm9ubWVudC5hcHBsaWNhdGlvbk5hbWV9IHN0YXJ0ZWQgQCBkZXZlbG9wbWVudCBdIHwgQ29uZWN0YWRvIGVtOiAke3RoaXMuYXBpVXJsfWAsIFwiYmFja2dyb3VuZC1jb2xvcjogIzJmZGY3NTsgY29sb3I6IGJsYWNrO1wiKVxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFsgQVBJIFVSTCBdXHJcbiAgcHVibGljIF9hcGlVcmw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwdWJsaWMgZ2V0IGFwaVVybCgpOiBzdHJpbmd7IHJldHVybiB0aGlzLl9hcGlVcmw7IH1cclxuICBwdWJsaWMgc2V0IGFwaVVybCh2YWx1ZTogc3RyaW5nKXtcclxuICAgIHRoaXMuX2FwaVVybCA9IHZhbHVlO1xyXG4gIH1cclxuICBcclxuICBwcml2YXRlIF9wcm9kdWN0aW9uOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgZ2V0IHByb2R1Y3Rpb24oKSB7IHJldHVybiB0aGlzLl9wcm9kdWN0aW9uOyB9XHJcbiAgLy8jZW5kcmVnaW9uIFsgQVBJIFVSTCBdXHJcbn1cclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBBcGlVcmx7XHJcbi8vICAgbGFiZWwgICAgIDogc3RyaW5nOyBcclxuLy8gICB2YWx1ZSAgICAgOiBzdHJpbmc7XHJcbi8vICAgcHJvZHVjdGlvbjogYm9vbGVhbjtcclxuLy8gICBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nLCBwb3J0OiBudW1iZXIsIHByb2R1Y3Rpb246IGJvb2xlYW4sIGh0dHBzOiBib29sZWFuID0gZmFsc2Upe1xyXG4vLyAgICAgdGhpcy5wcm9kdWN0aW9uID0gcHJvZHVjdGlvbjtcclxuLy8gICAgIGlmKCFwcm9kdWN0aW9uKXtcclxuLy8gICAgICAgdGhpcy52YWx1ZSA9IGBodHRwJHtodHRwcyA/ICdzJyA6ICcnfTovLyR7dmFsdWV9OiR7cG9ydH0vYDtcclxuLy8gICAgICAgdGhpcy5sYWJlbCA9IHZhbHVlO1xyXG4vLyAgICAgfWVsc2V7XHJcbi8vICAgICAgIHRoaXMudmFsdWUgPSBgaHR0cCR7aHR0cHMgPyAncycgOiAnJ306Ly8ke3ZhbHVlfS9gO1xyXG4vLyAgICAgICB0aGlzLmxhYmVsID0gJ1Byb2R1w6fDo28nXHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG4vLyB9Il19
@@ -0,0 +1,37 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { InputBoolConfiguration, InputBoolType } from '../../components/inputs/input-bool/input-bool.configuration';
3
+ import { HttpService } from './http.service';
4
+ import { TableField } from '../../classes/inputs/table-field';
5
+ import { InputType } from '../../components/inputs/input-type';
6
+ import * as i0 from "@angular/core";
7
+ export class HttpServiceAtivo extends HttpService {
8
+ /**
9
+ * Troca o status de ativo da entidade
10
+ */
11
+ Ativar(id) {
12
+ return this.http.post(this.fullRoute + `/ativar/${id}`, {});
13
+ }
14
+ /**
15
+ * Lista todos os dados ativos
16
+ * @param vFilter
17
+ */
18
+ ListAtivo(vFilter) {
19
+ return this.http.post(this.fullRoute + `/listAtivo`, vFilter);
20
+ }
21
+ /** Table Field padrão de ativo */
22
+ get defaultAtivo() {
23
+ var control = this.fb.control(true);
24
+ const field = new TableField("Ativo", "ativo", control, InputType.Bool);
25
+ field.configuration = new InputBoolConfiguration(InputBoolType.Toggle);
26
+ return field;
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpServiceAtivo, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpServiceAtivo, providedIn: 'root' }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpServiceAtivo, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root'
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5hdGl2by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5hdGl2by5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUsvRCxNQUFNLE9BQWdCLGdCQUEwQixTQUFRLFdBQWM7SUFFcEU7O09BRUc7SUFDSCxNQUFNLENBQUMsRUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQWtCLE9BQXFCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLFlBQVk7UUFDZCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBdkJtQixnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZ4QixNQUFNOzs0RkFFRSxnQkFBZ0I7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dEJvb2xDb25maWd1cmF0aW9uLCBJbnB1dEJvb2xUeXBlfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1ib29sL2lucHV0LWJvb2wuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlLCBWaWV3UmV0b3JubyB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwU2VydmljZUF0aXZvPFYgPSBhbnk+IGV4dGVuZHMgSHR0cFNlcnZpY2U8Vj4ge1xyXG5cclxuICAvKipcclxuICAgKiBUcm9jYSBvIHN0YXR1cyBkZSBhdGl2byBkYSBlbnRpZGFkZVxyXG4gICAqL1xyXG4gIEF0aXZhcihpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odGhpcy5mdWxsUm91dGUgKyBgL2F0aXZhci8ke2lkfWAsIHt9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RhIHRvZG9zIG9zIGRhZG9zIGF0aXZvc1xyXG4gICAqIEBwYXJhbSB2RmlsdGVyXHJcbiAgICovXHJcbiAgTGlzdEF0aXZvPFQgPSBWaWV3UmV0b3Jubz4odkZpbHRlcj86IFZpZXdGaWx0cm9zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5mdWxsUm91dGUgKyBgL2xpc3RBdGl2b2AsIHZGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRhYmxlIEZpZWxkIHBhZHLDo28gZGUgYXRpdm8gKi9cclxuICBnZXQgZGVmYXVsdEF0aXZvKCk6IFRhYmxlRmllbGQge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2wodHJ1ZSk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiQXRpdm9cIiwgXCJhdGl2b1wiLCBjb250cm9sLCBJbnB1dFR5cGUuQm9vbCk7XHJcbiAgICBmaWVsZC5jb25maWd1cmF0aW9uID0gbmV3IElucHV0Qm9vbENvbmZpZ3VyYXRpb24oSW5wdXRCb29sVHlwZS5Ub2dnbGUpOyBcclxuICAgIHJldHVybiBmaWVsZDtcclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,184 @@
1
+ import { BehaviorSubject, firstValueFrom } from 'rxjs';
2
+ import { HttpClient, HttpEventType } from '@angular/common/http';
3
+ import { FormBuilder, FormGroup } from '@angular/forms';
4
+ import { Injectable, inject } from '@angular/core';
5
+ import { NavController } from '@ionic/angular';
6
+ import { ApiUrlProviderService } from './api-url-provider.service';
7
+ import { GenericService } from '../generic.service';
8
+ import { TableField } from '../../classes/inputs/table-field';
9
+ import { InputType } from '../../components/inputs/input-type';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
12
+ import * as i2 from "@angular/forms";
13
+ import * as i3 from "../generic.service";
14
+ import * as i4 from "@ionic/angular";
15
+ import * as i5 from "./api-url-provider.service";
16
+ export class HttpService {
17
+ constructor(http, fb, genericService, navController, apiUrlProviderService) {
18
+ this.http = http;
19
+ this.fb = fb;
20
+ this.genericService = genericService;
21
+ this.navController = navController;
22
+ this.apiUrlProviderService = apiUrlProviderService;
23
+ this.http = inject(HttpClient);
24
+ this.fb = inject(FormBuilder);
25
+ this.genericService = inject(GenericService);
26
+ this.navController = inject(NavController);
27
+ this.apiUrlProviderService = inject(ApiUrlProviderService);
28
+ }
29
+ /**
30
+ * Retorna a rota completa do serviço
31
+ * @return string
32
+ * @example 'https://api.example.com/{route}'
33
+ */
34
+ get fullRoute() {
35
+ return this.apiUrlProviderService.apiUrl + this.route;
36
+ }
37
+ /**
38
+ * Retorna os dados de acordo com os filtros
39
+ * @param vFilter Filtra os dados (Pesquisa, Paginação e IComparison)
40
+ */
41
+ List(vFilter) {
42
+ return this.http.post(this.fullRoute + `/list`, vFilter);
43
+ }
44
+ /** Retorna o dado da tabela associada com a rota com o id indicado
45
+ * @param id id do dado
46
+ */
47
+ Get(id) {
48
+ return this.http.get(this.fullRoute + `/get/${id}`);
49
+ }
50
+ /** Salva as alterações no dado recebido */
51
+ Save(obj, view) {
52
+ if (view) {
53
+ view.submitted = true;
54
+ }
55
+ var object = obj;
56
+ if (obj instanceof FormGroup) {
57
+ if (obj.invalid) {
58
+ const subject = new BehaviorSubject(null);
59
+ subject.error("[ Invalid Form ]");
60
+ subject.complete();
61
+ this.genericService.PresentToast("Verifique os campos!");
62
+ return subject;
63
+ }
64
+ object = obj.value;
65
+ }
66
+ const formData = this.FilesToForm(object);
67
+ formData.append('view', JSON.stringify(object));
68
+ //Check in the case it has a file and the view is not passed
69
+ if (Object.entries(object).find(p => p[1] instanceof File) && this.hasFileForm && !view) {
70
+ console.error("[ FormGroup contains file, but view isnt a valid parameter ]");
71
+ }
72
+ else if (view) {
73
+ return this._Save(formData, view);
74
+ }
75
+ return this.http.post(this.fullRoute + `/save`, formData);
76
+ }
77
+ /** Exclui a entidade */
78
+ Delete(id) {
79
+ return this.http.delete(this.fullRoute + `/delete/` + id);
80
+ }
81
+ /** Retorna todos os dados */
82
+ Load(vFiltros) {
83
+ return firstValueFrom(this.List(vFiltros));
84
+ }
85
+ /** Retorna os campos da tabela */
86
+ get lstTableFields() { return []; }
87
+ /** Retorna os campos da tabela para visualização/edição (se vazio retornara o padrão (lstTableFields)) */
88
+ get lstTableFieldsView() { return this.lstTableFields; }
89
+ /** Retora o TableField padrão de id */
90
+ get defaultId() {
91
+ var control = this.fb.control(0);
92
+ const field = new TableField("id", "id", control, InputType.Number);
93
+ field.hidden = true;
94
+ field.hiddenView = true;
95
+ return field;
96
+ }
97
+ /** Retora o TableField padrão de idEmpresa */
98
+ get defaultIdEmpresa() {
99
+ var control = this.fb.control(0);
100
+ const field = new TableField("Empresa", "idEmpresa", control, InputType.Select);
101
+ field.hiddenView = true;
102
+ field.hidden = true;
103
+ return field;
104
+ }
105
+ get hasFileForm() { return this.lstTableFieldsView.filter(p => p.type == InputType.File).length > 0; }
106
+ _Save(formData, view) {
107
+ view.loading = true;
108
+ const subject = new BehaviorSubject(null);
109
+ this.http.post(this.fullRoute + `/save`, formData, { reportProgress: true, observe: 'events' }).subscribe({
110
+ next: (rez) => {
111
+ if (rez.type == HttpEventType.UploadProgress) {
112
+ const res = rez.loaded / rez.total;
113
+ subject.next(rez);
114
+ view.progress = res;
115
+ }
116
+ else if (rez.type == HttpEventType.Response) {
117
+ view.loading = false;
118
+ view.submitted = false;
119
+ view.Refresh();
120
+ const id = Number(rez.body);
121
+ //[ Redirect to view/:id | redirectPath ]
122
+ if (!view.id && id) {
123
+ this.RedirectRoute(id, view.redirectPath, view.GetCurrentRouting());
124
+ }
125
+ }
126
+ },
127
+ error: (err) => {
128
+ subject.error(err);
129
+ view.loading = false;
130
+ view.submitted = false;
131
+ subject.complete();
132
+ },
133
+ complete: () => {
134
+ this.genericService.PresentToastSuccess();
135
+ subject.complete();
136
+ }
137
+ });
138
+ return subject;
139
+ }
140
+ RedirectRoute(id, redirectPath, activatedRoute) {
141
+ if (!redirectPath) {
142
+ return;
143
+ }
144
+ const path = redirectPath.replace(':id', id.toString());
145
+ // se contém "/from/", precisa subir 2 níveis
146
+ const currentSegments = activatedRoute.snapshot.url.map(u => u.path);
147
+ const level = currentSegments.includes('from') ? '../../' : '../';
148
+ this.navController.navigateRoot([`${level}${path}`], {
149
+ relativeTo: activatedRoute,
150
+ replaceUrl: true,
151
+ state: { __preserveBack: true }
152
+ });
153
+ }
154
+ FilesToForm(object, formData = new FormData(), lstTableFieldsView = null) {
155
+ if (!lstTableFieldsView) {
156
+ lstTableFieldsView = this.lstTableFieldsView.filter(p => p.type == InputType.File);
157
+ }
158
+ for (const [key, value] of Object.entries(object)) {
159
+ if (lstTableFieldsView.find(p => p.index == key && p.type == InputType.File)) {
160
+ if (value && typeof (value) != "string") {
161
+ const file = value;
162
+ const name = `file-${key}`;
163
+ formData.append(name, file, file.name);
164
+ object[key] = "";
165
+ }
166
+ }
167
+ }
168
+ return formData;
169
+ }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }, { token: i2.FormBuilder }, { token: i3.GenericService }, { token: i4.NavController }, { token: i5.ApiUrlProviderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
171
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpService, providedIn: 'root' }); }
172
+ }
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpService, decorators: [{
174
+ type: Injectable,
175
+ args: [{
176
+ providedIn: 'root'
177
+ }]
178
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.FormBuilder }, { type: i3.GenericService }, { type: i4.NavController }, { type: i5.ApiUrlProviderService }] });
179
+ export class ViewRetorno {
180
+ constructor() {
181
+ this.lstDados = [];
182
+ }
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FB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Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2dlbmVyaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdGaWx0cm9zIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvcyc7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBTZXJ2aWNlPFYgPSBhbnk+IHtcclxuXHJcbiAgcHVibGljIGFic3RyYWN0IHJvdXRlOiBzdHJpbmc7IFxyXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nOyBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cD8gICAgICAgICAgOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGZiPyAgICAgICAgICAgIDogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJvdGVjdGVkIGdlbmVyaWNTZXJ2aWNlPzogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlcj8gOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJvdGVjdGVkIGFwaVVybFByb3ZpZGVyU2VydmljZT86IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICApIHsgXHJcbiAgICB0aGlzLmh0dHAgICAgICAgICAgICAgICAgICA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UgICAgICAgID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlciAgICAgICAgID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xyXG4gICAgdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UgPSBpbmplY3QoQXBpVXJsUHJvdmlkZXJTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgYSByb3RhIGNvbXBsZXRhIGRvIHNlcnZpw6dvXHJcbiAgICogQHJldHVybiBzdHJpbmdcclxuICAgKiBAZXhhbXBsZSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20ve3JvdXRlfSdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGZ1bGxSb3V0ZSgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UuYXBpVXJsICsgdGhpcy5yb3V0ZVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFJldG9ybmEgb3MgZGFkb3MgZGUgYWNvcmRvIGNvbSBvcyBmaWx0cm9zIFxyXG4gICAqIEBwYXJhbSB2RmlsdGVyIEZpbHRyYSBvcyBkYWRvcyAoUGVzcXVpc2EsIFBhZ2luYcOnw6NvIGUgSUNvbXBhcmlzb24pXHJcbiAgKi9cclxuICBwdWJsaWMgTGlzdCh2RmlsdGVyPzogVmlld0ZpbHRyb3MpOiBPYnNlcnZhYmxlPFZpZXdSZXRvcm5vPFY+PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxWaWV3UmV0b3JubzxWPj4odGhpcy5mdWxsUm91dGUgKyBgL2xpc3RgLCB2RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIG8gZGFkbyBkYSB0YWJlbGEgYXNzb2NpYWRhIGNvbSBhIHJvdGEgY29tIG8gaWQgaW5kaWNhZG8gXHJcbiAgICogQHBhcmFtIGlkIGlkIGRvIGRhZG9cclxuICAqL1xyXG4gIHB1YmxpYyBHZXQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vj4geyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFY+KHRoaXMuZnVsbFJvdXRlICtgL2dldC8ke2lkfWApO1xyXG4gIH1cclxuICBcclxuICAvKiogU2FsdmEgYXMgYWx0ZXJhw6fDtWVzIG5vIGRhZG8gcmVjZWJpZG8gKi9cclxuICBwdWJsaWMgU2F2ZTxUID0gbnVtYmVyPihvYmo6IGFueSB8IEZvcm1Hcm91cCB8IFYsIHZpZXc/OiBWaWV3PEh0dHBTZXJ2aWNlPik6IE9ic2VydmFibGU8VD57XHJcbiAgICBpZih2aWV3KXsgdmlldy5zdWJtaXR0ZWQgPSB0cnVlOyB9XHJcblxyXG4gICAgdmFyIG9iamVjdCA9IG9iajtcclxuICAgIFxyXG4gICAgaWYob2JqIGluc3RhbmNlb2YgRm9ybUdyb3VwKXsgXHJcbiAgICAgIGlmKG9iai5pbnZhbGlkKXsgXHJcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcclxuICAgICAgICBzdWJqZWN0LmVycm9yKFwiWyBJbnZhbGlkIEZvcm0gXVwiKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJWZXJpZmlxdWUgb3MgY2FtcG9zIVwiKVxyXG4gICAgICAgIHJldHVybiBzdWJqZWN0O1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgb2JqZWN0ID0gb2JqLnZhbHVlOyBcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMuRmlsZXNUb0Zvcm0ob2JqZWN0KTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgndmlldycsIEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xyXG5cclxuICAgIC8vQ2hlY2sgaW4gdGhlIGNhc2UgaXQgaGFzIGEgZmlsZSBhbmQgdGhlIHZpZXcgaXMgbm90IHBhc3NlZFxyXG4gICAgaWYoT2JqZWN0LmVudHJpZXMob2JqZWN0KS5maW5kKHAgPT4gcFsxXSBpbnN0YW5jZW9mIEZpbGUpICYmIHRoaXMuaGFzRmlsZUZvcm0gJiYgIXZpZXcpeyBcclxuICAgICAgY29uc29sZS5lcnJvcihcIlsgRm9ybUdyb3VwIGNvbnRhaW5zIGZpbGUsIGJ1dCB2aWV3IGlzbnQgYSB2YWxpZCBwYXJhbWV0ZXIgXVwiKTsgXHJcbiAgICB9IGVsc2UgXHJcbiAgICBpZih2aWV3KXsgXHJcbiAgICAgIHJldHVybiB0aGlzLl9TYXZlKGZvcm1EYXRhLCB2aWV3KTsgXHJcbiAgICB9IFxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmZ1bGxSb3V0ZSArIGAvc2F2ZWAsIGZvcm1EYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKiBFeGNsdWkgYSBlbnRpZGFkZSAqL1xyXG4gIHB1YmxpYyBEZWxldGUoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4odGhpcy5mdWxsUm91dGUgKyBgL2RlbGV0ZS9gK2lkKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRvZG9zIG9zIGRhZG9zICovXHJcbiAgcHVibGljIExvYWQodkZpbHRyb3M/OiBWaWV3RmlsdHJvcyk6IFByb21pc2U8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuTGlzdCh2RmlsdHJvcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSAqL1xyXG4gIGdldCBsc3RUYWJsZUZpZWxkcygpICAgIDogVGFibGVGaWVsZFtdIHsgcmV0dXJuIFtdOyB9XHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSBwYXJhIHZpc3VhbGl6YcOnw6NvL2VkacOnw6NvIChzZSB2YXppbyByZXRvcm5hcmEgbyBwYWRyw6NvIChsc3RUYWJsZUZpZWxkcykpICovIFxyXG4gIGdldCBsc3RUYWJsZUZpZWxkc1ZpZXcoKTogVGFibGVGaWVsZFtdIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHM7IH0gXHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWQgKi9cclxuICBnZXQgZGVmYXVsdElkKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiaWRcIiwgXCJpZFwiLCBjb250cm9sLCBJbnB1dFR5cGUuTnVtYmVyKTsgXHJcbiAgICBmaWVsZC5oaWRkZW4gICAgID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkXHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JhIG8gVGFibGVGaWVsZCBwYWRyw6NvIGRlIGlkRW1wcmVzYSAqL1xyXG4gIGdldCBkZWZhdWx0SWRFbXByZXNhKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiRW1wcmVzYVwiLCBcImlkRW1wcmVzYVwiLCBjb250cm9sLCBJbnB1dFR5cGUuU2VsZWN0KTsgXHJcbiAgICBmaWVsZC5oaWRkZW5WaWV3ID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaGFzRmlsZUZvcm0oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpLmxlbmd0aCA+IDA7IH0gXHJcblxyXG4gIHByb3RlY3RlZCBfU2F2ZShmb3JtRGF0YTogRm9ybURhdGEsIHZpZXc6IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxhbnkgfCB2b2lkPntcclxuICAgIHZpZXcubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SHR0cEV2ZW50PGFueT4+KG51bGwpO1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEsIHsgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsIG9ic2VydmU6ICdldmVudHMnIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXopID0+IHsgXHJcbiAgICAgICAgaWYocmV6LnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyl7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSByZXoubG9hZGVkIC8gcmV6LnRvdGFsITsgXHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQocmV6KTtcclxuICAgICAgICAgIHZpZXcucHJvZ3Jlc3MgPSByZXM7ICBcclxuICAgICAgICB9ZWxzZSBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKXtcclxuICAgICAgICAgIHZpZXcubG9hZGluZyAgID0gZmFsc2U7IFxyXG4gICAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LlJlZnJlc2goKTsgXHJcblxyXG4gICAgICAgICAgY29uc3QgaWQ6IG51bWJlciA9IE51bWJlcihyZXouYm9keSlcclxuXHJcbiAgICAgICAgICAvL1sgUmVkaXJlY3QgdG8gdmlldy86aWQgfCByZWRpcmVjdFBhdGggXVxyXG4gICAgICAgICAgaWYoIXZpZXcuaWQgJiYgaWQpeyBcclxuICAgICAgICAgICAgdGhpcy5SZWRpcmVjdFJvdXRlKGlkLCB2aWV3LnJlZGlyZWN0UGF0aCwgdmlldy5HZXRDdXJyZW50Um91dGluZygpKTsgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKSA9PiB7IFxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsgXHJcbiAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOyBcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6KCkgPT4geyBcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdFN1Y2Nlc3MoKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBSZWRpcmVjdFJvdXRlKGlkOiBudW1iZXIsIHJlZGlyZWN0UGF0aDogc3RyaW5nLCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcclxuICAgIGlmICghcmVkaXJlY3RQYXRoKSB7IHJldHVybjsgfVxyXG5cclxuICAgIGNvbnN0IHBhdGggPSByZWRpcmVjdFBhdGgucmVwbGFjZSgnOmlkJywgaWQudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgLy8gc2UgY29udMOpbSBcIi9mcm9tL1wiLCBwcmVjaXNhIHN1YmlyIDIgbsOtdmVpc1xyXG4gICAgY29uc3QgY3VycmVudFNlZ21lbnRzID0gYWN0aXZhdGVkUm91dGUuc25hcHNob3QudXJsLm1hcCh1ID0+IHUucGF0aCk7XHJcbiAgICBjb25zdCBsZXZlbCA9IGN1cnJlbnRTZWdtZW50cy5pbmNsdWRlcygnZnJvbScpID8gJy4uLy4uLycgOiAnLi4vJztcclxuXHJcbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFxyXG4gICAgICBbIGAke2xldmVsfSR7cGF0aH1gIF0sXHJcbiAgICAgIHtcclxuICAgICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICByZXBsYWNlVXJsOiB0cnVlLCBcclxuICAgICAgICBzdGF0ZTogeyBfX3ByZXNlcnZlQmFjazogdHJ1ZSB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRmlsZXNUb0Zvcm0ob2JqZWN0OiBWLCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSwgbHN0VGFibGVGaWVsZHNWaWV3OiBUYWJsZUZpZWxkW10gfCBudWxsID0gbnVsbCk6IEZvcm1EYXRhIHtcclxuICAgIGlmKCFsc3RUYWJsZUZpZWxkc1ZpZXcpeyBsc3RUYWJsZUZpZWxkc1ZpZXcgPSB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpOyB9XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqZWN0KSkge1xyXG4gICAgICBpZihsc3RUYWJsZUZpZWxkc1ZpZXcuZmluZChwID0+IHAuaW5kZXggPT0ga2V5ICYmIHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkpe1xyXG4gICAgICAgIGlmKHZhbHVlICYmIHR5cGVvZih2YWx1ZSkgIT0gXCJzdHJpbmdcIil7XHJcbiAgICAgICAgICBjb25zdCBmaWxlID0gdmFsdWUgYXMgRmlsZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBgZmlsZS0ke2tleX1gO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgICAgICBvYmplY3Rba2V5XSA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmlld1JldG9ybm88VCA9IGFueT4ge1xyXG4gIGxzdERhZG9zOiBUW10gPSBbXTtcclxuICB0b3RhbDogbnVtYmVyO1xyXG59Il19