design-angular-kit 1.6.1 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/README.md +1 -26
  2. package/assets/i18n/en.json +2 -1
  3. package/assets/i18n/it.json +2 -1
  4. package/esm2022/design-angular-kit.mjs +5 -0
  5. package/esm2022/lib/abstracts/abstract-form.component.mjs +199 -0
  6. package/esm2022/lib/abstracts/abstract.component.mjs +46 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +39 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +71 -0
  9. package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +43 -0
  10. package/esm2022/lib/components/core/avatar/avatar-extra-text.directive.mjs +22 -0
  11. package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +84 -0
  12. package/esm2022/lib/components/core/avatar/avatar-presence.directive.mjs +38 -0
  13. package/esm2022/lib/components/core/avatar/avatar-status.directive.mjs +38 -0
  14. package/esm2022/lib/components/core/avatar/avatar-wrapper.directive.mjs +32 -0
  15. package/esm2022/lib/components/core/avatar/avatar.directive.mjs +78 -0
  16. package/esm2022/lib/components/core/avatar/avatar.module.mjs +52 -0
  17. package/esm2022/lib/components/core/badge/badge.directive.mjs +39 -0
  18. package/esm2022/lib/components/core/button/button.directive.mjs +80 -0
  19. package/esm2022/lib/components/core/callout/callout.component.mjs +64 -0
  20. package/esm2022/lib/components/core/card/card.component.mjs +59 -0
  21. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +86 -0
  22. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  23. package/esm2022/lib/components/core/carousel/carousel.module.mjs +18 -0
  24. package/esm2022/lib/components/core/chip/chip.component.mjs +136 -0
  25. package/esm2022/lib/components/core/collapse/collapse.component.mjs +116 -0
  26. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +27 -0
  27. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  28. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +55 -0
  29. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +19 -0
  30. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +147 -0
  31. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +70 -0
  32. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  33. package/esm2022/lib/components/core/forward/forward.directive.mjs +57 -0
  34. package/esm2022/lib/components/core/link/link.component.mjs +42 -0
  35. package/esm2022/lib/components/core/list/list/list.component.mjs +22 -0
  36. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +67 -0
  37. package/esm2022/lib/components/core/list/list.module.mjs +18 -0
  38. package/esm2022/lib/components/core/modal/modal.component.mjs +194 -0
  39. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  40. package/esm2022/lib/components/core/pagination/pagination.component.mjs +130 -0
  41. package/esm2022/lib/components/core/popover/popover.directive.mjs +176 -0
  42. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
  43. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +25 -0
  44. package/esm2022/lib/components/core/spinner/spinner.component.mjs +30 -0
  45. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +116 -0
  46. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +22 -0
  47. package/esm2022/lib/components/core/steppers/steppers.module.mjs +18 -0
  48. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +97 -0
  49. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +39 -0
  50. package/esm2022/lib/components/core/tab/tab.module.mjs +18 -0
  51. package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +134 -0
  52. package/esm2022/lib/components/core/table/sort/sort.directive.mjs +123 -0
  53. package/esm2022/lib/components/core/table/table.component.mjs +45 -0
  54. package/esm2022/lib/components/core/table/table.module.mjs +19 -0
  55. package/esm2022/lib/components/core/timeline/timeline-item/timeline-item.component.mjs +90 -0
  56. package/esm2022/lib/components/core/timeline/timeline.component.mjs +36 -0
  57. package/esm2022/lib/components/core/timeline/timeline.module.mjs +18 -0
  58. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +143 -0
  59. package/esm2022/lib/components/core/video-player/video-player-i18n.model.mjs +2 -0
  60. package/esm2022/lib/components/core/video-player/video-player-i18n.service.mjs +130 -0
  61. package/esm2022/lib/components/core/video-player/video-player.component.mjs +301 -0
  62. package/esm2022/lib/components/core/video-player/video-player.config.mjs +43 -0
  63. package/esm2022/lib/components/core/video-player/video-player.cookie.mjs +25 -0
  64. package/esm2022/lib/components/core/video-player/video-player.model.mjs +3 -0
  65. package/esm2022/lib/components/core/video-player/video-player.module.mjs +16 -0
  66. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +178 -0
  67. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +48 -0
  68. package/esm2022/lib/components/form/form.module.mjs +67 -0
  69. package/esm2022/lib/components/form/input/input.component.mjs +190 -0
  70. package/esm2022/lib/components/form/password-input/password-input.component.mjs +149 -0
  71. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +60 -0
  72. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  73. package/esm2022/lib/components/form/rating/rating.component.mjs +50 -0
  74. package/esm2022/lib/components/form/search/search.component.mjs +112 -0
  75. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  76. package/esm2022/lib/components/form/textarea/textarea.component.mjs +55 -0
  77. package/esm2022/lib/components/form/transfer/store/transfer.reducers.mjs +191 -0
  78. package/esm2022/lib/components/form/transfer/store/transfer.state.mjs +2 -0
  79. package/esm2022/lib/components/form/transfer/store/transfer.store.mjs +70 -0
  80. package/esm2022/lib/components/form/transfer/transfer-list/transfer-list.component.mjs +72 -0
  81. package/esm2022/lib/components/form/transfer/transfer.component.mjs +149 -0
  82. package/esm2022/lib/components/form/transfer/transfer.model.mjs +6 -0
  83. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +142 -0
  84. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +107 -0
  85. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +67 -0
  86. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +68 -0
  87. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +51 -0
  88. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +21 -0
  89. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  90. package/esm2022/lib/components/navigation/footer/footer.component.mjs +12 -0
  91. package/esm2022/lib/components/navigation/header/header.component.mjs +108 -0
  92. package/esm2022/lib/components/navigation/megamenu/megamenu.component.mjs +27 -0
  93. package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +51 -0
  94. package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +11 -0
  95. package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +18 -0
  96. package/esm2022/lib/components/navigation/navscroll/navscroll-list-item.component.mjs +97 -0
  97. package/esm2022/lib/components/navigation/navscroll/navscroll-list-items.component.mjs +44 -0
  98. package/esm2022/lib/components/navigation/navscroll/navscroll.component.mjs +119 -0
  99. package/esm2022/lib/components/navigation/navscroll/navscroll.model.mjs +2 -0
  100. package/esm2022/lib/components/navigation/navscroll/navscroll.store.mjs +68 -0
  101. package/esm2022/lib/components/navigation/navscroll/navscroll.utils.mjs +23 -0
  102. package/esm2022/lib/components/navigation/sidebar/sidebar.component.mjs +50 -0
  103. package/esm2022/lib/components/navigation/skiplink/skiplink/skiplink.component.mjs +27 -0
  104. package/esm2022/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.mjs +26 -0
  105. package/esm2022/lib/components/navigation/skiplink/skiplink.module.mjs +18 -0
  106. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +74 -0
  107. package/esm2022/lib/components/utils/icon/icon.component.mjs +63 -0
  108. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +50 -0
  109. package/esm2022/lib/design-angular-kit.module.mjs +242 -0
  110. package/esm2022/lib/enums/colors.enums.mjs +12 -0
  111. package/esm2022/lib/enums/sizes.enum.mjs +9 -0
  112. package/esm2022/lib/interfaces/core.mjs +16 -0
  113. package/esm2022/lib/interfaces/design-angular-kit-config.mjs +7 -0
  114. package/esm2022/lib/interfaces/form.mjs +2 -0
  115. package/esm2022/lib/interfaces/icon.mjs +181 -0
  116. package/esm2022/lib/interfaces/sortable-table.mjs +6 -0
  117. package/esm2022/lib/interfaces/utils.mjs +2 -0
  118. package/esm2022/lib/pipes/date-ago.pipe.mjs +56 -0
  119. package/esm2022/lib/pipes/duration.pipe.mjs +115 -0
  120. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +48 -0
  121. package/esm2022/lib/provide-design-angular-kit.mjs +64 -0
  122. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  123. package/esm2022/lib/utils/coercion.mjs +18 -0
  124. package/esm2022/lib/utils/date-utils.mjs +162 -0
  125. package/esm2022/lib/utils/file-utils.mjs +73 -0
  126. package/esm2022/lib/utils/regex.mjs +35 -0
  127. package/esm2022/lib/validators/it-validators.mjs +161 -0
  128. package/esm2022/public_api.mjs +119 -0
  129. package/fesm2022/design-angular-kit.mjs +568 -527
  130. package/fesm2022/design-angular-kit.mjs.map +1 -1
  131. package/index.d.ts +3 -3980
  132. package/lib/abstracts/abstract-form.component.d.ts +89 -0
  133. package/lib/abstracts/abstract.component.d.ts +30 -0
  134. package/lib/components/core/accordion/accordion.component.d.ts +18 -0
  135. package/lib/components/core/alert/alert.component.d.ts +44 -0
  136. package/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.d.ts +29 -0
  137. package/lib/components/core/avatar/avatar-extra-text.directive.d.ts +6 -0
  138. package/lib/components/core/avatar/avatar-group/avatar-group.component.d.ts +20 -0
  139. package/lib/components/core/avatar/avatar-presence.directive.d.ts +17 -0
  140. package/lib/components/core/avatar/avatar-status.directive.d.ts +17 -0
  141. package/lib/components/core/avatar/avatar-wrapper.directive.d.ts +9 -0
  142. package/lib/components/core/avatar/avatar.directive.d.ts +33 -0
  143. package/lib/components/core/avatar/avatar.module.d.ts +13 -0
  144. package/lib/components/core/badge/badge.directive.d.ts +23 -0
  145. package/lib/components/core/button/button.directive.d.ts +48 -0
  146. package/lib/components/core/callout/callout.component.d.ts +50 -0
  147. package/lib/components/core/card/card.component.d.ts +69 -0
  148. package/lib/components/core/carousel/carousel/carousel.component.d.ts +65 -0
  149. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +15 -0
  150. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  151. package/lib/components/core/chip/chip.component.d.ts +76 -0
  152. package/lib/components/core/collapse/collapse.component.d.ts +67 -0
  153. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +12 -0
  154. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +5 -0
  155. package/lib/components/core/dimmer/dimmer.component.d.ts +24 -0
  156. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  157. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +94 -0
  158. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +46 -0
  159. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  160. package/lib/components/core/forward/forward.directive.d.ts +14 -0
  161. package/lib/components/core/link/link.component.d.ts +35 -0
  162. package/lib/components/core/list/list/list.component.d.ts +24 -0
  163. package/lib/components/core/list/list-item/list-item.component.d.ts +44 -0
  164. package/lib/components/core/list/list.module.d.ts +8 -0
  165. package/lib/components/core/modal/modal.component.d.ts +135 -0
  166. package/lib/components/core/notifications/notifications.component.d.ts +45 -0
  167. package/lib/components/core/pagination/pagination.component.d.ts +92 -0
  168. package/lib/components/core/popover/popover.directive.d.ts +99 -0
  169. package/lib/components/core/progress-bar/progress-bar.component.d.ts +31 -0
  170. package/lib/components/core/progress-button/progress-button.component.d.ts +21 -0
  171. package/lib/components/core/spinner/spinner.component.d.ts +24 -0
  172. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +130 -0
  173. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +24 -0
  174. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  175. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +60 -0
  176. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +38 -0
  177. package/lib/components/core/tab/tab.module.d.ts +8 -0
  178. package/lib/components/core/table/sort/sort-header/sort-header.component.d.ts +72 -0
  179. package/lib/components/core/table/sort/sort.directive.d.ts +53 -0
  180. package/lib/components/core/table/table.component.d.ts +60 -0
  181. package/lib/components/core/table/table.module.d.ts +9 -0
  182. package/lib/components/core/timeline/timeline-item/timeline-item.component.d.ts +79 -0
  183. package/lib/components/core/timeline/timeline.component.d.ts +21 -0
  184. package/lib/components/core/timeline/timeline.module.d.ts +8 -0
  185. package/lib/components/core/tooltip/tooltip.directive.d.ts +82 -0
  186. package/lib/components/core/video-player/video-player-i18n.model.d.ts +179 -0
  187. package/lib/components/core/video-player/video-player-i18n.service.d.ts +17 -0
  188. package/lib/components/core/video-player/video-player.component.d.ts +46 -0
  189. package/lib/components/core/video-player/video-player.config.d.ts +68 -0
  190. package/lib/components/core/video-player/video-player.cookie.d.ts +6 -0
  191. package/lib/components/core/video-player/video-player.model.d.ts +44 -0
  192. package/lib/components/core/video-player/video-player.module.d.ts +7 -0
  193. package/lib/components/form/autocomplete/autocomplete.component.d.ts +75 -0
  194. package/lib/components/form/checkbox/checkbox.component.d.ts +41 -0
  195. package/lib/components/form/form.module.d.ts +19 -0
  196. package/lib/components/form/input/input.component.d.ts +95 -0
  197. package/lib/components/form/password-input/password-input.component.d.ts +80 -0
  198. package/lib/components/form/radio-button/radio-button.component.d.ts +38 -0
  199. package/lib/components/form/range/range.component.d.ts +42 -0
  200. package/lib/components/form/rating/rating.component.d.ts +24 -0
  201. package/lib/components/form/search/search.component.d.ts +59 -0
  202. package/lib/components/form/select/select.component.d.ts +36 -0
  203. package/lib/components/form/textarea/textarea.component.d.ts +34 -0
  204. package/lib/components/form/transfer/store/transfer.reducers.d.ts +103 -0
  205. package/lib/components/form/transfer/store/transfer.state.d.ts +18 -0
  206. package/lib/components/form/transfer/store/transfer.store.d.ts +23 -0
  207. package/lib/components/form/transfer/transfer-list/transfer-list.component.d.ts +48 -0
  208. package/lib/components/form/transfer/transfer.component.d.ts +75 -0
  209. package/lib/components/form/transfer/transfer.model.d.ts +6 -0
  210. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +60 -0
  211. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +62 -0
  212. package/lib/components/navigation/back-button/back-button.component.d.ts +47 -0
  213. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +50 -0
  214. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +28 -0
  215. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +23 -0
  216. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  217. package/lib/components/navigation/footer/footer.component.d.ts +6 -0
  218. package/lib/components/navigation/header/header.component.d.ts +39 -0
  219. package/lib/components/navigation/megamenu/megamenu.component.d.ts +22 -0
  220. package/lib/components/navigation/navbar/navbar/navbar.component.d.ts +19 -0
  221. package/lib/components/navigation/navbar/navbar-item/navbar-item.component.d.ts +5 -0
  222. package/lib/components/navigation/navbar/navbar.module.d.ts +8 -0
  223. package/lib/components/navigation/navscroll/navscroll-list-item.component.d.ts +16 -0
  224. package/lib/components/navigation/navscroll/navscroll-list-items.component.d.ts +7 -0
  225. package/lib/components/navigation/navscroll/navscroll.component.d.ts +47 -0
  226. package/lib/components/navigation/navscroll/navscroll.model.d.ts +15 -0
  227. package/lib/components/navigation/navscroll/navscroll.store.d.ts +16 -0
  228. package/lib/components/navigation/navscroll/navscroll.utils.d.ts +6 -0
  229. package/lib/components/navigation/sidebar/sidebar.component.d.ts +26 -0
  230. package/lib/components/navigation/skiplink/skiplink/skiplink.component.d.ts +17 -0
  231. package/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.d.ts +24 -0
  232. package/lib/components/navigation/skiplink/skiplink.module.d.ts +8 -0
  233. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  234. package/lib/components/utils/icon/icon.component.d.ts +53 -0
  235. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +27 -0
  236. package/lib/design-angular-kit.module.d.ts +55 -0
  237. package/lib/enums/colors.enums.d.ts +10 -0
  238. package/lib/enums/sizes.enum.d.ts +7 -0
  239. package/lib/interfaces/core.d.ts +77 -0
  240. package/lib/interfaces/design-angular-kit-config.d.ts +30 -0
  241. package/lib/interfaces/form.d.ts +67 -0
  242. package/lib/interfaces/icon.d.ts +4 -0
  243. package/lib/interfaces/sortable-table.d.ts +33 -0
  244. package/lib/interfaces/utils.d.ts +10 -0
  245. package/lib/pipes/date-ago.pipe.d.ts +17 -0
  246. package/lib/pipes/duration.pipe.d.ts +35 -0
  247. package/lib/pipes/mark-matching-text.pipe.d.ts +18 -0
  248. package/lib/provide-design-angular-kit.d.ts +7 -0
  249. package/lib/services/notification/notification.service.d.ts +63 -0
  250. package/lib/utils/coercion.d.ts +14 -0
  251. package/lib/utils/date-utils.d.ts +79 -0
  252. package/lib/utils/file-utils.d.ts +32 -0
  253. package/lib/utils/regex.d.ts +34 -0
  254. package/lib/validators/it-validators.d.ts +70 -0
  255. package/package.json +11 -12
  256. package/public_api.d.ts +106 -0
  257. package/schematics/ng-add/index.js +1 -1
  258. package/schematics/ng-add/index.js.map +1 -1
  259. package/schematics/ng-add/rules/setup-project/add-animations.js +2 -1
  260. package/schematics/ng-add/rules/setup-project/add-animations.js.map +1 -1
  261. package/schematics/ng-add/rules/setup-project/add-assets.js +2 -1
  262. package/schematics/ng-add/rules/setup-project/add-assets.js.map +1 -1
  263. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js +2 -1
  264. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js.map +1 -1
  265. package/schematics/ng-add/rules/setup-project/add-http-client.js +2 -1
  266. package/schematics/ng-add/rules/setup-project/add-http-client.js.map +1 -1
  267. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js +2 -1
  268. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js.map +1 -1
  269. package/schematics/ng-add/rules/setup-project/add-localisation.js +2 -1
  270. package/schematics/ng-add/rules/setup-project/add-localisation.js.map +1 -1
  271. package/schematics/ng-add/rules/setup-project/angular-json-helper.js +2 -1
  272. package/schematics/ng-add/rules/setup-project/angular-json-helper.js.map +1 -1
  273. package/schematics/ng-add/setup-project.js +2 -2
  274. package/schematics/ng-add/setup-project.js.map +1 -1
  275. package/schematics/ng-add/setup-project.spec.js +1 -1
  276. package/schematics/ng-add/utils.js +6 -13
  277. package/schematics/ng-add/utils.js.map +1 -1
  278. package/schematics/ng-add/versions-helper.js +19 -11
  279. package/schematics/ng-add/versions-helper.js.map +1 -1
  280. package/schematics/ng-add/utils.spec.d.ts +0 -1
  281. package/schematics/ng-add/utils.spec.js +0 -48
  282. package/schematics/ng-add/utils.spec.js.map +0 -1
  283. package/schematics/ng-add/versions-helper.spec.d.ts +0 -1
  284. package/schematics/ng-add/versions-helper.spec.js +0 -46
  285. package/schematics/ng-add/versions-helper.spec.js.map +0 -1
