sk-front-lib 0.17.48 → 0.17.49

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 (255) hide show
  1. package/api/model/api-config.d.ts +6 -0
  2. package/api/model/api-pageable-param.d.ts +11 -0
  3. package/api/model/api-pageable.d.ts +11 -0
  4. package/api/model/api-response.d.ts +8 -0
  5. package/api/model/index.d.ts +4 -0
  6. package/api/package.json +10 -0
  7. package/api/public_api.d.ts +3 -0
  8. package/api/sk-api.module.d.ts +12 -0
  9. package/api/sk-api.service.d.ts +34 -0
  10. package/api/sk-front-lib-api.d.ts +5 -0
  11. package/article/package.json +10 -0
  12. package/article/public_api.d.ts +6 -0
  13. package/article/sk-article-editor-server.component.d.ts +23 -0
  14. package/article/sk-article-editor.component.d.ts +27 -0
  15. package/article/sk-article-server.module.d.ts +10 -0
  16. package/article/sk-article.module.d.ts +9 -0
  17. package/article/sk-article.service.d.ts +96 -0
  18. package/article/sk-froala-editor.directive.d.ts +40 -0
  19. package/article/sk-front-lib-article.d.ts +5 -0
  20. package/crud/package.json +10 -0
  21. package/crud/public_api.d.ts +24 -0
  22. package/crud/sk-account.service.d.ts +16 -0
  23. package/crud/sk-affiliate.service.d.ts +38 -0
  24. package/crud/sk-auth-admin.guard.d.ts +13 -0
  25. package/crud/sk-auth.guard.d.ts +13 -0
  26. package/crud/sk-auth.service.d.ts +33 -0
  27. package/crud/sk-board.service.d.ts +21 -0
  28. package/crud/sk-brand.service.d.ts +19 -0
  29. package/crud/sk-cart.service.d.ts +72 -0
  30. package/crud/sk-category.service.d.ts +28 -0
  31. package/crud/sk-comment.service.d.ts +15 -0
  32. package/crud/sk-config.service.d.ts +13 -0
  33. package/crud/sk-contact.service.d.ts +15 -0
  34. package/crud/sk-coupon.service.d.ts +24 -0
  35. package/crud/sk-document.service.d.ts +51 -0
  36. package/crud/sk-etc.service.d.ts +12 -0
  37. package/crud/sk-file.service.d.ts +18 -0
  38. package/crud/sk-front-lib-crud.d.ts +5 -0
  39. package/crud/sk-keyword.service.d.ts +19 -0
  40. package/crud/sk-order.service.d.ts +45 -0
  41. package/crud/sk-point.service.d.ts +17 -0
  42. package/crud/sk-product.service.d.ts +84 -0
  43. package/crud/sk-promotion.service.d.ts +41 -0
  44. package/crud/sk-search.service.d.ts +12 -0
  45. package/crud/sk-store.service.d.ts +17 -0
  46. package/crud/sk-user.service.d.ts +25 -0
  47. package/esm2020/api/model/api-config.mjs +2 -0
  48. package/esm2020/api/model/api-pageable-param.mjs +29 -0
  49. package/esm2020/api/model/api-pageable.mjs +3 -0
  50. package/esm2020/api/model/api-response.mjs +3 -0
  51. package/esm2020/api/model/index.mjs +4 -0
  52. package/esm2020/api/public_api.mjs +4 -0
  53. package/esm2020/api/sk-api.module.mjs +35 -0
  54. package/esm2020/api/sk-api.service.mjs +145 -0
  55. package/esm2020/api/sk-front-lib-api.mjs +5 -0
  56. package/esm2020/article/public_api.mjs +7 -0
  57. package/esm2020/article/sk-article-editor-server.component.mjs +51 -0
  58. package/esm2020/article/sk-article-editor.component.mjs +93 -0
  59. package/esm2020/article/sk-article-server.module.mjs +33 -0
  60. package/esm2020/article/sk-article.module.mjs +32 -0
  61. package/esm2020/article/sk-article.service.mjs +248 -0
  62. package/esm2020/article/sk-froala-editor.directive.mjs +325 -0
  63. package/esm2020/article/sk-front-lib-article.mjs +5 -0
  64. package/esm2020/crud/public_api.mjs +25 -0
  65. package/esm2020/crud/sk-account.service.mjs +36 -0
  66. package/esm2020/crud/sk-affiliate.service.mjs +94 -0
  67. package/esm2020/crud/sk-auth-admin.guard.mjs +31 -0
  68. package/esm2020/crud/sk-auth.guard.mjs +31 -0
  69. package/esm2020/crud/sk-auth.service.mjs +67 -0
  70. package/esm2020/crud/sk-board.service.mjs +54 -0
  71. package/esm2020/crud/sk-brand.service.mjs +46 -0
  72. package/esm2020/crud/sk-cart.service.mjs +256 -0
  73. package/esm2020/crud/sk-category.service.mjs +63 -0
  74. package/esm2020/crud/sk-comment.service.mjs +43 -0
  75. package/esm2020/crud/sk-config.service.mjs +31 -0
  76. package/esm2020/crud/sk-contact.service.mjs +39 -0
  77. package/esm2020/crud/sk-coupon.service.mjs +62 -0
  78. package/esm2020/crud/sk-document.service.mjs +110 -0
  79. package/esm2020/crud/sk-etc.service.mjs +25 -0
  80. package/esm2020/crud/sk-file.service.mjs +37 -0
  81. package/esm2020/crud/sk-front-lib-crud.mjs +5 -0
  82. package/esm2020/crud/sk-keyword.service.mjs +46 -0
  83. package/esm2020/crud/sk-order.service.mjs +133 -0
  84. package/esm2020/crud/sk-point.service.mjs +45 -0
  85. package/esm2020/crud/sk-product.service.mjs +168 -0
  86. package/esm2020/crud/sk-promotion.service.mjs +84 -0
  87. package/esm2020/crud/sk-search.service.mjs +25 -0
  88. package/esm2020/crud/sk-store.service.mjs +47 -0
  89. package/esm2020/crud/sk-user.service.mjs +73 -0
  90. package/esm2020/google-analytics/google-analytics-router.module.mjs +30 -0
  91. package/esm2020/google-analytics/google-analytics.module.mjs +40 -0
  92. package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +24 -0
  93. package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +46 -0
  94. package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +2 -0
  95. package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +2 -0
  96. package/esm2020/google-analytics/public_api.mjs +11 -0
  97. package/esm2020/google-analytics/services/google-analytics.service.mjs +223 -0
  98. package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +5 -0
  99. package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +5 -0
  100. package/esm2020/google-analytics/types/ga-action.type.mjs +2 -0
  101. package/esm2020/google-analytics/types/ga-bind.type.mjs +2 -0
  102. package/esm2020/image/public_api.mjs +3 -0
  103. package/esm2020/image/sk-front-lib-image.mjs +5 -0
  104. package/esm2020/image/sk-image.component.mjs +262 -0
  105. package/esm2020/image/sk-image.module.mjs +43 -0
  106. package/esm2020/lib/sk-byte.pipe.mjs +4 -4
  107. package/esm2020/lib/sk-date-time.pipe.mjs +4 -4
  108. package/esm2020/lib/sk-date.pipe.mjs +4 -4
  109. package/esm2020/lib/sk-front-lib.module.mjs +5 -5
  110. package/esm2020/lib/sk-keys.pipe.mjs +4 -4
  111. package/esm2020/lib/sk-time.pipe.mjs +4 -4
  112. package/esm2020/model/lib/article.mjs +11 -0
  113. package/esm2020/model/lib/audit.mjs +12 -0
  114. package/esm2020/model/lib/auth.mjs +2 -0
  115. package/esm2020/model/lib/board.mjs +21 -0
  116. package/esm2020/model/lib/cart.mjs +29 -0
  117. package/esm2020/model/lib/comment.mjs +25 -0
  118. package/esm2020/model/lib/contact.mjs +28 -0
  119. package/esm2020/model/lib/coupon.mjs +23 -0
  120. package/esm2020/model/lib/document.mjs +49 -0
  121. package/esm2020/model/lib/etc.mjs +57 -0
  122. package/esm2020/model/lib/file.mjs +8 -0
  123. package/esm2020/model/lib/filetype.mjs +179 -0
  124. package/esm2020/model/lib/grid.mjs +83 -0
  125. package/esm2020/model/lib/nicepay.mjs +81 -0
  126. package/esm2020/model/lib/order.mjs +106 -0
  127. package/esm2020/model/lib/payment.mjs +35 -0
  128. package/esm2020/model/lib/point.mjs +47 -0
  129. package/esm2020/model/lib/product-series.mjs +2 -0
  130. package/esm2020/model/lib/product.mjs +156 -0
  131. package/esm2020/model/lib/promotion.mjs +80 -0
  132. package/esm2020/model/lib/shipping.mjs +37 -0
  133. package/esm2020/model/lib/tosspay.mjs +61 -0
  134. package/esm2020/model/lib/user.mjs +61 -0
  135. package/esm2020/model/public_api.mjs +24 -0
  136. package/esm2020/model/sk-front-lib-model.mjs +5 -0
  137. package/esm2020/search-address/dialog/dialog.component.mjs +27 -0
  138. package/esm2020/search-address/public_api.mjs +4 -0
  139. package/esm2020/search-address/sk-front-lib-search-address.mjs +5 -0
  140. package/esm2020/search-address/sk-search-address.directive.mjs +41 -0
  141. package/esm2020/search-address/sk-search-address.model.mjs +8 -0
  142. package/esm2020/search-address/sk-search-address.module.mjs +52 -0
  143. package/esm2020/search-address/sk-search-address.service.mjs +65 -0
  144. package/esm2020/uploader/public_api.mjs +4 -0
  145. package/esm2020/uploader/sk-front-lib-uploader.mjs +5 -0
  146. package/esm2020/uploader/sk-uploader-file-item.model.mjs +95 -0
  147. package/esm2020/uploader/sk-uploader.animation.mjs +47 -0
  148. package/esm2020/uploader/sk-uploader.class.mjs +188 -0
  149. package/esm2020/uploader/sk-uploader.component.mjs +120 -0
  150. package/esm2020/uploader/sk-uploader.directive.mjs +44 -0
  151. package/esm2020/uploader/sk-uploader.module.mjs +62 -0
  152. package/fesm2015/sk-front-lib-api.mjs +218 -0
  153. package/fesm2015/sk-front-lib-api.mjs.map +1 -0
  154. package/fesm2015/sk-front-lib-article.mjs +762 -0
  155. package/fesm2015/sk-front-lib-article.mjs.map +1 -0
  156. package/fesm2015/sk-front-lib-crud.mjs +1529 -0
  157. package/fesm2015/sk-front-lib-crud.mjs.map +1 -0
  158. package/fesm2015/sk-front-lib-google-analytics.mjs +361 -0
  159. package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -0
  160. package/fesm2015/sk-front-lib-image.mjs +306 -0
  161. package/fesm2015/sk-front-lib-image.mjs.map +1 -0
  162. package/fesm2015/sk-front-lib-model.mjs +1171 -0
  163. package/fesm2015/sk-front-lib-model.mjs.map +1 -0
  164. package/fesm2015/sk-front-lib-search-address.mjs +188 -0
  165. package/fesm2015/sk-front-lib-search-address.mjs.map +1 -0
  166. package/fesm2015/sk-front-lib-uploader.mjs +551 -0
  167. package/fesm2015/sk-front-lib-uploader.mjs.map +1 -0
  168. package/fesm2015/sk-front-lib.mjs +19 -19
  169. package/fesm2015/sk-front-lib.mjs.map +1 -1
  170. package/fesm2020/sk-front-lib-api.mjs +216 -0
  171. package/fesm2020/sk-front-lib-api.mjs.map +1 -0
  172. package/fesm2020/sk-front-lib-article.mjs +771 -0
  173. package/fesm2020/sk-front-lib-article.mjs.map +1 -0
  174. package/fesm2020/sk-front-lib-crud.mjs +1525 -0
  175. package/fesm2020/sk-front-lib-crud.mjs.map +1 -0
  176. package/fesm2020/sk-front-lib-google-analytics.mjs +358 -0
  177. package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -0
  178. package/fesm2020/sk-front-lib-image.mjs +309 -0
  179. package/fesm2020/sk-front-lib-image.mjs.map +1 -0
  180. package/fesm2020/sk-front-lib-model.mjs +1171 -0
  181. package/fesm2020/sk-front-lib-model.mjs.map +1 -0
  182. package/fesm2020/sk-front-lib-search-address.mjs +186 -0
  183. package/fesm2020/sk-front-lib-search-address.mjs.map +1 -0
  184. package/fesm2020/sk-front-lib-uploader.mjs +549 -0
  185. package/fesm2020/sk-front-lib-uploader.mjs.map +1 -0
  186. package/fesm2020/sk-front-lib.mjs +19 -19
  187. package/fesm2020/sk-front-lib.mjs.map +1 -1
  188. package/google-analytics/google-analytics-router.module.d.ts +8 -0
  189. package/google-analytics/google-analytics.module.d.ts +10 -0
  190. package/google-analytics/initializers/google-analytics-router.initializer.d.ts +5 -0
  191. package/google-analytics/initializers/google-analytics.initializer.d.ts +4 -0
  192. package/google-analytics/interfaces/google-analytics-command.d.ts +4 -0
  193. package/google-analytics/interfaces/google-analytics-settings.d.ts +6 -0
  194. package/google-analytics/package.json +10 -0
  195. package/google-analytics/public_api.d.ts +10 -0
  196. package/google-analytics/services/google-analytics.service.d.ts +85 -0
  197. package/google-analytics/sk-front-lib-google-analytics.d.ts +5 -0
  198. package/google-analytics/tokens/google-analytics-settings-token.d.ts +3 -0
  199. package/google-analytics/types/ga-action.type.d.ts +1 -0
  200. package/google-analytics/types/ga-bind.type.d.ts +1 -0
  201. package/image/package.json +10 -0
  202. package/image/public_api.d.ts +3 -0
  203. package/image/sk-front-lib-image.d.ts +5 -0
  204. package/image/sk-image.component.d.ts +112 -0
  205. package/image/sk-image.module.d.ts +12 -0
  206. package/lib/sk-byte.pipe.d.ts +1 -1
  207. package/lib/sk-date-time.pipe.d.ts +1 -1
  208. package/lib/sk-date.pipe.d.ts +1 -1
  209. package/lib/sk-keys.pipe.d.ts +1 -1
  210. package/lib/sk-time.pipe.d.ts +1 -1
  211. package/model/lib/article.d.ts +13 -0
  212. package/model/lib/audit.d.ts +13 -0
  213. package/model/lib/auth.d.ts +8 -0
  214. package/model/lib/board.d.ts +39 -0
  215. package/model/lib/cart.d.ts +45 -0
  216. package/model/lib/comment.d.ts +43 -0
  217. package/model/lib/contact.d.ts +40 -0
  218. package/model/lib/coupon.d.ts +116 -0
  219. package/model/lib/document.d.ts +104 -0
  220. package/model/lib/etc.d.ts +220 -0
  221. package/model/lib/file.d.ts +24 -0
  222. package/model/lib/filetype.d.ts +10 -0
  223. package/model/lib/grid.d.ts +97 -0
  224. package/model/lib/nicepay.d.ts +39 -0
  225. package/model/lib/order.d.ts +163 -0
  226. package/model/lib/payment.d.ts +32 -0
  227. package/model/lib/point.d.ts +30 -0
  228. package/model/lib/product-series.d.ts +25 -0
  229. package/model/lib/product.d.ts +309 -0
  230. package/model/lib/promotion.d.ts +169 -0
  231. package/model/lib/shipping.d.ts +44 -0
  232. package/model/lib/tosspay.d.ts +29 -0
  233. package/model/lib/user.d.ts +54 -0
  234. package/model/package.json +10 -0
  235. package/model/public_api.d.ts +23 -0
  236. package/model/sk-front-lib-model.d.ts +5 -0
  237. package/package.json +67 -3
  238. package/search-address/dialog/dialog.component.d.ts +13 -0
  239. package/search-address/package.json +10 -0
  240. package/search-address/public_api.d.ts +3 -0
  241. package/search-address/sk-front-lib-search-address.d.ts +5 -0
  242. package/search-address/sk-search-address.directive.d.ts +15 -0
  243. package/search-address/sk-search-address.model.d.ts +40 -0
  244. package/search-address/sk-search-address.module.d.ts +14 -0
  245. package/search-address/sk-search-address.service.d.ts +13 -0
  246. package/uploader/package.json +10 -0
  247. package/uploader/public_api.d.ts +4 -0
  248. package/uploader/sk-front-lib-uploader.d.ts +5 -0
  249. package/uploader/sk-uploader-file-item.model.d.ts +29 -0
  250. package/uploader/sk-uploader.animation.d.ts +1 -0
  251. package/uploader/sk-uploader.class.d.ts +47 -0
  252. package/uploader/sk-uploader.component.d.ts +28 -0
  253. package/uploader/sk-uploader.directive.d.ts +15 -0
  254. package/uploader/sk-uploader.module.d.ts +16 -0
  255. /package/{index.d.ts → sk-front-lib.d.ts} +0 -0
