@osovitny/anatoly 2.15.12 → 2.16.1

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 (256) hide show
  1. package/esm2022/lib/anatoly.module.mjs +55 -0
  2. package/{esm2020 → esm2022}/lib/core/browser.mjs +23 -23
  3. package/{esm2020 → esm2022}/lib/core/consts/settings.mjs +16 -16
  4. package/{esm2020 → esm2022}/lib/core/consts/urls.mjs +18 -18
  5. package/{esm2020 → esm2022}/lib/core/converts/convert.mjs +104 -104
  6. package/{esm2020 → esm2022}/lib/core/converts/xmlFormatter.mjs +33 -33
  7. package/esm2022/lib/core/core.module.mjs +89 -0
  8. package/{esm2020 → esm2022}/lib/core/dom.mjs +152 -152
  9. package/esm2022/lib/core/go/base-go.service.mjs +50 -0
  10. package/{esm2020 → esm2022}/lib/core/guards/once-import.guard.mjs +20 -20
  11. package/{esm2020 → esm2022}/lib/core/guid.mjs +21 -21
  12. package/{esm2020 → esm2022}/lib/core/index.mjs +50 -50
  13. package/esm2022/lib/core/interceptors/httpInterceptor.mjs +107 -0
  14. package/esm2022/lib/core/localization/localization.module.mjs +44 -0
  15. package/esm2022/lib/core/localization/localization.service.mjs +184 -0
  16. package/esm2022/lib/core/localization/localizationSettings.module.mjs +90 -0
  17. package/esm2022/lib/core/localization/localize.pipe.mjs +76 -0
  18. package/{esm2020 → esm2022}/lib/core/localization/utils.mjs +41 -41
  19. package/esm2022/lib/core/logging/globalErrorHandler.mjs +42 -0
  20. package/esm2022/lib/core/logging/logging.service.mjs +36 -0
  21. package/{esm2020 → esm2022}/lib/core/notifications/alerts.mjs +105 -105
  22. package/{esm2020 → esm2022}/lib/core/notifications/interfaces/notification.mjs +16 -16
  23. package/esm2022/lib/core/notifications/services/notification-service.mjs +226 -0
  24. package/esm2022/lib/core/performance/stopwatch.mjs +55 -0
  25. package/esm2022/lib/core/services/appcontext.service.mjs +152 -0
  26. package/esm2022/lib/core/services/dm.service.mjs +72 -0
  27. package/esm2022/lib/core/services/google-analytics.service.mjs +55 -0
  28. package/esm2022/lib/core/services/idle.service.mjs +82 -0
  29. package/esm2022/lib/core/services/loading.service.mjs +68 -0
  30. package/esm2022/lib/core/services/web-storage.service.mjs +67 -0
  31. package/esm2022/lib/core/subs.mjs +30 -0
  32. package/{esm2020 → esm2022}/lib/core/utils.mjs +93 -93
  33. package/esm2022/lib/data/base/base-api.service.mjs +99 -0
  34. package/esm2022/lib/data/base/grid/base-grid-edit.service.mjs +83 -0
  35. package/esm2022/lib/data/base/grid/base-grid-read.service.mjs +65 -0
  36. package/{esm2020 → esm2022}/lib/data/consts.mjs +23 -23
  37. package/esm2022/lib/data/data.module.mjs +42 -0
  38. package/{esm2020 → esm2022}/lib/data/index.mjs +21 -21
  39. package/esm2022/lib/data/services/core-api.service.mjs +60 -0
  40. package/esm2022/lib/data/services/emails-api.service.mjs +48 -0
  41. package/esm2022/lib/data/services/notifications/notifications-api-service.mjs +41 -0
  42. package/esm2022/lib/ui/components/base/base-edit.component.mjs +135 -0
  43. package/esm2022/lib/ui/components/base/base.component.mjs +61 -0
  44. package/esm2022/lib/ui/components/base/base.dialog.mjs +67 -0
  45. package/esm2022/lib/ui/components/base/base.list.mjs +69 -0
  46. package/esm2022/lib/ui/components/base/base.page.mjs +31 -0
  47. package/esm2022/lib/ui/components/base/base.paged.page.mjs +66 -0
  48. package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +64 -0
  49. package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +68 -0
  50. package/esm2022/lib/ui/components/card/card-body.component.mjs +30 -0
  51. package/esm2022/lib/ui/components/card/card-footer.component.mjs +30 -0
  52. package/esm2022/lib/ui/components/card/card-header.component.mjs +34 -0
  53. package/esm2022/lib/ui/components/card/card.component.mjs +30 -0
  54. package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +33 -0
  55. package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +44 -0
  56. package/esm2022/lib/ui/components/datapager/datapager.component.mjs +85 -0
  57. package/esm2022/lib/ui/components/html-editor/base-html-editor.component.mjs +96 -0
  58. package/esm2022/lib/ui/components/html-editor/forms-html-editor.component.mjs +45 -0
  59. package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +49 -0
  60. package/{esm2020 → esm2022}/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +85 -85
  61. package/esm2022/lib/ui/components/identity/signin-button.component.mjs +31 -0
  62. package/esm2022/lib/ui/components/identity/signout-button.component.mjs +31 -0
  63. package/esm2022/lib/ui/components/identity/signup-button.component.mjs +30 -0
  64. package/{esm2020 → esm2022}/lib/ui/components/index.mjs +43 -43
  65. package/esm2022/lib/ui/components/nodata/nodata.component.mjs +46 -0
  66. package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +49 -0
  67. package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +62 -0
  68. package/{esm2020 → esm2022}/lib/ui/components/spinners/pagespinner/spinkits.mjs +11 -11
  69. package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +49 -0
  70. package/{esm2020 → esm2022}/lib/ui/dialogs/index.mjs +16 -16
  71. package/esm2022/lib/ui/directives/hover.directive.mjs +45 -0
  72. package/{esm2020 → esm2022}/lib/ui/directives/index.mjs +17 -17
  73. package/esm2022/lib/ui/directives/native-element.directive.mjs +40 -0
  74. package/esm2022/lib/ui/external/fa.module.mjs +45 -0
  75. package/esm2022/lib/ui/external/kendo.module.mjs +90 -0
  76. package/esm2022/lib/ui/forms/components/address/address.component.mjs +141 -0
  77. package/esm2022/lib/ui/forms/components/company/company.component.mjs +94 -0
  78. package/esm2022/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +74 -0
  79. package/esm2022/lib/ui/forms/components/urlslug/urlslug.component.mjs +98 -0
  80. package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +124 -0
  81. package/{esm2020 → esm2022}/lib/ui/forms/index.mjs +23 -23
  82. package/esm2022/lib/ui/pipes/filesize.pipe.mjs +40 -0
  83. package/{esm2020 → esm2022}/lib/ui/pipes/index.mjs +18 -18
  84. package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +37 -0
  85. package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +35 -0
  86. package/esm2022/lib/ui/ui.module.mjs +192 -0
  87. package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +64 -0
  88. package/{esm2020 → esm2022}/lib/ui/validation/index.mjs +18 -18
  89. package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +39 -0
  90. package/{esm2020 → esm2022}/lib/ui/validation/validation-summary.component.mjs +125 -125
  91. package/{esm2020 → esm2022}/osovitny-anatoly.mjs +4 -4
  92. package/{esm2020 → esm2022}/public-api.mjs +24 -24
  93. package/{fesm2015 → fesm2022}/osovitny-anatoly.mjs +5119 -5974
  94. package/fesm2022/osovitny-anatoly.mjs.map +1 -0
  95. package/index.d.ts +5 -5
  96. package/lib/anatoly.module.d.ts +10 -10
  97. package/lib/core/browser.d.ts +4 -4
  98. package/lib/core/consts/settings.d.ts +1 -1
  99. package/lib/core/consts/urls.d.ts +3 -3
  100. package/lib/core/converts/convert.d.ts +16 -16
  101. package/lib/core/converts/xmlFormatter.d.ts +4 -4
  102. package/lib/core/core.module.d.ts +14 -14
  103. package/lib/core/dom.d.ts +17 -17
  104. package/lib/core/go/base-go.service.d.ts +12 -12
  105. package/lib/core/guards/once-import.guard.d.ts +1 -1
  106. package/lib/core/guid.d.ts +3 -3
  107. package/lib/core/index.d.ts +28 -28
  108. package/lib/core/interceptors/httpInterceptor.d.ts +18 -18
  109. package/lib/core/localization/localization.module.d.ts +8 -8
  110. package/lib/core/localization/localization.service.d.ts +25 -25
  111. package/lib/core/localization/localizationSettings.module.d.ts +18 -18
  112. package/lib/core/localization/localize.pipe.d.ts +10 -10
  113. package/lib/core/localization/utils.d.ts +5 -5
  114. package/lib/core/logging/globalErrorHandler.d.ts +9 -9
  115. package/lib/core/logging/logging.service.d.ts +8 -8
  116. package/lib/core/notifications/alerts.d.ts +9 -9
  117. package/lib/core/notifications/interfaces/notification.d.ts +10 -10
  118. package/lib/core/notifications/services/notification-service.d.ts +25 -25
  119. package/lib/core/performance/stopwatch.d.ts +14 -14
  120. package/lib/core/services/appcontext.service.d.ts +31 -31
  121. package/lib/core/services/dm.service.d.ts +16 -16
  122. package/lib/core/services/google-analytics.service.d.ts +11 -11
  123. package/lib/core/services/idle.service.d.ts +19 -19
  124. package/lib/core/services/loading.service.d.ts +13 -13
  125. package/lib/core/services/web-storage.service.d.ts +22 -22
  126. package/lib/core/subs.d.ts +8 -8
  127. package/lib/core/utils.d.ts +11 -11
  128. package/lib/data/base/base-api.service.d.ts +18 -18
  129. package/lib/data/base/grid/base-grid-edit.service.d.ts +16 -16
  130. package/lib/data/base/grid/base-grid-read.service.d.ts +14 -14
  131. package/lib/data/consts.d.ts +5 -5
  132. package/lib/data/data.module.d.ts +7 -7
  133. package/lib/data/index.d.ts +6 -6
  134. package/lib/data/services/core-api.service.d.ts +12 -12
  135. package/lib/data/services/emails-api.service.d.ts +10 -10
  136. package/lib/data/services/notifications/notifications-api-service.d.ts +12 -12
  137. package/lib/ui/components/base/base-edit.component.d.ts +57 -57
  138. package/lib/ui/components/base/base.component.d.ts +17 -17
  139. package/lib/ui/components/base/base.dialog.d.ts +17 -17
  140. package/lib/ui/components/base/base.list.d.ts +19 -19
  141. package/lib/ui/components/base/base.page.d.ts +6 -6
  142. package/lib/ui/components/base/base.paged.page.d.ts +18 -18
  143. package/lib/ui/components/billing/buyaccess-button.component.d.ts +19 -19
  144. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +21 -21
  145. package/lib/ui/components/card/card-body.component.d.ts +6 -6
  146. package/lib/ui/components/card/card-footer.component.d.ts +6 -6
  147. package/lib/ui/components/card/card-header.component.d.ts +7 -7
  148. package/lib/ui/components/card/card.component.d.ts +6 -6
  149. package/lib/ui/components/check-icon/check-icon.component.d.ts +6 -6
  150. package/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.d.ts +8 -8
  151. package/lib/ui/components/datapager/datapager.component.d.ts +21 -21
  152. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +21 -21
  153. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +9 -9
  154. package/lib/ui/components/html-editor/html-editor.component.d.ts +9 -9
  155. package/lib/ui/components/html-editor/html-editor.defaultoptions.d.ts +1 -1
  156. package/lib/ui/components/identity/signin-button.component.d.ts +7 -7
  157. package/lib/ui/components/identity/signout-button.component.d.ts +7 -7
  158. package/lib/ui/components/identity/signup-button.component.d.ts +6 -6
  159. package/lib/ui/components/index.d.ts +25 -25
  160. package/lib/ui/components/nodata/nodata.component.d.ts +11 -11
  161. package/lib/ui/components/spinners/loading/loading.component.d.ts +13 -13
  162. package/lib/ui/components/spinners/pagespinner/pagespinner.component.d.ts +25 -25
  163. package/lib/ui/components/spinners/pagespinner/spinkits.d.ts +11 -11
  164. package/lib/ui/dialogs/contact-us/contact-us.dialog.d.ts +12 -12
  165. package/lib/ui/dialogs/index.d.ts +1 -1
  166. package/lib/ui/directives/hover.directive.d.ts +8 -8
  167. package/lib/ui/directives/index.d.ts +2 -2
  168. package/lib/ui/directives/native-element.directive.d.ts +11 -11
  169. package/lib/ui/external/fa.module.d.ts +10 -10
  170. package/lib/ui/external/kendo.module.d.ts +15 -15
  171. package/lib/ui/forms/components/address/address.component.d.ts +35 -35
  172. package/lib/ui/forms/components/company/company.component.d.ts +20 -20
  173. package/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.d.ts +26 -26
  174. package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +23 -23
  175. package/lib/ui/forms/contact-us/contact-us.d.ts +33 -33
  176. package/lib/ui/forms/index.d.ts +5 -5
  177. package/lib/ui/pipes/filesize.pipe.d.ts +8 -8
  178. package/lib/ui/pipes/index.d.ts +3 -3
  179. package/lib/ui/pipes/replace-text.pipe.d.ts +7 -7
  180. package/lib/ui/pipes/safeHtml.pipe.d.ts +10 -10
  181. package/lib/ui/ui.module.d.ts +43 -46
  182. package/lib/ui/validation/form-validation-summary.component.d.ts +11 -11
  183. package/lib/ui/validation/index.d.ts +3 -3
  184. package/lib/ui/validation/item-validation-summary.component.d.ts +9 -9
  185. package/lib/ui/validation/validation-summary.component.d.ts +24 -24
  186. package/package.json +11 -17
  187. package/public-api.d.ts +12 -12
  188. package/esm2020/lib/anatoly.module.mjs +0 -56
  189. package/esm2020/lib/core/core.module.mjs +0 -89
  190. package/esm2020/lib/core/go/base-go.service.mjs +0 -48
  191. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +0 -105
  192. package/esm2020/lib/core/localization/localization.module.mjs +0 -45
  193. package/esm2020/lib/core/localization/localization.service.mjs +0 -182
  194. package/esm2020/lib/core/localization/localizationSettings.module.mjs +0 -90
  195. package/esm2020/lib/core/localization/localize.pipe.mjs +0 -75
  196. package/esm2020/lib/core/logging/globalErrorHandler.mjs +0 -41
  197. package/esm2020/lib/core/logging/logging.service.mjs +0 -36
  198. package/esm2020/lib/core/notifications/services/notification-service.mjs +0 -225
  199. package/esm2020/lib/core/performance/stopwatch.mjs +0 -50
  200. package/esm2020/lib/core/services/appcontext.service.mjs +0 -149
  201. package/esm2020/lib/core/services/dm.service.mjs +0 -69
  202. package/esm2020/lib/core/services/google-analytics.service.mjs +0 -53
  203. package/esm2020/lib/core/services/idle.service.mjs +0 -77
  204. package/esm2020/lib/core/services/loading.service.mjs +0 -68
  205. package/esm2020/lib/core/services/web-storage.service.mjs +0 -66
  206. package/esm2020/lib/core/subs.mjs +0 -31
  207. package/esm2020/lib/data/base/base-api.service.mjs +0 -97
  208. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +0 -81
  209. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +0 -62
  210. package/esm2020/lib/data/data.module.mjs +0 -43
  211. package/esm2020/lib/data/services/core-api.service.mjs +0 -59
  212. package/esm2020/lib/data/services/emails-api.service.mjs +0 -47
  213. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +0 -40
  214. package/esm2020/lib/ui/components/base/base-edit.component.mjs +0 -134
  215. package/esm2020/lib/ui/components/base/base.component.mjs +0 -63
  216. package/esm2020/lib/ui/components/base/base.dialog.mjs +0 -67
  217. package/esm2020/lib/ui/components/base/base.list.mjs +0 -70
  218. package/esm2020/lib/ui/components/base/base.page.mjs +0 -31
  219. package/esm2020/lib/ui/components/base/base.paged.page.mjs +0 -67
  220. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +0 -106
  221. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +0 -118
  222. package/esm2020/lib/ui/components/card/card-body.component.mjs +0 -37
  223. package/esm2020/lib/ui/components/card/card-footer.component.mjs +0 -37
  224. package/esm2020/lib/ui/components/card/card-header.component.mjs +0 -52
  225. package/esm2020/lib/ui/components/card/card.component.mjs +0 -41
  226. package/esm2020/lib/ui/components/check-icon/check-icon.component.mjs +0 -42
  227. package/esm2020/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -51
  228. package/esm2020/lib/ui/components/datapager/datapager.component.mjs +0 -89
  229. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +0 -108
  230. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +0 -63
  231. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +0 -61
  232. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +0 -36
  233. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +0 -36
  234. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +0 -35
  235. package/esm2020/lib/ui/components/nodata/nodata.component.mjs +0 -67
  236. package/esm2020/lib/ui/components/spinners/loading/loading.component.mjs +0 -57
  237. package/esm2020/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -84
  238. package/esm2020/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
  239. package/esm2020/lib/ui/directives/hover.directive.mjs +0 -51
  240. package/esm2020/lib/ui/directives/native-element.directive.mjs +0 -38
  241. package/esm2020/lib/ui/external/fa.module.mjs +0 -46
  242. package/esm2020/lib/ui/external/kendo.module.mjs +0 -91
  243. package/esm2020/lib/ui/forms/components/address/address.component.mjs +0 -242
  244. package/esm2020/lib/ui/forms/components/company/company.component.mjs +0 -142
  245. package/esm2020/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -99
  246. package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +0 -136
  247. package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +0 -212
  248. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +0 -42
  249. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +0 -37
  250. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
  251. package/esm2020/lib/ui/ui.module.mjs +0 -197
  252. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +0 -89
  253. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +0 -59
  254. package/fesm2015/osovitny-anatoly.mjs.map +0 -1
  255. package/fesm2020/osovitny-anatoly.mjs +0 -5760
  256. package/fesm2020/osovitny-anatoly.mjs.map +0 -1
