new-front-common-library 0.0.75 → 0.0.77-ERGO-ROBOTO

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 (355) hide show
  1. package/README.md +28 -28
  2. package/assets/css/_dark-theme.scss +648 -648
  3. package/assets/css/_flex.scss +55 -55
  4. package/assets/css/_global.scss +692 -692
  5. package/assets/css/_light-theme.scss +651 -651
  6. package/assets/css/_mat-palettes.scss +96 -96
  7. package/assets/css/_themes.scss +52 -52
  8. package/assets/i18n/front-common/de.json +24 -24
  9. package/assets/i18n/front-common/en.json +24 -24
  10. package/assets/i18n/front-common/fr.json +24 -24
  11. package/bundles/new-front-common-library.umd.js +4903 -4900
  12. package/bundles/new-front-common-library.umd.js.map +1 -1
  13. package/esm2015/lib/util/array.service.js +19 -19
  14. package/esm2015/lib/util/component/header/header.component.js +189 -189
  15. package/esm2015/lib/util/component/overlay/overlay.component.js +44 -44
  16. package/esm2015/lib/util/component/overlay/overlay.service.js +24 -24
  17. package/esm2015/lib/util/component/popup/popup-login/popup-login.component.js +90 -90
  18. package/esm2015/lib/util/component/sub-header/sub-header.component.js +48 -48
  19. package/esm2015/lib/util/config.js +8 -8
  20. package/esm2015/lib/util/date/PeriodModel.js +8 -8
  21. package/esm2015/lib/util/date/date-adapter.js +41 -41
  22. package/esm2015/lib/util/date/date-format-constants.js +12 -12
  23. package/esm2015/lib/util/date/date.util.js +218 -218
  24. package/esm2015/lib/util/decorators/theme.decorator.js +22 -22
  25. package/esm2015/lib/util/decorators/user.decorator.js +25 -25
  26. package/esm2015/lib/util/directives/my-number-formatter-directive.js +34 -34
  27. package/esm2015/lib/util/directives/show-if-truncated.directive.js +25 -25
  28. package/esm2015/lib/util/enums/rapid-search-item-type.enum.js +10 -10
  29. package/esm2015/lib/util/enums/status-color.enum.js +11 -11
  30. package/esm2015/lib/util/event/header/header-events.service.js +21 -21
  31. package/esm2015/lib/util/event/storage/local-storage-events.service.js +17 -17
  32. package/esm2015/lib/util/event/storage/session-storage-events.service.js +18 -18
  33. package/esm2015/lib/util/http/http-params.builder.js +27 -27
  34. package/esm2015/lib/util/i18n/de.js +60 -59
  35. package/esm2015/lib/util/i18n/en.js +60 -59
  36. package/esm2015/lib/util/i18n/fr.js +60 -59
  37. package/esm2015/lib/util/i18n/multi-translate-http-loader.js +21 -21
  38. package/esm2015/lib/util/interfaces/permissions.interface.js +2 -2
  39. package/esm2015/lib/util/models/any-line.model.js +37 -37
  40. package/esm2015/lib/util/models/audio-content.model.js +27 -27
  41. package/esm2015/lib/util/models/authPermission.model.js +16 -16
  42. package/esm2015/lib/util/models/authUser.model.js +20 -20
  43. package/esm2015/lib/util/models/basic.model.js +14 -14
  44. package/esm2015/lib/util/models/box-set-item.model.js +19 -19
  45. package/esm2015/lib/util/models/disc-program.model.js +26 -26
  46. package/esm2015/lib/util/models/disc.model.js +22 -22
  47. package/esm2015/lib/util/models/eventType.model.js +7 -7
  48. package/esm2015/lib/util/models/expenditure-commitment/purchase-order-file.model.js +22 -22
  49. package/esm2015/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.js +3 -3
  50. package/esm2015/lib/util/models/index.js +98 -98
  51. package/esm2015/lib/util/models/lang-line.model.js +27 -27
  52. package/esm2015/lib/util/models/legal/contract-work.model.js +23 -23
  53. package/esm2015/lib/util/models/legal/contract-work2.model.js +21 -21
  54. package/esm2015/lib/util/models/media-line.model.js +18 -18
  55. package/esm2015/lib/util/models/menu-language.model.js +15 -15
  56. package/esm2015/lib/util/models/permission.model.js +20 -20
  57. package/esm2015/lib/util/models/product-box-set.model.js +16 -16
  58. package/esm2015/lib/util/models/product-disc-detail.model.js +22 -22
  59. package/esm2015/lib/util/models/product-disc.model.js +27 -27
  60. package/esm2015/lib/util/models/product-division.model.js +29 -29
  61. package/esm2015/lib/util/models/product-type.model.js +22 -22
  62. package/esm2015/lib/util/models/product.model.js +62 -62
  63. package/esm2015/lib/util/models/program.model.js +28 -28
  64. package/esm2015/lib/util/models/purchase-order/purchase-order.model.js +53 -53
  65. package/esm2015/lib/util/models/referential/WorkVersionArticleDto.js +17 -17
  66. package/esm2015/lib/util/models/referential/adress-type.model.js +14 -14
  67. package/esm2015/lib/util/models/referential/adress.model.js +28 -28
  68. package/esm2015/lib/util/models/referential/attached-file.model.js +17 -17
  69. package/esm2015/lib/util/models/referential/bank-account.model.js +24 -24
  70. package/esm2015/lib/util/models/referential/bank-accounts.model.js +31 -31
  71. package/esm2015/lib/util/models/referential/basic-hierarchy.model.js +8 -8
  72. package/esm2015/lib/util/models/referential/broadcast-list-item.model.js +13 -13
  73. package/esm2015/lib/util/models/referential/color.model.js +16 -16
  74. package/esm2015/lib/util/models/referential/company.model.js +16 -16
  75. package/esm2015/lib/util/models/referential/content-type.model.js +17 -17
  76. package/esm2015/lib/util/models/referential/content.model.js +22 -22
  77. package/esm2015/lib/util/models/referential/cost-center-criteria-values.model.js +14 -14
  78. package/esm2015/lib/util/models/referential/cost-center-criteria.model.js +13 -13
  79. package/esm2015/lib/util/models/referential/cost-center.model.js +28 -28
  80. package/esm2015/lib/util/models/referential/coutry.model.js +16 -16
  81. package/esm2015/lib/util/models/referential/currency.model.js +20 -20
  82. package/esm2015/lib/util/models/referential/editorial-content.model.js +18 -18
  83. package/esm2015/lib/util/models/referential/fixing.model.js +16 -16
  84. package/esm2015/lib/util/models/referential/flat-media.model.js +18 -18
  85. package/esm2015/lib/util/models/referential/format-image.model.js +16 -16
  86. package/esm2015/lib/util/models/referential/format-type.model.js +16 -16
  87. package/esm2015/lib/util/models/referential/format.model.js +17 -17
  88. package/esm2015/lib/util/models/referential/fsk-index.model.js +20 -20
  89. package/esm2015/lib/util/models/referential/fsk.model.js +22 -22
  90. package/esm2015/lib/util/models/referential/function.model.js +23 -23
  91. package/esm2015/lib/util/models/referential/genre.model.js +17 -17
  92. package/esm2015/lib/util/models/referential/invoice-product-type.model.js +22 -22
  93. package/esm2015/lib/util/models/referential/keywords.model.js +2 -2
  94. package/esm2015/lib/util/models/referential/language.model.js +18 -18
  95. package/esm2015/lib/util/models/referential/media-filter.model.js +3 -3
  96. package/esm2015/lib/util/models/referential/media.model.js +20 -20
  97. package/esm2015/lib/util/models/referential/module.model.js +20 -20
  98. package/esm2015/lib/util/models/referential/parameter.model.js +2 -2
  99. package/esm2015/lib/util/models/referential/participant.model.js +20 -20
  100. package/esm2015/lib/util/models/referential/person.model.js +23 -23
  101. package/esm2015/lib/util/models/referential/project-status.model.js +16 -16
  102. package/esm2015/lib/util/models/referential/quota.model.js +17 -17
  103. package/esm2015/lib/util/models/referential/referential-entity-state.model.js +16 -16
  104. package/esm2015/lib/util/models/referential/referential-value.model.js +16 -16
  105. package/esm2015/lib/util/models/referential/referentiel.model.js +26 -26
  106. package/esm2015/lib/util/models/referential/restriction.model.js +20 -20
  107. package/esm2015/lib/util/models/referential/sap-order.model.js +20 -20
  108. package/esm2015/lib/util/models/referential/service-error.model.js +15 -15
  109. package/esm2015/lib/util/models/referential/sound.model.js +16 -16
  110. package/esm2015/lib/util/models/referential/territories-languages.model.js +16 -16
  111. package/esm2015/lib/util/models/referential/territory-filter.model.js +3 -3
  112. package/esm2015/lib/util/models/referential/territory.model.js +17 -17
  113. package/esm2015/lib/util/models/referential/theme.model.js +17 -17
  114. package/esm2015/lib/util/models/referential/third-party-creation-request.model.js +44 -44
  115. package/esm2015/lib/util/models/referential/third-party-module.model.js +20 -20
  116. package/esm2015/lib/util/models/referential/third-party.model.js +83 -83
  117. package/esm2015/lib/util/models/referential/translated-value-model.js +16 -16
  118. package/esm2015/lib/util/models/referential/tva.model.js +16 -16
  119. package/esm2015/lib/util/models/referential/type-export.model.js +16 -16
  120. package/esm2015/lib/util/models/referential/type-tva-company-territory.model.js +32 -32
  121. package/esm2015/lib/util/models/referential/type-tva.model.js +25 -25
  122. package/esm2015/lib/util/models/referential/work-addons-model.js +16 -16
  123. package/esm2015/lib/util/models/referential/work-appartenance.model.js +17 -17
  124. package/esm2015/lib/util/models/referential/work-genre.model.js +16 -16
  125. package/esm2015/lib/util/models/referential/work-language.model.js +16 -16
  126. package/esm2015/lib/util/models/referential/work-milo.model.js +61 -61
  127. package/esm2015/lib/util/models/referential/work-participant.model.js +21 -21
  128. package/esm2015/lib/util/models/referential/work-restrictions-model.js +13 -13
  129. package/esm2015/lib/util/models/referential/work-theme.model.js +16 -16
  130. package/esm2015/lib/util/models/referential/work-title.model.js +20 -20
  131. package/esm2015/lib/util/models/referential/work-version-origin.model.js +16 -16
  132. package/esm2015/lib/util/models/referential/work-version-rapid-search.model.js +3 -3
  133. package/esm2015/lib/util/models/referential/work-versions-used.model.js +19 -19
  134. package/esm2015/lib/util/models/referential/work-versions.model.js +27 -27
  135. package/esm2015/lib/util/models/referential/work-year-production.model.js +13 -13
  136. package/esm2015/lib/util/models/referential/work.model.js +22 -22
  137. package/esm2015/lib/util/models/referential/zone.model.js +14 -14
  138. package/esm2015/lib/util/models/referentiel.model.js +26 -26
  139. package/esm2015/lib/util/models/search-response.model.js +10 -10
  140. package/esm2015/lib/util/models/section.model.js +8 -8
  141. package/esm2015/lib/util/models/select/options.model.js +8 -8
  142. package/esm2015/lib/util/models/select/select.model.js +7 -7
  143. package/esm2015/lib/util/models/subtitle-content.model.js +28 -28
  144. package/esm2015/lib/util/models/user-video.model.js +22 -22
  145. package/esm2015/lib/util/models/user.model.js +34 -34
  146. package/esm2015/lib/util/models/video/product-rapid-search.model.js +3 -3
  147. package/esm2015/lib/util/models/video/support-rapid-search.model.js +3 -3
  148. package/esm2015/lib/util/models/video-content.model.js +18 -18
  149. package/esm2015/lib/util/number.validator.js +129 -129
  150. package/esm2015/lib/util/permissions/permissions.service.js +41 -41
  151. package/esm2015/lib/util/pipes/capitalizefirst.pipe.js +41 -41
  152. package/esm2015/lib/util/pipes/comma-separated-number.pipe.js +15 -15
  153. package/esm2015/lib/util/pipes/common-translate.pipe.js +38 -38
  154. package/esm2015/lib/util/pipes/display-html.pipe.js +20 -20
  155. package/esm2015/lib/util/pipes/display-null.pipe.js +24 -24
  156. package/esm2015/lib/util/pipes/format-duration.pipe.js +23 -23
  157. package/esm2015/lib/util/pipes/format-number-input.pipe.js +22 -22
  158. package/esm2015/lib/util/pipes/local-date.pipe.js +27 -27
  159. package/esm2015/lib/util/pipes/my-number.pipe.js +44 -44
  160. package/esm2015/lib/util/pipes/third-party-address.pipe.js +17 -17
  161. package/esm2015/lib/util/pipes/trim-string.pipe.js +25 -25
  162. package/esm2015/lib/util/regex/regex.service.js +94 -94
  163. package/esm2015/lib/util/services/api/common-api.service.js +98 -98
  164. package/esm2015/lib/util/services/elasticsearch/elasticsearch.service.js +65 -65
  165. package/esm2015/lib/util/services/form-action/form-actions-events.service.js +25 -25
  166. package/esm2015/lib/util/services/guard/auth.guard.js +43 -43
  167. package/esm2015/lib/util/services/guard/login.guard.js +34 -34
  168. package/esm2015/lib/util/services/history/history.service.js +39 -39
  169. package/esm2015/lib/util/services/interceptor/auth.interceptor.js +53 -53
  170. package/esm2015/lib/util/services/jwt-security/aes.service.js +34 -34
  171. package/esm2015/lib/util/services/jwt-security/interceptorhttp.service.js +18 -18
  172. package/esm2015/lib/util/services/jwt-security/jwt.helpher.js +34 -34
  173. package/esm2015/lib/util/services/storage/local-storage.service.js +36 -36
  174. package/esm2015/lib/util/services/storage/session-storage.service.js +38 -38
  175. package/esm2015/lib/util/services/translate-language/lang.service.js +31 -31
  176. package/esm2015/lib/util/sort.js +22 -22
  177. package/esm2015/lib/util/theme/theme-event.service.js +17 -17
  178. package/esm2015/lib/util/toaster/toaster-events.service.js +32 -32
  179. package/esm2015/lib/util/util.module.js +270 -270
  180. package/esm2015/new-front-common-library.js +4 -4
  181. package/esm2015/public-api.js +56 -56
  182. package/fesm2015/new-front-common-library.js +4228 -4225
  183. package/fesm2015/new-front-common-library.js.map +1 -1
  184. package/lib/util/array.service.d.ts +7 -7
  185. package/lib/util/component/header/header.component.d.ts +65 -65
  186. package/lib/util/component/overlay/overlay.component.d.ts +17 -17
  187. package/lib/util/component/overlay/overlay.service.d.ts +13 -13
  188. package/lib/util/component/popup/popup-login/popup-login.component.d.ts +32 -32
  189. package/lib/util/component/sub-header/sub-header.component.d.ts +13 -13
  190. package/lib/util/config.d.ts +8 -8
  191. package/lib/util/date/PeriodModel.d.ts +6 -6
  192. package/lib/util/date/date-adapter.d.ts +8 -8
  193. package/lib/util/date/date-format-constants.d.ts +25 -25
  194. package/lib/util/date/date.util.d.ts +16 -16
  195. package/lib/util/decorators/theme.decorator.d.ts +1 -1
  196. package/lib/util/decorators/user.decorator.d.ts +1 -1
  197. package/lib/util/directives/my-number-formatter-directive.d.ts +15 -15
  198. package/lib/util/directives/show-if-truncated.directive.d.ts +11 -11
  199. package/lib/util/enums/rapid-search-item-type.enum.d.ts +8 -8
  200. package/lib/util/enums/status-color.enum.d.ts +9 -9
  201. package/lib/util/event/header/header-events.service.d.ts +11 -11
  202. package/lib/util/event/storage/local-storage-events.service.d.ts +9 -9
  203. package/lib/util/event/storage/session-storage-events.service.d.ts +10 -10
  204. package/lib/util/http/http-params.builder.d.ts +9 -9
  205. package/lib/util/i18n/de.d.ts +51 -50
  206. package/lib/util/i18n/en.d.ts +51 -50
  207. package/lib/util/i18n/fr.d.ts +51 -50
  208. package/lib/util/i18n/multi-translate-http-loader.d.ts +14 -14
  209. package/lib/util/interfaces/permissions.interface.d.ts +3 -3
  210. package/lib/util/models/any-line.model.d.ts +24 -24
  211. package/lib/util/models/audio-content.model.d.ts +27 -27
  212. package/lib/util/models/authPermission.model.d.ts +7 -7
  213. package/lib/util/models/authUser.model.d.ts +14 -14
  214. package/lib/util/models/basic.model.d.ts +11 -11
  215. package/lib/util/models/box-set-item.model.d.ts +12 -12
  216. package/lib/util/models/disc-program.model.d.ts +9 -9
  217. package/lib/util/models/disc.model.d.ts +15 -15
  218. package/lib/util/models/eventType.model.d.ts +5 -5
  219. package/lib/util/models/expenditure-commitment/purchase-order-file.model.d.ts +8 -8
  220. package/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.d.ts +10 -10
  221. package/lib/util/models/index.d.ts +97 -97
  222. package/lib/util/models/lang-line.model.d.ts +18 -18
  223. package/lib/util/models/legal/contract-work.model.d.ts +27 -27
  224. package/lib/util/models/legal/contract-work2.model.d.ts +23 -23
  225. package/lib/util/models/media-line.model.d.ts +9 -9
  226. package/lib/util/models/menu-language.model.d.ts +6 -6
  227. package/lib/util/models/permission.model.d.ts +12 -12
  228. package/lib/util/models/product-box-set.model.d.ts +8 -8
  229. package/lib/util/models/product-disc-detail.model.d.ts +14 -14
  230. package/lib/util/models/product-disc.model.d.ts +11 -11
  231. package/lib/util/models/product-division.model.d.ts +15 -15
  232. package/lib/util/models/product-type.model.d.ts +7 -7
  233. package/lib/util/models/product.model.d.ts +52 -52
  234. package/lib/util/models/program.model.d.ts +21 -21
  235. package/lib/util/models/purchase-order/purchase-order.model.d.ts +40 -40
  236. package/lib/util/models/referential/WorkVersionArticleDto.d.ts +10 -10
  237. package/lib/util/models/referential/adress-type.model.d.ts +5 -5
  238. package/lib/util/models/referential/adress.model.d.ts +20 -20
  239. package/lib/util/models/referential/attached-file.model.d.ts +11 -11
  240. package/lib/util/models/referential/bank-account.model.d.ts +15 -15
  241. package/lib/util/models/referential/bank-accounts.model.d.ts +17 -17
  242. package/lib/util/models/referential/basic-hierarchy.model.d.ts +6 -6
  243. package/lib/util/models/referential/broadcast-list-item.model.d.ts +8 -8
  244. package/lib/util/models/referential/color.model.d.ts +6 -6
  245. package/lib/util/models/referential/company.model.d.ts +7 -7
  246. package/lib/util/models/referential/content-type.model.d.ts +12 -12
  247. package/lib/util/models/referential/content.model.d.ts +7 -7
  248. package/lib/util/models/referential/cost-center-criteria-values.model.d.ts +7 -7
  249. package/lib/util/models/referential/cost-center-criteria.model.d.ts +12 -12
  250. package/lib/util/models/referential/cost-center.model.d.ts +18 -18
  251. package/lib/util/models/referential/coutry.model.d.ts +7 -7
  252. package/lib/util/models/referential/currency.model.d.ts +11 -11
  253. package/lib/util/models/referential/editorial-content.model.d.ts +25 -25
  254. package/lib/util/models/referential/fixing.model.d.ts +10 -10
  255. package/lib/util/models/referential/flat-media.model.d.ts +9 -9
  256. package/lib/util/models/referential/format-image.model.d.ts +7 -7
  257. package/lib/util/models/referential/format-type.model.d.ts +6 -6
  258. package/lib/util/models/referential/format.model.d.ts +7 -7
  259. package/lib/util/models/referential/fsk-index.model.d.ts +22 -22
  260. package/lib/util/models/referential/fsk.model.d.ts +37 -37
  261. package/lib/util/models/referential/function.model.d.ts +8 -8
  262. package/lib/util/models/referential/genre.model.d.ts +7 -7
  263. package/lib/util/models/referential/invoice-product-type.model.d.ts +7 -7
  264. package/lib/util/models/referential/keywords.model.d.ts +6 -6
  265. package/lib/util/models/referential/language.model.d.ts +11 -11
  266. package/lib/util/models/referential/media-filter.model.d.ts +10 -10
  267. package/lib/util/models/referential/media.model.d.ts +11 -11
  268. package/lib/util/models/referential/module.model.d.ts +11 -11
  269. package/lib/util/models/referential/parameter.model.d.ts +6 -6
  270. package/lib/util/models/referential/participant.model.d.ts +11 -11
  271. package/lib/util/models/referential/person.model.d.ts +13 -13
  272. package/lib/util/models/referential/project-status.model.d.ts +6 -6
  273. package/lib/util/models/referential/quota.model.d.ts +7 -7
  274. package/lib/util/models/referential/referential-entity-state.model.d.ts +11 -11
  275. package/lib/util/models/referential/referential-value.model.d.ts +11 -11
  276. package/lib/util/models/referential/referentiel.model.d.ts +12 -12
  277. package/lib/util/models/referential/restriction.model.d.ts +9 -9
  278. package/lib/util/models/referential/sap-order.model.d.ts +27 -27
  279. package/lib/util/models/referential/service-error.model.d.ts +13 -13
  280. package/lib/util/models/referential/sound.model.d.ts +6 -6
  281. package/lib/util/models/referential/territories-languages.model.d.ts +8 -8
  282. package/lib/util/models/referential/territory-filter.model.d.ts +6 -6
  283. package/lib/util/models/referential/territory.model.d.ts +12 -11
  284. package/lib/util/models/referential/theme.model.d.ts +7 -7
  285. package/lib/util/models/referential/third-party-creation-request.model.d.ts +48 -48
  286. package/lib/util/models/referential/third-party-module.model.d.ts +11 -11
  287. package/lib/util/models/referential/third-party.model.d.ts +45 -45
  288. package/lib/util/models/referential/translated-value-model.d.ts +10 -10
  289. package/lib/util/models/referential/tva.model.d.ts +7 -7
  290. package/lib/util/models/referential/type-export.model.d.ts +7 -7
  291. package/lib/util/models/referential/type-tva-company-territory.model.d.ts +18 -18
  292. package/lib/util/models/referential/type-tva.model.d.ts +10 -10
  293. package/lib/util/models/referential/work-addons-model.d.ts +25 -25
  294. package/lib/util/models/referential/work-appartenance.model.d.ts +7 -7
  295. package/lib/util/models/referential/work-genre.model.d.ts +11 -11
  296. package/lib/util/models/referential/work-language.model.d.ts +11 -11
  297. package/lib/util/models/referential/work-milo.model.d.ts +46 -46
  298. package/lib/util/models/referential/work-participant.model.d.ts +10 -10
  299. package/lib/util/models/referential/work-restrictions-model.d.ts +18 -18
  300. package/lib/util/models/referential/work-theme.model.d.ts +11 -11
  301. package/lib/util/models/referential/work-title.model.d.ts +10 -10
  302. package/lib/util/models/referential/work-version-origin.model.d.ts +10 -10
  303. package/lib/util/models/referential/work-version-rapid-search.model.d.ts +9 -9
  304. package/lib/util/models/referential/work-versions-used.model.d.ts +12 -12
  305. package/lib/util/models/referential/work-versions.model.d.ts +29 -29
  306. package/lib/util/models/referential/work-year-production.model.d.ts +6 -6
  307. package/lib/util/models/referential/work.model.d.ts +74 -74
  308. package/lib/util/models/referential/zone.model.d.ts +6 -6
  309. package/lib/util/models/referentiel.model.d.ts +12 -12
  310. package/lib/util/models/search-response.model.d.ts +7 -7
  311. package/lib/util/models/section.model.d.ts +7 -7
  312. package/lib/util/models/select/options.model.d.ts +6 -6
  313. package/lib/util/models/select/select.model.d.ts +5 -5
  314. package/lib/util/models/subtitle-content.model.d.ts +26 -26
  315. package/lib/util/models/user-video.model.d.ts +10 -10
  316. package/lib/util/models/user.model.d.ts +25 -25
  317. package/lib/util/models/video/product-rapid-search.model.d.ts +8 -8
  318. package/lib/util/models/video/support-rapid-search.model.d.ts +6 -6
  319. package/lib/util/models/video-content.model.d.ts +24 -24
  320. package/lib/util/number.validator.d.ts +14 -14
  321. package/lib/util/permissions/permissions.service.d.ts +12 -12
  322. package/lib/util/pipes/capitalizefirst.pipe.d.ts +8 -8
  323. package/lib/util/pipes/comma-separated-number.pipe.d.ts +7 -7
  324. package/lib/util/pipes/common-translate.pipe.d.ts +12 -12
  325. package/lib/util/pipes/display-html.pipe.d.ts +10 -10
  326. package/lib/util/pipes/display-null.pipe.d.ts +8 -8
  327. package/lib/util/pipes/format-duration.pipe.d.ts +7 -7
  328. package/lib/util/pipes/format-number-input.pipe.d.ts +7 -7
  329. package/lib/util/pipes/local-date.pipe.d.ts +9 -9
  330. package/lib/util/pipes/my-number.pipe.d.ts +11 -11
  331. package/lib/util/pipes/third-party-address.pipe.d.ts +8 -8
  332. package/lib/util/pipes/trim-string.pipe.d.ts +7 -7
  333. package/lib/util/regex/regex.service.d.ts +12 -12
  334. package/lib/util/services/api/common-api.service.d.ts +27 -27
  335. package/lib/util/services/elasticsearch/elasticsearch.service.d.ts +17 -17
  336. package/lib/util/services/form-action/form-actions-events.service.d.ts +14 -14
  337. package/lib/util/services/guard/auth.guard.d.ts +18 -18
  338. package/lib/util/services/guard/login.guard.d.ts +18 -18
  339. package/lib/util/services/history/history.service.d.ts +10 -10
  340. package/lib/util/services/interceptor/auth.interceptor.d.ts +16 -16
  341. package/lib/util/services/jwt-security/aes.service.d.ts +12 -12
  342. package/lib/util/services/jwt-security/interceptorhttp.service.d.ts +8 -8
  343. package/lib/util/services/jwt-security/jwt.helpher.d.ts +4 -4
  344. package/lib/util/services/storage/local-storage.service.d.ts +13 -13
  345. package/lib/util/services/storage/session-storage.service.d.ts +13 -13
  346. package/lib/util/services/translate-language/lang.service.d.ts +14 -14
  347. package/lib/util/sort.d.ts +4 -4
  348. package/lib/util/theme/theme-event.service.d.ts +9 -9
  349. package/lib/util/toaster/toaster-events.service.d.ts +15 -15
  350. package/lib/util/util.module.d.ts +50 -50
  351. package/new-front-common-library.d.ts +5 -5
  352. package/package.json +1 -1
  353. package/public-api.d.ts +53 -53
  354. package/esm2015/lib/util/models/milo/territory.model.js +0 -18
  355. package/lib/util/models/milo/territory.model.d.ts +0 -9
