@koalarx/ui 12.4.1 → 12.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/alert/README.md +24 -0
  2. package/alert/bundles/koalarx-ui-alert.umd.js +153 -0
  3. package/alert/bundles/koalarx-ui-alert.umd.js.map +1 -0
  4. package/alert/esm2015/index.js +7 -0
  5. package/alert/esm2015/koalarx-ui-alert.js +5 -0
  6. package/alert/esm2015/lib/dialog-alert.component.js +43 -0
  7. package/alert/esm2015/lib/koala.alert-config.interface.js +2 -0
  8. package/alert/esm2015/lib/koala.alert.enum.js +9 -0
  9. package/alert/esm2015/lib/koala.alert.module.js +31 -0
  10. package/alert/esm2015/lib/koala.alert.service.js +21 -0
  11. package/alert/esm2015/lib/koala.request-code-to-alert-enum.translate.js +18 -0
  12. package/alert/fesm2015/koalarx-ui-alert.js +121 -0
  13. package/alert/fesm2015/koalarx-ui-alert.js.map +1 -0
  14. package/alert/index.d.ts +6 -6
  15. package/alert/koalarx-ui-alert.d.ts +4 -0
  16. package/alert/koalarx-ui-alert.metadata.json +1 -0
  17. package/alert/lib/dialog-alert.component.d.ts +7 -0
  18. package/alert/{koala.alert-config.interface.d.ts → lib/koala.alert-config.interface.d.ts} +1 -1
  19. package/alert/{koala.alert.enum.d.ts → lib/koala.alert.enum.d.ts} +0 -0
  20. package/alert/lib/koala.alert.module.d.ts +2 -0
  21. package/alert/{koala.alert.service.d.ts → lib/koala.alert.service.d.ts} +1 -4
  22. package/alert/{koala.request-code-to-alert-enum.translate.d.ts → lib/koala.request-code-to-alert-enum.translate.d.ts} +0 -0
  23. package/alert/package.json +19 -0
  24. package/button/bundles/koalarx-ui-button.umd.js +71 -0
  25. package/button/bundles/koalarx-ui-button.umd.js.map +1 -0
  26. package/button/esm2015/index.js +3 -0
  27. package/button/esm2015/koalarx-ui-button.js +5 -0
  28. package/button/esm2015/lib/button.component.js +31 -0
  29. package/button/esm2015/lib/koala.button.module.js +27 -0
  30. package/button/fesm2015/koalarx-ui-button.js +63 -0
  31. package/button/fesm2015/koalarx-ui-button.js.map +1 -0
  32. package/button/index.d.ts +2 -2
  33. package/button/koalarx-ui-button.d.ts +4 -0
  34. package/button/koalarx-ui-button.metadata.json +1 -0
  35. package/button/lib/button.component.d.ts +13 -0
  36. package/button/lib/koala.button.module.d.ts +2 -0
  37. package/button/package.json +19 -0
  38. package/core/README.md +24 -0
  39. package/core/bundles/koalarx-ui-core.umd.js +1821 -0
  40. package/core/bundles/koalarx-ui-core.umd.js.map +1 -0
  41. package/core/esm2015/index.js +51 -0
  42. package/core/esm2015/koalarx-ui-core.js +7 -0
  43. package/core/esm2015/lib/environments/koalaEnvironment.js +4 -0
  44. package/core/esm2015/lib/loader/loader-bar-page.component.js +22 -0
  45. package/core/esm2015/lib/loader/loader-bar-page.interface.js +2 -0
  46. package/core/esm2015/lib/loader/loader-config.interface.js +2 -0
  47. package/core/esm2015/lib/mask-options.js +4 -0
  48. package/core/esm2015/lib/ngx-koala.module.js +35 -0
  49. package/core/esm2015/lib/page/koala-language.helper.js +114 -0
  50. package/core/esm2015/lib/page/koala-oauth2-config.interface.js +2 -0
  51. package/core/esm2015/lib/page/koala-page-pallet-colors.interface.js +2 -0
  52. package/core/esm2015/lib/page/koala.page.module.js +46 -0
  53. package/core/esm2015/lib/page/koala.user-menu-options.interface.js +2 -0
  54. package/core/esm2015/lib/page/notifications/koala.notification.interface.js +2 -0
  55. package/core/esm2015/lib/page/notifications/notification.component.js +43 -0
  56. package/core/esm2015/lib/page/page.component.js +396 -0
  57. package/core/esm2015/lib/router/koala.parameter-hash-location-stategy.js +16 -0
  58. package/core/esm2015/lib/services/api-requester/factory/koala.response.factory.js +48 -0
  59. package/core/esm2015/lib/services/api-requester/helpers/error/koala.client.error.js +3 -0
  60. package/core/esm2015/lib/services/api-requester/helpers/error/koala.errors.helper.js +46 -0
  61. package/core/esm2015/lib/services/api-requester/helpers/error/koala.not-found.error.js +3 -0
  62. package/core/esm2015/lib/services/api-requester/helpers/error/koala.success.error.js +3 -0
  63. package/core/esm2015/lib/services/api-requester/helpers/error/koala.unhautorized.error.js +3 -0
  64. package/core/esm2015/lib/services/api-requester/helpers/service/koala.request-header.helper.js +15 -0
  65. package/core/esm2015/lib/services/api-requester/koala.api-requester.base.js +70 -0
  66. package/{esm2015/core → core/esm2015/lib}/services/api-requester/koala.api-requester.service.js +11 -8
  67. package/core/esm2015/lib/services/csv/koala.csv.service.js +38 -0
  68. package/core/esm2015/lib/services/loader/koala.loader.service.js +32 -0
  69. package/core/esm2015/lib/services/openid/koala.oauth.config.js +33 -0
  70. package/core/esm2015/lib/services/openid/koala.oauth2.service.js +196 -0
  71. package/core/esm2015/lib/services/request/koala.request.service.js +53 -0
  72. package/core/esm2015/lib/services/token/koala.token.service.js +52 -0
  73. package/core/esm2015/lib/services/token/token.factory.js +31 -0
  74. package/core/esm2015/lib/services/xlsx/koala.xlsx-config.interface.js +2 -0
  75. package/core/esm2015/lib/services/xlsx/koala.xlsx.service.js +61 -0
  76. package/core/fesm2015/koalarx-ui-core.js +1434 -0
  77. package/core/fesm2015/koalarx-ui-core.js.map +1 -0
  78. package/core/index.d.ts +24 -27
  79. package/core/koalarx-ui-core.d.ts +6 -0
  80. package/core/koalarx-ui-core.metadata.json +1 -0
  81. package/core/{environments → lib/environments}/koalaEnvironment.d.ts +0 -0
  82. package/core/lib/loader/loader-bar-page.component.d.ts +5 -0
  83. package/core/{loader → lib/loader}/loader-bar-page.interface.d.ts +0 -0
  84. package/core/{loader → lib/loader}/loader-config.interface.d.ts +0 -0
  85. package/core/{mask-options.d.ts → lib/mask-options.d.ts} +0 -0
  86. package/core/lib/ngx-koala.module.d.ts +5 -0
  87. package/core/{page → lib/page}/koala-language.helper.d.ts +0 -0
  88. package/core/{page → lib/page}/koala-oauth2-config.interface.d.ts +0 -0
  89. package/core/{page → lib/page}/koala-page-pallet-colors.interface.d.ts +0 -0
  90. package/core/lib/page/koala.page.module.d.ts +2 -0
  91. package/core/{page → lib/page}/koala.user-menu-options.interface.d.ts +0 -0
  92. package/core/{page → lib/page}/notifications/koala.notification.interface.d.ts +0 -0
  93. package/core/{page → lib/page}/notifications/notification.component.d.ts +0 -3
  94. package/core/{page → lib/page}/page.component.d.ts +1 -4
  95. package/core/lib/router/koala.parameter-hash-location-stategy.d.ts +4 -0
  96. package/core/{services → lib/services}/api-requester/factory/koala.response.factory.d.ts +0 -0
  97. package/core/{services → lib/services}/api-requester/helpers/error/koala.client.error.d.ts +0 -0
  98. package/core/{services → lib/services}/api-requester/helpers/error/koala.errors.helper.d.ts +1 -1
  99. package/core/{services → lib/services}/api-requester/helpers/error/koala.not-found.error.d.ts +0 -0
  100. package/core/{services → lib/services}/api-requester/helpers/error/koala.success.error.d.ts +0 -0
  101. package/core/{services → lib/services}/api-requester/helpers/error/koala.unhautorized.error.d.ts +0 -0
  102. package/core/{services → lib/services}/api-requester/helpers/service/koala.request-header.helper.d.ts +0 -0
  103. package/core/{services → lib/services}/api-requester/koala.api-requester.base.d.ts +2 -8
  104. package/core/{services → lib/services}/api-requester/koala.api-requester.service.d.ts +0 -3
  105. package/core/{services → lib/services}/csv/koala.csv.service.d.ts +0 -3
  106. package/core/{services → lib/services}/loader/koala.loader.service.d.ts +0 -3
  107. package/core/{services → lib/services}/openid/koala.oauth.config.d.ts +0 -0
  108. package/core/{services → lib/services}/openid/koala.oauth2.service.d.ts +0 -3
  109. package/core/{services → lib/services}/request/koala.request.service.d.ts +1 -4
  110. package/core/{services → lib/services}/token/koala.token.service.d.ts +0 -3
  111. package/core/{services → lib/services}/token/token.factory.d.ts +0 -0
  112. package/core/{services → lib/services}/xlsx/koala.xlsx-config.interface.d.ts +0 -0
  113. package/core/{services → lib/services}/xlsx/koala.xlsx.service.d.ts +0 -3
  114. package/core/package.json +19 -0
  115. package/{theme → core/theme}/koala.theme.css +0 -0
  116. package/dialog/README.md +24 -0
  117. package/dialog/bundles/koalarx-ui-dialog.umd.js +139 -0
  118. package/dialog/bundles/koalarx-ui-dialog.umd.js.map +1 -0
  119. package/dialog/esm2015/index.js +4 -0
  120. package/dialog/esm2015/koalarx-ui-dialog.js +5 -0
  121. package/dialog/esm2015/lib/dialog.component.js +18 -0
  122. package/dialog/esm2015/lib/koala.dialog-template.interface.js +2 -0
  123. package/dialog/esm2015/lib/koala.dialog.module.js +25 -0
  124. package/dialog/esm2015/lib/koala.dialog.service.js +61 -0
  125. package/dialog/fesm2015/koalarx-ui-dialog.js +107 -0
  126. package/dialog/fesm2015/koalarx-ui-dialog.js.map +1 -0
  127. package/dialog/index.d.ts +3 -3
  128. package/dialog/koalarx-ui-dialog.d.ts +4 -0
  129. package/dialog/koalarx-ui-dialog.metadata.json +1 -0
  130. package/dialog/lib/dialog.component.d.ts +8 -0
  131. package/dialog/{koala.dialog-template.interface.d.ts → lib/koala.dialog-template.interface.d.ts} +0 -0
  132. package/dialog/lib/koala.dialog.module.d.ts +2 -0
  133. package/dialog/{koala.dialog.service.d.ts → lib/koala.dialog.service.d.ts} +0 -3
  134. package/dialog/package.json +19 -0
  135. package/dynamic-component/README.md +24 -0
  136. package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js +95 -0
  137. package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js.map +1 -0
  138. package/dynamic-component/esm2015/index.js +6 -0
  139. package/dynamic-component/esm2015/koalarx-ui-dynamic-component.js +5 -0
  140. package/dynamic-component/esm2015/lib/koala-dynamic-component.component.js +2 -0
  141. package/dynamic-component/esm2015/lib/koala-dynamic-component.directive.js +15 -0
  142. package/dynamic-component/esm2015/lib/koala-dynamic-component.factory.js +38 -0
  143. package/dynamic-component/esm2015/lib/koala-dynamic-component.js +7 -0
  144. package/dynamic-component/esm2015/lib/koala-dynamic-component.module.js +17 -0
  145. package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js +79 -0
  146. package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js.map +1 -0
  147. package/dynamic-component/index.d.ts +5 -5
  148. package/dynamic-component/koalarx-ui-dynamic-component.d.ts +4 -0
  149. package/dynamic-component/koalarx-ui-dynamic-component.metadata.json +1 -0
  150. package/dynamic-component/{koala-dynamic-component.component.d.ts → lib/koala-dynamic-component.component.d.ts} +0 -0
  151. package/dynamic-component/{koala-dynamic-component.d.ts → lib/koala-dynamic-component.d.ts} +0 -0
  152. package/dynamic-component/lib/koala-dynamic-component.directive.d.ts +5 -0
  153. package/dynamic-component/{koala-dynamic-component.factory.d.ts → lib/koala-dynamic-component.factory.d.ts} +2 -5
  154. package/dynamic-component/lib/koala-dynamic-component.module.d.ts +2 -0
  155. package/dynamic-component/package.json +19 -0
  156. package/file-button/README.md +24 -0
  157. package/file-button/bundles/koalarx-ui-file-button.umd.js +553 -0
  158. package/file-button/bundles/koalarx-ui-file-button.umd.js.map +1 -0
  159. package/file-button/esm2015/index.js +5 -0
  160. package/file-button/esm2015/koalarx-ui-file-button.js +5 -0
  161. package/file-button/esm2015/lib/file-button.component.js +118 -0
  162. package/file-button/esm2015/lib/koala.btn-file.service.js +26 -0
  163. package/file-button/esm2015/lib/koala.file-button.module.js +25 -0
  164. package/file-button/esm2015/lib/koala.file.interface.js +2 -0
  165. package/file-button/fesm2015/koalarx-ui-file-button.js +171 -0
  166. package/file-button/fesm2015/koalarx-ui-file-button.js.map +1 -0
  167. package/file-button/index.d.ts +4 -4
  168. package/file-button/koalarx-ui-file-button.d.ts +4 -0
  169. package/file-button/koalarx-ui-file-button.metadata.json +1 -0
  170. package/file-button/lib/file-button.component.d.ts +26 -0
  171. package/file-button/{koala.btn-file.service.d.ts → lib/koala.btn-file.service.d.ts} +1 -4
  172. package/file-button/lib/koala.file-button.module.d.ts +2 -0
  173. package/file-button/{koala.file.interface.d.ts → lib/koala.file.interface.d.ts} +0 -0
  174. package/file-button/package.json +19 -0
  175. package/folder-page/README.md +24 -0
  176. package/folder-page/bundles/koalarx-ui-folder-page.umd.js +97 -0
  177. package/folder-page/bundles/koalarx-ui-folder-page.umd.js.map +1 -0
  178. package/folder-page/esm2015/index.js +4 -0
  179. package/folder-page/esm2015/koalarx-ui-folder-page.js +5 -0
  180. package/folder-page/esm2015/lib/folder.component.js +56 -0
  181. package/folder-page/esm2015/lib/koala-navigate-history.interface.js +2 -0
  182. package/folder-page/esm2015/lib/koala.folder-page.module.js +27 -0
  183. package/folder-page/fesm2015/koalarx-ui-folder-page.js +88 -0
  184. package/folder-page/fesm2015/koalarx-ui-folder-page.js.map +1 -0
  185. package/folder-page/index.d.ts +3 -2
  186. package/folder-page/koalarx-ui-folder-page.d.ts +4 -0
  187. package/folder-page/koalarx-ui-folder-page.metadata.json +1 -0
  188. package/folder-page/lib/folder.component.d.ts +17 -0
  189. package/folder-page/{koala-navigate-history.interface.d.ts → lib/koala-navigate-history.interface.d.ts} +0 -0
  190. package/folder-page/lib/koala.folder-page.module.d.ts +2 -0
  191. package/folder-page/package.json +19 -0
  192. package/form/README.md +24 -0
  193. package/form/bundles/koalarx-ui-form.umd.js +1949 -0
  194. package/form/bundles/koalarx-ui-form.umd.js.map +1 -0
  195. package/form/esm2015/index.js +20 -0
  196. package/form/esm2015/koalarx-ui-form.js +5 -0
  197. package/form/esm2015/lib/btn-submit/btn-submit.component.js +39 -0
  198. package/form/esm2015/lib/directives/koala-autofocus.directive.js +25 -0
  199. package/form/esm2015/lib/dynamic-form/builder/dynamic-form.builder.js +138 -0
  200. package/form/esm2015/lib/dynamic-form/builder/fields/autocomplete.builder.js +34 -0
  201. package/form/esm2015/lib/dynamic-form/builder/fields/field.base.js +147 -0
  202. package/form/esm2015/lib/dynamic-form/builder/fields/field.builder.js +7 -0
  203. package/form/esm2015/lib/dynamic-form/builder/fields/more-items.builder.js +57 -0
  204. package/form/esm2015/lib/dynamic-form/dynamic-form.component.js +551 -0
  205. package/{esm2015/form → form/esm2015/lib}/dynamic-form/enums/dynamic-form-type-field.enum.js +1 -1
  206. package/form/esm2015/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.js +2 -0
  207. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js +2 -0
  208. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js +2 -0
  209. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.js +2 -0
  210. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.js +2 -0
  211. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js +2 -0
  212. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js +2 -0
  213. package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.js +2 -0
  214. package/{esm2015/form → form/esm2015/lib}/dynamic-form/koala.dynamic-form.service.js +11 -8
  215. package/form/esm2015/lib/dynamic-form/validators/autocomplete-selected.validator.js +10 -0
  216. package/form/esm2015/lib/dynamic-form/validators/cnpj.validator.js +10 -0
  217. package/form/esm2015/lib/dynamic-form/validators/cpf.validator.js +10 -0
  218. package/form/esm2015/lib/dynamic-form/validators/date-max.validator.js +11 -0
  219. package/form/esm2015/lib/dynamic-form/validators/date-min.validator.js +11 -0
  220. package/form/esm2015/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js +10 -0
  221. package/form/esm2015/lib/dynamic-form/validators/validation.helper.js +86 -0
  222. package/form/esm2015/lib/form.abstract.js +42 -0
  223. package/form/esm2015/lib/koala.form.module.js +69 -0
  224. package/form/esm2015/lib/show-invalid-fields/show-invalid-fields.js +9 -0
  225. package/form/fesm2015/koalarx-ui-form.js +1465 -0
  226. package/form/fesm2015/koalarx-ui-form.js.map +1 -0
  227. package/form/index.d.ts +19 -17
  228. package/form/koalarx-ui-form.d.ts +4 -0
  229. package/form/koalarx-ui-form.metadata.json +1 -0
  230. package/form/{btn-submit → lib/btn-submit}/btn-submit.component.d.ts +1 -4
  231. package/form/lib/directives/koala-autofocus.directive.d.ts +7 -0
  232. package/form/{dynamic-form → lib/dynamic-form}/builder/dynamic-form.builder.d.ts +0 -0
  233. package/form/{dynamic-form → lib/dynamic-form}/builder/fields/autocomplete.builder.d.ts +0 -0
  234. package/form/{dynamic-form → lib/dynamic-form}/builder/fields/field.base.d.ts +0 -0
  235. package/form/{dynamic-form → lib/dynamic-form}/builder/fields/field.builder.d.ts +0 -0
  236. package/form/{dynamic-form → lib/dynamic-form}/builder/fields/more-items.builder.d.ts +0 -0
  237. package/form/{dynamic-form → lib/dynamic-form}/dynamic-form.component.d.ts +2 -5
  238. package/form/{dynamic-form → lib/dynamic-form}/enums/dynamic-form-type-field.enum.d.ts +0 -0
  239. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala-custom-validator-fn.interface.d.ts +0 -0
  240. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-autocomplete-options.interface.d.ts +0 -0
  241. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.d.ts +0 -0
  242. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-config.interface.d.ts +0 -0
  243. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-field.interface.d.ts +0 -0
  244. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.d.ts +0 -0
  245. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-show-field.interface.d.ts +0 -0
  246. package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-set-value.interface.d.ts +0 -0
  247. package/form/{dynamic-form → lib/dynamic-form}/koala.dynamic-form.service.d.ts +0 -3
  248. package/form/{dynamic-form → lib/dynamic-form}/validators/autocomplete-selected.validator.d.ts +0 -0
  249. package/form/{dynamic-form → lib/dynamic-form}/validators/cnpj.validator.d.ts +0 -0
  250. package/form/{dynamic-form → lib/dynamic-form}/validators/cpf.validator.d.ts +0 -0
  251. package/form/{dynamic-form → lib/dynamic-form}/validators/date-max.validator.d.ts +0 -0
  252. package/form/{dynamic-form → lib/dynamic-form}/validators/date-min.validator.d.ts +0 -0
  253. package/form/{dynamic-form → lib/dynamic-form}/validators/koala-dynamic-form-validator-result.helper.d.ts +0 -0
  254. package/form/{dynamic-form → lib/dynamic-form}/validators/validation.helper.d.ts +0 -0
  255. package/{core → form/lib}/form.abstract.d.ts +1 -1
  256. package/form/lib/koala.form.module.d.ts +2 -0
  257. package/form/{show-invalid-fields → lib/show-invalid-fields}/show-invalid-fields.d.ts +0 -0
  258. package/form/package.json +19 -0
  259. package/icon/bundles/koalarx-ui-icon.umd.js +76 -0
  260. package/icon/bundles/koalarx-ui-icon.umd.js.map +1 -0
  261. package/icon/esm2015/index.js +3 -0
  262. package/icon/esm2015/koalarx-ui-icon.js +5 -0
  263. package/icon/esm2015/lib/icon.component.js +45 -0
  264. package/icon/esm2015/lib/koala.icon.module.js +19 -0
  265. package/icon/fesm2015/koalarx-ui-icon.js +69 -0
  266. package/icon/fesm2015/koalarx-ui-icon.js.map +1 -0
  267. package/icon/index.d.ts +2 -2
  268. package/icon/koalarx-ui-icon.d.ts +4 -0
  269. package/icon/koalarx-ui-icon.metadata.json +1 -0
  270. package/icon/{icon.component.d.ts → lib/icon.component.d.ts} +3 -6
  271. package/icon/lib/koala.icon.module.d.ts +2 -0
  272. package/icon/package.json +19 -0
  273. package/icons-animated/README.md +24 -0
  274. package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js +138 -0
  275. package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js.map +1 -0
  276. package/icons-animated/esm2015/index.js +5 -0
  277. package/icons-animated/esm2015/koalarx-ui-icons-animated.js +6 -0
  278. package/icons-animated/esm2015/lib/icons/downloading/downloading-icon-animated.component.js +28 -0
  279. package/icons-animated/esm2015/lib/icons/loading/loading-icon-animated.component.js +28 -0
  280. package/icons-animated/esm2015/lib/icons-animated.component.js +15 -0
  281. package/icons-animated/esm2015/lib/icons-animated.service.js +29 -0
  282. package/icons-animated/esm2015/lib/koala-icons-animated.module.js +23 -0
  283. package/icons-animated/fesm2015/koalarx-ui-icons-animated.js +121 -0
  284. package/icons-animated/fesm2015/koalarx-ui-icons-animated.js.map +1 -0
  285. package/icons-animated/index.d.ts +4 -4
  286. package/icons-animated/koalarx-ui-icons-animated.d.ts +5 -0
  287. package/icons-animated/koalarx-ui-icons-animated.metadata.json +1 -0
  288. package/icons-animated/{icons → lib/icons}/downloading/downloading-icon-animated.component.d.ts +0 -3
  289. package/icons-animated/{icons → lib/icons}/loading/loading-icon-animated.component.d.ts +0 -3
  290. package/icons-animated/lib/icons-animated.component.d.ts +5 -0
  291. package/icons-animated/lib/icons-animated.service.d.ts +6 -0
  292. package/icons-animated/lib/koala-icons-animated.module.d.ts +2 -0
  293. package/icons-animated/package.json +19 -0
  294. package/list/README.md +24 -0
  295. package/list/bundles/koalarx-ui-list.umd.js +882 -0
  296. package/list/bundles/koalarx-ui-list.umd.js.map +1 -0
  297. package/list/esm2015/index.js +11 -0
  298. package/list/esm2015/koalarx-ui-list.js +5 -0
  299. package/list/esm2015/lib/koala-list-filter.interface.js +2 -0
  300. package/list/esm2015/lib/koala-list-form-filter.interface.js +2 -0
  301. package/list/esm2015/lib/koala-list-item-menu-option.interface.js +2 -0
  302. package/list/esm2015/lib/koala-list-item.interface.js +2 -0
  303. package/list/esm2015/lib/koala.list-config.interface.js +2 -0
  304. package/list/esm2015/lib/koala.list.module.js +40 -0
  305. package/list/esm2015/lib/koala.list.service.js +13 -0
  306. package/list/esm2015/lib/list-builder/list.builder.js +85 -0
  307. package/list/esm2015/lib/list.abstract.js +174 -0
  308. package/list/esm2015/lib/list.component.js +151 -0
  309. package/list/esm2015/lib/providers/pagination/pagination.provider.js +30 -0
  310. package/list/fesm2015/koalarx-ui-list.js +481 -0
  311. package/list/fesm2015/koalarx-ui-list.js.map +1 -0
  312. package/list/index.d.ts +10 -9
  313. package/list/koalarx-ui-list.d.ts +4 -0
  314. package/list/koalarx-ui-list.metadata.json +1 -0
  315. package/list/{koala-list-filter.interface.d.ts → lib/koala-list-filter.interface.d.ts} +1 -1
  316. package/list/{koala-list-form-filter.interface.d.ts → lib/koala-list-form-filter.interface.d.ts} +0 -0
  317. package/list/{koala-list-item-menu-option.interface.d.ts → lib/koala-list-item-menu-option.interface.d.ts} +0 -0
  318. package/list/{koala-list-item.interface.d.ts → lib/koala-list-item.interface.d.ts} +1 -1
  319. package/list/{koala.list-config.interface.d.ts → lib/koala.list-config.interface.d.ts} +2 -2
  320. package/list/lib/koala.list.module.d.ts +2 -0
  321. package/list/lib/koala.list.service.d.ts +4 -0
  322. package/list/{list-builder → lib/list-builder}/list.builder.d.ts +1 -1
  323. package/list/{list.abstract.d.ts → lib/list.abstract.d.ts} +7 -7
  324. package/list/{list.component.d.ts → lib/list.component.d.ts} +12 -15
  325. package/{core → list/lib}/providers/pagination/pagination.provider.d.ts +0 -3
  326. package/list/package.json +19 -0
  327. package/menu/README.md +24 -0
  328. package/menu/bundles/koalarx-ui-menu.umd.js +511 -0
  329. package/menu/bundles/koalarx-ui-menu.umd.js.map +1 -0
  330. package/menu/esm2015/index.js +6 -0
  331. package/menu/esm2015/koalarx-ui-menu.js +5 -0
  332. package/menu/esm2015/lib/koala.menu-module.interface.js +2 -0
  333. package/menu/esm2015/lib/koala.menu-tool.interface.js +2 -0
  334. package/menu/esm2015/lib/koala.menu.module.js +25 -0
  335. package/menu/esm2015/lib/koala.menu.service.js +22 -0
  336. package/menu/esm2015/lib/menu.component.js +104 -0
  337. package/menu/fesm2015/koalarx-ui-menu.js +153 -0
  338. package/menu/fesm2015/koalarx-ui-menu.js.map +1 -0
  339. package/menu/index.d.ts +5 -5
  340. package/menu/koalarx-ui-menu.d.ts +4 -0
  341. package/menu/koalarx-ui-menu.metadata.json +1 -0
  342. package/menu/{koala.menu-module.interface.d.ts → lib/koala.menu-module.interface.d.ts} +0 -0
  343. package/menu/{koala.menu-tool.interface.d.ts → lib/koala.menu-tool.interface.d.ts} +0 -0
  344. package/menu/lib/koala.menu.module.d.ts +2 -0
  345. package/menu/lib/koala.menu.service.d.ts +7 -0
  346. package/menu/{menu.component.d.ts → lib/menu.component.d.ts} +4 -6
  347. package/menu/package.json +19 -0
  348. package/package.json +3 -12
  349. package/question/README.md +24 -0
  350. package/question/bundles/koalarx-ui-question.umd.js +104 -0
  351. package/question/bundles/koalarx-ui-question.umd.js.map +1 -0
  352. package/question/esm2015/index.js +5 -0
  353. package/question/esm2015/koalarx-ui-question.js +5 -0
  354. package/question/esm2015/lib/dialog-question.component.js +20 -0
  355. package/question/esm2015/lib/koala-question-config.interface.js +2 -0
  356. package/question/esm2015/lib/koala.question.module.js +27 -0
  357. package/question/esm2015/lib/koala.question.service.js +28 -0
  358. package/question/fesm2015/koalarx-ui-question.js +77 -0
  359. package/question/fesm2015/koalarx-ui-question.js.map +1 -0
  360. package/question/index.d.ts +4 -4
  361. package/question/koalarx-ui-question.d.ts +4 -0
  362. package/question/koalarx-ui-question.metadata.json +1 -0
  363. package/question/lib/dialog-question.component.d.ts +7 -0
  364. package/question/{koala-question-config.interface.d.ts → lib/koala-question-config.interface.d.ts} +1 -1
  365. package/question/lib/koala.question.module.d.ts +2 -0
  366. package/question/{koala.question.service.d.ts → lib/koala.question.service.d.ts} +1 -4
  367. package/question/package.json +19 -0
  368. package/snackbar/README.md +24 -0
  369. package/snackbar/bundles/koalarx-ui-snackbar.umd.js +93 -0
  370. package/snackbar/bundles/koalarx-ui-snackbar.umd.js.map +1 -0
  371. package/snackbar/esm2015/index.js +5 -0
  372. package/snackbar/esm2015/koalarx-ui-snackbar.js +5 -0
  373. package/snackbar/esm2015/lib/koala.snackbar.component.js +20 -0
  374. package/snackbar/esm2015/lib/koala.snackbar.interface.js +2 -0
  375. package/snackbar/esm2015/lib/koala.snackbar.module.js +26 -0
  376. package/snackbar/esm2015/lib/koala.snackbar.service.js +35 -0
  377. package/snackbar/fesm2015/koalarx-ui-snackbar.js +81 -0
  378. package/snackbar/fesm2015/koalarx-ui-snackbar.js.map +1 -0
  379. package/snackbar/index.d.ts +4 -4
  380. package/snackbar/koalarx-ui-snackbar.d.ts +4 -0
  381. package/snackbar/koalarx-ui-snackbar.metadata.json +1 -0
  382. package/snackbar/{koala.snackbar.component.d.ts → lib/koala.snackbar.component.d.ts} +0 -3
  383. package/snackbar/{koala.snackbar.interface.d.ts → lib/koala.snackbar.interface.d.ts} +0 -0
  384. package/snackbar/lib/koala.snackbar.module.d.ts +2 -0
  385. package/snackbar/{koala.snackbar.service.d.ts → lib/koala.snackbar.service.d.ts} +0 -3
  386. package/snackbar/package.json +19 -0
  387. package/README.md +0 -9
  388. package/alert/dialog-alert.component.d.ts +0 -10
  389. package/alert/koala.alert.module.d.ts +0 -12
  390. package/bundles/koalarx-ui.umd.js +0 -9165
  391. package/bundles/koalarx-ui.umd.js.map +0 -1
  392. package/button/button.component.d.ts +0 -16
  393. package/button/koala.button.module.d.ts +0 -12
  394. package/core/directives/koala-autofocus.directive.d.ts +0 -10
  395. package/core/loader/loader-bar-page.component.d.ts +0 -8
  396. package/core/ngx-koala.module.d.ts +0 -12
  397. package/core/page/koala.page.module.d.ts +0 -21
  398. package/core/router/koala.parameter-hash-location-stategy.d.ts +0 -7
  399. package/dialog/dialog.component.d.ts +0 -11
  400. package/dialog/koala.dialog.module.d.ts +0 -11
  401. package/dynamic-component/koala-dynamic-component.directive.d.ts +0 -8
  402. package/dynamic-component/koala-dynamic-component.module.d.ts +0 -8
  403. package/esm2015/alert/dialog-alert.component.js +0 -109
  404. package/esm2015/alert/index.js +0 -10
  405. package/esm2015/alert/koala.alert-config.interface.js +0 -2
  406. package/esm2015/alert/koala.alert.enum.js +0 -9
  407. package/esm2015/alert/koala.alert.module.js +0 -49
  408. package/esm2015/alert/koala.alert.service.js +0 -19
  409. package/esm2015/alert/koala.request-code-to-alert-enum.translate.js +0 -18
  410. package/esm2015/button/button.component.js +0 -113
  411. package/esm2015/button/index.js +0 -6
  412. package/esm2015/button/koala.button.module.js +0 -43
  413. package/esm2015/core/directives/koala-autofocus.directive.js +0 -25
  414. package/esm2015/core/environments/koalaEnvironment.js +0 -4
  415. package/esm2015/core/form.abstract.js +0 -42
  416. package/esm2015/core/index.js +0 -61
  417. package/esm2015/core/loader/loader-bar-page.component.js +0 -38
  418. package/esm2015/core/loader/loader-bar-page.interface.js +0 -2
  419. package/esm2015/core/loader/loader-config.interface.js +0 -2
  420. package/esm2015/core/mask-options.js +0 -4
  421. package/esm2015/core/ngx-koala.module.js +0 -51
  422. package/esm2015/core/page/koala-language.helper.js +0 -114
  423. package/esm2015/core/page/koala-oauth2-config.interface.js +0 -2
  424. package/esm2015/core/page/koala-page-pallet-colors.interface.js +0 -2
  425. package/esm2015/core/page/koala.page.module.js +0 -79
  426. package/esm2015/core/page/koala.user-menu-options.interface.js +0 -2
  427. package/esm2015/core/page/notifications/koala.notification.interface.js +0 -2
  428. package/esm2015/core/page/notifications/notification.component.js +0 -127
  429. package/esm2015/core/page/page.component.js +0 -627
  430. package/esm2015/core/providers/pagination/pagination.provider.js +0 -32
  431. package/esm2015/core/router/koala.parameter-hash-location-stategy.js +0 -19
  432. package/esm2015/core/services/api-requester/factory/koala.response.factory.js +0 -48
  433. package/esm2015/core/services/api-requester/helpers/error/koala.client.error.js +0 -3
  434. package/esm2015/core/services/api-requester/helpers/error/koala.errors.helper.js +0 -46
  435. package/esm2015/core/services/api-requester/helpers/error/koala.not-found.error.js +0 -3
  436. package/esm2015/core/services/api-requester/helpers/error/koala.success.error.js +0 -3
  437. package/esm2015/core/services/api-requester/helpers/error/koala.unhautorized.error.js +0 -3
  438. package/esm2015/core/services/api-requester/helpers/service/koala.request-header.helper.js +0 -15
  439. package/esm2015/core/services/api-requester/koala.api-requester.base.js +0 -70
  440. package/esm2015/core/services/csv/koala.csv.service.js +0 -36
  441. package/esm2015/core/services/loader/koala.loader.service.js +0 -34
  442. package/esm2015/core/services/openid/koala.oauth.config.js +0 -33
  443. package/esm2015/core/services/openid/koala.oauth2.service.js +0 -194
  444. package/esm2015/core/services/request/koala.request.service.js +0 -53
  445. package/esm2015/core/services/token/koala.token.service.js +0 -53
  446. package/esm2015/core/services/token/token.factory.js +0 -31
  447. package/esm2015/core/services/xlsx/koala.xlsx-config.interface.js +0 -2
  448. package/esm2015/core/services/xlsx/koala.xlsx.service.js +0 -63
  449. package/esm2015/dialog/dialog.component.js +0 -72
  450. package/esm2015/dialog/index.js +0 -7
  451. package/esm2015/dialog/koala.dialog-template.interface.js +0 -2
  452. package/esm2015/dialog/koala.dialog.module.js +0 -39
  453. package/esm2015/dialog/koala.dialog.service.js +0 -57
  454. package/esm2015/dynamic-component/index.js +0 -9
  455. package/esm2015/dynamic-component/koala-dynamic-component.component.js +0 -2
  456. package/esm2015/dynamic-component/koala-dynamic-component.directive.js +0 -16
  457. package/esm2015/dynamic-component/koala-dynamic-component.factory.js +0 -44
  458. package/esm2015/dynamic-component/koala-dynamic-component.js +0 -7
  459. package/esm2015/dynamic-component/koala-dynamic-component.module.js +0 -24
  460. package/esm2015/file-button/file-button.component.js +0 -183
  461. package/esm2015/file-button/index.js +0 -8
  462. package/esm2015/file-button/koala.btn-file.service.js +0 -28
  463. package/esm2015/file-button/koala.file-button.module.js +0 -39
  464. package/esm2015/file-button/koala.file.interface.js +0 -2
  465. package/esm2015/folder-page/folder.component.js +0 -157
  466. package/esm2015/folder-page/index.js +0 -6
  467. package/esm2015/folder-page/koala-navigate-history.interface.js +0 -2
  468. package/esm2015/folder-page/koala.folder-page.module.js +0 -43
  469. package/esm2015/form/btn-submit/btn-submit.component.js +0 -110
  470. package/esm2015/form/dynamic-form/builder/dynamic-form.builder.js +0 -138
  471. package/esm2015/form/dynamic-form/builder/fields/autocomplete.builder.js +0 -34
  472. package/esm2015/form/dynamic-form/builder/fields/field.base.js +0 -147
  473. package/esm2015/form/dynamic-form/builder/fields/field.builder.js +0 -7
  474. package/esm2015/form/dynamic-form/builder/fields/more-items.builder.js +0 -57
  475. package/esm2015/form/dynamic-form/dynamic-form.component.js +0 -1861
  476. package/esm2015/form/dynamic-form/interfaces/koala-custom-validator-fn.interface.js +0 -2
  477. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js +0 -2
  478. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js +0 -2
  479. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-config.interface.js +0 -2
  480. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-field.interface.js +0 -2
  481. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js +0 -2
  482. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js +0 -2
  483. package/esm2015/form/dynamic-form/interfaces/koala.dynamic-set-value.interface.js +0 -2
  484. package/esm2015/form/dynamic-form/validators/autocomplete-selected.validator.js +0 -10
  485. package/esm2015/form/dynamic-form/validators/cnpj.validator.js +0 -10
  486. package/esm2015/form/dynamic-form/validators/cpf.validator.js +0 -10
  487. package/esm2015/form/dynamic-form/validators/date-max.validator.js +0 -11
  488. package/esm2015/form/dynamic-form/validators/date-min.validator.js +0 -11
  489. package/esm2015/form/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js +0 -10
  490. package/esm2015/form/dynamic-form/validators/validation.helper.js +0 -86
  491. package/esm2015/form/index.js +0 -21
  492. package/esm2015/form/koala.form.module.js +0 -135
  493. package/esm2015/form/show-invalid-fields/show-invalid-fields.js +0 -9
  494. package/esm2015/icon/icon.component.js +0 -458
  495. package/esm2015/icon/index.js +0 -6
  496. package/esm2015/icon/koala.icon.module.js +0 -27
  497. package/esm2015/icons-animated/icons/downloading/downloading-icon-animated.component.js +0 -40
  498. package/esm2015/icons-animated/icons/loading/loading-icon-animated.component.js +0 -58
  499. package/esm2015/icons-animated/icons-animated.component.js +0 -48
  500. package/esm2015/icons-animated/icons-animated.service.js +0 -32
  501. package/esm2015/icons-animated/index.js +0 -8
  502. package/esm2015/icons-animated/koala-icons-animated.module.js +0 -33
  503. package/esm2015/koalarx-ui.js +0 -5
  504. package/esm2015/list/index.js +0 -13
  505. package/esm2015/list/koala-list-filter.interface.js +0 -2
  506. package/esm2015/list/koala-list-form-filter.interface.js +0 -2
  507. package/esm2015/list/koala-list-item-menu-option.interface.js +0 -2
  508. package/esm2015/list/koala-list-item.interface.js +0 -2
  509. package/esm2015/list/koala.list-config.interface.js +0 -2
  510. package/esm2015/list/koala.list.module.js +0 -67
  511. package/esm2015/list/koala.list.service.js +0 -15
  512. package/esm2015/list/list-builder/list.builder.js +0 -85
  513. package/esm2015/list/list.abstract.js +0 -161
  514. package/esm2015/list/list.component.js +0 -498
  515. package/esm2015/menu/index.js +0 -9
  516. package/esm2015/menu/koala.menu-module.interface.js +0 -2
  517. package/esm2015/menu/koala.menu-tool.interface.js +0 -2
  518. package/esm2015/menu/koala.menu.module.js +0 -39
  519. package/esm2015/menu/koala.menu.service.js +0 -24
  520. package/esm2015/menu/menu.component.js +0 -289
  521. package/esm2015/public-api.js +0 -18
  522. package/esm2015/question/dialog-question.component.js +0 -72
  523. package/esm2015/question/index.js +0 -8
  524. package/esm2015/question/koala-question-config.interface.js +0 -2
  525. package/esm2015/question/koala.question.module.js +0 -43
  526. package/esm2015/question/koala.question.service.js +0 -26
  527. package/esm2015/snackbar/index.js +0 -8
  528. package/esm2015/snackbar/koala.snackbar.component.js +0 -48
  529. package/esm2015/snackbar/koala.snackbar.interface.js +0 -2
  530. package/esm2015/snackbar/koala.snackbar.module.js +0 -39
  531. package/esm2015/snackbar/koala.snackbar.service.js +0 -35
  532. package/fesm2015/koalarx-ui.js +0 -7726
  533. package/fesm2015/koalarx-ui.js.map +0 -1
  534. package/file-button/file-button.component.d.ts +0 -29
  535. package/file-button/koala.file-button.module.d.ts +0 -11
  536. package/folder-page/folder.component.d.ts +0 -20
  537. package/folder-page/koala.folder-page.module.d.ts +0 -12
  538. package/form/koala.form.module.d.ts +0 -25
  539. package/icon/koala.icon.module.d.ts +0 -8
  540. package/icons-animated/icons-animated.component.d.ts +0 -8
  541. package/icons-animated/icons-animated.service.d.ts +0 -9
  542. package/icons-animated/koala-icons-animated.module.d.ts +0 -10
  543. package/koalarx-ui.d.ts +0 -5
  544. package/list/koala.list.module.d.ts +0 -16
  545. package/list/koala.list.service.d.ts +0 -7
  546. package/menu/koala.menu.module.d.ts +0 -11
  547. package/menu/koala.menu.service.d.ts +0 -9
  548. package/public-api.d.ts +0 -14
  549. package/question/dialog-question.component.d.ts +0 -10
  550. package/question/koala.question.module.d.ts +0 -12
  551. package/snackbar/koala.snackbar.module.d.ts +0 -10