@@ -0,0 +1,358 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, APP_INITIALIZER, PLATFORM_ID, isDevMode, Injectable, Inject, APP_BOOTSTRAP_LISTENER, NgModule } from '@angular/core';
3
+ import { isPlatformServer, CommonModule } from '@angular/common';
4
+ import { Router, NavigationEnd } from '@angular/router';
5
+
6
+ const SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN = new InjectionToken('sk-google-analytics-setting', {
7
+ factory: () => ({ trackingCode: '' })
8
+ });
9
+
10
+ const SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER = {
11
+ provide: APP_INITIALIZER,
12
+ multi: true,
13
+ useFactory: GoogleAnalyticsInitializer,
14
+ deps: [
15
+ SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,
16
+ PLATFORM_ID
17
+ ]
18
+ };
19
+ function GoogleAnalyticsInitializer(_settings, platform) {
20
+ return async () => {
21
+ if (!_settings.trackingCode) {
22
+ if (!isDevMode()) {
23
+ console.error('Empty tracking code for Google Analytics. Make sure to provide one when initializing SkGoogleAnalyticsModule.');
24
+ }
25
+ return;
26
+ }
27
+ if (isPlatformServer(platform)) {
28
+ return;
29
+ }
30
+ // Set default ga.js uri
31
+ _settings.uri = _settings.uri || `https://www.googletagmanager.com/gtag/js?id=${_settings.trackingCode}`;
32
+ // these commands should run first!
33
+ const initialCommands = [
34
+ { command: 'js', values: [new Date()] },
35
+ { command: 'config', values: [_settings.trackingCode] }
36
+ ];
37
+ _settings.initCommands = [...initialCommands, ...(_settings.initCommands || [])];
38
+ window['dataLayer'] = window['dataLayer'] || [];
39
+ window['gtag'] = window['gtag'] || function () {
40
+ window['dataLayer'].push(arguments);
41
+ };
42
+ for (const command of _settings.initCommands) {
43
+ window['gtag'](command.command, ...command.values);
44
+ }
45
+ const s = document.createElement('script');
46
+ s.async = true;
47
+ s.src = _settings.uri;
48
+ const head = document.getElementsByTagName('head')[0];
49
+ head.appendChild(s);
50
+ };
51
+ }
52
+
53
+ class SkGoogleAnalyticsService {
54
+ constructor(_trackingId, platformId) {
55
+ this._trackingId = _trackingId;
56
+ this.platformId = platformId;
57
+ }
58
+ throw(err) {
59
+ if (console && console.error) {
60
+ console.error(err);
61
+ }
62
+ }
63
+ /**
64
+ * Call native GA Tag
65
+ *
66
+ * @param action config|event
67
+ * @param command Action specialization
68
+ * @param options Command configuration
69
+ */
70
+ gtag(action, command, ...options) {
71
+ if (isPlatformServer(this.platformId)) {
72
+ return;
73
+ }
74
+ try {
75
+ window['gtag'](action, command, ...options);
76
+ }
77
+ catch (err) {
78
+ this.throw(err);
79
+ }
80
+ }
81
+ /**
82
+ * Send an event trigger to GA. It is the same as call:
83
+ * ```js
84
+ * gtag('event', 'video_auto_play_start', {
85
+ * 'event_label': 'My promotional video',
86
+ * 'event_category': 'video_auto_play'
87
+ * });
88
+ * ```
89
+ *
90
+ * @param action 'video_auto_play_start'
91
+ * @param category 'video_auto_play'
92
+ * @param label 'My promotional video'
93
+ * @param value An value to measure something
94
+ */
95
+ event(action, category, label, value, interaction) {
96
+ if (isPlatformServer(this.platformId)) {
97
+ return;
98
+ }
99
+ try {
100
+ if (window['gtag']) {
101
+ const opt = {};
102
+ if (category) {
103
+ opt['event_category'] = category;
104
+ }
105
+ if (label) {
106
+ opt['event_label'] = label;
107
+ }
108
+ if (value) {
109
+ opt['value'] = value;
110
+ }
111
+ if (interaction !== undefined) {
112
+ opt['interaction'] = interaction;
113
+ }
114
+ this.gtag('event', action, opt);
115
+ }
116
+ }
117
+ catch (error) {
118
+ this.throw(error);
119
+ }
120
+ }
121
+ purchase(data) {
122
+ if (isPlatformServer(this.platformId)) {
123
+ return;
124
+ }
125
+ try {
126
+ if (window['gtag']) {
127
+ this.gtag('event', 'purchase', data);
128
+ }
129
+ }
130
+ catch (error) {
131
+ this.throw(error);
132
+ }
133
+ }
134
+ /**
135
+ * Send an page view event. This is the same as
136
+ *
137
+ * ```js
138
+ * gtag('config', 'GA_TRACKING_ID', {
139
+ * 'page_title' : 'Homepage',
140
+ * 'page_path': '/home'
141
+ * });
142
+ * ```
143
+ *
144
+ * The tracking ID is injected automatically by Inject Token NGX_GOOGLE_ANALYTICS_SETTINGS_TOKEN
145
+ *
146
+ * @param path /home
147
+ * @param title Homepage
148
+ * @param location '{ page_location }'
149
+ * @param options '{ ... custom dimentions }'
150
+ */
151
+ pageView(path, title, location, options) {
152
+ if (isPlatformServer(this.platformId)) {
153
+ return;
154
+ }
155
+ try {
156
+ if (window['gtag']) {
157
+ const opt = {};
158
+ if (path) {
159
+ opt['page_path'] = path;
160
+ }
161
+ if (title) {
162
+ opt['page_title'] = title;
163
+ }
164
+ if (location) {
165
+ opt['page_location'] = location;
166
+ }
167
+ if (options) {
168
+ Object.assign(opt, options);
169
+ }
170
+ this.gtag('config', this._trackingId.trackingCode, opt);
171
+ }
172
+ }
173
+ catch (error) {
174
+ this.throw(error);
175
+ }
176
+ }
177
+ /**
178
+ * Send an evento to report a App Page View. It is the same as
179
+ *
180
+ * ```js
181
+ * gtag('event', 'screen_view', {
182
+ * 'app_name': 'myAppName',
183
+ * 'screen_name' : 'Home'
184
+ * });
185
+ *
186
+ * ```
187
+ *
188
+ * @param screen 'screen_name'
189
+ * @param name 'app_name'
190
+ * @param appId 'app_id'
191
+ * @param appVersion 'app_version'
192
+ * @param installerId 'app_installer_id'
193
+ */
194
+ appView(screen, appName, appId, appVersion, installerId) {
195
+ if (isPlatformServer(this.platformId)) {
196
+ return;
197
+ }
198
+ try {
199
+ if (window['gtag']) {
200
+ const opt = {};
201
+ if (screen) {
202
+ opt['screen_name'] = screen;
203
+ }
204
+ if (appName) {
205
+ opt['app_name'] = appName;
206
+ }
207
+ if (appId) {
208
+ opt['app_id'] = appId;
209
+ }
210
+ if (appVersion) {
211
+ opt['app_version'] = appVersion;
212
+ }
213
+ if (installerId) {
214
+ opt['app_installer_id'] = installerId;
215
+ }
216
+ this.gtag('event', 'screen_view', opt);
217
+ }
218
+ }
219
+ catch (error) {
220
+ this.throw(error);
221
+ }
222
+ }
223
+ /**
224
+ * Send an event to GA to report an application error. It is the same as
225
+ *
226
+ * ```js
227
+ * gtag('event', 'exception', {
228
+ * 'description': 'error_description',
229
+ * 'fatal': false // set to true if the error is fatal
230
+ * });
231
+ * ```
232
+ *
233
+ * @param description 'error_description'
234
+ * @param fatal set to true if the error is fatal
235
+ */
236
+ exception(description, fatal) {
237
+ if (isPlatformServer(this.platformId)) {
238
+ return;
239
+ }
240
+ try {
241
+ if (window['gtag']) {
242
+ const opt = {};
243
+ if (description) {
244
+ opt['description'] = description;
245
+ }
246
+ if (fatal) {
247
+ opt['fatal'] = fatal;
248
+ }
249
+ this.gtag('event', 'exception', opt);
250
+ }
251
+ }
252
+ catch (error) {
253
+ this.throw(error);
254
+ }
255
+ }
256
+ }
257
+ SkGoogleAnalyticsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, deps: [{ token: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
258
+ SkGoogleAnalyticsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, providedIn: 'root' });
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, decorators: [{
260
+ type: Injectable,
261
+ args: [{
262
+ providedIn: 'root'
263
+ }]
264
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
265
+ type: Inject,
266
+ args: [SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN]
267
+ }] }, { type: Object, decorators: [{
268
+ type: Inject,
269
+ args: [PLATFORM_ID]
270
+ }] }]; } });
271
+
272
+ const SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER = {
273
+ provide: APP_BOOTSTRAP_LISTENER,
274
+ multi: true,
275
+ useFactory: GoogleAnalyticsRouterInitializer,
276
+ deps: [
277
+ SkGoogleAnalyticsService,
278
+ Router
279
+ ]
280
+ };
281
+ function GoogleAnalyticsRouterInitializer(_googleAnalyticsService, _router) {
282
+ return async (c) => {
283
+ _router
284
+ .events
285
+ .subscribe(event => {
286
+ if (event instanceof NavigationEnd) {
287
+ _googleAnalyticsService.pageView(event.urlAfterRedirects, undefined, document.location.href);
288
+ }
289
+ });
290
+ };
291
+ }
292
+
293
+ class SkGoogleAnalyticsModule {
294
+ static forRoot(trackingCode, commands = [], uri) {
295
+ return {
296
+ ngModule: SkGoogleAnalyticsModule,
297
+ providers: [
298
+ {
299
+ provide: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,
300
+ useValue: {
301
+ trackingCode,
302
+ commands,
303
+ uri
304
+ }
305
+ },
306
+ SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER,
307
+ ]
308
+ };
309
+ }
310
+ }
311
+ SkGoogleAnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
312
+ SkGoogleAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [CommonModule] });
313
+ SkGoogleAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [[
314
+ CommonModule,
315
+ ]] });
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, decorators: [{
317
+ type: NgModule,
318
+ args: [{
319
+ imports: [
320
+ CommonModule,
321
+ ],
322
+ declarations: [],
323
+ exports: [],
324
+ entryComponents: []
325
+ }]
326
+ }] });
327
+
328
+ class SkGoogleAnalyticsRouterModule {
329
+ }
330
+ SkGoogleAnalyticsRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
+ SkGoogleAnalyticsRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, imports: [CommonModule,
332
+ SkGoogleAnalyticsModule] });
333
+ SkGoogleAnalyticsRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, providers: [
334
+ SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER
335
+ ], imports: [[
336
+ CommonModule,
337
+ SkGoogleAnalyticsModule
338
+ ]] });
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, decorators: [{
340
+ type: NgModule,
341
+ args: [{
342
+ imports: [
343
+ CommonModule,
344
+ SkGoogleAnalyticsModule
345
+ ],
346
+ providers: [
347
+ SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER
348
+ ],
349
+ declarations: []
350
+ }]
351
+ }] });
352
+
353
+ /**
354
+ * Generated bundle index. Do not edit.
355
+ */
356
+
357
+ export { GoogleAnalyticsInitializer, GoogleAnalyticsRouterInitializer, SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER, SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER, SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN, SkGoogleAnalyticsModule, SkGoogleAnalyticsRouterModule, SkGoogleAnalyticsService };
358
+ //# sourceMappingURL=sk-front-lib-google-analytics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sk-front-lib-google-analytics.mjs","sources":["../../../projects/sk-front-lib/google-analytics/src/tokens/google-analytics-settings-token.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/services/google-analytics.service.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics-router.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics.module.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics-router.module.ts","../../../projects/sk-front-lib/google-analytics/src/sk-front-lib-google-analytics.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\n\nexport const SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN = new InjectionToken<ISkGoogleAnalyticsSettings>('sk-google-analytics-setting', {\n factory: () => ({ trackingCode: '' })\n});\n","import {APP_INITIALIZER, Inject, isDevMode, PLATFORM_ID, Provider} from \"@angular/core\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsCommand} from \"../interfaces/google-analytics-command\";\nimport {isPlatformServer} from \"@angular/common\";\n\nexport const SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: GoogleAnalyticsInitializer,\n deps: [\n SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n PLATFORM_ID\n ]\n};\n\nexport function GoogleAnalyticsInitializer(_settings: ISkGoogleAnalyticsSettings,\n platform: Object) {\n return async () => {\n if (!_settings.trackingCode) {\n if (!isDevMode()) {\n console.error('Empty tracking code for Google Analytics. Make sure to provide one when initializing SkGoogleAnalyticsModule.');\n }\n\n return;\n }\n\n if (isPlatformServer(platform)) {\n return;\n }\n\n // Set default ga.js uri\n _settings.uri = _settings.uri || `https://www.googletagmanager.com/gtag/js?id=${_settings.trackingCode}`;\n\n // these commands should run first!\n const initialCommands: Array<ISkGoogleAnalyticsCommand> = [\n {command: 'js', values: [new Date()]},\n {command: 'config', values: [_settings.trackingCode]}\n ];\n\n _settings.initCommands = [...initialCommands, ...(_settings.initCommands || [])];\n\n window['dataLayer'] = window['dataLayer'] || [];\n window['gtag'] = window['gtag'] || function () {\n window['dataLayer'].push(arguments);\n };\n\n for (const command of _settings.initCommands) {\n window['gtag'](command.command, ...command.values);\n }\n\n const s: HTMLScriptElement = document.createElement('script');\n s.async = true;\n s.src = _settings.uri;\n\n const head: HTMLHeadElement = document.getElementsByTagName('head')[0];\n head.appendChild(s);\n };\n}\n","import {Injectable, Inject, PLATFORM_ID} from '@angular/core';\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {GaAction} from \"../types/ga-action.type\";\nimport {isPlatformServer} from \"@angular/common\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkGoogleAnalyticsService {\n\n constructor(@Inject(SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN) protected _trackingId: ISkGoogleAnalyticsSettings,\n @Inject(PLATFORM_ID) private platformId: Object) {\n }\n\n protected throw(err: Error) {\n if (console && console.error) {\n console.error(err);\n }\n }\n\n /**\n * Call native GA Tag\n *\n * @param action config|event\n * @param command Action specialization\n * @param options Command configuration\n */\n gtag(action: string, command: string, ...options: Array<any>) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n window['gtag'](action, command, ...options);\n } catch (err) {\n this.throw(err);\n }\n }\n\n /**\n * Send an event trigger to GA. It is the same as call:\n * ```js\n * gtag('event', 'video_auto_play_start', {\n * 'event_label': 'My promotional video',\n * 'event_category': 'video_auto_play'\n * });\n * ```\n *\n * @param action 'video_auto_play_start'\n * @param category 'video_auto_play'\n * @param label 'My promotional video'\n * @param value An value to measure something\n */\n event(action: GaAction | string, category?: string, label?: string, value?: number, interaction?: boolean) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n if (window['gtag']) {\n const opt = {};\n if (category) {\n opt['event_category'] = category;\n }\n if (label) {\n opt['event_label'] = label;\n }\n if (value) {\n opt['value'] = value;\n }\n if (interaction !== undefined) {\n opt['interaction'] = interaction;\n }\n this.gtag('event', action as string, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n purchase(data) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n if (window['gtag']) {\n this.gtag('event', 'purchase', data);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an page view event. This is the same as\n *\n * ```js\n * gtag('config', 'GA_TRACKING_ID', {\n * 'page_title' : 'Homepage',\n * 'page_path': '/home'\n * });\n * ```\n *\n * The tracking ID is injected automatically by Inject Token NGX_GOOGLE_ANALYTICS_SETTINGS_TOKEN\n *\n * @param path /home\n * @param title Homepage\n * @param location '{ page_location }'\n * @param options '{ ... custom dimentions }'\n */\n pageView(path?: string, title?: string, location?: string, options?: Object) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n if (window['gtag']) {\n const opt = {};\n if (path) {\n opt['page_path'] = path;\n }\n if (title) {\n opt['page_title'] = title;\n }\n if (location) {\n opt['page_location'] = location;\n }\n if (options) {\n Object.assign(opt, options);\n }\n this.gtag('config', this._trackingId.trackingCode, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an evento to report a App Page View. It is the same as\n *\n * ```js\n * gtag('event', 'screen_view', {\n * 'app_name': 'myAppName',\n * 'screen_name' : 'Home'\n * });\n *\n * ```\n *\n * @param screen 'screen_name'\n * @param name 'app_name'\n * @param appId 'app_id'\n * @param appVersion 'app_version'\n * @param installerId 'app_installer_id'\n */\n appView(screen: string, appName: string, appId?: string, appVersion?: string, installerId?: string) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n if (window['gtag']) {\n const opt = {};\n if (screen) {\n opt['screen_name'] = screen;\n }\n if (appName) {\n opt['app_name'] = appName;\n }\n if (appId) {\n opt['app_id'] = appId;\n }\n if (appVersion) {\n opt['app_version'] = appVersion;\n }\n if (installerId) {\n opt['app_installer_id'] = installerId;\n }\n this.gtag('event', 'screen_view', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an event to GA to report an application error. It is the same as\n *\n * ```js\n * gtag('event', 'exception', {\n * 'description': 'error_description',\n * 'fatal': false // set to true if the error is fatal\n * });\n * ```\n *\n * @param description 'error_description'\n * @param fatal set to true if the error is fatal\n */\n exception(description?: string, fatal?: boolean) {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n try {\n if (window['gtag']) {\n const opt = {};\n if (description) {\n opt['description'] = description;\n }\n if (fatal) {\n opt['fatal'] = fatal;\n }\n this.gtag('event', 'exception', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n}\n","import {APP_BOOTSTRAP_LISTENER, ComponentRef, Provider} from \"@angular/core\";\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {SkGoogleAnalyticsService} from \"../services/google-analytics.service\";\n\nexport const SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER: Provider = {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: GoogleAnalyticsRouterInitializer,\n deps: [\n SkGoogleAnalyticsService,\n Router\n ]\n};\n\nexport function GoogleAnalyticsRouterInitializer(\n _googleAnalyticsService: SkGoogleAnalyticsService,\n _router: Router\n) {\n return async (c: ComponentRef<any>) => {\n _router\n .events\n .subscribe(event => {\n if (event instanceof NavigationEnd) {\n _googleAnalyticsService.pageView(event.urlAfterRedirects, undefined, document.location.href);\n }\n });\n };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN } from './tokens/google-analytics-settings-token';\nimport { ISkGoogleAnalyticsCommand } from './interfaces/google-analytics-command';\nimport { SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER } from './initializers/google-analytics.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [],\n exports: [],\n entryComponents: []\n})\nexport class SkGoogleAnalyticsModule {\n static forRoot(trackingCode: string, commands: ISkGoogleAnalyticsCommand[] = [], uri?: string): ModuleWithProviders<SkGoogleAnalyticsModule> {\n return {\n ngModule: SkGoogleAnalyticsModule,\n providers: [\n {\n provide: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n useValue: {\n trackingCode,\n commands,\n uri\n }\n },\n SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER,\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkGoogleAnalyticsModule } from './google-analytics.module';\nimport { SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER } from './initializers/google-analytics-router.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n SkGoogleAnalyticsModule\n ],\n providers: [\n SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER\n ],\n declarations: []\n})\nexport class SkGoogleAnalyticsRouterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}