@@ -1,218 +1,218 @@
1
- import { PeriodModel } from './PeriodModel';
2
- /**
3
- * Created by dstoian on 27/03/2017.
4
- */
5
- export class DateUtil {
6
- constructor() {
7
- }
8
- // Format Date to YYYY-MM-DD
9
- static formatDate(date, language) {
10
- const mm = date.getMonth() + 1;
11
- const dd = date.getDate();
12
- if (language && 'fr' === language) {
13
- return [(dd > 9 ? '' : '0') + dd,
14
- (mm > 9 ? '' : '0') + mm,
15
- date.getFullYear()
16
- ].join('/');
17
- }
18
- return [date.getFullYear(),
19
- (mm > 9 ? '' : '0') + mm,
20
- (dd > 9 ? '' : '0') + dd
21
- ].join('-');
22
- }
23
- // convert a string formatted "YYYY-MM-DD" into a date object
24
- static fromStringToDate(stringdate) {
25
- const parts = stringdate.split('-');
26
- const month = parts[1].toString();
27
- const yearNumber = Number(parts[0]);
28
- let monthNumber = 0;
29
- if (month[0] === '0') {
30
- monthNumber = +month[1];
31
- }
32
- else {
33
- monthNumber = +parts[1];
34
- }
35
- const numberOfDays = Number(parts[2]);
36
- return new Date(yearNumber, monthNumber - 1, numberOfDays);
37
- }
38
- // convert a string formatted "YYYY-MM-DD" into a date object
39
- static fromStringToDateSecond(stringdate) {
40
- const parts = stringdate.split(',');
41
- const month = parts[1].toString();
42
- const yearNumber = Number(parts[0]);
43
- let monthNumber = 0;
44
- if (month[0] === '0') {
45
- monthNumber = +month[1];
46
- }
47
- else {
48
- monthNumber = +parts[1];
49
- }
50
- const numberOfDays = Number(parts[2]);
51
- return new Date(yearNumber, monthNumber - 1, numberOfDays);
52
- }
53
- static periodBetweenDates(startDate, endDate) {
54
- DateUtil.initDaysPerMonths();
55
- const a = new Date(startDate);
56
- const b = new Date(endDate);
57
- let numberOfDays = 0;
58
- let numberOfYears = b.getFullYear() - a.getFullYear();
59
- let numberOfMonths = (b.getMonth() - a.getMonth() + 12) % 12;
60
- if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {
61
- numberOfYears--;
62
- }
63
- if (a.getMonth() > b.getMonth()) {
64
- numberOfYears--;
65
- }
66
- if (a.getDate() > b.getDate()) {
67
- numberOfMonths--;
68
- if (numberOfMonths < 0) {
69
- numberOfMonths = 11;
70
- }
71
- }
72
- if (b.getDate() < a.getDate()) {
73
- let numberOfDaysPerMonth = DateUtil.daysPerMonth.get(a.getMonth());
74
- if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {
75
- numberOfDaysPerMonth++;
76
- }
77
- numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();
78
- }
79
- else {
80
- numberOfDays = b.getDate() - a.getDate();
81
- }
82
- return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);
83
- }
84
- static checkLeapYear(year) {
85
- if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
86
- return true;
87
- }
88
- return false;
89
- }
90
- static initDaysPerMonths() {
91
- DateUtil.daysPerMonth.set(0, 31);
92
- DateUtil.daysPerMonth.set(1, 28);
93
- DateUtil.daysPerMonth.set(2, 31);
94
- DateUtil.daysPerMonth.set(3, 30);
95
- DateUtil.daysPerMonth.set(4, 31);
96
- DateUtil.daysPerMonth.set(5, 30);
97
- DateUtil.daysPerMonth.set(6, 31);
98
- DateUtil.daysPerMonth.set(7, 31);
99
- DateUtil.daysPerMonth.set(8, 30);
100
- DateUtil.daysPerMonth.set(9, 31);
101
- DateUtil.daysPerMonth.set(10, 30);
102
- DateUtil.daysPerMonth.set(11, 31);
103
- }
104
- // returns 0 if the 2 dates are equal, 1 if the first date is greater than the second one or -1 when it's the opposite
105
- static compareLocalDates(first, second) {
106
- if (first.getFullYear() > second.getFullYear()) {
107
- return 1;
108
- }
109
- else if (first.getFullYear() < second.getFullYear()) {
110
- return -1;
111
- }
112
- else {
113
- if (first.getMonth() > second.getMonth()) {
114
- return 1;
115
- }
116
- else if (first.getMonth() < second.getMonth()) {
117
- return -1;
118
- }
119
- else {
120
- if (first.getDate() > second.getDate()) {
121
- return 1;
122
- }
123
- else if (first.getDate() < second.getDate()) {
124
- return -1;
125
- }
126
- else {
127
- return 0;
128
- }
129
- }
130
- }
131
- }
132
- /* From moment-precise-range plugin */
133
- static preciseDiff(d1, d2) {
134
- // let m1 = moment(d1);
135
- // let m2 = moment(d2);
136
- //
137
- // if (m1.isSame(m2)) {
138
- // return new PeriodModel(0, 0, 0);
139
- // }
140
- // if (m1.isAfter(m2)) {
141
- // const tmp = m1;
142
- // m1 = m2;
143
- // m2 = tmp;
144
- // }
145
- //
146
- // let yDiff = m2.year() - m1.year();
147
- // let mDiff = m2.month() - m1.month();
148
- // let dDiff = m2.date() - m1.date();
149
- // let hourDiff = m2.hour() - m1.hour();
150
- // let minDiff = m2.minute() - m1.minute();
151
- // let secDiff = m2.second() - m1.second();
152
- //
153
- // if (secDiff < 0) {
154
- // secDiff = 60 + secDiff;
155
- // minDiff--;
156
- // }
157
- // if (minDiff < 0) {
158
- // minDiff = 60 + minDiff;
159
- // hourDiff--;
160
- // }
161
- // if (hourDiff < 0) {
162
- // hourDiff = 24 + hourDiff;
163
- // dDiff--;
164
- // }
165
- // if (dDiff < 0) {
166
- // const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')
167
- // .subtract(1, 'months').daysInMonth();
168
- // if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03
169
- // dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);
170
- // } else {
171
- // dDiff = daysInLastFullMonth + dDiff;
172
- // }
173
- // mDiff--;
174
- // }
175
- // if (mDiff < 0) {
176
- // mDiff = 12 + mDiff;
177
- // yDiff--;
178
- // }
179
- //
180
- // const result = [];
181
- //
182
- // moment.relativeTimeThreshold('s', 60);
183
- // moment.relativeTimeThreshold('m', 60);
184
- // moment.relativeTimeThreshold('h', 23);
185
- // moment.relativeTimeThreshold('dd', 28);
186
- // moment.relativeTimeThreshold('dm', 45);
187
- // moment.relativeTimeThreshold('dy', 365);
188
- //
189
- // if (yDiff) {
190
- // result.push(moment.duration(yDiff, 'year').humanize());
191
- // }
192
- // if (mDiff) {
193
- // result.push(moment.duration(mDiff, 'month').humanize());
194
- // }
195
- // if (dDiff) {
196
- // result.push(moment.duration(dDiff, 'day').humanize());
197
- // }
198
- // if (hourDiff) {
199
- // result.push(moment.duration(hourDiff, 'hour').humanize());
200
- // }
201
- // if (minDiff) {
202
- // result.push(moment.duration(minDiff, 'minute').humanize());
203
- // }
204
- // if (secDiff) {
205
- // result.push(moment.duration(secDiff, 'second').humanize());
206
- // }
207
- //
208
- // const period = new PeriodModel(0, 0, 0);
209
- // period.years = moment.duration(yDiff, 'year').asYears();
210
- // period.months = moment.duration(mDiff, 'month').asMonths();
211
- // period.days = moment.duration(dDiff, 'day').asDays();
212
- //
213
- const period = new PeriodModel(0, 0, 0);
214
- return period;
215
- }
216
- }
217
- DateUtil.daysPerMonth = new Map();
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9kYXRlL2RhdGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDOztHQUVHO0FBRUgsTUFBTSxPQUFPLFFBQVE7SUFHakI7SUFDQSxDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVSxFQUFFLFFBQVE7UUFDekMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFMUIsSUFBSSxRQUFRLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFO2FBQ3JCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtTQUMzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFrQjtRQUM3QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUNsQixXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNILFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzQjtRQUNELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQWtCO1FBQ25ELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ2xCLFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDL0QsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1RCxhQUFhLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM3QixhQUFhLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQixjQUFjLEVBQUUsQ0FBQztZQUNqQixJQUFJLGNBQWMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDdkI7U0FDSjtRQUNELElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQixJQUFJLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUMvRCxvQkFBb0IsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsWUFBWSxHQUFHLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbkU7YUFBTTtZQUNILFlBQVksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCO1FBQzNCLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxzSEFBc0g7SUFDL0csTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQVcsRUFBRSxNQUFZO1FBQ3JELElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUM1QyxPQUFPLENBQUMsQ0FBQztTQUNaO2FBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25ELE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDYjthQUFNO1lBQ0gsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN0QyxPQUFPLENBQUMsQ0FBQzthQUNaO2lCQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNiO2lCQUFNO2dCQUNILElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDcEMsT0FBTyxDQUFDLENBQUM7aUJBQ1o7cUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNiO3FCQUFNO29CQUNILE9BQU8sQ0FBQyxDQUFDO2lCQUNaO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCxzQ0FBc0M7SUFDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUM1Qix5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLEVBQUU7UUFDRix5QkFBeUI7UUFDekIsdUNBQXVDO1FBQ3ZDLE1BQU07UUFDTiwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsTUFBTTtRQUNOLEVBQUU7UUFDRix1Q0FBdUM7UUFDdkMseUNBQXlDO1FBQ3pDLHVDQUF1QztRQUN2QywwQ0FBMEM7UUFDMUMsNkNBQTZDO1FBQzdDLDZDQUE2QztRQUM3QyxFQUFFO1FBQ0YsdUJBQXVCO1FBQ3ZCLDhCQUE4QjtRQUM5QixpQkFBaUI7UUFDakIsTUFBTTtRQUNOLHVCQUF1QjtRQUN2Qiw4QkFBOEI7UUFDOUIsa0JBQWtCO1FBQ2xCLE1BQU07UUFDTix3QkFBd0I7UUFDeEIsZ0NBQWdDO1FBQ2hDLGVBQWU7UUFDZixNQUFNO1FBQ04scUJBQXFCO1FBQ3JCLHdGQUF3RjtRQUN4Riw4Q0FBOEM7UUFDOUMsOERBQThEO1FBQzlELGlGQUFpRjtRQUNqRixlQUFlO1FBQ2YsNkNBQTZDO1FBQzdDLFFBQVE7UUFDUixlQUFlO1FBQ2YsTUFBTTtRQUNOLHFCQUFxQjtRQUNyQiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLE1BQU07UUFDTixFQUFFO1FBQ0YsdUJBQXVCO1FBQ3ZCLEVBQUU7UUFDRiwyQ0FBMkM7UUFDM0MsMkNBQTJDO1FBQzNDLDJDQUEyQztRQUMzQyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDZDQUE2QztRQUM3QyxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLDhEQUE4RDtRQUM5RCxNQUFNO1FBQ04saUJBQWlCO1FBQ2pCLCtEQUErRDtRQUMvRCxNQUFNO1FBQ04saUJBQWlCO1FBQ2pCLDZEQUE2RDtRQUM3RCxNQUFNO1FBQ04sb0JBQW9CO1FBQ3BCLGlFQUFpRTtRQUNqRSxNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLGtFQUFrRTtRQUNsRSxNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLGtFQUFrRTtRQUNsRSxNQUFNO1FBQ04sRUFBRTtRQUNGLDZDQUE2QztRQUM3Qyw2REFBNkQ7UUFDN0QsZ0VBQWdFO1FBQ2hFLDBEQUEwRDtRQUMxRCxFQUFFO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOztBQXBOYSxxQkFBWSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVyaW9kTW9kZWwgfSBmcm9tICcuL1BlcmlvZE1vZGVsJztcblxuLyoqXG4gKiBDcmVhdGVkIGJ5IGRzdG9pYW4gb24gMjcvMDMvMjAxNy5cbiAqL1xuXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xuICAgIHB1YmxpYyBzdGF0aWMgZGF5c1Blck1vbnRoID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuICAgIC8vIEZvcm1hdCBEYXRlIHRvIFlZWVktTU0tRERcbiAgICBwdWJsaWMgc3RhdGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgbGFuZ3VhZ2UpIHtcbiAgICAgICAgY29uc3QgbW0gPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICAgICAgICBjb25zdCBkZCA9IGRhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgICAgIGlmIChsYW5ndWFnZSAmJiAnZnInID09PSBsYW5ndWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIFsoZGQgPiA5ID8gJycgOiAnMCcpICsgZGQsXG4gICAgICAgICAgICAgICAgKG1tID4gOSA/ICcnIDogJzAnKSArIG1tLFxuICAgICAgICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKVxuICAgICAgICAgICAgXS5qb2luKCcvJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW2RhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgIChtbSA+IDkgPyAnJyA6ICcwJykgKyBtbSxcbiAgICAgICAgICAgIChkZCA+IDkgPyAnJyA6ICcwJykgKyBkZFxuICAgICAgICBdLmpvaW4oJy0nKTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGEgc3RyaW5nIGZvcm1hdHRlZCBcIllZWVktTU0tRERcIiBpbnRvIGEgZGF0ZSBvYmplY3RcbiAgICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmdUb0RhdGUoc3RyaW5nZGF0ZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gc3RyaW5nZGF0ZS5zcGxpdCgnLScpO1xuICAgICAgICBjb25zdCBtb250aCA9IHBhcnRzWzFdLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHllYXJOdW1iZXIgPSBOdW1iZXIocGFydHNbMF0pO1xuICAgICAgICBsZXQgbW9udGhOdW1iZXIgPSAwO1xuICAgICAgICBpZiAobW9udGhbMF0gPT09ICcwJykge1xuICAgICAgICAgICAgbW9udGhOdW1iZXIgPSArbW9udGhbMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb250aE51bWJlciA9ICtwYXJ0c1sxXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1iZXJPZkRheXMgPSBOdW1iZXIocGFydHNbMl0pO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhck51bWJlciwgbW9udGhOdW1iZXIgLSAxLCBudW1iZXJPZkRheXMpO1xuICAgIH1cblxuICAgIC8vIGNvbnZlcnQgYSBzdHJpbmcgZm9ybWF0dGVkIFwiWVlZWS1NTS1ERFwiIGludG8gYSBkYXRlIG9iamVjdFxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ1RvRGF0ZVNlY29uZChzdHJpbmdkYXRlOiBzdHJpbmcpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBzdHJpbmdkYXRlLnNwbGl0KCcsJyk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcGFydHNbMV0udG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeWVhck51bWJlciA9IE51bWJlcihwYXJ0c1swXSk7XG4gICAgICAgIGxldCBtb250aE51bWJlciA9IDA7XG4gICAgICAgIGlmIChtb250aFswXSA9PT0gJzAnKSB7XG4gICAgICAgICAgICBtb250aE51bWJlciA9ICttb250aFsxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vbnRoTnVtYmVyID0gK3BhcnRzWzFdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG51bWJlck9mRGF5cyA9IE51bWJlcihwYXJ0c1syXSk7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyTnVtYmVyLCBtb250aE51bWJlciAtIDEsIG51bWJlck9mRGF5cyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBwZXJpb2RCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZyk6IFBlcmlvZE1vZGVsIHtcbiAgICAgICAgRGF0ZVV0aWwuaW5pdERheXNQZXJNb250aHMoKTtcbiAgICAgICAgY29uc3QgYSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgICAgIGNvbnN0IGIgPSBuZXcgRGF0ZShlbmREYXRlKTtcbiAgICAgICAgbGV0IG51bWJlck9mRGF5cyA9IDA7XG4gICAgICAgIGxldCBudW1iZXJPZlllYXJzID0gYi5nZXRGdWxsWWVhcigpIC0gYS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBsZXQgbnVtYmVyT2ZNb250aHMgPSAoYi5nZXRNb250aCgpIC0gYS5nZXRNb250aCgpICsgMTIpICUgMTI7XG4gICAgICAgIGlmIChhLmdldE1vbnRoKCkgPT09IGIuZ2V0TW9udGgoKSAmJiBhLmdldFRpbWUoKSA+IGIuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICBudW1iZXJPZlllYXJzLS07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEuZ2V0TW9udGgoKSA+IGIuZ2V0TW9udGgoKSkge1xuICAgICAgICAgICAgbnVtYmVyT2ZZZWFycy0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhLmdldERhdGUoKSA+IGIuZ2V0RGF0ZSgpKSB7XG4gICAgICAgICAgICBudW1iZXJPZk1vbnRocy0tO1xuICAgICAgICAgICAgaWYgKG51bWJlck9mTW9udGhzIDwgMCkge1xuICAgICAgICAgICAgICAgIG51bWJlck9mTW9udGhzID0gMTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGIuZ2V0RGF0ZSgpIDwgYS5nZXREYXRlKCkpIHtcbiAgICAgICAgICAgIGxldCBudW1iZXJPZkRheXNQZXJNb250aCA9IERhdGVVdGlsLmRheXNQZXJNb250aC5nZXQoYS5nZXRNb250aCgpKTtcbiAgICAgICAgICAgIGlmIChhLmdldE1vbnRoKCkgPT09IDEgJiYgRGF0ZVV0aWwuY2hlY2tMZWFwWWVhcihhLmdldEZ1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZEYXlzUGVyTW9udGgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG51bWJlck9mRGF5cyA9IG51bWJlck9mRGF5c1Blck1vbnRoIC0gYS5nZXREYXRlKCkgKyBiLmdldERhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG51bWJlck9mRGF5cyA9IGIuZ2V0RGF0ZSgpIC0gYS5nZXREYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBQZXJpb2RNb2RlbChudW1iZXJPZlllYXJzLCBudW1iZXJPZk1vbnRocywgbnVtYmVyT2ZEYXlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrTGVhcFllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICgoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5pdERheXNQZXJNb250aHMoKSB7XG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMCwgMzEpO1xuICAgICAgICBEYXRlVXRpbC5kYXlzUGVyTW9udGguc2V0KDEsIDI4KTtcbiAgICAgICAgRGF0ZVV0aWwuZGF5c1Blck1vbnRoLnNldCgyLCAzMSk7XG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMywgMzApO1xuICAgICAgICBEYXRlVXRpbC5kYXlzUGVyTW9udGguc2V0KDQsIDMxKTtcbiAgICAgICAgRGF0ZVV0aWwuZGF5c1Blck1vbnRoLnNldCg1LCAzMCk7XG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoNiwgMzEpO1xuICAgICAgICBEYXRlVXRpbC5kYXlzUGVyTW9udGguc2V0KDcsIDMxKTtcbiAgICAgICAgRGF0ZVV0aWwuZGF5c1Blck1vbnRoLnNldCg4LCAzMCk7XG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoOSwgMzEpO1xuICAgICAgICBEYXRlVXRpbC5kYXlzUGVyTW9udGguc2V0KDEwLCAzMCk7XG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMTEsIDMxKTtcbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIDAgaWYgdGhlIDIgZGF0ZXMgYXJlIGVxdWFsLCAxIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc2Vjb25kIG9uZSBvciAtMSB3aGVuIGl0J3MgdGhlIG9wcG9zaXRlXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlTG9jYWxEYXRlcyhmaXJzdDogRGF0ZSwgc2Vjb25kOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGZpcnN0LmdldEZ1bGxZZWFyKCkgPiBzZWNvbmQuZ2V0RnVsbFllYXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlyc3QuZ2V0RnVsbFllYXIoKSA8IHNlY29uZC5nZXRGdWxsWWVhcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZmlyc3QuZ2V0TW9udGgoKSA+IHNlY29uZC5nZXRNb250aCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpcnN0LmdldE1vbnRoKCkgPCBzZWNvbmQuZ2V0TW9udGgoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0LmdldERhdGUoKSA+IHNlY29uZC5nZXREYXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaXJzdC5nZXREYXRlKCkgPCBzZWNvbmQuZ2V0RGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBGcm9tIG1vbWVudC1wcmVjaXNlLXJhbmdlIHBsdWdpbiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcHJlY2lzZURpZmYoZDEsIGQyKTogUGVyaW9kTW9kZWwge1xuICAgICAgICAvLyAgIGxldCBtMSA9IG1vbWVudChkMSk7XG4gICAgICAgIC8vICAgbGV0IG0yID0gbW9tZW50KGQyKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICBpZiAobTEuaXNTYW1lKG0yKSkge1xuICAgICAgICAvLyAgICAgcmV0dXJuIG5ldyBQZXJpb2RNb2RlbCgwLCAwLCAwKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vICAgaWYgKG0xLmlzQWZ0ZXIobTIpKSB7XG4gICAgICAgIC8vICAgICBjb25zdCB0bXAgPSBtMTtcbiAgICAgICAgLy8gICAgIG0xID0gbTI7XG4gICAgICAgIC8vICAgICBtMiA9IHRtcDtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgbGV0IHlEaWZmID0gbTIueWVhcigpIC0gbTEueWVhcigpO1xuICAgICAgICAvLyAgIGxldCBtRGlmZiA9IG0yLm1vbnRoKCkgLSBtMS5tb250aCgpO1xuICAgICAgICAvLyAgIGxldCBkRGlmZiA9IG0yLmRhdGUoKSAtIG0xLmRhdGUoKTtcbiAgICAgICAgLy8gICBsZXQgaG91ckRpZmYgPSBtMi5ob3VyKCkgLSBtMS5ob3VyKCk7XG4gICAgICAgIC8vICAgbGV0IG1pbkRpZmYgPSBtMi5taW51dGUoKSAtIG0xLm1pbnV0ZSgpO1xuICAgICAgICAvLyAgIGxldCBzZWNEaWZmID0gbTIuc2Vjb25kKCkgLSBtMS5zZWNvbmQoKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICBpZiAoc2VjRGlmZiA8IDApIHtcbiAgICAgICAgLy8gICAgIHNlY0RpZmYgPSA2MCArIHNlY0RpZmY7XG4gICAgICAgIC8vICAgICBtaW5EaWZmLS07XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmIChtaW5EaWZmIDwgMCkge1xuICAgICAgICAvLyAgICAgbWluRGlmZiA9IDYwICsgbWluRGlmZjtcbiAgICAgICAgLy8gICAgIGhvdXJEaWZmLS07XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmIChob3VyRGlmZiA8IDApIHtcbiAgICAgICAgLy8gICAgIGhvdXJEaWZmID0gMjQgKyBob3VyRGlmZjtcbiAgICAgICAgLy8gICAgIGREaWZmLS07XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmIChkRGlmZiA8IDApIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IGRheXNJbkxhc3RGdWxsTW9udGggPSBtb21lbnQobTIueWVhcigpICsgJy0nICsgKG0yLm1vbnRoKCkgKyAxKSwgJ1lZWVktTU0nKVxuICAgICAgICAvLyAgICAgICAuc3VidHJhY3QoMSwgJ21vbnRocycpLmRheXNJbk1vbnRoKCk7XG4gICAgICAgIC8vICAgICBpZiAoZGF5c0luTGFzdEZ1bGxNb250aCA8IG0xLmRhdGUoKSkgeyAvLyAzMS8wMSAtPiAyLzAzXG4gICAgICAgIC8vICAgICAgIGREaWZmID0gZGF5c0luTGFzdEZ1bGxNb250aCArIGREaWZmICsgKG0xLmRhdGUoKSAtIGRheXNJbkxhc3RGdWxsTW9udGgpO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgZERpZmYgPSBkYXlzSW5MYXN0RnVsbE1vbnRoICsgZERpZmY7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vICAgICBtRGlmZi0tO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICBpZiAobURpZmYgPCAwKSB7XG4gICAgICAgIC8vICAgICBtRGlmZiA9IDEyICsgbURpZmY7XG4gICAgICAgIC8vICAgICB5RGlmZi0tO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgLy8gICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdzJywgNjApO1xuICAgICAgICAvLyAgIG1vbWVudC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQoJ20nLCA2MCk7XG4gICAgICAgIC8vICAgbW9tZW50LnJlbGF0aXZlVGltZVRocmVzaG9sZCgnaCcsIDIzKTtcbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdkZCcsIDI4KTtcbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdkbScsIDQ1KTtcbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdkeScsIDM2NSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgaWYgKHlEaWZmKSB7XG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaChtb21lbnQuZHVyYXRpb24oeURpZmYsICd5ZWFyJykuaHVtYW5pemUoKSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmIChtRGlmZikge1xuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKG1EaWZmLCAnbW9udGgnKS5odW1hbml6ZSgpKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vICAgaWYgKGREaWZmKSB7XG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaChtb21lbnQuZHVyYXRpb24oZERpZmYsICdkYXknKS5odW1hbml6ZSgpKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vICAgaWYgKGhvdXJEaWZmKSB7XG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaChtb21lbnQuZHVyYXRpb24oaG91ckRpZmYsICdob3VyJykuaHVtYW5pemUoKSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmIChtaW5EaWZmKSB7XG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaChtb21lbnQuZHVyYXRpb24obWluRGlmZiwgJ21pbnV0ZScpLmh1bWFuaXplKCkpO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICBpZiAoc2VjRGlmZikge1xuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKHNlY0RpZmYsICdzZWNvbmQnKS5odW1hbml6ZSgpKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgY29uc3QgcGVyaW9kID0gbmV3IFBlcmlvZE1vZGVsKDAsIDAsIDApO1xuICAgICAgICAvLyAgIHBlcmlvZC55ZWFycyA9IG1vbWVudC5kdXJhdGlvbih5RGlmZiwgJ3llYXInKS5hc1llYXJzKCk7XG4gICAgICAgIC8vICAgcGVyaW9kLm1vbnRocyA9IG1vbWVudC5kdXJhdGlvbihtRGlmZiwgJ21vbnRoJykuYXNNb250aHMoKTtcbiAgICAgICAgLy8gICBwZXJpb2QuZGF5cyA9IG1vbWVudC5kdXJhdGlvbihkRGlmZiwgJ2RheScpLmFzRGF5cygpO1xuICAgICAgICAvL1xuICAgICAgICBjb25zdCBwZXJpb2QgPSBuZXcgUGVyaW9kTW9kZWwoMCwgMCwgMCk7XG4gICAgICAgIHJldHVybiBwZXJpb2Q7XG4gICAgfVxuXG59XG4iXX0=
1
+ import { PeriodModel } from './PeriodModel';
2
+ /**
3
+ * Created by dstoian on 27/03/2017.
4
+ */
5
+ export class DateUtil {
6
+ constructor() {
7
+ }
8
+ // Format Date to YYYY-MM-DD
9
+ static formatDate(date, language) {
10
+ const mm = date.getMonth() + 1;
11
+ const dd = date.getDate();
12
+ if (language && 'fr' === language) {
13
+ return [(dd > 9 ? '' : '0') + dd,
14
+ (mm > 9 ? '' : '0') + mm,
15
+ date.getFullYear()
16
+ ].join('/');
17
+ }
18
+ return [date.getFullYear(),
19
+ (mm > 9 ? '' : '0') + mm,
20
+ (dd > 9 ? '' : '0') + dd
21
+ ].join('-');
22
+ }
23
+ // convert a string formatted "YYYY-MM-DD" into a date object
24
+ static fromStringToDate(stringdate) {
25
+ const parts = stringdate.split('-');
26
+ const month = parts[1].toString();
27
+ const yearNumber = Number(parts[0]);
28
+ let monthNumber = 0;
29
+ if (month[0] === '0') {
30
+ monthNumber = +month[1];
31
+ }
32
+ else {
33
+ monthNumber = +parts[1];
34
+ }
35
+ const numberOfDays = Number(parts[2]);
36
+ return new Date(yearNumber, monthNumber - 1, numberOfDays);
37
+ }
38
+ // convert a string formatted "YYYY-MM-DD" into a date object
39
+ static fromStringToDateSecond(stringdate) {
40
+ const parts = stringdate.split(',');
41
+ const month = parts[1].toString();
42
+ const yearNumber = Number(parts[0]);
43
+ let monthNumber = 0;
44
+ if (month[0] === '0') {
45
+ monthNumber = +month[1];
46
+ }
47
+ else {
48
+ monthNumber = +parts[1];
49
+ }
50
+ const numberOfDays = Number(parts[2]);
51
+ return new Date(yearNumber, monthNumber - 1, numberOfDays);
52
+ }
53
+ static periodBetweenDates(startDate, endDate) {
54
+ DateUtil.initDaysPerMonths();
55
+ const a = new Date(startDate);
56
+ const b = new Date(endDate);
57
+ let numberOfDays = 0;
58
+ let numberOfYears = b.getFullYear() - a.getFullYear();
59
+ let numberOfMonths = (b.getMonth() - a.getMonth() + 12) % 12;
60
+ if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {
61
+ numberOfYears--;
62
+ }
63
+ if (a.getMonth() > b.getMonth()) {
64
+ numberOfYears--;
65
+ }
66
+ if (a.getDate() > b.getDate()) {
67
+ numberOfMonths--;
68
+ if (numberOfMonths < 0) {
69
+ numberOfMonths = 11;
70
+ }
71
+ }
72
+ if (b.getDate() < a.getDate()) {
73
+ let numberOfDaysPerMonth = DateUtil.daysPerMonth.get(a.getMonth());
74
+ if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {
75
+ numberOfDaysPerMonth++;
76
+ }
77
+ numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();
78
+ }
79
+ else {
80
+ numberOfDays = b.getDate() - a.getDate();
81
+ }
82
+ return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);
83
+ }
84
+ static checkLeapYear(year) {
85
+ if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ static initDaysPerMonths() {
91
+ DateUtil.daysPerMonth.set(0, 31);
92
+ DateUtil.daysPerMonth.set(1, 28);
93
+ DateUtil.daysPerMonth.set(2, 31);
94
+ DateUtil.daysPerMonth.set(3, 30);
95
+ DateUtil.daysPerMonth.set(4, 31);
96
+ DateUtil.daysPerMonth.set(5, 30);
97
+ DateUtil.daysPerMonth.set(6, 31);
98
+ DateUtil.daysPerMonth.set(7, 31);
99
+ DateUtil.daysPerMonth.set(8, 30);
100
+ DateUtil.daysPerMonth.set(9, 31);
101
+ DateUtil.daysPerMonth.set(10, 30);
102
+ DateUtil.daysPerMonth.set(11, 31);
103
+ }
104
+ // returns 0 if the 2 dates are equal, 1 if the first date is greater than the second one or -1 when it's the opposite
105
+ static compareLocalDates(first, second) {
106
+ if (first.getFullYear() > second.getFullYear()) {
107
+ return 1;
108
+ }
109
+ else if (first.getFullYear() < second.getFullYear()) {
110
+ return -1;
111
+ }
112
+ else {
113
+ if (first.getMonth() > second.getMonth()) {
114
+ return 1;
115
+ }
116
+ else if (first.getMonth() < second.getMonth()) {
117
+ return -1;
118
+ }
119
+ else {
120
+ if (first.getDate() > second.getDate()) {
121
+ return 1;
122
+ }
123
+ else if (first.getDate() < second.getDate()) {
124
+ return -1;
125
+ }
126
+ else {
127
+ return 0;
128
+ }
129
+ }
130
+ }
131
+ }
132
+ /* From moment-precise-range plugin */
133
+ static preciseDiff(d1, d2) {
134
+ // let m1 = moment(d1);
135
+ // let m2 = moment(d2);
136
+ //
137
+ // if (m1.isSame(m2)) {
138
+ // return new PeriodModel(0, 0, 0);
139
+ // }
140
+ // if (m1.isAfter(m2)) {
141
+ // const tmp = m1;
142
+ // m1 = m2;
143
+ // m2 = tmp;
144
+ // }
145
+ //
146
+ // let yDiff = m2.year() - m1.year();
147
+ // let mDiff = m2.month() - m1.month();
148
+ // let dDiff = m2.date() - m1.date();
149
+ // let hourDiff = m2.hour() - m1.hour();
150
+ // let minDiff = m2.minute() - m1.minute();
151
+ // let secDiff = m2.second() - m1.second();
152
+ //
153
+ // if (secDiff < 0) {
154
+ // secDiff = 60 + secDiff;
155
+ // minDiff--;
156
+ // }
157
+ // if (minDiff < 0) {
158
+ // minDiff = 60 + minDiff;
159
+ // hourDiff--;
160
+ // }
161
+ // if (hourDiff < 0) {
162
+ // hourDiff = 24 + hourDiff;
163
+ // dDiff--;
164
+ // }
165
+ // if (dDiff < 0) {
166
+ // const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')
167
+ // .subtract(1, 'months').daysInMonth();
168
+ // if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03
169
+ // dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);
170
+ // } else {
171
+ // dDiff = daysInLastFullMonth + dDiff;
172
+ // }
173
+ // mDiff--;
174
+ // }
175
+ // if (mDiff < 0) {
176
+ // mDiff = 12 + mDiff;
177
+ // yDiff--;
178
+ // }
179
+ //
180
+ // const result = [];
181
+ //
182
+ // moment.relativeTimeThreshold('s', 60);
183
+ // moment.relativeTimeThreshold('m', 60);
184
+ // moment.relativeTimeThreshold('h', 23);
185
+ // moment.relativeTimeThreshold('dd', 28);
186
+ // moment.relativeTimeThreshold('dm', 45);
187
+ // moment.relativeTimeThreshold('dy', 365);
188
+ //
189
+ // if (yDiff) {
190
+ // result.push(moment.duration(yDiff, 'year').humanize());
191
+ // }
192
+ // if (mDiff) {
193
+ // result.push(moment.duration(mDiff, 'month').humanize());
194
+ // }
195
+ // if (dDiff) {
196
+ // result.push(moment.duration(dDiff, 'day').humanize());
197
+ // }
198
+ // if (hourDiff) {
199
+ // result.push(moment.duration(hourDiff, 'hour').humanize());
200
+ // }
201
+ // if (minDiff) {
202
+ // result.push(moment.duration(minDiff, 'minute').humanize());
203
+ // }
204
+ // if (secDiff) {
205
+ // result.push(moment.duration(secDiff, 'second').humanize());
206
+ // }
207
+ //
208
+ // const period = new PeriodModel(0, 0, 0);
209
+ // period.years = moment.duration(yDiff, 'year').asYears();
210
+ // period.months = moment.duration(mDiff, 'month').asMonths();
211
+ // period.days = moment.duration(dDiff, 'day').asDays();
212
+ //
213
+ const period = new PeriodModel(0, 0, 0);
214
+ return period;
215
+ }
216
+ }
217
+ DateUtil.daysPerMonth = new Map();
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9kYXRlL2RhdGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDOztHQUVHO0FBRUgsTUFBTSxPQUFPLFFBQVE7SUFHakI7SUFDQSxDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVSxFQUFFLFFBQVE7UUFDekMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFMUIsSUFBSSxRQUFRLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFO2FBQ3JCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtTQUMzQixD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QzlELGlGQUFpRjtRQUNqRixlQUFlO1FBQ2YsNkNBQTZDO1FBQzdDLFFBQVE7UUFDUixlQUFlO1FBQ2YsTUFBTTtRQUNOLHFCQUFxQjtRQUNyQiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLE1BQU07UUFDTixFQUFFO1FBQ0YsdUJBQXVCO1FBQ3ZCLEVBQUU7UUFDRiwyQ0FBMkM7UUFDM0MsMkNBQTJDO1FBQzNDLDJDQUEyQztRQUMzQyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDZDQUE2QztRQUM3QyxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLDhEQUE4RDtRQUM5RCxNQUFNO1FBQ04saUJBQWlCO1FBQ2pCLCtEQUErRDtRQUMvRCxNQUFNO1FBQ04saUJBQWlCO1FBQ2pCLDZEQUE2RDtRQUM3RCxNQUFNO1FBQ04sb0JBQW9CO1FBQ3BCLGlFQUFpRTtRQUNqRSxNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLGtFQUFrRTtRQUNsRSxNQUFNO1FBQ04sbUJBQW1CO1FBQ25CLGtFQUFrRTtRQUNsRSxNQUFNO1FBQ04sRUFBRTtRQUNGLDZDQUE2QztRQUM3Qyw2REFBNkQ7UUFDN0QsZ0VBQWdFO1FBQ2hFLDBEQUEwRDtRQUMxRCxFQUFFO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOztBQXBOYSxxQkFBWSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVyaW9kTW9kZWwgfSBmcm9tICcuL1BlcmlvZE1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGRzdG9pYW4gb24gMjcvMDMvMjAxNy5cclxuICovXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xyXG4gICAgcHVibGljIHN0YXRpYyBkYXlzUGVyTW9udGggPSBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvcm1hdCBEYXRlIHRvIFlZWVktTU0tRERcclxuICAgIHB1YmxpYyBzdGF0aWMgZm9ybWF0RGF0ZShkYXRlOiBEYXRlLCBsYW5ndWFnZSkge1xyXG4gICAgICAgIGNvbnN0IG1tID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgICAgICBjb25zdCBkZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAobGFuZ3VhZ2UgJiYgJ2ZyJyA9PT0gbGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFsoZGQgPiA5ID8gJycgOiAnMCcpICsgZGQsXHJcbiAgICAgICAgICAgICAgICAobW0gPiA5ID8gJycgOiAnMCcpICsgbW0sXHJcbiAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKClcclxuICAgICAgICAgICAgXS5qb2luKCcvJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW2RhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICAgICAgKG1tID4gOSA/ICcnIDogJzAnKSArIG1tLFxyXG4gICAgICAgICAgICAoZGQgPiA5ID8gJycgOiAnMCcpICsgZGRcclxuICAgICAgICBdLmpvaW4oJy0nKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb252ZXJ0IGEgc3RyaW5nIGZvcm1hdHRlZCBcIllZWVktTU0tRERcIiBpbnRvIGEgZGF0ZSBvYmplY3RcclxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ1RvRGF0ZShzdHJpbmdkYXRlOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHN0cmluZ2RhdGUuc3BsaXQoJy0nKTtcclxuICAgICAgICBjb25zdCBtb250aCA9IHBhcnRzWzFdLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgY29uc3QgeWVhck51bWJlciA9IE51bWJlcihwYXJ0c1swXSk7XHJcbiAgICAgICAgbGV0IG1vbnRoTnVtYmVyID0gMDtcclxuICAgICAgICBpZiAobW9udGhbMF0gPT09ICcwJykge1xyXG4gICAgICAgICAgICBtb250aE51bWJlciA9ICttb250aFsxXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtb250aE51bWJlciA9ICtwYXJ0c1sxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbnVtYmVyT2ZEYXlzID0gTnVtYmVyKHBhcnRzWzJdKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhck51bWJlciwgbW9udGhOdW1iZXIgLSAxLCBudW1iZXJPZkRheXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnZlcnQgYSBzdHJpbmcgZm9ybWF0dGVkIFwiWVlZWS1NTS1ERFwiIGludG8gYSBkYXRlIG9iamVjdFxyXG4gICAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nVG9EYXRlU2Vjb25kKHN0cmluZ2RhdGU6IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gc3RyaW5nZGF0ZS5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gcGFydHNbMV0udG9TdHJpbmcoKTtcclxuICAgICAgICBjb25zdCB5ZWFyTnVtYmVyID0gTnVtYmVyKHBhcnRzWzBdKTtcclxuICAgICAgICBsZXQgbW9udGhOdW1iZXIgPSAwO1xyXG4gICAgICAgIGlmIChtb250aFswXSA9PT0gJzAnKSB7XHJcbiAgICAgICAgICAgIG1vbnRoTnVtYmVyID0gK21vbnRoWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1vbnRoTnVtYmVyID0gK3BhcnRzWzFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBudW1iZXJPZkRheXMgPSBOdW1iZXIocGFydHNbMl0pO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyTnVtYmVyLCBtb250aE51bWJlciAtIDEsIG51bWJlck9mRGF5cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBwZXJpb2RCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZyk6IFBlcmlvZE1vZGVsIHtcclxuICAgICAgICBEYXRlVXRpbC5pbml0RGF5c1Blck1vbnRocygpO1xyXG4gICAgICAgIGNvbnN0IGEgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgICAgIGNvbnN0IGIgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuICAgICAgICBsZXQgbnVtYmVyT2ZEYXlzID0gMDtcclxuICAgICAgICBsZXQgbnVtYmVyT2ZZZWFycyA9IGIuZ2V0RnVsbFllYXIoKSAtIGEuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICBsZXQgbnVtYmVyT2ZNb250aHMgPSAoYi5nZXRNb250aCgpIC0gYS5nZXRNb250aCgpICsgMTIpICUgMTI7XHJcbiAgICAgICAgaWYgKGEuZ2V0TW9udGgoKSA9PT0gYi5nZXRNb250aCgpICYmIGEuZ2V0VGltZSgpID4gYi5nZXRUaW1lKCkpIHtcclxuICAgICAgICAgICAgbnVtYmVyT2ZZZWFycy0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYS5nZXRNb250aCgpID4gYi5nZXRNb250aCgpKSB7XHJcbiAgICAgICAgICAgIG51bWJlck9mWWVhcnMtLTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEuZ2V0RGF0ZSgpID4gYi5nZXREYXRlKCkpIHtcclxuICAgICAgICAgICAgbnVtYmVyT2ZNb250aHMtLTtcclxuICAgICAgICAgICAgaWYgKG51bWJlck9mTW9udGhzIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZNb250aHMgPSAxMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYi5nZXREYXRlKCkgPCBhLmdldERhdGUoKSkge1xyXG4gICAgICAgICAgICBsZXQgbnVtYmVyT2ZEYXlzUGVyTW9udGggPSBEYXRlVXRpbC5kYXlzUGVyTW9udGguZ2V0KGEuZ2V0TW9udGgoKSk7XHJcbiAgICAgICAgICAgIGlmIChhLmdldE1vbnRoKCkgPT09IDEgJiYgRGF0ZVV0aWwuY2hlY2tMZWFwWWVhcihhLmdldEZ1bGxZZWFyKCkpKSB7XHJcbiAgICAgICAgICAgICAgICBudW1iZXJPZkRheXNQZXJNb250aCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG51bWJlck9mRGF5cyA9IG51bWJlck9mRGF5c1Blck1vbnRoIC0gYS5nZXREYXRlKCkgKyBiLmdldERhdGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBudW1iZXJPZkRheXMgPSBiLmdldERhdGUoKSAtIGEuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IFBlcmlvZE1vZGVsKG51bWJlck9mWWVhcnMsIG51bWJlck9mTW9udGhzLCBudW1iZXJPZkRheXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tMZWFwWWVhcih5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGluaXREYXlzUGVyTW9udGhzKCkge1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMCwgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMSwgMjgpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMiwgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMywgMzApO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoNCwgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoNSwgMzApO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoNiwgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoNywgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoOCwgMzApO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoOSwgMzEpO1xyXG4gICAgICAgIERhdGVVdGlsLmRheXNQZXJNb250aC5zZXQoMTAsIDMwKTtcclxuICAgICAgICBEYXRlVXRpbC5kYXlzUGVyTW9udGguc2V0KDExLCAzMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmV0dXJucyAwIGlmIHRoZSAyIGRhdGVzIGFyZSBlcXVhbCwgMSBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBncmVhdGVyIHRoYW4gdGhlIHNlY29uZCBvbmUgb3IgLTEgd2hlbiBpdCdzIHRoZSBvcHBvc2l0ZVxyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlTG9jYWxEYXRlcyhmaXJzdDogRGF0ZSwgc2Vjb25kOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZmlyc3QuZ2V0RnVsbFllYXIoKSA+IHNlY29uZC5nZXRGdWxsWWVhcigpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlyc3QuZ2V0RnVsbFllYXIoKSA8IHNlY29uZC5nZXRGdWxsWWVhcigpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QuZ2V0TW9udGgoKSA+IHNlY29uZC5nZXRNb250aCgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaXJzdC5nZXRNb250aCgpIDwgc2Vjb25kLmdldE1vbnRoKCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChmaXJzdC5nZXREYXRlKCkgPiBzZWNvbmQuZ2V0RGF0ZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpcnN0LmdldERhdGUoKSA8IHNlY29uZC5nZXREYXRlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIEZyb20gbW9tZW50LXByZWNpc2UtcmFuZ2UgcGx1Z2luICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHByZWNpc2VEaWZmKGQxLCBkMik6IFBlcmlvZE1vZGVsIHtcclxuICAgICAgICAvLyAgIGxldCBtMSA9IG1vbWVudChkMSk7XHJcbiAgICAgICAgLy8gICBsZXQgbTIgPSBtb21lbnQoZDIpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gICBpZiAobTEuaXNTYW1lKG0yKSkge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gbmV3IFBlcmlvZE1vZGVsKDAsIDAsIDApO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vICAgaWYgKG0xLmlzQWZ0ZXIobTIpKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IHRtcCA9IG0xO1xyXG4gICAgICAgIC8vICAgICBtMSA9IG0yO1xyXG4gICAgICAgIC8vICAgICBtMiA9IHRtcDtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vICAgbGV0IHlEaWZmID0gbTIueWVhcigpIC0gbTEueWVhcigpO1xyXG4gICAgICAgIC8vICAgbGV0IG1EaWZmID0gbTIubW9udGgoKSAtIG0xLm1vbnRoKCk7XHJcbiAgICAgICAgLy8gICBsZXQgZERpZmYgPSBtMi5kYXRlKCkgLSBtMS5kYXRlKCk7XHJcbiAgICAgICAgLy8gICBsZXQgaG91ckRpZmYgPSBtMi5ob3VyKCkgLSBtMS5ob3VyKCk7XHJcbiAgICAgICAgLy8gICBsZXQgbWluRGlmZiA9IG0yLm1pbnV0ZSgpIC0gbTEubWludXRlKCk7XHJcbiAgICAgICAgLy8gICBsZXQgc2VjRGlmZiA9IG0yLnNlY29uZCgpIC0gbTEuc2Vjb25kKCk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgIGlmIChzZWNEaWZmIDwgMCkge1xyXG4gICAgICAgIC8vICAgICBzZWNEaWZmID0gNjAgKyBzZWNEaWZmO1xyXG4gICAgICAgIC8vICAgICBtaW5EaWZmLS07XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gICBpZiAobWluRGlmZiA8IDApIHtcclxuICAgICAgICAvLyAgICAgbWluRGlmZiA9IDYwICsgbWluRGlmZjtcclxuICAgICAgICAvLyAgICAgaG91ckRpZmYtLTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyAgIGlmIChob3VyRGlmZiA8IDApIHtcclxuICAgICAgICAvLyAgICAgaG91ckRpZmYgPSAyNCArIGhvdXJEaWZmO1xyXG4gICAgICAgIC8vICAgICBkRGlmZi0tO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vICAgaWYgKGREaWZmIDwgMCkge1xyXG4gICAgICAgIC8vICAgICBjb25zdCBkYXlzSW5MYXN0RnVsbE1vbnRoID0gbW9tZW50KG0yLnllYXIoKSArICctJyArIChtMi5tb250aCgpICsgMSksICdZWVlZLU1NJylcclxuICAgICAgICAvLyAgICAgICAuc3VidHJhY3QoMSwgJ21vbnRocycpLmRheXNJbk1vbnRoKCk7XHJcbiAgICAgICAgLy8gICAgIGlmIChkYXlzSW5MYXN0RnVsbE1vbnRoIDwgbTEuZGF0ZSgpKSB7IC8vIDMxLzAxIC0+IDIvMDNcclxuICAgICAgICAvLyAgICAgICBkRGlmZiA9IGRheXNJbkxhc3RGdWxsTW9udGggKyBkRGlmZiArIChtMS5kYXRlKCkgLSBkYXlzSW5MYXN0RnVsbE1vbnRoKTtcclxuICAgICAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgICBkRGlmZiA9IGRheXNJbkxhc3RGdWxsTW9udGggKyBkRGlmZjtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgICBtRGlmZi0tO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vICAgaWYgKG1EaWZmIDwgMCkge1xyXG4gICAgICAgIC8vICAgICBtRGlmZiA9IDEyICsgbURpZmY7XHJcbiAgICAgICAgLy8gICAgIHlEaWZmLS07XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdzJywgNjApO1xyXG4gICAgICAgIC8vICAgbW9tZW50LnJlbGF0aXZlVGltZVRocmVzaG9sZCgnbScsIDYwKTtcclxuICAgICAgICAvLyAgIG1vbWVudC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQoJ2gnLCAyMyk7XHJcbiAgICAgICAgLy8gICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkKCdkZCcsIDI4KTtcclxuICAgICAgICAvLyAgIG1vbWVudC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQoJ2RtJywgNDUpO1xyXG4gICAgICAgIC8vICAgbW9tZW50LnJlbGF0aXZlVGltZVRocmVzaG9sZCgnZHknLCAzNjUpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gICBpZiAoeURpZmYpIHtcclxuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKHlEaWZmLCAneWVhcicpLmh1bWFuaXplKCkpO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vICAgaWYgKG1EaWZmKSB7XHJcbiAgICAgICAgLy8gICAgIHJlc3VsdC5wdXNoKG1vbWVudC5kdXJhdGlvbihtRGlmZiwgJ21vbnRoJykuaHVtYW5pemUoKSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gICBpZiAoZERpZmYpIHtcclxuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKGREaWZmLCAnZGF5JykuaHVtYW5pemUoKSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gICBpZiAoaG91ckRpZmYpIHtcclxuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKGhvdXJEaWZmLCAnaG91cicpLmh1bWFuaXplKCkpO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vICAgaWYgKG1pbkRpZmYpIHtcclxuICAgICAgICAvLyAgICAgcmVzdWx0LnB1c2gobW9tZW50LmR1cmF0aW9uKG1pbkRpZmYsICdtaW51dGUnKS5odW1hbml6ZSgpKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyAgIGlmIChzZWNEaWZmKSB7XHJcbiAgICAgICAgLy8gICAgIHJlc3VsdC5wdXNoKG1vbWVudC5kdXJhdGlvbihzZWNEaWZmLCAnc2Vjb25kJykuaHVtYW5pemUoKSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgIGNvbnN0IHBlcmlvZCA9IG5ldyBQZXJpb2RNb2RlbCgwLCAwLCAwKTtcclxuICAgICAgICAvLyAgIHBlcmlvZC55ZWFycyA9IG1vbWVudC5kdXJhdGlvbih5RGlmZiwgJ3llYXInKS5hc1llYXJzKCk7XHJcbiAgICAgICAgLy8gICBwZXJpb2QubW9udGhzID0gbW9tZW50LmR1cmF0aW9uKG1EaWZmLCAnbW9udGgnKS5hc01vbnRocygpO1xyXG4gICAgICAgIC8vICAgcGVyaW9kLmRheXMgPSBtb21lbnQuZHVyYXRpb24oZERpZmYsICdkYXknKS5hc0RheXMoKTtcclxuICAgICAgICAvL1xyXG4gICAgICAgIGNvbnN0IHBlcmlvZCA9IG5ldyBQZXJpb2RNb2RlbCgwLCAwLCAwKTtcclxuICAgICAgICByZXR1cm4gcGVyaW9kO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,22 +1,22 @@
1
- export function Theme() {
2
- return (target, key) => {
3
- // Check if the data exist in the local storage
4
- function exist(dataKey) {
5
- return localStorage.hasOwnProperty(dataKey);
6
- }
7
- // Get data from local storage
8
- function get(theme) {
9
- return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;
10
- }
11
- // Set data in the local storage and return it
12
- function setDefault(theme) {
13
- localStorage.setItem('newTheme', JSON.stringify(theme));
14
- return theme;
15
- }
16
- Object.defineProperty(target, key, {
17
- configurable: false,
18
- get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))
19
- });
20
- };
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9kZWNvcmF0b3JzL3RoZW1lLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSztJQUNqQixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ2hDLCtDQUErQztRQUMvQyxTQUFTLEtBQUssQ0FBQyxPQUFlO1lBQzFCLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLFNBQVMsR0FBRyxDQUFDLEtBQWE7WUFDdEIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekUsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxTQUFTLFVBQVUsQ0FBQyxLQUFVO1lBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQy9CLFlBQVksRUFBRSxLQUFLO1lBQ25CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBUaGVtZSgpIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGF0YSBleGlzdCBpbiB0aGUgbG9jYWwgc3RvcmFnZVxuICAgICAgICBmdW5jdGlvbiBleGlzdChkYXRhS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuaGFzT3duUHJvcGVydHkoZGF0YUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgZGF0YSBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgZnVuY3Rpb24gZ2V0KHRoZW1lOiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBleGlzdCh0aGVtZSkgPyBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoZW1lKSkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IGRhdGEgaW4gdGhlIGxvY2FsIHN0b3JhZ2UgYW5kIHJldHVybiBpdFxuICAgICAgICBmdW5jdGlvbiBzZXREZWZhdWx0KHRoZW1lOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ25ld1RoZW1lJywgSlNPTi5zdHJpbmdpZnkodGhlbWUpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGVtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGdldDogKCkgPT4gKGV4aXN0KCduZXdUaGVtZScpID8gZ2V0KCduZXdUaGVtZScpIDogc2V0RGVmYXVsdCgnbGlnaHQnKSlcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiJdfQ==
1
+ export function Theme() {
2
+ return (target, key) => {
3
+ // Check if the data exist in the local storage
4
+ function exist(dataKey) {
5
+ return localStorage.hasOwnProperty(dataKey);
6
+ }
7
+ // Get data from local storage
8
+ function get(theme) {
9
+ return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;
10
+ }
11
+ // Set data in the local storage and return it
12
+ function setDefault(theme) {
13
+ localStorage.setItem('newTheme', JSON.stringify(theme));
14
+ return theme;
15
+ }
16
+ Object.defineProperty(target, key, {
17
+ configurable: false,
18
+ get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))
19
+ });
20
+ };
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9kZWNvcmF0b3JzL3RoZW1lLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSztJQUNqQixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ2hDLCtDQUErQztRQUMvQyxTQUFTLEtBQUssQ0FBQyxPQUFlO1lBQzFCLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLFNBQVMsR0FBRyxDQUFDLEtBQWE7WUFDdEIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekUsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxTQUFTLFVBQVUsQ0FBQyxLQUFVO1lBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQy9CLFlBQVksRUFBRSxLQUFLO1lBQ25CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBUaGVtZSgpIHtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGEgZXhpc3QgaW4gdGhlIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICBmdW5jdGlvbiBleGlzdChkYXRhS2V5OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5oYXNPd25Qcm9wZXJ0eShkYXRhS2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGZ1bmN0aW9uIGdldCh0aGVtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBleGlzdCh0aGVtZSkgPyBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoZW1lKSkgOiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IGRhdGEgaW4gdGhlIGxvY2FsIHN0b3JhZ2UgYW5kIHJldHVybiBpdFxyXG4gICAgICAgIGZ1bmN0aW9uIHNldERlZmF1bHQodGhlbWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCduZXdUaGVtZScsIEpTT04uc3RyaW5naWZ5KHRoZW1lKSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGVtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBnZXQ6ICgpID0+IChleGlzdCgnbmV3VGhlbWUnKSA/IGdldCgnbmV3VGhlbWUnKSA6IHNldERlZmF1bHQoJ2xpZ2h0JykpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
@@ -1,25 +1,25 @@
1
- import { JwtHelper } from '../services/jwt-security/jwt.helpher';
2
- export function User() {
3
- const jwtHelper = new JwtHelper();
4
- return (target, key) => {
5
- // Check if the data exist in the local storage
6
- function exist(dataKey) {
7
- return sessionStorage.hasOwnProperty(dataKey);
8
- }
9
- // Get data from local storage
10
- function get(user) {
11
- return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;
12
- }
13
- Object.defineProperty(target, key, {
14
- configurable: false,
15
- get: () => {
16
- const user = get('authToken');
17
- if (user && user.superAdmin && exist('authTokenSecondary')) {
18
- return Object.assign({ secondary: true }, get('authTokenSecondary'));
19
- }
20
- return user;
21
- }
22
- });
23
- };
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2RlY29yYXRvcnMvdXNlci5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpFLE1BQU0sVUFBVSxJQUFJO0lBRWhCLE1BQU0sU0FBUyxHQUFjLElBQUksU0FBUyxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUVoQywrQ0FBK0M7UUFDL0MsU0FBUyxLQUFLLENBQUMsT0FBZTtZQUMxQixPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELDhCQUE4QjtRQUM5QixTQUFTLEdBQUcsQ0FBQyxJQUFZO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BGLENBQUM7UUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDL0IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsR0FBRyxFQUFFLEdBQUcsRUFBRTtnQkFDTixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7b0JBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO2lCQUN0RTtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBRU4sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEp3dEhlbHBlciB9IGZyb20gJy4uL3NlcnZpY2VzL2p3dC1zZWN1cml0eS9qd3QuaGVscGhlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBVc2VyKCkge1xuXG4gICAgY29uc3Qgand0SGVscGVyOiBKd3RIZWxwZXIgPSBuZXcgSnd0SGVscGVyKCk7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGF0YSBleGlzdCBpbiB0aGUgbG9jYWwgc3RvcmFnZVxuICAgICAgICBmdW5jdGlvbiBleGlzdChkYXRhS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5oYXNPd25Qcm9wZXJ0eShkYXRhS2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxuICAgICAgICBmdW5jdGlvbiBnZXQodXNlcjogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhpc3QodXNlcikgPyBqd3RIZWxwZXIuZGVjb2RlVG9rZW4oc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh1c2VyKSkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlciA9IGdldCgnYXV0aFRva2VuJyk7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5zdXBlckFkbWluICYmIGV4aXN0KCdhdXRoVG9rZW5TZWNvbmRhcnknKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7c2Vjb25kYXJ5OiB0cnVlfSwgZ2V0KCdhdXRoVG9rZW5TZWNvbmRhcnknKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG59XG4iXX0=
1
+ import { JwtHelper } from '../services/jwt-security/jwt.helpher';
2
+ export function User() {
3
+ const jwtHelper = new JwtHelper();
4
+ return (target, key) => {
5
+ // Check if the data exist in the local storage
6
+ function exist(dataKey) {
7
+ return sessionStorage.hasOwnProperty(dataKey);
8
+ }
9
+ // Get data from local storage
10
+ function get(user) {
11
+ return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;
12
+ }
13
+ Object.defineProperty(target, key, {
14
+ configurable: false,
15
+ get: () => {
16
+ const user = get('authToken');
17
+ if (user && user.superAdmin && exist('authTokenSecondary')) {
18
+ return Object.assign({ secondary: true }, get('authTokenSecondary'));
19
+ }
20
+ return user;
21
+ }
22
+ });
23
+ };
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2RlY29yYXRvcnMvdXNlci5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpFLE1BQU0sVUFBVSxJQUFJO0lBRWhCLE1BQU0sU0FBUyxHQUFjLElBQUksU0FBUyxFQUFFLENBQUM7SUFDN0MsT0FBTyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUVoQywrQ0FBK0M7UUFDL0MsU0FBUyxLQUFLLENBQUMsT0FBZTtZQUMxQixPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELDhCQUE4QjtRQUM5QixTQUFTLEdBQUcsQ0FBQyxJQUFZO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BGLENBQUM7UUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDL0IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsR0FBRyxFQUFFLEdBQUcsRUFBRTtnQkFDTixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7b0JBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO2lCQUN0RTtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBRU4sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEp3dEhlbHBlciB9IGZyb20gJy4uL3NlcnZpY2VzL2p3dC1zZWN1cml0eS9qd3QuaGVscGhlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gVXNlcigpIHtcclxuXHJcbiAgICBjb25zdCBqd3RIZWxwZXI6IEp3dEhlbHBlciA9IG5ldyBKd3RIZWxwZXIoKTtcclxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcblxyXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBkYXRhIGV4aXN0IGluIHRoZSBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgZnVuY3Rpb24gZXhpc3QoZGF0YUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5oYXNPd25Qcm9wZXJ0eShkYXRhS2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGZ1bmN0aW9uIGdldCh1c2VyOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGV4aXN0KHVzZXIpID8gand0SGVscGVyLmRlY29kZVRva2VuKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odXNlcikpIDogbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBnZXQoJ2F1dGhUb2tlbicpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5zdXBlckFkbWluICYmIGV4aXN0KCdhdXRoVG9rZW5TZWNvbmRhcnknKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtzZWNvbmRhcnk6IHRydWV9LCBnZXQoJ2F1dGhUb2tlblNlY29uZGFyeScpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxufVxyXG4iXX0=