design-angular-kit 1.0.0-16 → 1.0.0-18

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 (218) hide show
  1. package/README.md +31 -6
  2. package/assets/i18n/en.json +4 -1
  3. package/assets/i18n/it.json +4 -1
  4. package/esm2022/lib/abstracts/abstract-form.component.mjs +186 -0
  5. package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
  6. package/esm2022/lib/components/components.module.mjs +188 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +74 -0
  9. package/esm2022/lib/components/core/badge/badge.directive.mjs +38 -0
  10. package/esm2022/lib/components/core/button/button.directive.mjs +85 -0
  11. package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
  12. package/esm2022/lib/components/core/card/card.component.mjs +64 -0
  13. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +89 -0
  14. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  15. package/esm2022/lib/components/core/carousel/carousel.module.mjs +23 -0
  16. package/esm2022/lib/components/core/chip/chip.component.mjs +96 -0
  17. package/esm2022/lib/components/core/collapse/collapse.component.mjs +101 -0
  18. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
  19. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  20. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +59 -0
  21. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
  22. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +143 -0
  23. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
  24. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  25. package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
  26. package/esm2022/lib/components/core/link/link.component.mjs +46 -0
  27. package/esm2022/lib/components/core/list/list/list.component.mjs +17 -0
  28. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +40 -0
  29. package/esm2022/lib/components/core/list/list.module.mjs +23 -0
  30. package/esm2022/lib/components/core/modal/modal.component.mjs +164 -0
  31. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  32. package/esm2022/lib/components/core/pagination/pagination.component.mjs +133 -0
  33. package/esm2022/lib/components/core/popover/popover.directive.mjs +175 -0
  34. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +35 -0
  35. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +27 -0
  36. package/esm2022/lib/components/core/spinner/spinner.component.mjs +36 -0
  37. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +138 -0
  38. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
  39. package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
  40. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -0
  41. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
  42. package/esm2022/lib/components/core/tab/tab.module.mjs +23 -0
  43. package/esm2022/lib/components/core/table/table.component.mjs +57 -0
  44. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +142 -0
  45. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +49 -0
  46. package/esm2022/lib/components/form/form.module.mjs +55 -0
  47. package/esm2022/lib/components/form/input/input.component.mjs +239 -0
  48. package/esm2022/lib/components/form/password-input/password-input.component.mjs +155 -0
  49. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +69 -0
  50. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  51. package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
  52. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  53. package/esm2022/lib/components/form/textarea/textarea.component.mjs +47 -0
  54. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
  55. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +112 -0
  56. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +71 -0
  57. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +64 -0
  58. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +57 -0
  59. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
  60. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  61. package/esm2022/lib/components/navigation/header/header.component.mjs +58 -0
  62. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +81 -0
  63. package/esm2022/lib/components/utils/icon/icon.component.mjs +55 -0
  64. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +41 -0
  65. package/esm2022/lib/design-angular-kit.module.mjs +68 -0
  66. package/{esm2020 → esm2022}/lib/interfaces/form.mjs +1 -1
  67. package/esm2022/lib/interfaces/icon.mjs +165 -0
  68. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
  69. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  70. package/esm2022/lib/utils/file-utils.mjs +73 -0
  71. package/esm2022/lib/utils/regex.mjs +31 -0
  72. package/esm2022/lib/validators/it-validators.mjs +153 -0
  73. package/esm2022/public_api.mjs +85 -0
  74. package/fesm2022/design-angular-kit.mjs +4615 -0
  75. package/fesm2022/design-angular-kit.mjs.map +1 -0
  76. package/lib/abstracts/abstract-form.component.d.ts +4 -4
  77. package/lib/abstracts/abstract.component.d.ts +3 -3
  78. package/lib/components/components.module.d.ts +32 -52
  79. package/lib/components/core/accordion/accordion.component.d.ts +6 -5
  80. package/lib/components/core/alert/alert.component.d.ts +5 -5
  81. package/lib/components/core/badge/badge.directive.d.ts +5 -5
  82. package/lib/components/core/button/button.directive.d.ts +11 -11
  83. package/lib/components/core/callout/callout.component.d.ts +7 -7
  84. package/lib/components/core/card/card.component.d.ts +8 -8
  85. package/lib/components/core/carousel/carousel/carousel.component.d.ts +10 -10
  86. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +4 -4
  87. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  88. package/lib/components/core/chip/chip.component.d.ts +6 -3
  89. package/lib/components/core/collapse/collapse.component.d.ts +8 -8
  90. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  91. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  92. package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
  93. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  94. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +14 -9
  95. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -8
  96. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  97. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  98. package/lib/components/core/link/link.component.d.ts +9 -8
  99. package/lib/components/core/list/list/list.component.d.ts +4 -4
  100. package/lib/components/core/list/list-item/list-item.component.d.ts +9 -9
  101. package/lib/components/core/list/list.module.d.ts +8 -0
  102. package/lib/components/core/modal/modal.component.d.ts +11 -11
  103. package/lib/components/core/notifications/notifications.component.d.ts +6 -6
  104. package/lib/components/core/pagination/pagination.component.d.ts +8 -8
  105. package/lib/components/core/popover/popover.directive.d.ts +3 -3
  106. package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
  107. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
  108. package/lib/components/core/spinner/spinner.component.d.ts +5 -5
  109. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +37 -13
  110. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +5 -5
  111. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  112. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +9 -9
  113. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +8 -8
  114. package/lib/components/core/tab/tab.module.d.ts +8 -0
  115. package/lib/components/core/table/table.component.d.ts +12 -12
  116. package/lib/components/core/tooltip/tooltip.directive.d.ts +3 -3
  117. package/lib/components/form/checkbox/checkbox.component.d.ts +12 -10
  118. package/lib/components/form/form.module.d.ts +16 -0
  119. package/lib/components/form/input/input.component.d.ts +18 -13
  120. package/lib/components/form/password-input/password-input.component.d.ts +11 -6
  121. package/lib/components/form/radio-button/radio-button.component.d.ts +6 -6
  122. package/lib/components/form/range/range.component.d.ts +42 -0
  123. package/lib/components/form/rating/rating.component.d.ts +24 -0
  124. package/lib/components/form/select/select.component.d.ts +11 -6
  125. package/lib/components/form/textarea/textarea.component.d.ts +5 -5
  126. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +4 -4
  127. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +6 -6
  128. package/lib/components/navigation/back-button/back-button.component.d.ts +3 -3
  129. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +7 -7
  130. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -6
  131. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
  132. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  133. package/lib/components/navigation/header/header.component.d.ts +6 -6
  134. package/lib/components/utils/error-page/error-page.component.d.ts +6 -6
  135. package/lib/components/utils/icon/icon.component.d.ts +7 -7
  136. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +4 -4
  137. package/lib/design-angular-kit.module.d.ts +3 -4
  138. package/lib/interfaces/core.d.ts +16 -16
  139. package/lib/interfaces/form.d.ts +3 -3
  140. package/lib/interfaces/icon.d.ts +4 -4
  141. package/lib/pipes/mark-matching-text.pipe.d.ts +4 -4
  142. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +3 -3
  143. package/lib/utils/boolean-input.d.ts +1 -1
  144. package/lib/utils/regex.d.ts +5 -0
  145. package/lib/validators/it-validators.d.ts +4 -0
  146. package/package.json +13 -19
  147. package/public_api.d.ts +13 -4
  148. package/esm2020/lib/abstracts/abstract-form.component.mjs +0 -188
  149. package/esm2020/lib/abstracts/abstract.component.mjs +0 -45
  150. package/esm2020/lib/components/components.module.mjs +0 -256
  151. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -35
  152. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -73
  153. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -37
  154. package/esm2020/lib/components/core/button/button.directive.mjs +0 -84
  155. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -57
  156. package/esm2020/lib/components/core/card/card.component.mjs +0 -64
  157. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -89
  158. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -19
  159. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  160. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -101
  161. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  162. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  163. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  164. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -130
  165. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -68
  166. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -52
  167. package/esm2020/lib/components/core/link/link.component.mjs +0 -40
  168. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -17
  169. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -41
  170. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -163
  171. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -110
  172. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -131
  173. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -174
  174. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  175. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  176. package/esm2020/lib/components/core/rating/rating.component.mjs +0 -49
  177. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  178. package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +0 -127
  179. package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +0 -19
  180. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -59
  181. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  182. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  183. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -141
  184. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  185. package/esm2020/lib/components/form/input/input.component.mjs +0 -232
  186. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -152
  187. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -68
  188. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  189. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  190. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -139
  191. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -104
  192. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  193. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -64
  194. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -56
  195. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  196. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -57
  197. package/esm2020/lib/components/utils/error-page/error-page.component.mjs +0 -79
  198. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -55
  199. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +0 -39
  200. package/esm2020/lib/design-angular-kit.module.mjs +0 -68
  201. package/esm2020/lib/interfaces/icon.mjs +0 -162
  202. package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +0 -36
  203. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -120
  204. package/esm2020/lib/utils/file-utils.mjs +0 -73
  205. package/esm2020/lib/utils/regex.mjs +0 -26
  206. package/esm2020/lib/validators/it-validators.mjs +0 -147
  207. package/esm2020/public_api.mjs +0 -74
  208. package/fesm2015/design-angular-kit.mjs +0 -4422
  209. package/fesm2015/design-angular-kit.mjs.map +0 -1
  210. package/fesm2020/design-angular-kit.mjs +0 -4354
  211. package/fesm2020/design-angular-kit.mjs.map +0 -1
  212. package/lib/components/core/rating/rating.component.d.ts +0 -24
  213. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/design-angular-kit-config.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/interfaces/core.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/interfaces/design-angular-kit-init.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/interfaces/utils.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