@@ -0,0 +1,196 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { koala } from "@koalarx/utils";
6
+ import { Router } from "@angular/router";
7
+ import { KoalaTokenService } from "../token/koala.token.service";
8
+ import { KoalaOauthConfig } from "./koala.oauth.config";
9
+ import { KlDelay } from "@koalarx/utils/dist/utils/KlDelay";
10
+ const STATE_STORAGE_NAME = 'koala_openid_state';
11
+ export class KoalaOAuth2Service {
12
+ constructor(http, router, tokenService) {
13
+ this.http = http;
14
+ this.router = router;
15
+ this.tokenService = tokenService;
16
+ this.events = new BehaviorSubject(null);
17
+ this.token = {};
18
+ this.generateState();
19
+ }
20
+ ngOnDestroy() {
21
+ if (this.eventSubscription) {
22
+ this.eventSubscription.unsubscribe();
23
+ }
24
+ if (this.refreshTokenInterval) {
25
+ clearInterval(this.refreshTokenInterval);
26
+ }
27
+ }
28
+ hasOpenIdConfig() {
29
+ return !!this.openIdOptions;
30
+ }
31
+ configure(options) {
32
+ this.config = options;
33
+ }
34
+ loadDiscoveryDocumentAndTryLogin() {
35
+ if (this.eventSubscription) {
36
+ this.eventSubscription.unsubscribe();
37
+ }
38
+ this.eventSubscription = this.events.subscribe(event => {
39
+ if (event === 'authenticate') {
40
+ this.generateState();
41
+ localStorage.setItem(STATE_STORAGE_NAME, this.state);
42
+ window.location.href = `${this.openIdOptions.authorization_endpoint}?response_type=${this.config.responseType}&client_id=${this.config.clientId}&state=${this.state}&redirect_uri=${this.config.redirectUri}&scope=${this.config.scope}`;
43
+ }
44
+ else if (event === 'getToken') {
45
+ const urlParams = new URLSearchParams(window.location.search);
46
+ const state = urlParams.get('state');
47
+ if (state === this.state) {
48
+ const code = urlParams.get('code');
49
+ this.getToken(code);
50
+ }
51
+ else {
52
+ this.logout();
53
+ }
54
+ }
55
+ else if (event === 'getClaims' || (event === 'refreshToken' && !this.claims)) {
56
+ this.getClaims();
57
+ }
58
+ });
59
+ return new Promise((resolve, reject) => {
60
+ this.http.get(`${this.config.issuer}/.well-known/openid-configuration`).subscribe(options => {
61
+ this.openIdOptions = options;
62
+ if (window.location.href.indexOf(`state=${this.state}`) >= 0) {
63
+ this.events.next('getToken');
64
+ }
65
+ else if (!this.tokenService.getOAuth2Token()) {
66
+ this.events.next('loadedConfig');
67
+ }
68
+ resolve(true);
69
+ }, e => {
70
+ console.error(e);
71
+ this.events.next('errorLoadConfig');
72
+ reject(e);
73
+ });
74
+ });
75
+ }
76
+ initLoginFlow(name) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ if (name) {
79
+ KoalaOauthConfig.setConfig(name);
80
+ yield KlDelay.waitFor(1000);
81
+ }
82
+ this.events.next('authenticate');
83
+ });
84
+ }
85
+ getIdentityClaims() {
86
+ return this.claims;
87
+ }
88
+ getAccessToken() {
89
+ return this.token.access_token;
90
+ }
91
+ getIdToken() {
92
+ return this.token.id_token;
93
+ }
94
+ getRefreshToken() {
95
+ return this.token.refresh_token;
96
+ }
97
+ getAccessTokenExpiration() {
98
+ const expires_in = new Date();
99
+ expires_in.setSeconds(this.token.expires_in);
100
+ return expires_in.toString();
101
+ }
102
+ getCode() {
103
+ return this.code;
104
+ }
105
+ logout() {
106
+ const logoutInterval = setInterval(() => {
107
+ if (this.hasOpenIdConfig()) {
108
+ if (this.openIdOptions.end_session_endpoint) {
109
+ this.claims = null;
110
+ this.token = null;
111
+ const iframeLogout = document.createElement('iframe');
112
+ iframeLogout.style.display = 'none';
113
+ iframeLogout.src = this.openIdOptions.end_session_endpoint;
114
+ document.querySelector('body').appendChild(iframeLogout);
115
+ }
116
+ this.events.next('logout');
117
+ clearInterval(logoutInterval);
118
+ }
119
+ }, 300);
120
+ }
121
+ initRefreshTokenInterval(code, refreshToken) {
122
+ if (!this.refreshTokenInterval) {
123
+ this.refreshTokenInterval = setInterval(() => {
124
+ const refreshTokenDate = new Date();
125
+ refreshTokenDate.setMinutes(refreshTokenDate.getMinutes() + 1);
126
+ const token = this.tokenService.getOAuth2Token();
127
+ if (token) {
128
+ const expires_in = token.expired;
129
+ if (expires_in) {
130
+ if (new Date(expires_in) <= refreshTokenDate) {
131
+ this.getToken(code, refreshToken);
132
+ }
133
+ }
134
+ }
135
+ }, 1000);
136
+ }
137
+ }
138
+ getToken(code, refreshToken) {
139
+ var _a, _b;
140
+ if (refreshToken) {
141
+ clearInterval(this.refreshTokenInterval);
142
+ this.refreshTokenInterval = null;
143
+ }
144
+ const formData = new URLSearchParams();
145
+ let data = koala({
146
+ grant_type: (refreshToken ? 'refresh_token' : 'authorization_code'),
147
+ code,
148
+ redirect_uri: this.config.redirectUri,
149
+ client_id: this.config.clientId
150
+ }).object().merge((_a = this.config.customQueryParams) !== null && _a !== void 0 ? _a : {}).getValue();
151
+ if (refreshToken) {
152
+ data = koala(data).object().merge({ refresh_token: refreshToken }).getValue();
153
+ }
154
+ if (!this.code) {
155
+ this.code = code;
156
+ }
157
+ Object.keys(data).forEach(indexName => {
158
+ formData.append(indexName, data[indexName]);
159
+ });
160
+ this.http.post((_b = this.config.endpointToken) !== null && _b !== void 0 ? _b : this.openIdOptions.token_endpoint, formData.toString(), {
161
+ headers: {
162
+ 'Content-Type': 'application/x-www-form-urlencoded'
163
+ }
164
+ }).subscribe((token) => {
165
+ this.token = token;
166
+ this.events.next((refreshToken ? 'refreshToken' : 'getClaims'));
167
+ }, () => this.events.next('getTokenError'));
168
+ }
169
+ getClaims() {
170
+ var _a;
171
+ this.http.get((_a = this.config.endpointClaims) !== null && _a !== void 0 ? _a : this.openIdOptions.userinfo_endpoint, {
172
+ headers: {
173
+ Authorization: `Bearer ${this.getAccessToken()}`
174
+ }
175
+ }).subscribe(userInfo => {
176
+ this.claims = userInfo;
177
+ this.state = null;
178
+ localStorage.removeItem(STATE_STORAGE_NAME);
179
+ this.events.next(this.events.getValue() === 'refreshToken' ? 'refreshToken' : 'userAuthenticated');
180
+ }, () => this.events.next('loadedConfig'));
181
+ }
182
+ generateState() {
183
+ this.state = localStorage.getItem(STATE_STORAGE_NAME) ?
184
+ localStorage.getItem(STATE_STORAGE_NAME) :
185
+ koala('').string().random(30, true, true, true).getValue();
186
+ }
187
+ }
188
+ KoalaOAuth2Service.decorators = [
189
+ { type: Injectable }
190
+ ];
191
+ KoalaOAuth2Service.ctorParameters = () => [
192
+ { type: HttpClient },
193
+ { type: Router },
194
+ { type: KoalaTokenService }
195
+ ];
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEub2F1dGgyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvb3BlbmlkL2tvYWxhLm9hdXRoMi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQXlENUQsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQWtCO0lBVzdCLFlBQ1UsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLFlBQStCO1FBRi9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQWJsQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVksSUFBSSxDQUFDLENBQUM7UUFNN0MsVUFBSyxHQUFTLEVBQUUsQ0FBQztRQVN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7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QUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUMxQyxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUMxQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFFLENBQUM7OztZQXpNRixVQUFVOzs7WUFoRUYsVUFBVTtZQUVWLE1BQU07WUFDTixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsga29hbGEgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHNcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IEtvYWxhVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3Rva2VuL2tvYWxhLnRva2VuLnNlcnZpY2VcIjtcbmltcG9ydCB7IEtvYWxhT2F1dGhDb25maWcgfSBmcm9tIFwiLi9rb2FsYS5vYXV0aC5jb25maWdcIjtcbmltcG9ydCB7IEtsRGVsYXkgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvZGlzdC91dGlscy9LbERlbGF5XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS29hbGFPQXV0aDJDb25maWcge1xuICByZWRpcmVjdFVyaTogc3RyaW5nO1xuICByZXNwb25zZVR5cGU6IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZztcbiAgaXNzdWVyOiBzdHJpbmc7XG4gIHJlZGlyZWN0VXJpQWZ0ZXJBdXRoPzogc3RyaW5nO1xuICBjdXN0b21RdWVyeVBhcmFtcz86IG9iamVjdDtcbiAgZW5kcG9pbnRUb2tlbj86IHN0cmluZztcbiAgZW5kcG9pbnRDbGFpbXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS29hbGFPcGVuSWRDb25maWcge1xuICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIGNoZWNrX3Nlc3Npb25faWZyYW1lOiBzdHJpbmc7XG4gIGNsYWltX3R5cGVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIGNsYWltc19wYXJhbWV0ZXJfc3VwcG9ydGVkOiBib29sZWFuO1xuICBjbGFpbXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBlbmRfc2Vzc2lvbl9lbmRwb2ludDogc3RyaW5nO1xuICBncmFudF90eXBlc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBpZF90b2tlbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgaWRfdG9rZW5fZW5jcnlwdGlvbl9lbmNfdmFsdWVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIGlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBpbnRyb3NwZWN0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIGlzc3Vlcjogc3RyaW5nO1xuICBqd2tzX3VyaTogc3RyaW5nO1xuICByZWdpc3RyYXRpb25fZW5kcG9pbnQ6IHN0cmluZztcbiAgcmVxdWVzdF9vYmplY3Rfc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIHJlcXVlc3RfcGFyYW1ldGVyX3N1cHBvcnRlZDogYm9vbGVhbjtcbiAgcmVxdWVzdF91cmlfcGFyYW1ldGVyX3N1cHBvcnRlZDogYm9vbGVhbjtcbiAgcmVzcG9uc2VfbW9kZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgcmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgc2NvcGVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIHN1YmplY3RfdHlwZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdGxzX2NsaWVudF9jZXJ0aWZpY2F0ZV9ib3VuZF9hY2Nlc3NfdG9rZW5zOiBib29sZWFuO1xuICB0b2tlbl9lbmRwb2ludDogc3RyaW5nO1xuICB0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdG9rZW5faW50cm9zcGVjdGlvbl9lbmRwb2ludDogc3RyaW5nO1xuICB1c2VyaW5mb19lbmRwb2ludDogc3RyaW5nO1xuICB1c2VyaW5mb19zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID1cbiAgJ2xvYWRlZENvbmZpZydcbiAgfCAnZ2V0VG9rZW4nXG4gIHwgJ2dldFRva2VuRXJyb3InXG4gIHwgJ3JlZnJlc2hUb2tlbidcbiAgfCAnZ2V0Q2xhaW1zJ1xuICB8ICd1c2VyQXV0aGVudGljYXRlZCdcbiAgfCAnYXV0aGVudGljYXRlJ1xuICB8ICdsb2dvdXQnXG4gIHwgJ2Vycm9yTG9hZENvbmZpZyc7XG5cbmNvbnN0IFNUQVRFX1NUT1JBR0VfTkFNRSA9ICdrb2FsYV9vcGVuaWRfc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgS29hbGFPQXV0aDJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIGV2ZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXZlbnRUeXBlPihudWxsKTtcbiAgcHJpdmF0ZSBjb25maWc6IEtvYWxhT0F1dGgyQ29uZmlnO1xuICBwcml2YXRlIG9wZW5JZE9wdGlvbnM6IEtvYWxhT3BlbklkQ29uZmlnO1xuICBwcml2YXRlIGV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc3RhdGU/OiBzdHJpbmc7XG4gIHByaXZhdGUgY29kZT86IHN0cmluZztcbiAgcHJpdmF0ZSB0b2tlbj86IGFueSA9IHt9O1xuICBwcml2YXRlIGNsYWltcz86IGFueTtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5JbnRlcnZhbD86IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogS29hbGFUb2tlblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5nZW5lcmF0ZVN0YXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzT3BlbklkQ29uZmlnKCkge1xuICAgIHJldHVybiAhIXRoaXMub3BlbklkT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmUob3B0aW9uczogS29hbGFPQXV0aDJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgbG9hZERpc2NvdmVyeURvY3VtZW50QW5kVHJ5TG9naW4oKSB7XG5cbiAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gJ2F1dGhlbnRpY2F0ZScpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVN0YXRlKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUQVRFX1NUT1JBR0VfTkFNRSwgdGhpcy5zdGF0ZSk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5vcGVuSWRPcHRpb25zLmF1dGhvcml6YXRpb25fZW5kcG9pbnR9P3Jlc3BvbnNlX3R5cGU9JHt0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGV9JmNsaWVudF9pZD0ke3RoaXMuY29uZmlnLmNsaWVudElkfSZzdGF0ZT0ke3RoaXMuc3RhdGV9JnJlZGlyZWN0X3VyaT0ke3RoaXMuY29uZmlnLnJlZGlyZWN0VXJpfSZzY29wZT0ke3RoaXMuY29uZmlnLnNjb3BlfWA7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnZ2V0VG9rZW4nKSB7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdXJsUGFyYW1zLmdldCgnc3RhdGUnKTtcbiAgICAgICAgaWYgKHN0YXRlID09PSB0aGlzLnN0YXRlKSB7XG4gICAgICAgICAgY29uc3QgY29kZSA9IHVybFBhcmFtcy5nZXQoJ2NvZGUnKTtcbiAgICAgICAgICB0aGlzLmdldFRva2VuKGNvZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICdnZXRDbGFpbXMnIHx8IChldmVudCA9PT0gJ3JlZnJlc2hUb2tlbicgJiYgIXRoaXMuY2xhaW1zKSkge1xuICAgICAgICB0aGlzLmdldENsYWltcygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuaHR0cC5nZXQ8S29hbGFPcGVuSWRDb25maWc+KGAke3RoaXMuY29uZmlnLmlzc3Vlcn0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gKS5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XG4gICAgICAgIHRoaXMub3BlbklkT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKGBzdGF0ZT0ke3RoaXMuc3RhdGV9YCkgPj0gMCkge1xuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2dldFRva2VuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMudG9rZW5TZXJ2aWNlLmdldE9BdXRoMlRva2VuKCkpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50cy5uZXh0KCdsb2FkZWRDb25maWcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Vycm9yTG9hZENvbmZpZycpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0TG9naW5GbG93KG5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAobmFtZSkge1xuICAgICAgS29hbGFPYXV0aENvbmZpZy5zZXRDb25maWcobmFtZSk7XG4gICAgICBhd2FpdCBLbERlbGF5LndhaXRGb3IoMTAwMCk7XG4gICAgfVxuXG4gICAgdGhpcy5ldmVudHMubmV4dCgnYXV0aGVudGljYXRlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWRlbnRpdHlDbGFpbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuLmFjY2Vzc190b2tlbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJZFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuLmlkX3Rva2VuO1xuICB9XG5cbiAgcHVibGljIGdldFJlZnJlc2hUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbi5yZWZyZXNoX3Rva2VuO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpIHtcbiAgICBjb25zdCBleHBpcmVzX2luID0gbmV3IERhdGUoKTtcbiAgICBleHBpcmVzX2luLnNldFNlY29uZHModGhpcy50b2tlbi5leHBpcmVzX2luKTtcbiAgICByZXR1cm4gZXhwaXJlc19pbi50b1N0cmluZygpO1xuICB9XG5cbiAgcHVibGljIGdldENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKSB7XG4gICAgY29uc3QgbG9nb3V0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNPcGVuSWRDb25maWcoKSkge1xuICAgICAgICBpZiAodGhpcy5vcGVuSWRPcHRpb25zLmVuZF9zZXNzaW9uX2VuZHBvaW50KSB7XG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSBudWxsO1xuICAgICAgICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICAgICAgICAgIGNvbnN0IGlmcmFtZUxvZ291dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICAgIGlmcmFtZUxvZ291dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgIGlmcmFtZUxvZ291dC5zcmMgPSB0aGlzLm9wZW5JZE9wdGlvbnMuZW5kX3Nlc3Npb25fZW5kcG9pbnQ7XG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZENoaWxkKGlmcmFtZUxvZ291dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ldmVudHMubmV4dCgnbG9nb3V0Jyk7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwobG9nb3V0SW50ZXJ2YWwpO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFJlZnJlc2hUb2tlbkludGVydmFsKGNvZGU6IHN0cmluZywgcmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICByZWZyZXNoVG9rZW5EYXRlLnNldE1pbnV0ZXMocmVmcmVzaFRva2VuRGF0ZS5nZXRNaW51dGVzKCkgKyAxKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXRPQXV0aDJUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICBjb25zdCBleHBpcmVzX2luID0gdG9rZW4uZXhwaXJlZDtcbiAgICAgICAgICBpZiAoZXhwaXJlc19pbikge1xuICAgICAgICAgICAgaWYgKG5ldyBEYXRlKGV4cGlyZXNfaW4pIDw9IHJlZnJlc2hUb2tlbkRhdGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5nZXRUb2tlbihjb2RlLCByZWZyZXNoVG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbihjb2RlOiBzdHJpbmcsIHJlZnJlc2hUb2tlbj86IHN0cmluZykge1xuICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCk7XG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBsZXQgZGF0YSA9IGtvYWxhKHtcbiAgICAgIGdyYW50X3R5cGU6IChyZWZyZXNoVG9rZW4gPyAncmVmcmVzaF90b2tlbicgOiAnYXV0aG9yaXphdGlvbl9jb2RlJyksXG4gICAgICBjb2RlLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSxcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWRcbiAgICB9KS5vYmplY3QoKS5tZXJnZSh0aGlzLmNvbmZpZy5jdXN0b21RdWVyeVBhcmFtcyA/PyB7fSkuZ2V0VmFsdWUoKTtcblxuICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcbiAgICAgIGRhdGEgPSBrb2FsYShkYXRhKS5vYmplY3QoKS5tZXJnZSh7cmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VufSkuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29kZSkge1xuICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB9XG5cbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoaW5kZXhOYW1lLCBkYXRhW2luZGV4TmFtZV0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuZW5kcG9pbnRUb2tlbiA/PyB0aGlzLm9wZW5JZE9wdGlvbnMudG9rZW5fZW5kcG9pbnQsIGZvcm1EYXRhLnRvU3RyaW5nKCksIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgICB9XG4gICAgfSkuc3Vic2NyaWJlKCh0b2tlbjogYW55KSA9PiB7XG4gICAgICB0aGlzLnRva2VuID0gdG9rZW47XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KChyZWZyZXNoVG9rZW4gPyAncmVmcmVzaFRva2VuJyA6ICdnZXRDbGFpbXMnKSk7XG4gICAgfSwgKCkgPT4gdGhpcy5ldmVudHMubmV4dCgnZ2V0VG9rZW5FcnJvcicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xhaW1zKCkge1xuICAgIHRoaXMuaHR0cC5nZXQodGhpcy5jb25maWcuZW5kcG9pbnRDbGFpbXMgPz8gdGhpcy5vcGVuSWRPcHRpb25zLnVzZXJpbmZvX2VuZHBvaW50LCB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmdldEFjY2Vzc1Rva2VuKCl9YFxuICAgICAgfVxuICAgIH0pLnN1YnNjcmliZSh1c2VySW5mbyA9PiB7XG4gICAgICB0aGlzLmNsYWltcyA9IHVzZXJJbmZvO1xuICAgICAgdGhpcy5zdGF0ZSA9IG51bGw7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShTVEFURV9TVE9SQUdFX05BTUUpO1xuICAgICAgdGhpcy5ldmVudHMubmV4dCh0aGlzLmV2ZW50cy5nZXRWYWx1ZSgpID09PSAncmVmcmVzaFRva2VuJyA/ICdyZWZyZXNoVG9rZW4nIDogJ3VzZXJBdXRoZW50aWNhdGVkJyk7XG4gICAgfSwgKCkgPT4gdGhpcy5ldmVudHMubmV4dCgnbG9hZGVkQ29uZmlnJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVN0YXRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVEFURV9TVE9SQUdFX05BTUUpID9cbiAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RBVEVfU1RPUkFHRV9OQU1FKSA6XG4gICAgICAgICAgICAgICAgIGtvYWxhKCcnKS5zdHJpbmcoKS5yYW5kb20oMzAsIHRydWUsIHRydWUsIHRydWUpLmdldFZhbHVlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { KoalaAlertEnum, KoalaAlertService, KoalaRequestCodeToAlertEnumTranslate } from '@koalarx/ui/alert';
3
+ import { KoalaLanguageHelper } from "../../page/koala-language.helper";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@koalarx/ui/alert";
6
+ export class KoalaRequestService {
7
+ constructor(koalaAlertService) {
8
+ this.koalaAlertService = koalaAlertService;
9
+ }
10
+ request(request, success, error) {
11
+ if (request instanceof Promise) {
12
+ request.then((response) => {
13
+ if (success) {
14
+ success(response);
15
+ }
16
+ }).catch(e => {
17
+ if (error) {
18
+ error(e);
19
+ }
20
+ this.showAlertError(e);
21
+ });
22
+ }
23
+ else {
24
+ return request.subscribe((response) => {
25
+ if (success) {
26
+ success(response);
27
+ }
28
+ }, (e) => {
29
+ if (error) {
30
+ error(e);
31
+ }
32
+ this.showAlertError(e);
33
+ });
34
+ }
35
+ }
36
+ showAlertError(e) {
37
+ const alertEnum = KoalaRequestCodeToAlertEnumTranslate.translate(e.statusCode);
38
+ this.koalaAlertService.create({
39
+ alertEnum,
40
+ message: alertEnum === KoalaAlertEnum.internalServerError
41
+ ? KoalaLanguageHelper.getInternalServerErrorMessage()
42
+ : e.message
43
+ });
44
+ }
45
+ }
46
+ KoalaRequestService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaRequestService_Factory() { return new KoalaRequestService(i0.ɵɵinject(i1.KoalaAlertService)); }, token: KoalaRequestService, providedIn: "any" });
47
+ KoalaRequestService.decorators = [
48
+ { type: Injectable, args: [{ providedIn: "any" },] }
49
+ ];
50
+ KoalaRequestService.ctorParameters = () => [
51
+ { type: KoalaAlertService }
52
+ ];
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEucmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3Qva29hbGEucmVxdWVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFHdkUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBRU0sT0FBTyxDQUNaLE9BQW1DLEVBQ25DLE9BQStCLEVBQy9CLEtBQTBCO1FBRTFCLElBQUksT0FBTyxZQUFZLE9BQU8sRUFBRTtZQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNWO2dCQUNELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUN0QixDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNYLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDSixJQUFJLEtBQUssRUFBRTtvQkFDVCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxDQUFNO1FBQzNCLE1BQU0sU0FBUyxHQUFHLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztZQUM1QixTQUFTO1lBQ1QsT0FBTyxFQUFFLFNBQVMsS0FBSyxjQUFjLENBQUMsbUJBQW1CO2dCQUNoRCxDQUFDLENBQUMsbUJBQW1CLENBQUMsNkJBQTZCLEVBQUU7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O1lBL0NGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUM7OztZQUhOLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvYWxhQWxlcnRFbnVtLCBLb2FsYUFsZXJ0U2VydmljZSwgS29hbGFSZXF1ZXN0Q29kZVRvQWxlcnRFbnVtVHJhbnNsYXRlIH0gZnJvbSAnQGtvYWxhcngvdWkvYWxlcnQnO1xuaW1wb3J0IHsgS29hbGFMYW5ndWFnZUhlbHBlciB9IGZyb20gXCIuLi8uLi9wYWdlL2tvYWxhLWxhbmd1YWdlLmhlbHBlclwiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJhbnlcIn0pXG5leHBvcnQgY2xhc3MgS29hbGFSZXF1ZXN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBrb2FsYUFsZXJ0U2VydmljZTogS29hbGFBbGVydFNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3Q6IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+LFxuICAgIHN1Y2Nlc3M/OiAocmVzcG9uc2U6IFQpID0+IHZvaWQsXG4gICAgZXJyb3I/OiAoZXJyb3I6IFQpID0+IHZvaWRcbiAgKSB7XG4gICAgaWYgKHJlcXVlc3QgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICByZXF1ZXN0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKGUgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICBlcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dBbGVydEVycm9yKGUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXF1ZXN0LnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNob3dBbGVydEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FsZXJ0RXJyb3IoZTogYW55KSB7XG4gICAgY29uc3QgYWxlcnRFbnVtID0gS29hbGFSZXF1ZXN0Q29kZVRvQWxlcnRFbnVtVHJhbnNsYXRlLnRyYW5zbGF0ZShlLnN0YXR1c0NvZGUpO1xuICAgIHRoaXMua29hbGFBbGVydFNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIGFsZXJ0RW51bSxcbiAgICAgIG1lc3NhZ2U6IGFsZXJ0RW51bSA9PT0gS29hbGFBbGVydEVudW0uaW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgICAgICAgICAgICAgPyBLb2FsYUxhbmd1YWdlSGVscGVyLmdldEludGVybmFsU2VydmVyRXJyb3JNZXNzYWdlKClcbiAgICAgICAgICAgICAgIDogZS5tZXNzYWdlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import jwt from 'jwt-decode';
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { TokenFactory } from "./token.factory";
5
+ import * as i0 from "@angular/core";
6
+ export class KoalaTokenService {
7
+ constructor() {
8
+ this.token$ = new BehaviorSubject(null);
9
+ this.verifySession();
10
+ }
11
+ ngOnDestroy() {
12
+ if (this.intervalToken) {
13
+ clearInterval(this.intervalToken);
14
+ }
15
+ }
16
+ setToken(token) {
17
+ if (TokenFactory.hasToken()) {
18
+ this.token$.next(token);
19
+ }
20
+ TokenFactory.setToken(token);
21
+ }
22
+ getToken() {
23
+ return this.token$;
24
+ }
25
+ getDecodedToken() {
26
+ return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);
27
+ }
28
+ getOAuth2Token() {
29
+ return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);
30
+ }
31
+ removeToken() {
32
+ TokenFactory.removeToken();
33
+ }
34
+ verifySession() {
35
+ TokenFactory.init();
36
+ this.token$.next(TokenFactory.getToken());
37
+ this.intervalToken = setInterval(() => {
38
+ if (!TokenFactory.hasToken() && this.token$.getValue()) {
39
+ this.token$.next(null);
40
+ }
41
+ else if (TokenFactory.hasToken() && !this.token$.getValue()) {
42
+ this.token$.next(TokenFactory.getToken());
43
+ }
44
+ }, 300);
45
+ }
46
+ }
47
+ KoalaTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaTokenService_Factory() { return new KoalaTokenService(); }, token: KoalaTokenService, providedIn: "any" });
48
+ KoalaTokenService.decorators = [
49
+ { type: Injectable, args: [{ providedIn: "any" },] }
50
+ ];
51
+ KoalaTokenService.ctorParameters = () => [];
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbi9rb2FsYS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3QixPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVkvQyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCO1FBSFEsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBSWpELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtRQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVztRQUNoQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWE7UUFDbkIsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hCO2lCQUFNLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzs7O1lBOUNGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgand0IGZyb20gJ2p3dC1kZWNvZGUnO1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9rZW5GYWN0b3J5IH0gZnJvbSBcIi4vdG9rZW4uZmFjdG9yeVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtvYWxhT0F1dGgyVG9rZW5JbnRlcmZhY2Uge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBsb2dpbjogc3RyaW5nO1xuICBleHBpcmVkOiBudW1iZXI7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwiYW55XCJ9KVxuZXhwb3J0IGNsYXNzIEtvYWxhVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB0b2tlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHByaXZhdGUgaW50ZXJ2YWxUb2tlbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmVyaWZ5U2Vzc2lvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxUb2tlbikge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsVG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgaWYgKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpKSB7IHRoaXMudG9rZW4kLm5leHQodG9rZW4pOyB9XG4gICAgVG9rZW5GYWN0b3J5LnNldFRva2VuKHRva2VuKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb2tlbigpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW4kO1xuICB9XG5cbiAgcHVibGljIGdldERlY29kZWRUb2tlbjxUPigpOiBUfG51bGwge1xuICAgIHJldHVybiAoVG9rZW5GYWN0b3J5Lmhhc1Rva2VuKCkgPyBqd3QoVG9rZW5GYWN0b3J5LmdldFRva2VuKCkpIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T0F1dGgyVG9rZW4oKTogS29hbGFPQXV0aDJUb2tlbkludGVyZmFjZXxudWxsIHtcbiAgICByZXR1cm4gKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpID8gand0KFRva2VuRmFjdG9yeS5nZXRUb2tlbigpKSA6IG51bGwpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVRva2VuKCkge1xuICAgIFRva2VuRmFjdG9yeS5yZW1vdmVUb2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlTZXNzaW9uKCkge1xuICAgIFRva2VuRmFjdG9yeS5pbml0KCk7XG4gICAgdGhpcy50b2tlbiQubmV4dChUb2tlbkZhY3RvcnkuZ2V0VG9rZW4oKSk7XG4gICAgdGhpcy5pbnRlcnZhbFRva2VuID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKCFUb2tlbkZhY3RvcnkuaGFzVG9rZW4oKSAmJiB0aGlzLnRva2VuJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMudG9rZW4kLm5leHQobnVsbCk7XG4gICAgICB9IGVsc2UgaWYgKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpICYmICF0aGlzLnRva2VuJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMudG9rZW4kLm5leHQoVG9rZW5GYWN0b3J5LmdldFRva2VuKCkpO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { KoalaEnvironment } from "../../environments/koalaEnvironment";
2
+ // @dynamic
3
+ export class TokenFactory {
4
+ static init() {
5
+ var _a, _b;
6
+ if (!!localStorage.getItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName)) {
7
+ TokenFactory.setToken(localStorage.getItem((_b = KoalaEnvironment.environment) === null || _b === void 0 ? void 0 : _b.storageTokenName));
8
+ }
9
+ }
10
+ static setToken(token) {
11
+ var _a;
12
+ localStorage.setItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName, token);
13
+ this.token = token;
14
+ }
15
+ static getToken() {
16
+ return this.token;
17
+ }
18
+ static removeToken() {
19
+ var _a;
20
+ localStorage.removeItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName);
21
+ this.token = null;
22
+ }
23
+ static hasToken() {
24
+ var _a;
25
+ return !!this.token && !!localStorage.getItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName);
26
+ }
27
+ static logout() {
28
+ this.removeToken();
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbi90b2tlbi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLFdBQVc7QUFDWCxNQUFNLE9BQU8sWUFBWTtJQUdoQixNQUFNLENBQUMsSUFBSTs7UUFDaEIsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFBLGdCQUFnQixDQUFDLFdBQVcsMENBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUMxRSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBQSxnQkFBZ0IsQ0FBQyxXQUFXLDBDQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM3RjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7O1FBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBQSxnQkFBZ0IsQ0FBQyxXQUFXLDBDQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXOztRQUN2QixZQUFZLENBQUMsVUFBVSxDQUFDLE1BQUEsZ0JBQWdCLENBQUMsV0FBVywwQ0FBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTs7UUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFBLGdCQUFnQixDQUFDLFdBQVcsMENBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtvYWxhRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnRcIjtcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBUb2tlbkZhY3Rvcnkge1xuICBwcml2YXRlIHN0YXRpYyB0b2tlbj86IHN0cmluZztcblxuICBwdWJsaWMgc3RhdGljIGluaXQoKSB7XG4gICAgaWYgKCEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSkpIHtcbiAgICAgIFRva2VuRmFjdG9yeS5zZXRUb2tlbihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShLb2FsYUVudmlyb25tZW50LmVudmlyb25tZW50Py5zdG9yYWdlVG9rZW5OYW1lKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSwgdG9rZW4pO1xuICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW47XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlbW92ZVRva2VuKCkge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEtvYWxhRW52aXJvbm1lbnQuZW52aXJvbm1lbnQ/LnN0b3JhZ2VUb2tlbk5hbWUpO1xuICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNUb2tlbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRva2VuICYmICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvZ291dCgpIHtcbiAgICB0aGlzLnJlbW92ZVRva2VuKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gva29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEtvYWxhWGxzeENvbmZpZ0ludGVyZmFjZSB7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIHNoZWV0TmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdGl0bGVGb250Q29sb3I/OiBzdHJpbmc7XG4gIHRpdGxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBoZWFkZXJGb250Q29sb3I/OiBzdHJpbmc7XG4gIGhlYWRlckJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { __awaiter } from "tslib";
2
+ import * as Excel from "exceljs/dist/exceljs.min.js";
3
+ import * as fs from 'file-saver';
4
+ import { Injectable } from "@angular/core";
5
+ import { koala } from "@koalarx/utils";
6
+ import * as i0 from "@angular/core";
7
+ export class KoalaXlsxService {
8
+ convertJsonToXlsx(json, config) {
9
+ return __awaiter(this, void 0, void 0, function* () {
10
+ const title = config.title;
11
+ const header = [];
12
+ Object.keys(json[0]).forEach(name => {
13
+ header.push(koala(name).string().normalize().getValue().toUpperCase());
14
+ });
15
+ const workbook = new Excel.Workbook();
16
+ const worksheet = workbook.addWorksheet(config.sheetName);
17
+ if (config.password)
18
+ yield worksheet.protect(config.password, {
19
+ selectLockedCells: false,
20
+ selectUnlockedCells: false,
21
+ scenarios: false
22
+ });
23
+ const titleRow = worksheet.addRow([title]);
24
+ titleRow.alignment = { horizontal: "center" };
25
+ titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
26
+ titleRow.fill = {
27
+ type: 'pattern',
28
+ pattern: 'solid',
29
+ fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
30
+ bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
31
+ };
32
+ worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(json[0]).length).address}`);
33
+ const headerRow = worksheet.addRow(header);
34
+ headerRow.eachCell((cell, number) => {
35
+ cell.fill = {
36
+ type: 'pattern',
37
+ pattern: 'solid',
38
+ fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
39
+ bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
40
+ };
41
+ cell.font = {
42
+ color: { argb: config.headerFontColor.replace('#', '') }
43
+ };
44
+ });
45
+ json.forEach(item => {
46
+ const data = [];
47
+ Object.values(item).forEach(value => data.push(value));
48
+ worksheet.addRow(data);
49
+ });
50
+ workbook.xlsx.writeBuffer().then((data) => {
51
+ let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
52
+ fs.saveAs(blob, config.filename + '.xlsx');
53
+ });
54
+ });
55
+ }
56
+ }
57
+ KoalaXlsxService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaXlsxService_Factory() { return new KoalaXlsxService(); }, token: KoalaXlsxService, providedIn: "any" });
58
+ KoalaXlsxService.decorators = [
59
+ { type: Injectable, args: [{ providedIn: "any" },] }
60
+ ];
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gva29hbGEueGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLDZCQUE2QixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRWQsaUJBQWlCLENBQUMsSUFBVyxFQUFFLE1BQWdDOztZQUMxRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUF5QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1RCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxRCxJQUFJLE1BQU0sQ0FBQyxRQUFRO2dCQUFFLE1BQU0sU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUM1RCxpQkFBaUIsRUFBRSxLQUFLO29C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QUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBFeGNlbCBmcm9tIFwiZXhjZWxqcy9kaXN0L2V4Y2VsanMubWluLmpzXCI7XG5pbXBvcnQgKiBhcyBFeGNlbFByb3BlciBmcm9tIFwiZXhjZWxqc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZmlsZS1zYXZlcic7XG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJhbnlcIn0pXG5leHBvcnQgY2xhc3MgS29hbGFYbHN4U2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGNvbnZlcnRKc29uVG9YbHN4KGpzb246IGFueVtdLCBjb25maWc6IEtvYWxhWGxzeENvbmZpZ0ludGVyZmFjZSkge1xuICAgIGNvbnN0IHRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIGNvbnN0IGhlYWRlciA9IFtdO1xuXG4gICAgT2JqZWN0LmtleXMoanNvblswXSkuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIGhlYWRlci5wdXNoKGtvYWxhKG5hbWUpLnN0cmluZygpLm5vcm1hbGl6ZSgpLmdldFZhbHVlKCkudG9VcHBlckNhc2UoKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrYm9vazogRXhjZWxQcm9wZXIuV29ya2Jvb2sgPSBuZXcgRXhjZWwuV29ya2Jvb2soKTtcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoY29uZmlnLnNoZWV0TmFtZSk7XG4gICAgaWYgKGNvbmZpZy5wYXNzd29yZCkgYXdhaXQgd29ya3NoZWV0LnByb3RlY3QoY29uZmlnLnBhc3N3b3JkLCB7XG4gICAgICBzZWxlY3RMb2NrZWRDZWxsczogZmFsc2UsXG4gICAgICBzZWxlY3RVbmxvY2tlZENlbGxzOiBmYWxzZSxcbiAgICAgIHNjZW5hcmlvczogZmFsc2VcbiAgICB9KTtcblxuICAgIGNvbnN0IHRpdGxlUm93ID0gd29ya3NoZWV0LmFkZFJvdyhbdGl0bGVdKTtcbiAgICB0aXRsZVJvdy5hbGlnbm1lbnQgPSB7aG9yaXpvbnRhbDogXCJjZW50ZXJcIn07XG4gICAgdGl0bGVSb3cuZm9udCA9IHtib2xkOiB0cnVlLCBjb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUZvbnRDb2xvci5yZXBsYWNlKCcjJywgJycpfX07XG4gICAgdGl0bGVSb3cuZmlsbCA9IHtcbiAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgIHBhdHRlcm46ICdzb2xpZCcsXG4gICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgIH1cbiAgICB3b3Jrc2hlZXQubWVyZ2VDZWxscyhgQTE6JHt3b3Jrc2hlZXQuZ2V0Q2VsbCgxLCBPYmplY3Qua2V5cyhqc29uWzBdKS5sZW5ndGgpLmFkZHJlc3N9YCk7XG5cbiAgICBjb25zdCBoZWFkZXJSb3cgPSB3b3Jrc2hlZXQuYWRkUm93KGhlYWRlcik7XG4gICAgaGVhZGVyUm93LmVhY2hDZWxsKChjZWxsLCBudW1iZXIpID0+IHtcbiAgICAgIGNlbGwuZmlsbCA9IHtcbiAgICAgICAgdHlwZTogJ3BhdHRlcm4nLFxuICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfSxcbiAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX1cbiAgICAgIH07XG4gICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgIGNvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckZvbnRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGpzb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgIE9iamVjdC52YWx1ZXMoaXRlbSkuZm9yRWFjaCh2YWx1ZSA9PiBkYXRhLnB1c2godmFsdWUpKTtcbiAgICAgIHdvcmtzaGVldC5hZGRSb3coZGF0YSk7XG4gICAgfSk7XG5cbiAgICB3b3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHt0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnfSk7XG4gICAgICBmcy5zYXZlQXMoYmxvYiwgY29uZmlnLmZpbGVuYW1lICsgJy54bHN4Jyk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==