@@ -0,0 +1,120 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { filter, Subject } from 'rxjs';
3
+ import { NotificationType } from '../../interfaces/core';
4
+ import * as i0 from "@angular/core";
5
+ export class ItNotificationService {
6
+ constructor() {
7
+ this.subject = new Subject();
8
+ }
9
+ /**
10
+ * Listen on notification arrived
11
+ * @param filterType filter type of notification
12
+ */
13
+ onNotification(filterType) {
14
+ return this.subject.asObservable().pipe(filter(n => n && (!filterType || n.type === filterType)));
15
+ }
16
+ /**
17
+ * Show new notification
18
+ * @param notification notification
19
+ */
20
+ addNotification(notification) {
21
+ this.subject.next(notification);
22
+ }
23
+ /**
24
+ * Create new Standard notification
25
+ * @param title notification title
26
+ * @param message notification message
27
+ * @param dismissible notification dismissible
28
+ * @param duration notification duration (milliseconds)
29
+ * @param position notification position
30
+ */
31
+ standard(title, message, dismissible, duration, position) {
32
+ this.addNotification({
33
+ type: NotificationType.Standard,
34
+ message,
35
+ title,
36
+ duration,
37
+ dismissible,
38
+ position,
39
+ });
40
+ }
41
+ /**
42
+ * Create new Success notification
43
+ * @param title notification title
44
+ * @param message notification message
45
+ * @param dismissible notification dismissible
46
+ * @param duration notification duration (milliseconds)
47
+ * @param position notification position
48
+ */
49
+ success(title, message, dismissible, duration, position) {
50
+ this.addNotification({
51
+ type: NotificationType.Success,
52
+ message,
53
+ title,
54
+ duration,
55
+ dismissible,
56
+ position,
57
+ });
58
+ }
59
+ /**
60
+ * Create new Error notification
61
+ * @param title notification title
62
+ * @param message notification message
63
+ * @param dismissible notification dismissible
64
+ * @param duration notification duration (milliseconds)
65
+ * @param position notification position
66
+ */
67
+ error(title, message, dismissible, duration, position) {
68
+ this.addNotification({
69
+ type: NotificationType.Error,
70
+ message,
71
+ title,
72
+ duration,
73
+ dismissible,
74
+ position,
75
+ });
76
+ }
77
+ /**
78
+ * Create new Warning notification
79
+ * @param title notification title
80
+ * @param message notification message
81
+ * @param dismissible notification dismissible
82
+ * @param duration notification duration (milliseconds)
83
+ * @param position notification position
84
+ */
85
+ warning(title, message, dismissible, duration, position) {
86
+ this.addNotification({
87
+ type: NotificationType.Warning,
88
+ message,
89
+ title,
90
+ duration,
91
+ dismissible,
92
+ position,
93
+ });
94
+ }
95
+ /**
96
+ * Create new Info notification
97
+ * @param title notification title
98
+ * @param message notification message
99
+ * @param dismissible notification dismissible
100
+ * @param duration notification duration (milliseconds)
101
+ * @param position notification position
102
+ */
103
+ info(title, message, dismissible, duration, position) {
104
+ this.addNotification({
105
+ type: NotificationType.Info,
106
+ message,
107
+ title,
108
+ duration,
109
+ dismissible,
110
+ position,
111
+ });
112
+ }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
114
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItNotificationService, providedIn: 'root' }); }
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItNotificationService, decorators: [{
117
+ type: Injectable,
118
+ args: [{ providedIn: 'root' }]
119
+ }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQXNDLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzdGLE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFFVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7S0FnSC9DO0lBOUdDOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUE2QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsWUFBMEI7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxRQUFRLENBQUMsS0FBYSxFQUFFLE9BQWdCLEVBQUUsV0FBcUIsRUFBRSxRQUFpQixFQUFFLFFBQStCO1FBQ3hILElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDL0IsT0FBTztZQUNQLEtBQUs7WUFDTCxRQUFRO1lBQ1IsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFxQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDdkgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztZQUM5QixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFdBQXFCLEVBQUUsUUFBaUIsRUFBRSxRQUErQjtRQUNySCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ25CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzVCLE9BQU87WUFDUCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxPQUFPLENBQUMsS0FBYSxFQUFFLE9BQWdCLEVBQUUsV0FBcUIsRUFBRSxRQUFpQixFQUFFLFFBQStCO1FBQ3ZILElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE9BQU87WUFDOUIsT0FBTztZQUNQLEtBQUs7WUFDTCxRQUFRO1lBQ1IsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLElBQUksQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFxQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDcEgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUMzQixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEhVLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRFIsTUFBTTs7MkZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uUG9zaXRpb24sIE5vdGlmaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEl0Tm90aWZpY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3ViamVjdCA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbj4oKTtcblxuICAvKipcbiAgICogTGlzdGVuIG9uIG5vdGlmaWNhdGlvbiBhcnJpdmVkXG4gICAqIEBwYXJhbSBmaWx0ZXJUeXBlIGZpbHRlciB0eXBlIG9mIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcHVibGljIG9uTm90aWZpY2F0aW9uKGZpbHRlclR5cGU/OiBOb3RpZmljYXRpb25UeXBlKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKG4gPT4gbiAmJiAoIWZpbHRlclR5cGUgfHwgbi50eXBlID09PSBmaWx0ZXJUeXBlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbmV3IG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcHVibGljIGFkZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KG5vdGlmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBTdGFuZGFyZCBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIHN0YW5kYXJkKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzogYm9vbGVhbiwgZHVyYXRpb24/OiBudW1iZXIsIHBvc2l0aW9uPzogTm90aWZpY2F0aW9uUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiBOb3RpZmljYXRpb25UeXBlLlN0YW5kYXJkLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBkaXNtaXNzaWJsZSxcbiAgICAgIHBvc2l0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgU3VjY2VzcyBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIHN1Y2Nlc3ModGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OiBib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuU3VjY2VzcyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IEVycm9yIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gdGl0bGUgbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqIEBwYXJhbSBtZXNzYWdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqIEBwYXJhbSBkaXNtaXNzaWJsZSBub3RpZmljYXRpb24gZGlzbWlzc2libGVcbiAgICogQHBhcmFtIGR1cmF0aW9uIG5vdGlmaWNhdGlvbiBkdXJhdGlvbiAobWlsbGlzZWNvbmRzKVxuICAgKiBAcGFyYW0gcG9zaXRpb24gbm90aWZpY2F0aW9uIHBvc2l0aW9uXG4gICAqL1xuICBwdWJsaWMgZXJyb3IodGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OiBib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuRXJyb3IsXG4gICAgICBtZXNzYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGRpc21pc3NpYmxlLFxuICAgICAgcG9zaXRpb24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBXYXJuaW5nIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gdGl0bGUgbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqIEBwYXJhbSBtZXNzYWdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqIEBwYXJhbSBkaXNtaXNzaWJsZSBub3RpZmljYXRpb24gZGlzbWlzc2libGVcbiAgICogQHBhcmFtIGR1cmF0aW9uIG5vdGlmaWNhdGlvbiBkdXJhdGlvbiAobWlsbGlzZWNvbmRzKVxuICAgKiBAcGFyYW0gcG9zaXRpb24gbm90aWZpY2F0aW9uIHBvc2l0aW9uXG4gICAqL1xuICBwdWJsaWMgd2FybmluZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBkaXNtaXNzaWJsZT86IGJvb2xlYW4sIGR1cmF0aW9uPzogbnVtYmVyLCBwb3NpdGlvbj86IE5vdGlmaWNhdGlvblBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGROb3RpZmljYXRpb24oe1xuICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5XYXJuaW5nLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBkaXNtaXNzaWJsZSxcbiAgICAgIHBvc2l0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgSW5mbyBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIGluZm8odGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OiBib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuSW5mbyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ import { booleanAttribute } from '@angular/core';
2
+ /**
3
+ * Transforms a value (typically a string) to a boolean.
4
+ * Intended to be used as a transform function of an input.
5
+ *
6
+ * @usageNotes
7
+ * ```typescript
8
+ * @Input({ transform: booleanAttribute }) status?: boolean;
9
+ * ```
10
+ * @param {BooleanInput} value Value to be transformed.
11
+ *
12
+ * @publicApi
13
+ */
14
+ export function inputToBoolean(value) {
15
+ // Wrap `@angular/core` function to force value type, for ide hits
16
+ return booleanAttribute(value);
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi91dGlscy9jb2VyY2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJakQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQW1CO0lBQ2hELGtFQUFrRTtJQUNsRSxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEJvb2xlYW5JbnB1dCA9ICdmYWxzZScgfCAndHJ1ZScgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSB2YWx1ZSAodHlwaWNhbGx5IGEgc3RyaW5nKSB0byBhIGJvb2xlYW4uXG4gKiBJbnRlbmRlZCB0byBiZSB1c2VkIGFzIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIG9mIGFuIGlucHV0LlxuICpcbiAqICBAdXNhZ2VOb3Rlc1xuICogIGBgYHR5cGVzY3JpcHRcbiAqICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc3RhdHVzPzogYm9vbGVhbjtcbiAqICBgYGBcbiAqIEBwYXJhbSB7Qm9vbGVhbklucHV0fSB2YWx1ZSBWYWx1ZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnB1dFRvQm9vbGVhbih2YWx1ZTogQm9vbGVhbklucHV0KTogYm9vbGVhbiB7XG4gIC8vIFdyYXAgYEBhbmd1bGFyL2NvcmVgIGZ1bmN0aW9uIHRvIGZvcmNlIHZhbHVlIHR5cGUsIGZvciBpZGUgaGl0c1xuICByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG59XG4iXX0=
@@ -0,0 +1,162 @@
1
+ import { shareReplay, takeWhile, timer } from 'rxjs';
2
+ import { map } from 'rxjs/operators';
3
+ export class ItDateUtils {
4
+ /**
5
+ * Add seconds to date
6
+ * @param date the date
7
+ * @param seconds seconds to add
8
+ */
9
+ static addSeconds(date, seconds) {
10
+ const newDate = new Date(date.valueOf());
11
+ newDate.setSeconds(date.getSeconds() + seconds);
12
+ return newDate;
13
+ }
14
+ /**
15
+ * Add minutes to date
16
+ * @param date the date
17
+ * @param minutes minutes to add
18
+ */
19
+ static addMinutes(date, minutes) {
20
+ const newDate = new Date(date.valueOf());
21
+ newDate.setMinutes(date.getMinutes() + minutes);
22
+ return newDate;
23
+ }
24
+ /**
25
+ * Add hours to date
26
+ * @param date the date
27
+ * @param hours hours to add
28
+ */
29
+ static addHours(date, hours) {
30
+ const newDate = new Date(date.valueOf());
31
+ newDate.setHours(date.getHours() + hours);
32
+ return newDate;
33
+ }
34
+ /**
35
+ * Add days to date
36
+ * @param date the date
37
+ * @param days days to add
38
+ */
39
+ static addDays(date, days) {
40
+ const newDate = new Date(date.valueOf());
41
+ newDate.setDate(date.getDate() + days);
42
+ return newDate;
43
+ }
44
+ /**
45
+ * Add years to date
46
+ * @param date the date
47
+ * @param months months to add
48
+ */
49
+ static addMonths(date, months) {
50
+ const newDate = new Date(date.valueOf());
51
+ newDate.setMonth(date.getMonth() + months);
52
+ return newDate;
53
+ }
54
+ /**
55
+ * Add years to date
56
+ * @param date the date
57
+ * @param years years to add
58
+ */
59
+ static addYears(date, years) {
60
+ const newDate = new Date(date.valueOf());
61
+ newDate.setFullYear(date.getFullYear() + years);
62
+ return newDate;
63
+ }
64
+ /**
65
+ * Calculate number of days between two date
66
+ * @param startDate
67
+ * @param endDate
68
+ * @param absolute return unsigned result
69
+ */
70
+ static countDays(startDate, endDate, absolute = false) {
71
+ const differenceInTime = endDate.getTime() - startDate.getTime();
72
+ const diff = absolute ? Math.abs(differenceInTime) : differenceInTime;
73
+ return Math.ceil(diff / (1000 * 3600 * 24));
74
+ }
75
+ /**
76
+ * Check if string is a date with iso format
77
+ * @param value the string
78
+ */
79
+ static isIsoString(value) {
80
+ if (!value || !/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(value)) {
81
+ return false;
82
+ }
83
+ const d = new Date(value);
84
+ return !!d && !isNaN(d.getTime()) && d.toISOString() === value;
85
+ }
86
+ /**
87
+ * Convert iso string to Date
88
+ * @param isoString the iso string
89
+ */
90
+ static isoStringToDate(isoString) {
91
+ return isoString ? new Date(Date.parse(isoString)) : null;
92
+ }
93
+ /**
94
+ * Remove time from an iso date string
95
+ * @param isoString the iso string
96
+ */
97
+ static isoStringRemoveTime(isoString) {
98
+ let date = ItDateUtils.isoStringToDate(isoString);
99
+ if (!date) {
100
+ return isoString;
101
+ }
102
+ const offset = date.getTimezoneOffset();
103
+ date = new Date(date.getTime() - offset * 60 * 1000);
104
+ return date.toISOString().substring(0, isoString.indexOf('T'));
105
+ }
106
+ /**
107
+ * Set iso string hours to 0 and format correctly the date (consider timezone offset)
108
+ * @example '2024-03-04T23:00:00.000Z' -> '2024-03-05T00:00:00.000Z'
109
+ * @param isoString the iso string
110
+ */
111
+ static isoStringSetZeroTime(isoString) {
112
+ let date = ItDateUtils.isoStringToDate(isoString);
113
+ if (!date) {
114
+ return isoString;
115
+ }
116
+ const offset = date.getTimezoneOffset();
117
+ date = new Date(date.getTime() - offset * 60 * 1000);
118
+ date.setUTCHours(0, 0, 0, 0);
119
+ return date.toISOString();
120
+ }
121
+ /**
122
+ * Calculate the date time left and return the string format [d h m s]
123
+ * @param endDate
124
+ */
125
+ static timeLeftString(endDate) {
126
+ const endTime = endDate.getTime();
127
+ return timer(0, 1000).pipe(map(() => Math.floor((endTime - new Date().getTime()) / 1000)), takeWhile(delta => delta >= 0), map(delta => {
128
+ const arrayResult = [];
129
+ const days = Math.floor(delta / 60 / 60 / 24);
130
+ if (days > 0) {
131
+ arrayResult.push(days + 'd');
132
+ }
133
+ delta -= days * 60 * 60 * 24;
134
+ const hours = Math.floor(delta / 60 / 60) % 24;
135
+ if (hours > 0) {
136
+ arrayResult.push(hours + 'h');
137
+ }
138
+ delta -= hours * 60 * 60;
139
+ const minutes = Math.floor(delta / 60) % 60;
140
+ arrayResult.push(minutes + 'm');
141
+ delta -= minutes * 60;
142
+ const seconds = delta % 60;
143
+ arrayResult.push(seconds + 's');
144
+ return arrayResult.join(' ');
145
+ }), shareReplay(1));
146
+ }
147
+ /**
148
+ * Calculate the next day of week
149
+ * @param dayOfWeek Day of week 0=Sunday, 1=Monday...4=Thursday...
150
+ * @param hour the specif hour
151
+ * @param minute the specific minute
152
+ */
153
+ static nextWeekDayAndTime(dayOfWeek, hour = 0, minute = 0) {
154
+ const now = new Date();
155
+ const result = new Date(now.getFullYear(), now.getMonth(), now.getDate() + ((7 + dayOfWeek - now.getDay()) % 7), hour, minute, 0, 0);
156
+ if (result < now) {
157
+ result.setDate(result.getDate() + 7);
158
+ }
159
+ return result;
160
+ }
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2RhdGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBZTtRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6QyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVSxFQUFFLE9BQWU7UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVUsRUFBRSxLQUFhO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxD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QUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztRQUN0RSxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXJJLElBQUksTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgdGFrZVdoaWxlLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgSXREYXRlVXRpbHMge1xuICAvKipcbiAgICogQWRkIHNlY29uZHMgdG8gZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZVxuICAgKiBAcGFyYW0gc2Vjb25kcyBzZWNvbmRzIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZGRTZWNvbmRzKGRhdGU6IERhdGUsIHNlY29uZHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgbmV3RGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2Vjb25kcyk7XG4gICAgcmV0dXJuIG5ld0RhdGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG1pbnV0ZXMgdG8gZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZVxuICAgKiBAcGFyYW0gbWludXRlcyBtaW51dGVzIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZGRNaW51dGVzKGRhdGU6IERhdGUsIG1pbnV0ZXM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgbmV3RGF0ZS5zZXRNaW51dGVzKGRhdGUuZ2V0TWludXRlcygpICsgbWludXRlcyk7XG4gICAgcmV0dXJuIG5ld0RhdGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGhvdXJzIHRvIGRhdGVcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGVcbiAgICogQHBhcmFtIGhvdXJzIGhvdXJzIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZGRIb3VycyhkYXRlOiBEYXRlLCBob3VyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBuZXdEYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSArIGhvdXJzKTtcbiAgICByZXR1cm4gbmV3RGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgZGF5cyB0byBkYXRlXG4gICAqIEBwYXJhbSBkYXRlIHRoZSBkYXRlXG4gICAqIEBwYXJhbSBkYXlzIGRheXMgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFkZERheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBuZXdEYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICByZXR1cm4gbmV3RGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgeWVhcnMgdG8gZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZVxuICAgKiBAcGFyYW0gbW9udGhzIG1vbnRocyB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWRkTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBuZXdEYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIG1vbnRocyk7XG4gICAgcmV0dXJuIG5ld0RhdGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHllYXJzIHRvIGRhdGVcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGVcbiAgICogQHBhcmFtIHllYXJzIHllYXJzIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZGRZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIHllYXJzKTtcbiAgICByZXR1cm4gbmV3RGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgbnVtYmVyIG9mIGRheXMgYmV0d2VlbiB0d28gZGF0ZVxuICAgKiBAcGFyYW0gc3RhcnREYXRlXG4gICAqIEBwYXJhbSBlbmREYXRlXG4gICAqIEBwYXJhbSBhYnNvbHV0ZSByZXR1cm4gdW5zaWduZWQgcmVzdWx0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvdW50RGF5cyhzdGFydERhdGU6IERhdGUsIGVuZERhdGU6IERhdGUsIGFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBudW1iZXIge1xuICAgIGNvbnN0IGRpZmZlcmVuY2VJblRpbWUgPSBlbmREYXRlLmdldFRpbWUoKSAtIHN0YXJ0RGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGlmZiA9IGFic29sdXRlID8gTWF0aC5hYnMoZGlmZmVyZW5jZUluVGltZSkgOiBkaWZmZXJlbmNlSW5UaW1lO1xuICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvICgxMDAwICogMzYwMCAqIDI0KSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgc3RyaW5nIGlzIGEgZGF0ZSB3aXRoIGlzbyBmb3JtYXRcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNJc29TdHJpbmcodmFsdWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlIHx8ICEvXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0uXFxkezN9Wi8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICByZXR1cm4gISFkICYmICFpc05hTihkLmdldFRpbWUoKSkgJiYgZC50b0lTT1N0cmluZygpID09PSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGlzbyBzdHJpbmcgdG8gRGF0ZVxuICAgKiBAcGFyYW0gaXNvU3RyaW5nIHRoZSBpc28gc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzb1N0cmluZ1RvRGF0ZShpc29TdHJpbmc6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlzb1N0cmluZyA/IG5ldyBEYXRlKERhdGUucGFyc2UoaXNvU3RyaW5nKSkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aW1lIGZyb20gYW4gaXNvIGRhdGUgc3RyaW5nXG4gICAqIEBwYXJhbSBpc29TdHJpbmcgdGhlIGlzbyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNvU3RyaW5nUmVtb3ZlVGltZShpc29TdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGUgPSBJdERhdGVVdGlscy5pc29TdHJpbmdUb0RhdGUoaXNvU3RyaW5nKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBpc29TdHJpbmc7XG4gICAgfVxuICAgIGNvbnN0IG9mZnNldCA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBvZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIGlzb1N0cmluZy5pbmRleE9mKCdUJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpc28gc3RyaW5nIGhvdXJzIHRvIDAgYW5kIGZvcm1hdCBjb3JyZWN0bHkgdGhlIGRhdGUgKGNvbnNpZGVyIHRpbWV6b25lIG9mZnNldClcbiAgICogQGV4YW1wbGUgJzIwMjQtMDMtMDRUMjM6MDA6MDAuMDAwWicgLT4gJzIwMjQtMDMtMDVUMDA6MDA6MDAuMDAwWidcbiAgICogQHBhcmFtIGlzb1N0cmluZyB0aGUgaXNvIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc29TdHJpbmdTZXRaZXJvVGltZShpc29TdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGUgPSBJdERhdGVVdGlscy5pc29TdHJpbmdUb0RhdGUoaXNvU3RyaW5nKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBpc29TdHJpbmc7XG4gICAgfVxuICAgIGNvbnN0IG9mZnNldCA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBvZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgIGRhdGUuc2V0VVRDSG91cnMoMCwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIGRhdGUgdGltZSBsZWZ0IGFuZCByZXR1cm4gdGhlIHN0cmluZyBmb3JtYXQgW2QgaCBtIHNdXG4gICAqIEBwYXJhbSBlbmREYXRlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRpbWVMZWZ0U3RyaW5nKGVuZERhdGU6IERhdGUpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IGVuZFRpbWUgPSBlbmREYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gdGltZXIoMCwgMTAwMCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiBNYXRoLmZsb29yKChlbmRUaW1lIC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gMTAwMCkpLFxuICAgICAgdGFrZVdoaWxlKGRlbHRhID0+IGRlbHRhID49IDApLFxuICAgICAgbWFwKGRlbHRhID0+IHtcbiAgICAgICAgY29uc3QgYXJyYXlSZXN1bHQ6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoZGVsdGEgLyA2MCAvIDYwIC8gMjQpO1xuICAgICAgICBpZiAoZGF5cyA+IDApIHtcbiAgICAgICAgICBhcnJheVJlc3VsdC5wdXNoKGRheXMgKyAnZCcpO1xuICAgICAgICB9XG4gICAgICAgIGRlbHRhIC09IGRheXMgKiA2MCAqIDYwICogMjQ7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihkZWx0YSAvIDYwIC8gNjApICUgMjQ7XG4gICAgICAgIGlmIChob3VycyA+IDApIHtcbiAgICAgICAgICBhcnJheVJlc3VsdC5wdXNoKGhvdXJzICsgJ2gnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbHRhIC09IGhvdXJzICogNjAgKiA2MDtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoZGVsdGEgLyA2MCkgJSA2MDtcbiAgICAgICAgYXJyYXlSZXN1bHQucHVzaChtaW51dGVzICsgJ20nKTtcblxuICAgICAgICBkZWx0YSAtPSBtaW51dGVzICogNjA7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkZWx0YSAlIDYwO1xuICAgICAgICBhcnJheVJlc3VsdC5wdXNoKHNlY29uZHMgKyAncycpO1xuXG4gICAgICAgIHJldHVybiBhcnJheVJlc3VsdC5qb2luKCcgJyk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIG5leHQgZGF5IG9mIHdlZWtcbiAgICogQHBhcmFtIGRheU9mV2VlayBEYXkgb2Ygd2VlayAwPVN1bmRheSwgMT1Nb25kYXkuLi40PVRodXJzZGF5Li4uXG4gICAqIEBwYXJhbSBob3VyIHRoZSBzcGVjaWYgaG91clxuICAgKiBAcGFyYW0gbWludXRlIHRoZSBzcGVjaWZpYyBtaW51dGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbmV4dFdlZWtEYXlBbmRUaW1lKGRheU9mV2VlazogbnVtYmVyLCBob3VyID0gMCwgbWludXRlID0gMCk6IERhdGUge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUobm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCBub3cuZ2V0RGF0ZSgpICsgKCg3ICsgZGF5T2ZXZWVrIC0gbm93LmdldERheSgpKSAlIDcpLCBob3VyLCBtaW51dGUsIDAsIDApO1xuXG4gICAgaWYgKHJlc3VsdCA8IG5vdykge1xuICAgICAgcmVzdWx0LnNldERhdGUocmVzdWx0LmdldERhdGUoKSArIDcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { Observable } from 'rxjs';
2
+ export class ItFileUtils {
3
+ /**
4
+ * Return the file size string
5
+ * @param file the file
6
+ * @param decimals decimal to show
7
+ */
8
+ static getFileSizeString(file, decimals = 2) {
9
+ const bytes = file.size;
10
+ if (!+bytes) {
11
+ return '0 Bytes';
12
+ }
13
+ const k = 1024;
14
+ const dm = decimals < 0 ? 0 : decimals;
15
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
16
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
17
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
18
+ }
19
+ /**
20
+ * Convert a file to base64 string
21
+ * @param file the base64 string
22
+ */
23
+ static fileToBase64(file) {
24
+ const reader = new FileReader();
25
+ reader.readAsDataURL(file);
26
+ return new Observable(observer => {
27
+ reader.onload = e => {
28
+ const target = e.target;
29
+ if (!target?.result || target.result instanceof ArrayBuffer) {
30
+ return observer.error('Error on parse');
31
+ }
32
+ observer.next(target.result);
33
+ observer.complete();
34
+ };
35
+ reader.onerror = error => {
36
+ observer.error(error);
37
+ };
38
+ });
39
+ }
40
+ /**
41
+ * Convert base64 to Blob
42
+ * @param base64 the base64 string
43
+ * @param mimeType the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME type</a> (example 'application/pdf')
44
+ */
45
+ static base64ToBlob(base64, mimeType) {
46
+ const byteString = window.atob(base64);
47
+ const arrayBuffer = new ArrayBuffer(byteString.length);
48
+ const int8Array = new Uint8Array(arrayBuffer);
49
+ for (let i = 0; i < byteString.length; i++) {
50
+ int8Array[i] = byteString.charCodeAt(i);
51
+ }
52
+ return new Blob([int8Array], { type: mimeType });
53
+ }
54
+ /**
55
+ * Convert base64 to File
56
+ * @param base64 the base64 string
57
+ * @param mimeType the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME type</a> (example 'application/pdf')
58
+ * @param filename the file name
59
+ */
60
+ static base64ToFile(base64, mimeType, filename) {
61
+ const fileBlob = ItFileUtils.base64ToBlob(base64, mimeType);
62
+ return new File([fileBlob], filename, { type: mimeType });
63
+ }
64
+ /**
65
+ * Extract the MIME type from base64 string
66
+ * @param base64 the base64 string
67
+ */
68
+ static getMimeTypeFromBase64(base64) {
69
+ const mime = base64.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);
70
+ return mime?.length ? mime[1] : undefined;
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2ZpbGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1osT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFVO1FBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixPQUFPLElBQUksVUFBVSxDQUFTLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLFlBQVksV0FBVyxFQUFFLENBQUM7b0JBQzVELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxRQUFnQjtRQUMzRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFjO1FBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIEl0RmlsZVV0aWxzIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZmlsZSBzaXplIHN0cmluZ1xuICAgKiBAcGFyYW0gZmlsZSB0aGUgZmlsZVxuICAgKiBAcGFyYW0gZGVjaW1hbHMgZGVjaW1hbCB0byBzaG93XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEZpbGVTaXplU3RyaW5nKGZpbGU6IEZpbGUsIGRlY2ltYWxzID0gMik6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBmaWxlLnNpemU7XG4gICAgaWYgKCErYnl0ZXMpIHtcbiAgICAgIHJldHVybiAnMCBCeXRlcyc7XG4gICAgfVxuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHM7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG5cbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgcmV0dXJuIGAke3BhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKX0gJHtzaXplc1tpXX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBmaWxlIHRvIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIGZpbGUgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmlsZVRvQmFzZTY0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPihvYnNlcnZlciA9PiB7XG4gICAgICByZWFkZXIub25sb2FkID0gZSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICBpZiAoIXRhcmdldD8ucmVzdWx0IHx8IHRhcmdldC5yZXN1bHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgICAgIHJldHVybiBvYnNlcnZlci5lcnJvcignRXJyb3Igb24gcGFyc2UnKTtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlci5uZXh0KHRhcmdldC5yZXN1bHQpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4ge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYmFzZTY0IHRvIEJsb2JcbiAgICogQHBhcmFtIGJhc2U2NCB0aGUgYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gbWltZVR5cGUgdGhlIDxhIGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXCI+TUlNRSB0eXBlPC9hPiAoZXhhbXBsZSAnYXBwbGljYXRpb24vcGRmJylcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzZTY0VG9CbG9iKGJhc2U2NDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogQmxvYiB7XG4gICAgY29uc3QgYnl0ZVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XG4gICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZVN0cmluZy5sZW5ndGgpO1xuICAgIGNvbnN0IGludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgIGludDhBcnJheVtpXSA9IGJ5dGVTdHJpbmcuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBCbG9iKFtpbnQ4QXJyYXldLCB7IHR5cGU6IG1pbWVUeXBlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYmFzZTY0IHRvIEZpbGVcbiAgICogQHBhcmFtIGJhc2U2NCB0aGUgYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gbWltZVR5cGUgdGhlIDxhIGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXCI+TUlNRSB0eXBlPC9hPiAoZXhhbXBsZSAnYXBwbGljYXRpb24vcGRmJylcbiAgICogQHBhcmFtIGZpbGVuYW1lIHRoZSBmaWxlIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzZTY0VG9GaWxlKGJhc2U2NDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogRmlsZSB7XG4gICAgY29uc3QgZmlsZUJsb2IgPSBJdEZpbGVVdGlscy5iYXNlNjRUb0Jsb2IoYmFzZTY0LCBtaW1lVHlwZSk7XG4gICAgcmV0dXJuIG5ldyBGaWxlKFtmaWxlQmxvYl0sIGZpbGVuYW1lLCB7IHR5cGU6IG1pbWVUeXBlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIE1JTUUgdHlwZSBmcm9tIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIGJhc2U2NCB0aGUgYmFzZTY0IHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRNaW1lVHlwZUZyb21CYXNlNjQoYmFzZTY0OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1pbWUgPSBiYXNlNjQubWF0Y2goL2RhdGE6KFthLXpBLVowLTldK1xcL1thLXpBLVowLTktLitdKykuKiwuKi8pO1xuICAgIHJldHVybiBtaW1lPy5sZW5ndGggPyBtaW1lWzFdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ /**
2
+ * General Email Regex (RFC 5322 Official Standard)
3
+ * http://emailregex.com/
4
+ */
5
+ export const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
6
+ /**
7
+ * Phone number Regex
8
+ */
9
+ export const PHONE_NUMBER_REGEX = /^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{3})(?: *x(\d+))?\s*$/;
10
+ /**
11
+ * URL Regex
12
+ */
13
+ export const URL_REGEX = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/;
14
+ /**
15
+ * The italian tax code Regex (Codice Fiscale)
16
+ */
17
+ export const ITALIAN_TAX_CODE_REGEX = /^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/i;
18
+ /**
19
+ * The VAT number Regex (Partita iva)
20
+ */
21
+ export const VAT_NUMBER_REGEX = /^[0-9]{11}$/;
22
+ /**
23
+ * Italian CAP Regex
24
+ */
25
+ export const CAP_REGEX = /^[0-9]{5}$/;
26
+ /**
27
+ * Italian Plate Regex
28
+ */
29
+ export const PLATE_REGEX = /^[A-Za-z]{2}\d{3}[A-Za-z]{2}$/i;
30
+ /**
31
+ * IBAN Regex
32
+ * https://blog.marketto.it/en/2018/06/validate-any-country-iban/
33
+ */
34
+ export const IBAN_REGEX = /^(?:(?:IT|SM)\d{2}[A-Z]\d{22}|CY\d{2}[A-Z]\d{23}|NL\d{2}[A-Z]{4}\d{10}|LV\d{2}[A-Z]{4}\d{13}|(?:BG|BH|GB|IE)\d{2}[A-Z]{4}\d{14}|GI\d{2}[A-Z]{4}\d{15}|RO\d{2}[A-Z]{4}\d{16}|KW\d{2}[A-Z]{4}\d{22}|MT\d{2}[A-Z]{4}\d{23}|NO\d{13}|(?:DK|FI|GL|FO)\d{16}|MK\d{17}|(?:AT|EE|KZ|LU|XK)\d{18}|(?:BA|HR|LI|CH|CR)\d{19}|(?:GE|DE|LT|ME|RS)\d{20}|IL\d{21}|(?:AD|CZ|ES|MD|SA)\d{22}|PT\d{23}|(?:BE|IS)\d{24}|(?:FR|MR|MC)\d{25}|(?:AL|DO|LB|PL)\d{26}|(?:AZ|HU)\d{27}|(?:GR|MU)\d{28})$/i;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi91dGlscy9yZWdleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQ3RCLDRhQUE0YSxDQUFDO0FBRS9hOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsaUZBQWlGLENBQUM7QUFFcEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQ3BCLG1OQUFtTixDQUFDO0FBRXROOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcseUVBQXlFLENBQUM7QUFFaEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGdDQUFnQyxDQUFDO0FBRTVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FDckIsbWRBQW1kLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYWwgRW1haWwgUmVnZXggKFJGQyA1MzIyIE9mZmljaWFsIFN0YW5kYXJkKVxuICogaHR0cDovL2VtYWlscmVnZXguY29tL1xuICovXG5leHBvcnQgY29uc3QgRU1BSUxfUkVHRVggPVxuICAvKD86W2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKnxcIig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxXFx4MjMtXFx4NWJcXHg1ZC1cXHg3Zl18XFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKlwiKUAoPzooPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFwuKStbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/fFxcWyg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/fFthLXowLTktXSpbYS16MC05XTooPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMS1cXHg1YVxceDUzLVxceDdmXXxcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBlLVxceDdmXSkrKVxcXSkvO1xuXG4vKipcbiAqIFBob25lIG51bWJlciBSZWdleFxuICovXG5leHBvcnQgY29uc3QgUEhPTkVfTlVNQkVSX1JFR0VYID0gL15cXHMqKD86XFwrPyhcXGR7MSwzfSkpP1stLiAoXSooXFxkezN9KVstLiApXSooXFxkezN9KVstLiBdKihcXGR7M30pKD86ICp4KFxcZCspKT9cXHMqJC87XG5cbi8qKlxuICogVVJMIFJlZ2V4XG4gKi9cbmV4cG9ydCBjb25zdCBVUkxfUkVHRVggPVxuICAvKGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XVthLXpBLVowLTktXStbYS16QS1aMC05XVxcLlteXFxzXXsyLH18d3d3XFwuW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XStcXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldK1xcLlteXFxzXXsyLH0pLztcblxuLyoqXG4gKiBUaGUgaXRhbGlhbiB0YXggY29kZSBSZWdleCAoQ29kaWNlIEZpc2NhbGUpXG4gKi9cbmV4cG9ydCBjb25zdCBJVEFMSUFOX1RBWF9DT0RFX1JFR0VYID0gL15bQS1aYS16XXs2fVswLTldezJ9W0EtWmEtel17MX1bMC05XXsyfVtBLVphLXpdezF9WzAtOV17M31bQS1aYS16XXsxfSQvaTtcblxuLyoqXG4gKiBUaGUgVkFUIG51bWJlciBSZWdleCAoUGFydGl0YSBpdmEpXG4gKi9cbmV4cG9ydCBjb25zdCBWQVRfTlVNQkVSX1JFR0VYID0gL15bMC05XXsxMX0kLztcblxuLyoqXG4gKiBJdGFsaWFuIENBUCBSZWdleFxuICovXG5leHBvcnQgY29uc3QgQ0FQX1JFR0VYID0gL15bMC05XXs1fSQvO1xuXG4vKipcbiAqIEl0YWxpYW4gUGxhdGUgUmVnZXhcbiAqL1xuZXhwb3J0IGNvbnN0IFBMQVRFX1JFR0VYID0gL15bQS1aYS16XXsyfVxcZHszfVtBLVphLXpdezJ9JC9pO1xuXG4vKipcbiAqIElCQU4gUmVnZXhcbiAqIGh0dHBzOi8vYmxvZy5tYXJrZXR0by5pdC9lbi8yMDE4LzA2L3ZhbGlkYXRlLWFueS1jb3VudHJ5LWliYW4vXG4gKi9cbmV4cG9ydCBjb25zdCBJQkFOX1JFR0VYID1cbiAgL14oPzooPzpJVHxTTSlcXGR7Mn1bQS1aXVxcZHsyMn18Q1lcXGR7Mn1bQS1aXVxcZHsyM318TkxcXGR7Mn1bQS1aXXs0fVxcZHsxMH18TFZcXGR7Mn1bQS1aXXs0fVxcZHsxM318KD86Qkd8Qkh8R0J8SUUpXFxkezJ9W0EtWl17NH1cXGR7MTR9fEdJXFxkezJ9W0EtWl17NH1cXGR7MTV9fFJPXFxkezJ9W0EtWl17NH1cXGR7MTZ9fEtXXFxkezJ9W0EtWl17NH1cXGR7MjJ9fE1UXFxkezJ9W0EtWl17NH1cXGR7MjN9fE5PXFxkezEzfXwoPzpES3xGSXxHTHxGTylcXGR7MTZ9fE1LXFxkezE3fXwoPzpBVHxFRXxLWnxMVXxYSylcXGR7MTh9fCg/OkJBfEhSfExJfENIfENSKVxcZHsxOX18KD86R0V8REV8TFR8TUV8UlMpXFxkezIwfXxJTFxcZHsyMX18KD86QUR8Q1p8RVN8TUR8U0EpXFxkezIyfXxQVFxcZHsyM318KD86QkV8SVMpXFxkezI0fXwoPzpGUnxNUnxNQylcXGR7MjV9fCg/OkFMfERPfExCfFBMKVxcZHsyNn18KD86QVp8SFUpXFxkezI3fXwoPzpHUnxNVSlcXGR7Mjh9KSQvaTtcbiJdfQ==