@@ -1,162 +0,0 @@
1
- export const IconNameArray = [
2
- 'arrow-down',
3
- 'arrow-down-circle',
4
- 'arrow-down-triangle',
5
- 'arrow-left',
6
- 'arrow-left-circle',
7
- 'arrow-left-triangle',
8
- 'arrow-right',
9
- 'arrow-right-circle',
10
- 'arrow-right-triangle',
11
- 'arrow-up',
12
- 'arrow-up-circle',
13
- 'arrow-up-triangle',
14
- 'ban',
15
- 'bookmark',
16
- 'box',
17
- 'burger',
18
- 'calendar',
19
- 'camera',
20
- 'card',
21
- 'chart-line',
22
- 'check',
23
- 'check-circle',
24
- 'chevron-left',
25
- 'chevron-right',
26
- 'clip',
27
- 'clock',
28
- 'close',
29
- 'close-big',
30
- 'close-circle',
31
- 'comment',
32
- 'copy',
33
- 'delete',
34
- 'download',
35
- 'error',
36
- 'exchange-circle',
37
- 'expand',
38
- 'external-link',
39
- 'flag',
40
- 'folder',
41
- 'fullscreen',
42
- 'funnel',
43
- 'hearing',
44
- 'help',
45
- 'help-circle',
46
- 'horn',
47
- 'inbox',
48
- 'info-circle',
49
- 'key',
50
- 'link',
51
- 'list',
52
- 'locked',
53
- 'logout',
54
- 'mail',
55
- 'mail-open',
56
- 'map-marker',
57
- 'map-marker-circle',
58
- 'map-marker-minus',
59
- 'map-marker-plus',
60
- 'maximize',
61
- 'maximize-alt',
62
- 'minimize',
63
- 'minus',
64
- 'minus-circle',
65
- 'more-actions',
66
- 'more-items',
67
- 'note',
68
- 'pa',
69
- 'password-invisible',
70
- 'password-visible',
71
- 'pencil',
72
- 'piattaforme',
73
- 'pin',
74
- 'plug',
75
- 'plus',
76
- 'plus-circle',
77
- 'presentation',
78
- 'print',
79
- 'refresh',
80
- 'restore',
81
- 'rss',
82
- 'rss-square',
83
- 'search',
84
- 'settings',
85
- 'share',
86
- 'software',
87
- 'star-full',
88
- 'star-outline',
89
- 'telephone',
90
- 'tool',
91
- 'unlocked',
92
- 'upload',
93
- 'user',
94
- 'video',
95
- 'warning',
96
- 'warning-circle',
97
- 'wifi',
98
- 'zoom-in',
99
- 'zoom-out',
100
- // Files
101
- 'file',
102
- 'files',
103
- 'file-audio',
104
- 'file-compressed',
105
- 'file-csv',
106
- 'file-json',
107
- 'file-odp',
108
- 'file-ods',
109
- 'file-odt',
110
- 'file-pdf',
111
- 'file-pdf-ext',
112
- 'file-sheet',
113
- 'file-slides',
114
- 'file-txt',
115
- 'file-video',
116
- 'file-xml',
117
- // Platforms
118
- 'behance',
119
- 'facebook',
120
- 'facebook-square',
121
- 'figma',
122
- 'figma-square',
123
- 'flickr',
124
- 'flickr-square',
125
- 'github',
126
- 'instagram',
127
- 'linkedin',
128
- 'linkedin-square',
129
- 'mastodon',
130
- 'mastodon-square',
131
- 'medium',
132
- 'medium-square',
133
- 'pinterest',
134
- 'pinterest-square',
135
- 'quora',
136
- 'quora-square',
137
- 'reddit',
138
- 'reddit-square',
139
- 'slack',
140
- 'slack-square',
141
- 'snapchat',
142
- 'snapchat-square',
143
- 'stackexchange',
144
- 'stackexchange-square',
145
- 'stackoverflow',
146
- 'stackoverflow-square',
147
- 'telegram',
148
- 'tiktok',
149
- 'tiktok-square',
150
- 'twitter',
151
- 'twitter-square',
152
- 'vimeo',
153
- 'vimeo-square',
154
- 'whatsapp',
155
- 'whatsapp-square',
156
- 'youtube',
157
- 'google',
158
- // Extra
159
- 'designers-italia',
160
- 'team-digitale'
161
- ];
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2ludGVyZmFjZXMvaWNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsS0FBSztJQUNMLFVBQVU7SUFDVixLQUFLO0lBQ0wsUUFBUTtJQUNSLFVBQVU7SUFDVixRQUFRO0lBQ1IsTUFBTTtJQUNOLFlBQVk7SUFDWixPQUFPO0lBQ1AsY0FBYztJQUNkLGNBQWM7SUFDZCxlQUFlO0lBQ2YsTUFBTTtJQUNOLE9BQU87SUFDUCxPQUFPO0lBQ1AsV0FBVztJQUNYLGNBQWM7SUFDZCxTQUFTO0lBQ1QsTUFBTTtJQUNOLFFBQVE7SUFDUixVQUFVO0lBQ1YsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsZUFBZTtJQUNmLE1BQU07SUFDTixRQUFRO0lBQ1IsWUFBWTtJQUNaLFFBQVE7SUFDUixTQUFTO0lBQ1QsTUFBTTtJQUNOLGFBQWE7SUFDYixNQUFNO0lBQ04sT0FBTztJQUNQLGFBQWE7SUFDYixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsUUFBUTtJQUNSLE1BQU07SUFDTixXQUFXO0lBQ1gsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixjQUFjO0lBQ2QsVUFBVTtJQUNWLE9BQU87SUFDUCxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixNQUFNO0lBQ04sSUFBSTtJQUNKLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLGFBQWE7SUFDYixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixhQUFhO0lBQ2IsY0FBYztJQUNkLE9BQU87SUFDUCxTQUFTO0lBQ1QsU0FBUztJQUNULEtBQUs7SUFDTCxZQUFZO0lBQ1osUUFBUTtJQUNSLFVBQVU7SUFDVixPQUFPO0lBQ1AsVUFBVTtJQUNWLFdBQVc7SUFDWCxjQUFjO0lBQ2QsV0FBVztJQUNYLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsU0FBUztJQUNULGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sU0FBUztJQUNULFVBQVU7SUFFVixRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixXQUFXO0lBQ1gsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLGNBQWM7SUFDZCxZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7SUFDVixZQUFZO0lBQ1osVUFBVTtJQUVWLFlBQVk7SUFDWixTQUFTO0lBQ1QsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1AsY0FBYztJQUNkLFFBQVE7SUFDUixlQUFlO0lBQ2YsUUFBUTtJQUNSLFdBQVc7SUFDWCxVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsUUFBUTtJQUNSLGVBQWU7SUFDZixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLGVBQWU7SUFDZixPQUFPO0lBQ1AsY0FBYztJQUNkLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLFVBQVU7SUFDVixRQUFRO0lBQ1IsZUFBZTtJQUNmLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLGNBQWM7SUFDZCxVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLFNBQVM7SUFDVCxRQUFRO0lBRVIsUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixlQUFlO0NBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEljb25TaXplID0gJ3hzJyB8ICdzbScgfCAnbGcnIHwgJ3hsJztcblxuZXhwb3J0IHR5cGUgSWNvbkNvbG9yID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdsaWdodCcgfCAnd2hpdGUnO1xuXG5leHBvcnQgdHlwZSBJY29uTmFtZSA9IHR5cGVvZiBJY29uTmFtZUFycmF5W251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBJY29uTmFtZUFycmF5ID0gW1xuICAnYXJyb3ctZG93bicsXG4gICdhcnJvdy1kb3duLWNpcmNsZScsXG4gICdhcnJvdy1kb3duLXRyaWFuZ2xlJyxcbiAgJ2Fycm93LWxlZnQnLFxuICAnYXJyb3ctbGVmdC1jaXJjbGUnLFxuICAnYXJyb3ctbGVmdC10cmlhbmdsZScsXG4gICdhcnJvdy1yaWdodCcsXG4gICdhcnJvdy1yaWdodC1jaXJjbGUnLFxuICAnYXJyb3ctcmlnaHQtdHJpYW5nbGUnLFxuICAnYXJyb3ctdXAnLFxuICAnYXJyb3ctdXAtY2lyY2xlJyxcbiAgJ2Fycm93LXVwLXRyaWFuZ2xlJyxcbiAgJ2JhbicsXG4gICdib29rbWFyaycsXG4gICdib3gnLFxuICAnYnVyZ2VyJyxcbiAgJ2NhbGVuZGFyJyxcbiAgJ2NhbWVyYScsXG4gICdjYXJkJyxcbiAgJ2NoYXJ0LWxpbmUnLFxuICAnY2hlY2snLFxuICAnY2hlY2stY2lyY2xlJyxcbiAgJ2NoZXZyb24tbGVmdCcsXG4gICdjaGV2cm9uLXJpZ2h0JyxcbiAgJ2NsaXAnLFxuICAnY2xvY2snLFxuICAnY2xvc2UnLFxuICAnY2xvc2UtYmlnJyxcbiAgJ2Nsb3NlLWNpcmNsZScsXG4gICdjb21tZW50JyxcbiAgJ2NvcHknLFxuICAnZGVsZXRlJyxcbiAgJ2Rvd25sb2FkJyxcbiAgJ2Vycm9yJyxcbiAgJ2V4Y2hhbmdlLWNpcmNsZScsXG4gICdleHBhbmQnLFxuICAnZXh0ZXJuYWwtbGluaycsXG4gICdmbGFnJyxcbiAgJ2ZvbGRlcicsXG4gICdmdWxsc2NyZWVuJyxcbiAgJ2Z1bm5lbCcsXG4gICdoZWFyaW5nJyxcbiAgJ2hlbHAnLFxuICAnaGVscC1jaXJjbGUnLFxuICAnaG9ybicsXG4gICdpbmJveCcsXG4gICdpbmZvLWNpcmNsZScsXG4gICdrZXknLFxuICAnbGluaycsXG4gICdsaXN0JyxcbiAgJ2xvY2tlZCcsXG4gICdsb2dvdXQnLFxuICAnbWFpbCcsXG4gICdtYWlsLW9wZW4nLFxuICAnbWFwLW1hcmtlcicsXG4gICdtYXAtbWFya2VyLWNpcmNsZScsXG4gICdtYXAtbWFya2VyLW1pbnVzJyxcbiAgJ21hcC1tYXJrZXItcGx1cycsXG4gICdtYXhpbWl6ZScsXG4gICdtYXhpbWl6ZS1hbHQnLFxuICAnbWluaW1pemUnLFxuICAnbWludXMnLFxuICAnbWludXMtY2lyY2xlJyxcbiAgJ21vcmUtYWN0aW9ucycsXG4gICdtb3JlLWl0ZW1zJyxcbiAgJ25vdGUnLFxuICAncGEnLFxuICAncGFzc3dvcmQtaW52aXNpYmxlJyxcbiAgJ3Bhc3N3b3JkLXZpc2libGUnLFxuICAncGVuY2lsJyxcbiAgJ3BpYXR0YWZvcm1lJyxcbiAgJ3BpbicsXG4gICdwbHVnJyxcbiAgJ3BsdXMnLFxuICAncGx1cy1jaXJjbGUnLFxuICAncHJlc2VudGF0aW9uJyxcbiAgJ3ByaW50JyxcbiAgJ3JlZnJlc2gnLFxuICAncmVzdG9yZScsXG4gICdyc3MnLFxuICAncnNzLXNxdWFyZScsXG4gICdzZWFyY2gnLFxuICAnc2V0dGluZ3MnLFxuICAnc2hhcmUnLFxuICAnc29mdHdhcmUnLFxuICAnc3Rhci1mdWxsJyxcbiAgJ3N0YXItb3V0bGluZScsXG4gICd0ZWxlcGhvbmUnLFxuICAndG9vbCcsXG4gICd1bmxvY2tlZCcsXG4gICd1cGxvYWQnLFxuICAndXNlcicsXG4gICd2aWRlbycsXG4gICd3YXJuaW5nJyxcbiAgJ3dhcm5pbmctY2lyY2xlJyxcbiAgJ3dpZmknLFxuICAnem9vbS1pbicsXG4gICd6b29tLW91dCcsXG5cbiAgLy8gRmlsZXNcbiAgJ2ZpbGUnLFxuICAnZmlsZXMnLFxuICAnZmlsZS1hdWRpbycsXG4gICdmaWxlLWNvbXByZXNzZWQnLFxuICAnZmlsZS1jc3YnLFxuICAnZmlsZS1qc29uJyxcbiAgJ2ZpbGUtb2RwJyxcbiAgJ2ZpbGUtb2RzJyxcbiAgJ2ZpbGUtb2R0JyxcbiAgJ2ZpbGUtcGRmJyxcbiAgJ2ZpbGUtcGRmLWV4dCcsXG4gICdmaWxlLXNoZWV0JyxcbiAgJ2ZpbGUtc2xpZGVzJyxcbiAgJ2ZpbGUtdHh0JyxcbiAgJ2ZpbGUtdmlkZW8nLFxuICAnZmlsZS14bWwnLFxuXG4gIC8vIFBsYXRmb3Jtc1xuICAnYmVoYW5jZScsXG4gICdmYWNlYm9vaycsXG4gICdmYWNlYm9vay1zcXVhcmUnLFxuICAnZmlnbWEnLFxuICAnZmlnbWEtc3F1YXJlJyxcbiAgJ2ZsaWNrcicsXG4gICdmbGlja3Itc3F1YXJlJyxcbiAgJ2dpdGh1YicsXG4gICdpbnN0YWdyYW0nLFxuICAnbGlua2VkaW4nLFxuICAnbGlua2VkaW4tc3F1YXJlJyxcbiAgJ21hc3RvZG9uJyxcbiAgJ21hc3RvZG9uLXNxdWFyZScsXG4gICdtZWRpdW0nLFxuICAnbWVkaXVtLXNxdWFyZScsXG4gICdwaW50ZXJlc3QnLFxuICAncGludGVyZXN0LXNxdWFyZScsXG4gICdxdW9yYScsXG4gICdxdW9yYS1zcXVhcmUnLFxuICAncmVkZGl0JyxcbiAgJ3JlZGRpdC1zcXVhcmUnLFxuICAnc2xhY2snLFxuICAnc2xhY2stc3F1YXJlJyxcbiAgJ3NuYXBjaGF0JyxcbiAgJ3NuYXBjaGF0LXNxdWFyZScsXG4gICdzdGFja2V4Y2hhbmdlJyxcbiAgJ3N0YWNrZXhjaGFuZ2Utc3F1YXJlJyxcbiAgJ3N0YWNrb3ZlcmZsb3cnLFxuICAnc3RhY2tvdmVyZmxvdy1zcXVhcmUnLFxuICAndGVsZWdyYW0nLFxuICAndGlrdG9rJyxcbiAgJ3Rpa3Rvay1zcXVhcmUnLFxuICAndHdpdHRlcicsXG4gICd0d2l0dGVyLXNxdWFyZScsXG4gICd2aW1lbycsXG4gICd2aW1lby1zcXVhcmUnLFxuICAnd2hhdHNhcHAnLFxuICAnd2hhdHNhcHAtc3F1YXJlJyxcbiAgJ3lvdXR1YmUnLFxuICAnZ29vZ2xlJyxcblxuICAvLyBFeHRyYVxuICAnZGVzaWduZXJzLWl0YWxpYScsXG4gICd0ZWFtLWRpZ2l0YWxlJ1xuXSBhcyBjb25zdDtcblxuIl19
@@ -1,36 +0,0 @@
1
- import { Pipe } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/platform-browser";
4
- export class MarkMatchingTextPipe {
5
- constructor(domSanitizer) {
6
- this.domSanitizer = domSanitizer;
7
- }
8
- transform(allString, searchString) {
9
- if (!searchString) {
10
- return allString;
11
- }
12
- else if (!allString) {
13
- return "";
14
- }
15
- // Check if search string is a substring of pivot string (no case-sensitive)
16
- const idxOfMatchString = allString.toLowerCase().indexOf(searchString.toLowerCase());
17
- if (idxOfMatchString !== -1) {
18
- // retrieve the exactly substring
19
- const matchingString = allString.substring(idxOfMatchString, idxOfMatchString + searchString.length);
20
- // Replace original string marking as <strong> (bold) the matchinng substring
21
- const regEx = new RegExp('(' + matchingString + ')', 'gi');
22
- const res = allString.replace(regEx, '<mark>$1</mark>');
23
- return this.domSanitizer.bypassSecurityTrustHtml(res);
24
- }
25
- return allString;
26
- }
27
- }
28
- MarkMatchingTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MarkMatchingTextPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
29
- MarkMatchingTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: MarkMatchingTextPipe, name: "markMatchingText" });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MarkMatchingTextPipe, decorators: [{
31
- type: Pipe,
32
- args: [{
33
- name: 'markMatchingText'
34
- }]
35
- }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1tYXRjaGluZy10ZXh0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9waXBlcy9tYXJrLW1hdGNoaW5nLXRleHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBTXBELE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFBRyxDQUFDO0lBRWxELFNBQVMsQ0FBQyxTQUFpQixFQUFFLFlBQW9CO1FBQzdDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPLFNBQVMsQ0FBQztTQUNwQjthQUFNLElBQUcsQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELDRFQUE0RTtRQUM1RSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckYsSUFBRyxnQkFBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN4QixpQ0FBaUM7WUFDakMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckcsNkVBQTZFO1lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxjQUFjLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQzFELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFFckIsQ0FBQzs7aUhBdEJRLG9CQUFvQjsrR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGtCQUFrQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbWFya01hdGNoaW5nVGV4dCdcbn0pIFxuZXhwb3J0IGNsYXNzIE1hcmtNYXRjaGluZ1RleHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICAgIHRyYW5zZm9ybShhbGxTdHJpbmc6IHN0cmluZywgc2VhcmNoU3RyaW5nOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXNlYXJjaFN0cmluZykgeyBcbiAgICAgICAgICAgIHJldHVybiBhbGxTdHJpbmc7IFxuICAgICAgICB9IGVsc2UgaWYoIWFsbFN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgaWYgc2VhcmNoIHN0cmluZyBpcyBhIHN1YnN0cmluZyBvZiBwaXZvdCBzdHJpbmcgKG5vIGNhc2Utc2Vuc2l0aXZlKVxuICAgICAgICBjb25zdCBpZHhPZk1hdGNoU3RyaW5nID0gYWxsU3RyaW5nLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGlmKGlkeE9mTWF0Y2hTdHJpbmcgIT09IC0xKSB7XG4gICAgICAgICAgICAvLyByZXRyaWV2ZSB0aGUgZXhhY3RseSBzdWJzdHJpbmdcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nU3RyaW5nID0gYWxsU3RyaW5nLnN1YnN0cmluZyhpZHhPZk1hdGNoU3RyaW5nLCBpZHhPZk1hdGNoU3RyaW5nICsgc2VhcmNoU3RyaW5nLmxlbmd0aCk7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIG9yaWdpbmFsIHN0cmluZyBtYXJraW5nIGFzIDxzdHJvbmc+IChib2xkKSB0aGUgbWF0Y2hpbm5nIHN1YnN0cmluZ1xuICAgICAgICAgICAgY29uc3QgcmVnRXggPSBuZXcgUmVnRXhwKCcoJyArIG1hdGNoaW5nU3RyaW5nICsgJyknLCAnZ2knKVxuICAgICAgICAgICAgY29uc3QgcmVzID0gYWxsU3RyaW5nLnJlcGxhY2UocmVnRXgsICc8bWFyaz4kMTwvbWFyaz4nKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChyZXMpO1xuICAgICAgICB9IFxuXG4gICAgICAgIHJldHVybiBhbGxTdHJpbmc7XG4gICAgICAgIFxuICAgIH1cblxuICAgIFxufSJdfQ==
@@ -1,120 +0,0 @@
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 NotificationsService {
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
- }
114
- NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
115
- NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NotificationsService, providedIn: 'root' });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NotificationsService, decorators: [{
117
- type: Injectable,
118
- args: [{ providedIn: 'root' }]
119
- }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQXNDLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzdGLE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7S0FrSC9DO0lBaEhDOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUE2QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxZQUEwQjtRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFvQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDdkgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUMvQixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFdBQW9CLEVBQUUsUUFBaUIsRUFBRSxRQUErQjtRQUN0SCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ25CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO1lBQzlCLE9BQU87WUFDUCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsS0FBYSxFQUFFLE9BQWdCLEVBQUUsV0FBb0IsRUFBRSxRQUFpQixFQUFFLFFBQStCO1FBQ3BILElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDNUIsT0FBTztZQUNQLEtBQUs7WUFDTCxRQUFRO1lBQ1IsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxXQUFvQixFQUFFLFFBQWlCLEVBQUUsUUFBK0I7UUFDdEgsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztZQUM5QixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixXQUFXO1lBQ1gsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksSUFBSSxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFdBQW9CLEVBQUUsUUFBaUIsRUFBRSxRQUErQjtRQUNuSCxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ25CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLE9BQU87WUFDUCxLQUFLO1lBQ0wsUUFBUTtZQUNSLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7aUhBbEhVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTsyRkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25Qb3NpdGlvbiwgTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIHN1YmplY3QgPSBuZXcgU3ViamVjdDxOb3RpZmljYXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBvbiBub3RpZmljYXRpb24gYXJyaXZlZFxuICAgKiBAcGFyYW0gZmlsdGVyVHlwZSBmaWx0ZXIgdHlwZSBvZiBub3RpZmljYXRpb25cbiAgICovXG4gIHB1YmxpYyBvbk5vdGlmaWNhdGlvbihmaWx0ZXJUeXBlPzogTm90aWZpY2F0aW9uVHlwZSk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZmlsdGVyKG4gPT4gbiAmJiAoIWZpbHRlclR5cGUgfHwgKG4udHlwZSA9PT0gZmlsdGVyVHlwZSkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBuZXcgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBub3RpZmljYXRpb24gbm90aWZpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgYWRkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobm90aWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IFN0YW5kYXJkIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gdGl0bGUgbm90aWZpY2F0aW9uIHRpdGxlXG4gICAqIEBwYXJhbSBtZXNzYWdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqIEBwYXJhbSBkaXNtaXNzaWJsZSBub3RpZmljYXRpb24gZGlzbWlzc2libGVcbiAgICogQHBhcmFtIGR1cmF0aW9uIG5vdGlmaWNhdGlvbiBkdXJhdGlvbiAobWlsbGlzZWNvbmRzKVxuICAgKiBAcGFyYW0gcG9zaXRpb24gbm90aWZpY2F0aW9uIHBvc2l0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhbmRhcmQodGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OmJvb2xlYW4sIGR1cmF0aW9uPzogbnVtYmVyLCBwb3NpdGlvbj86IE5vdGlmaWNhdGlvblBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGROb3RpZmljYXRpb24oe1xuICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5TdGFuZGFyZCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgU3VjY2VzcyBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIHN1Y2Nlc3ModGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OmJvb2xlYW4sIGR1cmF0aW9uPzogbnVtYmVyLCBwb3NpdGlvbj86IE5vdGlmaWNhdGlvblBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGROb3RpZmljYXRpb24oe1xuICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5TdWNjZXNzLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBkaXNtaXNzaWJsZSxcbiAgICAgIHBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBFcnJvciBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIGVycm9yKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzpib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuRXJyb3IsXG4gICAgICBtZXNzYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGRpc21pc3NpYmxlLFxuICAgICAgcG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IFdhcm5pbmcgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSB0aXRsZSBub3RpZmljYXRpb24gdGl0bGVcbiAgICogQHBhcmFtIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2VcbiAgICogQHBhcmFtIGRpc21pc3NpYmxlIG5vdGlmaWNhdGlvbiBkaXNtaXNzaWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb24gbm90aWZpY2F0aW9uIGR1cmF0aW9uIChtaWxsaXNlY29uZHMpXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBub3RpZmljYXRpb24gcG9zaXRpb25cbiAgICovXG4gIHB1YmxpYyB3YXJuaW5nKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGRpc21pc3NpYmxlPzpib29sZWFuLCBkdXJhdGlvbj86IG51bWJlciwgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKHtcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuV2FybmluZyxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZGlzbWlzc2libGUsXG4gICAgICBwb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgSW5mbyBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIHRpdGxlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGlzbWlzc2libGUgbm90aWZpY2F0aW9uIGRpc21pc3NpYmxlXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBub3RpZmljYXRpb24gZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQHBhcmFtIHBvc2l0aW9uIG5vdGlmaWNhdGlvbiBwb3NpdGlvblxuICAgKi9cbiAgcHVibGljIGluZm8odGl0bGU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgZGlzbWlzc2libGU/OmJvb2xlYW4sIGR1cmF0aW9uPzogbnVtYmVyLCBwb3NpdGlvbj86IE5vdGlmaWNhdGlvblBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGROb3RpZmljYXRpb24oe1xuICAgICAgdHlwZTogTm90aWZpY2F0aW9uVHlwZS5JbmZvLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBkaXNtaXNzaWJsZSxcbiAgICAgIHBvc2l0aW9uXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,73 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- export class FileUtils {
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 || !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 = FileUtils.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 && mime.length) ? mime[1] : undefined;
71
- }
72
- }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2ZpbGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQUVwQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxVQUFVLENBQVMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsRUFBRTtvQkFDckUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQ3pDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQzNFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWM7UUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGZpbGUgc2l6ZSBzdHJpbmdcbiAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGVcbiAgICogQHBhcmFtIGRlY2ltYWxzIGRlY2ltYWwgdG8gc2hvd1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRGaWxlU2l6ZVN0cmluZyhmaWxlOiBGaWxlLCBkZWNpbWFscyA9IDIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ5dGVzID0gZmlsZS5zaXplO1xuICAgIGlmICghK2J5dGVzKSB7XG4gICAgICByZXR1cm4gJzAgQnl0ZXMnO1xuICAgIH1cblxuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIHJldHVybiBgJHtwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSl9ICR7c2l6ZXNbaV19YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgZmlsZSB0byBiYXNlNjQgc3RyaW5nXG4gICAqIEBwYXJhbSBmaWxlIHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbGVUb0Jhc2U2NChmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LnJlc3VsdCB8fCB0YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoJ0Vycm9yIG9uIHBhcnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0YXJnZXQucmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBCbG9iXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvQmxvYihiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IEJsb2Ige1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbaW50OEFycmF5XSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBGaWxlXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqIEBwYXJhbSBmaWxlbmFtZSB0aGUgZmlsZSBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvRmlsZShiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgIGNvbnN0IGZpbGVCbG9iID0gRmlsZVV0aWxzLmJhc2U2NFRvQmxvYihiYXNlNjQsIG1pbWVUeXBlKTtcbiAgICByZXR1cm4gbmV3IEZpbGUoW2ZpbGVCbG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgTUlNRSB0eXBlIGZyb20gYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gYmFzZTY0IHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE1pbWVUeXBlRnJvbUJhc2U2NChiYXNlNjQ6IHN0cmluZyk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIGNvbnN0IG1pbWUgPSBiYXNlNjQubWF0Y2goL2RhdGE6KFthLXpBLVowLTldK1xcL1thLXpBLVowLTktLitdKykuKiwuKi8pO1xuICAgIHJldHVybiAobWltZSAmJiBtaW1lLmxlbmd0aCkgPyBtaW1lWzFdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi91dGlscy9yZWdleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsNGFBQTRhLENBQUE7QUFFdmM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpRkFBaUYsQ0FBQTtBQUVuSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxtTkFBbU4sQ0FBQTtBQUU1Tzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHlFQUF5RSxDQUFBO0FBRS9HOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFBO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhbCBFbWFpbCBSZWdleCAoUkZDIDUzMjIgT2ZmaWNpYWwgU3RhbmRhcmQpXG4gKiBodHRwOi8vZW1haWxyZWdleC5jb20vXG4gKi9cbmV4cG9ydCBjb25zdCBFTUFJTF9SRUdFWCA9IC8oPzpbYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFwuW2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqfFwiKD86W1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4MjFcXHgyMy1cXHg1YlxceDVkLVxceDdmXXxcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBlLVxceDdmXSkqXCIpQCg/Oig/OlthLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT9cXC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT98XFxbKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT98W2EtejAtOS1dKlthLXowLTldOig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxLVxceDVhXFx4NTMtXFx4N2ZdfFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSspXFxdKS9cblxuLyoqXG4gKiBQaG9uZSBudW1iZXIgUmVnZXhcbiAqL1xuZXhwb3J0IGNvbnN0IFBIT05FX05VTUJFUl9SRUdFWCA9IC9eXFxzKig/OlxcKz8oXFxkezEsM30pKT9bLS4gKF0qKFxcZHszfSlbLS4gKV0qKFxcZHszfSlbLS4gXSooXFxkezN9KSg/OiAqeChcXGQrKSk/XFxzKiQvXG5cbi8qKlxuICogVVJMIFJlZ2V4XG4gKi9cbmV4cG9ydCBjb25zdCBVUkxfUkVHRVggPSAvKGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XVthLXpBLVowLTktXStbYS16QS1aMC05XVxcLlteXFxzXXsyLH18d3d3XFwuW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fGh0dHBzPzpcXC9cXC8oPzp3d3dcXC58KD8hd3d3KSlbYS16QS1aMC05XStcXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldK1xcLlteXFxzXXsyLH0pL1xuXG4vKipcbiAqIFRoZSBpdGFsaWFuIHRheCBjb2RlIFJlZ2V4IChDb2RpY2UgRmlzY2FsZSlcbiAqL1xuZXhwb3J0IGNvbnN0IElUQUxJQU5fVEFYX0NPREVfUkVHRVggPSAvXltBLVphLXpdezZ9WzAtOV17Mn1bQS1aYS16XXsxfVswLTldezJ9W0EtWmEtel17MX1bMC05XXszfVtBLVphLXpdezF9JC9pXG5cbi8qKlxuICogVGhlIFZBVCBudW1iZXIgUmVnZXggKFBhcnRpdGEgaXZhKVxuICovXG5leHBvcnQgY29uc3QgVkFUX05VTUJFUl9SRUdFWCA9IC9eWzAtOV17MTF9JC9cblxuLyoqXG4gKiBJdGFsaWFuIENBUCBSZWdleFxuICovXG5leHBvcnQgY29uc3QgQ0FQX1JFR0VYID0gL15bMC05XXs1fSQvO1xuIl19
@@ -1,147 +0,0 @@
1
- import { Validators } from '@angular/forms';
2
- import { CAP_REGEX, EMAIL_REGEX, ITALIAN_TAX_CODE_REGEX, PHONE_NUMBER_REGEX, URL_REGEX, VAT_NUMBER_REGEX } from '../utils/regex';
3
- export class ItValidators {
4
- /**
5
- * Static pattern validator with custom error
6
- * @param regex
7
- * @param error
8
- */
9
- static customPattern(regex, error) {
10
- return (control) => {
11
- if (!control.value) {
12
- // if control is empty return no error
13
- return null;
14
- }
15
- // test the value of the control against the regexp supplied
16
- const valid = regex.test(control.value);
17
- // if true, return no error (no error), else return error passed in the second parameter
18
- return valid ? null : error;
19
- };
20
- }
21
- /**
22
- * Set Validator if the condition is satisfied
23
- * @param validator the validator to apply if the condition is true
24
- * @param condition the condition
25
- */
26
- static conditional(validator, condition) {
27
- return formControl => {
28
- if (!formControl.parent) {
29
- return null;
30
- }
31
- if (condition(formControl)) {
32
- return validator(formControl);
33
- }
34
- return null;
35
- };
36
- }
37
- /**
38
- * Check whether our password and confirm password are a match
39
- * @param control
40
- * @param passwordControlName the password formControlName
41
- * @param confirmControlName the confirmPassword formControlName
42
- */
43
- static passwordMatch(control, passwordControlName = 'password', confirmControlName = 'confirmPassword') {
44
- const confirmControl = control.get(confirmControlName); // confirmPassword form control
45
- if (!confirmControl) {
46
- return null;
47
- }
48
- const passwordControl = control.get(passwordControlName); // password form control
49
- const password = passwordControl?.value; // get password from our password form control
50
- // compare is the password match
51
- if ((password && !confirmControl.value) || (confirmControl.value && password !== confirmControl.value)) {
52
- // if they don't match, set an error in our confirmPassword form control
53
- confirmControl?.setErrors({ noPasswordMatch: true });
54
- confirmControl?.markAsTouched();
55
- return control;
56
- }
57
- if (password && passwordControl?.touched) {
58
- confirmControl?.markAsTouched();
59
- }
60
- return null;
61
- }
62
- /**
63
- * Password validator
64
- * @param minLength minimum password length - default 10
65
- * @param hasNumber check whether the entered password has a number - default true
66
- * @param hasCapitalCase check whether the entered password has upper case letter - default true
67
- * @param hasSmallCase check whether the entered password has a lower-case letter - default true
68
- * @param hasSpecialCharacters check whether the entered password has a special character - default true
69
- * @param required the field is required - default true
70
- */
71
- static password(minLength = 10, hasNumber = true, hasCapitalCase = true, hasSmallCase = true, hasSpecialCharacters = true, required = true) {
72
- const validators = [Validators.minLength(minLength)];
73
- if (hasNumber) {
74
- validators.push(ItValidators.customPattern(/\d/, { hasNumber }));
75
- }
76
- if (hasCapitalCase) {
77
- validators.push(ItValidators.customPattern(/[A-Z]/, { hasCapitalCase }));
78
- }
79
- if (hasSmallCase) {
80
- validators.push(ItValidators.customPattern(/[a-z]/, { hasSmallCase }));
81
- }
82
- if (hasSpecialCharacters) {
83
- validators.push(ItValidators.customPattern(new RegExp(`[${ItValidators.SpecialCharacterPattern}]`), { hasSpecialCharacters }));
84
- }
85
- if (required) {
86
- validators.push(Validators.required);
87
- }
88
- return Validators.compose(validators);
89
- }
90
- /**
91
- * Email validator
92
- */
93
- static get email() {
94
- return Validators.compose([
95
- Validators.email,
96
- ItValidators.customPattern(EMAIL_REGEX, { invalidEmail: true })
97
- ]);
98
- }
99
- /**
100
- * Phone number validator
101
- */
102
- static get tel() {
103
- return ItValidators.customPattern(PHONE_NUMBER_REGEX, { invalidTel: true });
104
- }
105
- /**
106
- * URL validator
107
- */
108
- static get url() {
109
- return ItValidators.customPattern(URL_REGEX, { invalidUrl: true });
110
- }
111
- /**
112
- * Italian Tax Code validator
113
- */
114
- static get taxCode() {
115
- return ItValidators.customPattern(ITALIAN_TAX_CODE_REGEX, { invalidTaxCode: true });
116
- }
117
- /**
118
- * VAT Number validator
119
- */
120
- static get vatNumber() {
121
- return ItValidators.customPattern(VAT_NUMBER_REGEX, { invalidVatNumber: true });
122
- }
123
- /**
124
- * Italian Postal Code validator (CAP)
125
- */
126
- static get cap() {
127
- return ItValidators.customPattern(CAP_REGEX, { invalidCap: true });
128
- }
129
- /**
130
- * Check if value is a valid RegExp
131
- */
132
- static get regExp() {
133
- return (control) => {
134
- try {
135
- if (control?.value) {
136
- new RegExp(control.value);
137
- }
138
- }
139
- catch (e) {
140
- return { invalidRegex: true };
141
- }
142
- return null;
143
- };
144
- }
145
- }
146
- ItValidators.SpecialCharacterPattern = '!@#$%&*_+=;:|,.';
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXQtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3ZhbGlkYXRvcnMvaXQtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sT0FBTyxZQUFZO0lBR3ZCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxLQUF1QjtRQUNoRSxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtZQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsc0NBQXNDO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsNERBQTREO1lBQzVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhDLHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQXNCLEVBQUUsU0FBZ0Q7UUFDaEcsT0FBTyxXQUFXLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMv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dCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ0FQX1JFR0VYLFxuICBFTUFJTF9SRUdFWCxcbiAgSVRBTElBTl9UQVhfQ09ERV9SRUdFWCxcbiAgUEhPTkVfTlVNQkVSX1JFR0VYLFxuICBVUkxfUkVHRVgsXG4gIFZBVF9OVU1CRVJfUkVHRVhcbn0gZnJvbSAnLi4vdXRpbHMvcmVnZXgnO1xuXG5leHBvcnQgY2xhc3MgSXRWYWxpZGF0b3JzIHtcbiAgcHVibGljIHN0YXRpYyBTcGVjaWFsQ2hhcmFjdGVyUGF0dGVybiA9ICchQCMkJSYqXys9Ozp8LC4nO1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgcGF0dGVybiB2YWxpZGF0b3Igd2l0aCBjdXN0b20gZXJyb3JcbiAgICogQHBhcmFtIHJlZ2V4XG4gICAqIEBwYXJhbSBlcnJvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b21QYXR0ZXJuKHJlZ2V4OiBSZWdFeHAsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyB0ZXN0IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCBhZ2FpbnN0IHRoZSByZWdleHAgc3VwcGxpZWRcbiAgICAgIGNvbnN0IHZhbGlkID0gcmVnZXgudGVzdChjb250cm9sLnZhbHVlKTtcblxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgcmV0dXJuIHZhbGlkID8gbnVsbCA6IGVycm9yO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IFZhbGlkYXRvciBpZiB0aGUgY29uZGl0aW9uIGlzIHNhdGlzZmllZFxuICAgKiBAcGFyYW0gdmFsaWRhdG9yIHRoZSB2YWxpZGF0b3IgdG8gYXBwbHkgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVlXG4gICAqIEBwYXJhbSBjb25kaXRpb24gdGhlIGNvbmRpdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb25kaXRpb25hbCh2YWxpZGF0b3I6IFZhbGlkYXRvckZuLCBjb25kaXRpb246IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IGJvb2xlYW4pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIGZvcm1Db250cm9sID0+IHtcbiAgICAgIGlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKGNvbmRpdGlvbihmb3JtQ29udHJvbCkpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgb3VyIHBhc3N3b3JkIGFuZCBjb25maXJtIHBhc3N3b3JkIGFyZSBhIG1hdGNoXG4gICAqIEBwYXJhbSBjb250cm9sXG4gICAqIEBwYXJhbSBwYXNzd29yZENvbnRyb2xOYW1lIHRoZSBwYXNzd29yZCBmb3JtQ29udHJvbE5hbWVcbiAgICogQHBhcmFtIGNvbmZpcm1Db250cm9sTmFtZSB0aGUgY29uZmlybVBhc3N3b3JkIGZvcm1Db250cm9sTmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXNzd29yZE1hdGNoKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGFzc3dvcmRDb250cm9sTmFtZSA9ICdwYXNzd29yZCcsIGNvbmZpcm1Db250cm9sTmFtZSA9ICdjb25maXJtUGFzc3dvcmQnKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgY29uc3QgY29uZmlybUNvbnRyb2wgPSBjb250cm9sLmdldChjb25maXJtQ29udHJvbE5hbWUpOyAvLyBjb25maXJtUGFzc3dvcmQgZm9ybSBjb250cm9sXG4gICAgaWYgKCFjb25maXJtQ29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc3dvcmRDb250cm9sID0gY29udHJvbC5nZXQocGFzc3dvcmRDb250cm9sTmFtZSk7IC8vIHBhc3N3b3JkIGZvcm0gY29udHJvbFxuICAgIGNvbnN0IHBhc3N3b3JkID0gcGFzc3dvcmRDb250cm9sPy52YWx1ZTsgLy8gZ2V0IHBhc3N3b3JkIGZyb20gb3VyIHBhc3N3b3JkIGZvcm0gY29udHJvbFxuXG4gICAgLy8gY29tcGFyZSBpcyB0aGUgcGFzc3dvcmQgbWF0Y2hcbiAgICBpZiAoKHBhc3N3b3JkICYmICFjb25maXJtQ29udHJvbC52YWx1ZSkgfHwgKGNvbmZpcm1Db250cm9sLnZhbHVlICYmIHBhc3N3b3JkICE9PSBjb25maXJtQ29udHJvbC52YWx1ZSkpIHtcbiAgICAgIC8vIGlmIHRoZXkgZG9uJ3QgbWF0Y2gsIHNldCBhbiBlcnJvciBpbiBvdXIgY29uZmlybVBhc3N3b3JkIGZvcm0gY29udHJvbFxuICAgICAgY29uZmlybUNvbnRyb2w/LnNldEVycm9ycyh7IG5vUGFzc3dvcmRNYXRjaDogdHJ1ZSB9KTtcbiAgICAgIGNvbmZpcm1Db250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm4gY29udHJvbDtcbiAgICB9XG5cbiAgICBpZiAocGFzc3dvcmQgJiYgcGFzc3dvcmRDb250cm9sPy50b3VjaGVkKSB7XG4gICAgICBjb25maXJtQ29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzd29yZCB2YWxpZGF0b3JcbiAgICogQHBhcmFtIG1pbkxlbmd0aCBtaW5pbXVtIHBhc3N3b3JkIGxlbmd0aCAtIGRlZmF1bHQgMTBcbiAgICogQHBhcmFtIGhhc051bWJlciBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIG51bWJlciAtIGRlZmF1bHQgdHJ1ZVxuICAgKiBAcGFyYW0gaGFzQ2FwaXRhbENhc2UgY2hlY2sgd2hldGhlciB0aGUgZW50ZXJlZCBwYXNzd29yZCBoYXMgdXBwZXIgY2FzZSBsZXR0ZXIgLSBkZWZhdWx0IHRydWVcbiAgICogQHBhcmFtIGhhc1NtYWxsQ2FzZSBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIGxvd2VyLWNhc2UgbGV0dGVyIC0gZGVmYXVsdCB0cnVlXG4gICAqIEBwYXJhbSBoYXNTcGVjaWFsQ2hhcmFjdGVycyBjaGVjayB3aGV0aGVyIHRoZSBlbnRlcmVkIHBhc3N3b3JkIGhhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIC0gZGVmYXVsdCB0cnVlXG4gICAqIEBwYXJhbSByZXF1aXJlZCB0aGUgZmllbGQgaXMgcmVxdWlyZWQgLSBkZWZhdWx0IHRydWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFzc3dvcmQobWluTGVuZ3RoID0gMTAsIGhhc051bWJlciA9IHRydWUsIGhhc0NhcGl0YWxDYXNlID0gdHJ1ZSwgaGFzU21hbGxDYXNlID0gdHJ1ZSwgaGFzU3BlY2lhbENoYXJhY3RlcnMgPSB0cnVlLCByZXF1aXJlZCA9IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW1ZhbGlkYXRvcnMubWluTGVuZ3RoKG1pbkxlbmd0aCldO1xuICAgIGlmIChoYXNOdW1iZXIpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybigvXFxkLywgeyBoYXNOdW1iZXIgfSkpO1xuICAgIH1cbiAgICBpZiAoaGFzQ2FwaXRhbENhc2UpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybigvW0EtWl0vLCB7IGhhc0NhcGl0YWxDYXNlIH0pKTtcbiAgICB9XG4gICAgaWYgKGhhc1NtYWxsQ2FzZSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKEl0VmFsaWRhdG9ycy5jdXN0b21QYXR0ZXJuKC9bYS16XS8sIHsgaGFzU21hbGxDYXNlIH0pKTtcbiAgICB9XG4gICAgaWYgKGhhc1NwZWNpYWxDaGFyYWN0ZXJzKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4obmV3IFJlZ0V4cChgWyR7SXRWYWxpZGF0b3JzLlNwZWNpYWxDaGFyYWN0ZXJQYXR0ZXJufV1gKSwgeyBoYXNTcGVjaWFsQ2hhcmFjdGVycyB9KSk7XG4gICAgfVxuICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gPFZhbGlkYXRvckZuPlZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWFpbCB2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtYWlsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gPFZhbGlkYXRvckZuPlZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICBWYWxpZGF0b3JzLmVtYWlsLFxuICAgICAgSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oRU1BSUxfUkVHRVgsIHsgaW52YWxpZEVtYWlsOiB0cnVlIH0pXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogUGhvbmUgbnVtYmVyIHZhbGlkYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgdGVsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oUEhPTkVfTlVNQkVSX1JFR0VYLCB7IGludmFsaWRUZWw6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogVVJMIHZhbGlkYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgdXJsKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gSXRWYWxpZGF0b3JzLmN1c3RvbVBhdHRlcm4oVVJMX1JFR0VYLCB7IGludmFsaWRVcmw6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXRhbGlhbiBUYXggQ29kZSB2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHRheENvZGUoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiBJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybihJVEFMSUFOX1RBWF9DT0RFX1JFR0VYLCB7IGludmFsaWRUYXhDb2RlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZBVCBOdW1iZXIgdmFsaWRhdG9yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCB2YXROdW1iZXIoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiBJdFZhbGlkYXRvcnMuY3VzdG9tUGF0dGVybihWQVRfTlVNQkVSX1JFR0VYLCB7IGludmFsaWRWYXROdW1iZXI6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXRhbGlhbiBQb3N0YWwgQ29kZSB2YWxpZGF0b3IgKENBUClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGNhcCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIEl0VmFsaWRhdG9ycy5jdXN0b21QYXR0ZXJuKENBUF9SRUdFWCwgeyBpbnZhbGlkQ2FwOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlIGlzIGEgdmFsaWQgUmVnRXhwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCByZWdFeHAoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgbmV3IFJlZ0V4cChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4geyBpbnZhbGlkUmVnZXg6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==