@@ -1,94 +1,94 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 19 March 2020
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- export class Utils {
17
- static idExistsInQS() {
18
- let id = Utils.getValueByNameInQS("id");
19
- if (id)
20
- return true;
21
- return false;
22
- }
23
- static getValueByNameInQS(name) {
24
- return Utils.getValueByName(location.search, name);
25
- }
26
- static getValueByName(url, name) {
27
- name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
28
- // tslint:disable-next-line:one-variable-per-declaration
29
- const regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = regex.exec(url);
30
- return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
31
- }
32
- static copyToClipBoard(event, val) {
33
- event.preventDefault();
34
- const selBox = document.createElement('textarea');
35
- selBox.style.position = 'fixed';
36
- selBox.style.left = '0';
37
- selBox.style.top = '0';
38
- selBox.style.opacity = '0';
39
- selBox.value = val;
40
- document.body.appendChild(selBox);
41
- selBox.focus();
42
- selBox.select();
43
- document.execCommand('copy');
44
- document.body.removeChild(selBox);
45
- }
46
- static downloadFile(name, url) {
47
- const link = document.createElement('a');
48
- link.download = name;
49
- link.href = url;
50
- link.click();
51
- }
52
- static downloadBlobFile(value, fileName) {
53
- const nav = window.navigator;
54
- if (nav.msSaveOrOpenBlob) {
55
- nav.msSaveOrOpenBlob(value, fileName);
56
- }
57
- else {
58
- const downloadURL = window.URL.createObjectURL(value);
59
- Utils.downloadFile(fileName, downloadURL);
60
- }
61
- }
62
- /*
63
- Author:
64
- https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1
65
- */
66
- static slugify(text, prefix = '', postfix = '') {
67
- const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';
68
- const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';
69
- const p = new RegExp(a.split('').join('|'), 'g');
70
- /*
71
- https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/
72
- https://stackoverflow.com/questions/822452/strip-html-from-text-javascript
73
- */
74
- text = text.replace(/(<([^>]+)>)/gi, '');
75
- let result = text
76
- .toString()
77
- .toLowerCase()
78
- .replace(/\s+/g, '-') // Replace spaces with -
79
- .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
80
- .replace(/&/g, '-and-') // Replace & with 'and'
81
- .replace(/[^\w\-]+/g, '') // Remove all non-word characters
82
- .replace(/\-\-+/g, '-') // Replace multiple - with single -
83
- .replace(/^-+/, '') // Trim - from start of text
84
- .replace(/-+$/, ''); // Trim - from end of text
85
- return prefix + result + postfix;
86
- }
87
- static generateRandom(start, end) {
88
- return Math.floor(Math.random() * (end - start + 1)) + start;
89
- }
90
- static isObjectNullOrEmpty(obj) {
91
- return !obj || Object.keys(obj).length == 0;
92
- }
93
- }
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 19 March 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ export class Utils {
17
+ static idExistsInQS() {
18
+ let id = Utils.getValueByNameInQS("id");
19
+ if (id)
20
+ return true;
21
+ return false;
22
+ }
23
+ static getValueByNameInQS(name) {
24
+ return Utils.getValueByName(location.search, name);
25
+ }
26
+ static getValueByName(url, name) {
27
+ name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
28
+ // tslint:disable-next-line:one-variable-per-declaration
29
+ const regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = regex.exec(url);
30
+ return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
31
+ }
32
+ static copyToClipBoard(event, val) {
33
+ event.preventDefault();
34
+ const selBox = document.createElement('textarea');
35
+ selBox.style.position = 'fixed';
36
+ selBox.style.left = '0';
37
+ selBox.style.top = '0';
38
+ selBox.style.opacity = '0';
39
+ selBox.value = val;
40
+ document.body.appendChild(selBox);
41
+ selBox.focus();
42
+ selBox.select();
43
+ document.execCommand('copy');
44
+ document.body.removeChild(selBox);
45
+ }
46
+ static downloadFile(name, url) {
47
+ const link = document.createElement('a');
48
+ link.download = name;
49
+ link.href = url;
50
+ link.click();
51
+ }
52
+ static downloadBlobFile(value, fileName) {
53
+ const nav = window.navigator;
54
+ if (nav.msSaveOrOpenBlob) {
55
+ nav.msSaveOrOpenBlob(value, fileName);
56
+ }
57
+ else {
58
+ const downloadURL = window.URL.createObjectURL(value);
59
+ Utils.downloadFile(fileName, downloadURL);
60
+ }
61
+ }
62
+ /*
63
+ Author:
64
+ https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1
65
+ */
66
+ static slugify(text, prefix = '', postfix = '') {
67
+ const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';
68
+ const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';
69
+ const p = new RegExp(a.split('').join('|'), 'g');
70
+ /*
71
+ https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/
72
+ https://stackoverflow.com/questions/822452/strip-html-from-text-javascript
73
+ */
74
+ text = text.replace(/(<([^>]+)>)/gi, '');
75
+ let result = text
76
+ .toString()
77
+ .toLowerCase()
78
+ .replace(/\s+/g, '-') // Replace spaces with -
79
+ .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
80
+ .replace(/&/g, '-and-') // Replace & with 'and'
81
+ .replace(/[^\w\-]+/g, '') // Remove all non-word characters
82
+ .replace(/\-\-+/g, '-') // Replace multiple - with single -
83
+ .replace(/^-+/, '') // Trim - from start of text
84
+ .replace(/-+$/, ''); // Trim - from end of text
85
+ return prefix + result + postfix;
86
+ }
87
+ static generateRandom(start, end) {
88
+ return Math.floor(Math.random() * (end - start + 1)) + start;
89
+ }
90
+ static isObjectNullOrEmpty(obj) {
91
+ return !obj || Object.keys(obj).length == 0;
92
+ }
93
+ }
94
94
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU0sT0FBTyxLQUFLO0lBQ1QsTUFBTSxDQUFDLFlBQVk7UUFDeEIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXBCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ25DLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELHdEQUF3RDtRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQyxFQUV2RCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFVLEVBQUUsR0FBVztRQUNuRCxLQUFL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QUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1FBRWpELE9BQU8sTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBYSxFQUFFLEdBQVc7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxOSBNYXJjaCAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcclxuICBwdWJsaWMgc3RhdGljIGlkRXhpc3RzSW5RUygpIHtcclxuICAgIGxldCBpZCA9IFV0aWxzLmdldFZhbHVlQnlOYW1lSW5RUyhcImlkXCIpO1xyXG4gICAgaWYgKGlkKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlQnlOYW1lSW5RUyhuYW1lKSB7XHJcbiAgICByZXR1cm4gVXRpbHMuZ2V0VmFsdWVCeU5hbWUobG9jYXRpb24uc2VhcmNoLCBuYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsdWVCeU5hbWUodXJsLCBuYW1lKSB7XHJcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXS8sICdcXFxcWycpLnJlcGxhY2UoL1tcXF1dLywgJ1xcXFxdJyk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25lLXZhcmlhYmxlLXBlci1kZWNsYXJhdGlvblxyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCdbXFxcXD8mXScgKyBuYW1lICsgJz0oW14mI10qKScpLFxyXG5cclxuICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XHJcbiAgICByZXR1cm4gcmVzdWx0cyA9PT0gbnVsbCA/ICcnIDogZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMV0ucmVwbGFjZSgvXFwrL2csICcgJykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb3B5VG9DbGlwQm9hcmQoZXZlbnQ6IGFueSwgdmFsOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHNlbEJveC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBzZWxCb3guc3R5bGUubGVmdCA9ICcwJztcclxuICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XHJcbiAgICBzZWxCb3guc3R5bGUub3BhY2l0eSA9ICcwJztcclxuICAgIHNlbEJveC52YWx1ZSA9IHZhbDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcclxuICAgIHNlbEJveC5mb2N1cygpO1xyXG4gICAgc2VsQm94LnNlbGVjdCgpO1xyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2VsQm94KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRGaWxlKG5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gbmFtZTtcclxuICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRCbG9iRmlsZSh2YWx1ZTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgbmF2ID0gKHdpbmRvdy5uYXZpZ2F0b3IgYXMgYW55KTtcclxuXHJcbiAgICBpZiAobmF2Lm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgbmF2Lm1zU2F2ZU9yT3BlbkJsb2IodmFsdWUsIGZpbGVOYW1lKTtcclxuICAgIH0gXHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgZG93bmxvYWRVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh2YWx1ZSk7XHJcbiAgICAgIFV0aWxzLmRvd25sb2FkRmlsZShmaWxlTmFtZSwgZG93bmxvYWRVUkwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgIEF1dGhvcjpcclxuICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AbWhhZ2VtYW5uL3RoZS11bHRpbWF0ZS13YXktdG8tc2x1Z2lmeS1hLXVybC1zdHJpbmctaW4tamF2YXNjcmlwdC1iOGU0YTBkODQ5ZTFcclxuICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgc2x1Z2lmeSh0ZXh0OiBzdHJpbmcsIHByZWZpeDogc3RyaW5nID0gJycsIHBvc3RmaXg6IHN0cmluZyA9ICcnKSB7XHJcbiAgICBjb25zdCBhID0gJ8Ogw6HDosOkw6bDo8OlxIHEg8SFw6fEh8SNxJHEj8Oow6nDqsOrxJPEl8SZxJvEn8e14binw67Dr8OtxKvEr8OsxYLhuL/DscWEx7nFiMO0w7bDssOzxZPDuMWNw7XFkeG5lcWVxZnDn8WbxaHFn8iZxaXIm8O7w7zDucO6xavHmMWvxbHFs+G6g+G6jcO/w73FvsW6xbzCty9fLDo7JztcclxuICAgIGNvbnN0IGIgPSAnYWFhYWFhYWFhYWNjY2RkZWVlZWVlZWVnZ2hpaWlpaWlsbW5ubm5vb29vb29vb29wcnJzc3Nzc3R0dXV1dXV1dXV1d3h5eXp6ei0tLS0tLSc7XHJcbiAgICBjb25zdCBwID0gbmV3IFJlZ0V4cChhLnNwbGl0KCcnKS5qb2luKCd8JyksICdnJyk7XHJcblxyXG4gICAgLypcclxuICAgICAgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9qYXZhc2NyaXB0L3N0cmlwLWh0bWwtdGFncy1pbi1qYXZhc2NyaXB0L1xyXG4gICAgICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84MjI0NTIvc3RyaXAtaHRtbC1mcm9tLXRleHQtamF2YXNjcmlwdFxyXG4gICAgKi9cclxuICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyg8KFtePl0rKT4pL2dpLCAnJyk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IHRleHRcclxuICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKSAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIC1cclxuICAgICAgLnJlcGxhY2UocCwgYyA9PiBiLmNoYXJBdChhLmluZGV4T2YoYykpKSAvLyBSZXBsYWNlIHNwZWNpYWwgY2hhcmFjdGVyc1xyXG4gICAgICAucmVwbGFjZSgvJi9nLCAnLWFuZC0nKSAvLyBSZXBsYWNlICYgd2l0aCAnYW5kJ1xyXG4gICAgICAucmVwbGFjZSgvW15cXHdcXC1dKy9nLCAnJykgLy8gUmVtb3ZlIGFsbCBub24td29yZCBjaGFyYWN0ZXJzXHJcbiAgICAgIC5yZXBsYWNlKC9cXC1cXC0rL2csICctJykgLy8gUmVwbGFjZSBtdWx0aXBsZSAtIHdpdGggc2luZ2xlIC1cclxuICAgICAgLnJlcGxhY2UoL14tKy8sICcnKSAvLyBUcmltIC0gZnJvbSBzdGFydCBvZiB0ZXh0XHJcbiAgICAgIC5yZXBsYWNlKC8tKyQvLCAnJyk7IC8vIFRyaW0gLSBmcm9tIGVuZCBvZiB0ZXh0XHJcblxyXG4gICAgcmV0dXJuIHByZWZpeCArIHJlc3VsdCArIHBvc3RmaXg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlUmFuZG9tKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGVuZCAtIHN0YXJ0ICsgMSkpICsgc3RhcnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzT2JqZWN0TnVsbE9yRW1wdHkob2JqKSB7XHJcbiAgICByZXR1cm4gIW9iaiB8fCBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA9PSAwO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,99 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 13 Nov 2017
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ // Node
17
+ import { Injectable } from '@angular/core';
18
+ import { map } from 'rxjs/operators';
19
+ //App
20
+ import { AppCoreSettings } from '../../core/consts/settings';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/common/http";
23
+ export class BaseApiService {
24
+ http;
25
+ baseUrl;
26
+ constructor(http) {
27
+ this.http = http;
28
+ }
29
+ serializeParams(data) {
30
+ return data ? ('?' + $.param(data)) : "";
31
+ }
32
+ //api
33
+ get(action, data, responseType) {
34
+ if (!responseType) {
35
+ responseType = 'json';
36
+ }
37
+ var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
38
+ return this.http.get(url, { responseType: responseType }).pipe(map(res => res));
39
+ }
40
+ post(action, data, responseType) {
41
+ if (!responseType) {
42
+ responseType = 'text';
43
+ }
44
+ var url = `${this.baseUrl}/${action}`;
45
+ return this.http.post(url, data, { responseType: responseType });
46
+ }
47
+ postQS(action, data, responseType) {
48
+ if (!responseType) {
49
+ responseType = 'text';
50
+ }
51
+ var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
52
+ return this.http.post(url, null, { responseType: responseType });
53
+ }
54
+ delete(action, data, responseType) {
55
+ if (!responseType) {
56
+ responseType = 'text';
57
+ }
58
+ var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
59
+ return this.http.delete(url, { responseType: responseType });
60
+ }
61
+ //gets
62
+ getExternalTextFile(url) {
63
+ return this.http.get(url);
64
+ }
65
+ getJsonFile(fileName) {
66
+ const jsonsUrl = AppCoreSettings.jsonsUrl;
67
+ const jsonVersion = AppCoreSettings.jsonVersion;
68
+ const isCDNEnabled = AppCoreSettings.isCDNEnabled;
69
+ const cdnSasToken = AppCoreSettings.cdnSasToken;
70
+ let url = "";
71
+ if (isCDNEnabled) {
72
+ url = jsonsUrl + "/" + fileName + cdnSasToken;
73
+ }
74
+ else {
75
+ url = jsonsUrl + "/" + fileName + '?' + jsonVersion;
76
+ }
77
+ return this.http.get(url).pipe(map(res => res));
78
+ }
79
+ getExternalJsonFile(libname, fileName) {
80
+ const externalUrl = AppCoreSettings.externalUrl;
81
+ const jsonVersion = AppCoreSettings.jsonVersion;
82
+ const isCDNEnabled = AppCoreSettings.isCDNEnabled;
83
+ const cdnSasToken = AppCoreSettings.cdnSasToken;
84
+ let url = "";
85
+ if (isCDNEnabled) {
86
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + cdnSasToken;
87
+ }
88
+ else {
89
+ url = externalUrl + "/" + libname + "/jsons/" + fileName + '?' + jsonVersion;
90
+ }
91
+ return this.http.get(url).pipe(map(res => res));
92
+ }
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
94
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseApiService });
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseApiService, decorators: [{
97
+ type: Injectable
98
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL2Jhc2UvYmFzZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFLN0QsTUFBTSxPQUFPLGNBQWM7SUFHSDtJQUZaLE9BQU8sQ0FBUztJQUUxQixZQUFzQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RDLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUs7SUFDTCxHQUFHLENBQUksTUFBYyxFQUFFLElBQVUsRUFBRSxZQUFhO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FB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RyxXQUFXLENBQUM7U0FDeEU7YUFDSTtZQUNILEdBQUcsR0FBRyxXQUFXLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsUUFBUSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7U0FDOUU7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQVEsR0FBRyxDQUFDLENBQ3ZCLENBQUM7SUFDSixDQUFDO3VHQTFGVSxjQUFjOzJHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG4vLyBSeEpzXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQXBwQ29yZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdHMvc2V0dGluZ3MnO1xyXG5cclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFzZUFwaVNlcnZpY2Uge1xyXG4gIHByb3RlY3RlZCBiYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlcmlhbGl6ZVBhcmFtcyhkYXRhPzogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkYXRhID8gKCc/JyArICQucGFyYW0oZGF0YSkpIDogXCJcIjtcclxuICB9XHJcblxyXG4gIC8vYXBpXHJcbiAgZ2V0PFQ+KGFjdGlvbjogc3RyaW5nLCBkYXRhPzogYW55LCByZXNwb25zZVR5cGU/KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlVHlwZSkge1xyXG4gICAgICByZXNwb25zZVR5cGUgPSAnanNvbic7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHthY3Rpb259JHt0aGlzLnNlcmlhbGl6ZVBhcmFtcyhkYXRhKX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odXJsLCB7IHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIH0pLnBpcGUoXHJcbiAgICAgIG1hcChyZXMgPT4gPFQ+cmVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBvc3QoYWN0aW9uOiBzdHJpbmcsIGRhdGE/OiBhbnksIHJlc3BvbnNlVHlwZT8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKCFyZXNwb25zZVR5cGUpIHtcclxuICAgICAgcmVzcG9uc2VUeXBlID0gJ3RleHQnO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9LyR7YWN0aW9ufWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9zdFFTKGFjdGlvbjogc3RyaW5nLCBkYXRhPzogYW55LCByZXNwb25zZVR5cGU/KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICghcmVzcG9uc2VUeXBlKSB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZSA9ICd0ZXh0JztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS8ke2FjdGlvbn0ke3RoaXMuc2VyaWFsaXplUGFyYW1zKGRhdGEpfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBudWxsLCB7IHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGFjdGlvbjogc3RyaW5nLCBkYXRhPzogYW55LCByZXNwb25zZVR5cGU/KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICghcmVzcG9uc2VUeXBlKSB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZSA9ICd0ZXh0JztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS8ke2FjdGlvbn0ke3RoaXMuc2VyaWFsaXplUGFyYW1zKGRhdGEpfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh1cmwsIHsgcmVzcG9uc2VUeXBlOiByZXNwb25zZVR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICAvL2dldHNcclxuICBnZXRFeHRlcm5hbFRleHRGaWxlKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRKc29uRmlsZShmaWxlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QganNvbnNVcmwgPSBBcHBDb3JlU2V0dGluZ3MuanNvbnNVcmw7XHJcbiAgICBjb25zdCBqc29uVmVyc2lvbiA9IEFwcENvcmVTZXR0aW5ncy5qc29uVmVyc2lvbjtcclxuICAgIGNvbnN0IGlzQ0RORW5hYmxlZCA9IEFwcENvcmVTZXR0aW5ncy5pc0NETkVuYWJsZWQ7XHJcbiAgICBjb25zdCBjZG5TYXNUb2tlbiA9IEFwcENvcmVTZXR0aW5ncy5jZG5TYXNUb2tlbjtcclxuICAgIGxldCB1cmwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChpc0NETkVuYWJsZWQpIHtcclxuICAgICAgdXJsID0ganNvbnNVcmwgKyBcIi9cIiArIGZpbGVOYW1lICsgY2RuU2FzVG9rZW47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdXJsID0ganNvbnNVcmwgKyBcIi9cIiArIGZpbGVOYW1lICsgJz8nICsganNvblZlcnNpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IDxhbnlbXT5yZXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXh0ZXJuYWxKc29uRmlsZShsaWJuYW1lOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBleHRlcm5hbFVybCA9IEFwcENvcmVTZXR0aW5ncy5leHRlcm5hbFVybDtcclxuICAgIGNvbnN0IGpzb25WZXJzaW9uID0gQXBwQ29yZVNldHRpbmdzLmpzb25WZXJzaW9uO1xyXG4gICAgY29uc3QgaXNDRE5FbmFibGVkID0gQXBwQ29yZVNldHRpbmdzLmlzQ0RORW5hYmxlZDtcclxuICAgIGNvbnN0IGNkblNhc1Rva2VuID0gQXBwQ29yZVNldHRpbmdzLmNkblNhc1Rva2VuO1xyXG4gICAgbGV0IHVybCA9IFwiXCI7XHJcblxyXG4gICAgaWYgKGlzQ0RORW5hYmxlZCkge1xyXG4gICAgICB1cmwgPSBleHRlcm5hbFVybCArIFwiL1wiICsgbGlibmFtZSArIFwiL2pzb25zL1wiICsgZmlsZU5hbWUgKyBjZG5TYXNUb2tlbjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB1cmwgPSBleHRlcm5hbFVybCArIFwiL1wiICsgbGlibmFtZSArIFwiL2pzb25zL1wiICsgZmlsZU5hbWUgKyAnPycgKyBqc29uVmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXMgPT4gPGFueVtdPnJlcylcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,83 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 29 Apr 2018
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { Injectable } from "@angular/core";
18
+ import { map } from "rxjs/operators";
19
+ //App
20
+ import { BaseGridReadService } from "./base-grid-read.service";
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/common/http";
23
+ export class BaseGridEditService extends BaseGridReadService {
24
+ http;
25
+ baseUrl;
26
+ constructor(http) {
27
+ super(http);
28
+ this.http = http;
29
+ }
30
+ reset() {
31
+ this.data = [];
32
+ }
33
+ resetItem(dataItem) {
34
+ if (!dataItem) {
35
+ return;
36
+ }
37
+ //find orignal data item
38
+ const originalDataItem = this.data.find(item => item.Id === dataItem.Id);
39
+ //revert changes
40
+ Object.assign(originalDataItem, dataItem);
41
+ super.next(this.data);
42
+ }
43
+ save(data, isNew, sucess) {
44
+ const action = isNew ? 'add' : 'update';
45
+ this.reset();
46
+ this.post(action, data).subscribe({
47
+ next: (data) => {
48
+ },
49
+ error: (e) => {
50
+ this.read();
51
+ },
52
+ complete: () => {
53
+ this.read();
54
+ if (sucess)
55
+ sucess();
56
+ }
57
+ });
58
+ }
59
+ delete(data, sucess) {
60
+ this.reset();
61
+ const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;
62
+ return this.http.delete(url).subscribe({
63
+ next: (data) => {
64
+ this.read();
65
+ if (sucess)
66
+ sucess();
67
+ },
68
+ error: (e) => {
69
+ this.read();
70
+ }
71
+ });
72
+ }
73
+ post(action, data) {
74
+ const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
75
+ return this.http.post(url, data).pipe(map(res => res));
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridEditService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
78
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridEditService });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridEditService, decorators: [{
81
+ type: Injectable
82
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ncmlkLWVkaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL2Jhc2UvZ3JpZC9iYXNlLWdyaWQtZWRpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLEtBQUs7QUFDTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRy9ELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFHcEM7SUFGWixPQUFPLENBQVM7SUFFMUIsWUFBc0IsSUFBZ0I7UUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRFEsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUV0QyxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBYTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztTQUFFO1FBRTFCLHdCQUF3QjtRQUN4QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekUsZ0JBQWdCO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFTLEVBQUUsS0FBYyxFQUFFLE1BQWlCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2YsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLENBQUM7WUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDWixJQUFJLE1BQU07b0JBQUUsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUyxFQUFFLE1BQWlCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNaLElBQUksTUFBTTtvQkFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBVyxFQUFFLElBQVU7UUFDMUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBUSxHQUFHLENBQUMsQ0FDdkIsQ0FBQztJQUNKLENBQUM7dUdBM0RVLG1CQUFtQjsyR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IEFwciAyMDE4XHJcbiBcclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuLy9SeEpzXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEJhc2VHcmlkUmVhZFNlcnZpY2UgfSBmcm9tIFwiLi9iYXNlLWdyaWQtcmVhZC5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlR3JpZEVkaXRTZXJ2aWNlIGV4dGVuZHMgQmFzZUdyaWRSZWFkU2VydmljZSB7XHJcbiAgcHJvdGVjdGVkIGJhc2VVcmw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRJdGVtKGRhdGFJdGVtOiBhbnkpIHtcclxuICAgIGlmICghZGF0YUl0ZW0pIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgLy9maW5kIG9yaWduYWwgZGF0YSBpdGVtXHJcbiAgICBjb25zdCBvcmlnaW5hbERhdGFJdGVtID0gdGhpcy5kYXRhLmZpbmQoaXRlbSA9PiBpdGVtLklkID09PSBkYXRhSXRlbS5JZCk7XHJcblxyXG4gICAgLy9yZXZlcnQgY2hhbmdlc1xyXG4gICAgT2JqZWN0LmFzc2lnbihvcmlnaW5hbERhdGFJdGVtLCBkYXRhSXRlbSk7XHJcbiAgICBzdXBlci5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRhdGE6IGFueSwgaXNOZXc6IGJvb2xlYW4sIHN1Y2Vzcz86IEZ1bmN0aW9uKSB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSBpc05ldyA/ICdhZGQnIDogJ3VwZGF0ZSc7XHJcblxyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gICAgdGhpcy5wb3N0KGFjdGlvbiwgZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkKCk7XHJcbiAgICAgICAgaWYgKHN1Y2Vzcykgc3VjZXNzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGRhdGE6IGFueSwgc3VjZXNzPzogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2RlbGV0ZSR7dGhpcy5zZXJpYWxpemVQYXJhbXMoZGF0YSl9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLnJlYWQoKTtcclxuICAgICAgICBpZiAoc3VjZXNzKSBzdWNlc3MoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9zdChhY3Rpb246IGFueSwgZGF0YT86IGFueSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHthY3Rpb259JHt0aGlzLnNlcmlhbGl6ZVBhcmFtcyhkYXRhKX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZGF0YSkucGlwZShcclxuICAgICAgbWFwKHJlcyA9PiA8YW55W10+cmVzKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,65 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 29 Apr 2018
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { Injectable } from "@angular/core";
18
+ //RxJs
19
+ import { BehaviorSubject } from "rxjs";
20
+ import { map } from "rxjs/operators";
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/common/http";
23
+ export class BaseGridReadService extends BehaviorSubject {
24
+ http;
25
+ data = [];
26
+ baseReadUrl;
27
+ savedReadParams;
28
+ constructor(http) {
29
+ super([]);
30
+ this.http = http;
31
+ }
32
+ serializeParams(data) {
33
+ return data ? ('?' + $.param(data)) : '';
34
+ }
35
+ read(params, success, error) {
36
+ if (this.data.length) {
37
+ return super.next(this.data);
38
+ }
39
+ var url = this.baseReadUrl;
40
+ if (typeof params === 'undefined') {
41
+ params = this.savedReadParams;
42
+ }
43
+ if (params) {
44
+ url = this.baseReadUrl + `${this.serializeParams(params)}`;
45
+ this.savedReadParams = params;
46
+ }
47
+ this.http.get(url).pipe(map(res => res)).subscribe({
48
+ next: (data) => {
49
+ super.next(data);
50
+ if (success)
51
+ success();
52
+ },
53
+ error: (e) => {
54
+ if (error)
55
+ error(e);
56
+ }
57
+ });
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridReadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridReadService });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: BaseGridReadService, decorators: [{
63
+ type: Injectable
64
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ncmlkLXJlYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL2Jhc2UvZ3JpZC9iYXNlLWdyaWQtcmVhZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTTtBQUNOLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLckMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQXNCO0lBS3ZDO0lBSlosSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixXQUFXLENBQVM7SUFDcEIsZUFBZSxDQUFNO0lBRS9CLFlBQXNCLElBQWdCO1FBQ3BDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQVk7SUFFdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQVksRUFBRSxPQUFrQixFQUFFLEtBQWdCO1FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDcEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFM0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDL0I7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3hELElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLElBQUksT0FBTztvQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxLQUFLO29CQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0Q1UsbUJBQW1COzJHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgQXByIDIwMThcclxuIFxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vL1J4SnNcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlR3JpZFJlYWRTZXJ2aWNlIGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PGFueVtdPiB7XHJcbiAgcHJvdGVjdGVkIGRhdGE6IGFueVtdID0gW107XHJcbiAgcHJvdGVjdGVkIGJhc2VSZWFkVXJsOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIHNhdmVkUmVhZFBhcmFtczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoW10pO1xyXG4gIH1cclxuXHJcbiAgc2VyaWFsaXplUGFyYW1zKGRhdGE/OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRhdGEgPyAoJz8nICsgJC5wYXJhbShkYXRhKSkgOiAnJztcclxuICB9XHJcblxyXG4gIHJlYWQocGFyYW1zPzogYW55LCBzdWNjZXNzPzogRnVuY3Rpb24sIGVycm9yPzogRnVuY3Rpb24pIHtcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBzdXBlci5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHVybCA9IHRoaXMuYmFzZVJlYWRVcmw7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuc2F2ZWRSZWFkUGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdXJsID0gdGhpcy5iYXNlUmVhZFVybCArIGAke3RoaXMuc2VyaWFsaXplUGFyYW1zKHBhcmFtcyl9YDtcclxuICAgICAgdGhpcy5zYXZlZFJlYWRQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5odHRwLmdldCh1cmwpLnBpcGUobWFwKHJlcyA9PiA8YW55W10+cmVzKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICBzdXBlci5uZXh0KGRhdGEpO1xyXG4gICAgICAgIGlmIChzdWNjZXNzKSBzdWNjZXNzKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvcikgZXJyb3IoZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,24 +1,24 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 30 April 2020
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- export const Consts = {
17
- //core
18
- coreApiPath: 'api/core',
19
- //emails
20
- emailsApiPath: 'api/emails',
21
- //notifications
22
- notificationsApiPath: 'api/notifications'
23
- };
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 30 April 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ export const Consts = {
17
+ //core
18
+ coreApiPath: 'api/core',
19
+ //emails
20
+ emailsApiPath: 'api/emails',
21
+ //notifications
22
+ notificationsApiPath: 'api/notifications'
23
+ };
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2RhdGEvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLE1BQU07SUFDTixXQUFXLEVBQUUsVUFBVTtJQUV2QixRQUFRO0lBQ1IsYUFBYSxFQUFFLFlBQVk7SUFFM0IsZUFBZTtJQUNmLG9CQUFvQixFQUFFLG1CQUFtQjtDQUMxQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDMwIEFwcmlsIDIwMjAgXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IENvbnN0cyA9IHtcclxuICAvL2NvcmVcclxuICBjb3JlQXBpUGF0aDogJ2FwaS9jb3JlJyxcclxuXHJcbiAgLy9lbWFpbHNcclxuICBlbWFpbHNBcGlQYXRoOiAnYXBpL2VtYWlscycsXHJcblxyXG4gIC8vbm90aWZpY2F0aW9uc1xyXG4gIG5vdGlmaWNhdGlvbnNBcGlQYXRoOiAnYXBpL25vdGlmaWNhdGlvbnMnXHJcbn1cclxuIl19
@@ -0,0 +1,42 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 4 Mar 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { NgModule } from '@angular/core';
18
+ import { CommonModule } from '@angular/common';
19
+ import { CoreApiService } from './services/core-api.service';
20
+ import { EmailsApiService } from './services/emails-api.service';
21
+ import * as i0 from "@angular/core";
22
+ export class AnatolyDataModule {
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: AnatolyDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: AnatolyDataModule, imports: [CommonModule] });
25
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: AnatolyDataModule, providers: [
26
+ CoreApiService,
27
+ EmailsApiService
28
+ ], imports: [CommonModule] });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: AnatolyDataModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ imports: [
34
+ CommonModule
35
+ ],
36
+ providers: [
37
+ CoreApiService,
38
+ EmailsApiService
39
+ ]
40
+ }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvZGF0YS9kYXRhLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQVdqRSxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQVAxQixZQUFZO3dHQU9ILGlCQUFpQixhQUxqQjtZQUNULGNBQWM7WUFDZCxnQkFBZ0I7U0FDakIsWUFMQyxZQUFZOzsyRkFPSCxpQkFBaUI7a0JBVDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA0IE1hciAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IHRocm93SWZBbHJlYWR5TG9hZGVkIH0gZnJvbSAnLi4vY29yZS9ndWFyZHMvb25jZS1pbXBvcnQuZ3VhcmQnO1xyXG5pbXBvcnQgeyBDb3JlQXBpU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29yZS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVtYWlsc0FwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VtYWlscy1hcGkuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb3JlQXBpU2VydmljZSxcclxuICAgIEVtYWlsc0FwaVNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmF0b2x5RGF0YU1vZHVsZSB7XHJcbn1cclxuIl19
@@ -1,22 +1,22 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 2 Aug 2022
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- export * from './base/grid/base-grid-edit.service';
17
- export * from './base/grid/base-grid-read.service';
18
- export * from './base/base-api.service';
19
- export * from './services/notifications/notifications-api-service';
20
- export * from './services/emails-api.service';
21
- export * from './services/core-api.service';
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 2 Aug 2022
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ export * from './base/grid/base-grid-edit.service';
17
+ export * from './base/grid/base-grid-read.service';
18
+ export * from './base/base-api.service';
19
+ export * from './services/notifications/notifications-api-service';
20
+ export * from './services/emails-api.service';
21
+ export * from './services/core-api.service';
22
22
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgQXVnIDIwMjJcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UvZ3JpZC9iYXNlLWdyaWQtZWRpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlL2dyaWQvYmFzZS1ncmlkLXJlYWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS9iYXNlLWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtYXBpLXNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2VtYWlscy1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29yZS1hcGkuc2VydmljZSc7XHJcbiJdfQ==