angulartics2 9.0.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/README.md +3 -2
  2. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js +13 -223
  3. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js.map +1 -1
  4. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js +1 -15
  5. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js.map +1 -1
  6. package/adobeanalytics/esm2015/adobeanalytics.js +7 -9
  7. package/adobeanalytics/esm2015/angulartics2-adobeanalytics.js +1 -1
  8. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js +6 -7
  9. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js.map +1 -1
  10. package/adobeanalytics/package.json +3 -5
  11. package/amplitude/bundles/angulartics2-amplitude.umd.js +12 -222
  12. package/amplitude/bundles/angulartics2-amplitude.umd.js.map +1 -1
  13. package/amplitude/bundles/angulartics2-amplitude.umd.min.js +1 -15
  14. package/amplitude/bundles/angulartics2-amplitude.umd.min.js.map +1 -1
  15. package/amplitude/esm2015/amplitude.js +7 -9
  16. package/amplitude/esm2015/angulartics2-amplitude.js +1 -1
  17. package/amplitude/fesm2015/angulartics2-amplitude.js +6 -7
  18. package/amplitude/fesm2015/angulartics2-amplitude.js.map +1 -1
  19. package/amplitude/package.json +3 -5
  20. package/appinsights/bundles/angulartics2-appinsights.umd.js +17 -227
  21. package/appinsights/bundles/angulartics2-appinsights.umd.js.map +1 -1
  22. package/appinsights/bundles/angulartics2-appinsights.umd.min.js +1 -15
  23. package/appinsights/bundles/angulartics2-appinsights.umd.min.js.map +1 -1
  24. package/appinsights/esm2015/angulartics2-appinsights.js +1 -1
  25. package/appinsights/esm2015/appinsights.js +8 -10
  26. package/appinsights/fesm2015/angulartics2-appinsights.js +6 -7
  27. package/appinsights/fesm2015/angulartics2-appinsights.js.map +1 -1
  28. package/appinsights/package.json +3 -5
  29. package/baidu/bundles/angulartics2-baidu.umd.js +12 -222
  30. package/baidu/bundles/angulartics2-baidu.umd.js.map +1 -1
  31. package/baidu/bundles/angulartics2-baidu.umd.min.js +1 -15
  32. package/baidu/bundles/angulartics2-baidu.umd.min.js.map +1 -1
  33. package/baidu/esm2015/angulartics2-baidu.js +1 -1
  34. package/baidu/esm2015/baidu.js +7 -9
  35. package/baidu/fesm2015/angulartics2-baidu.js +6 -7
  36. package/baidu/fesm2015/angulartics2-baidu.js.map +1 -1
  37. package/baidu/package.json +3 -5
  38. package/bundles/angulartics2.umd.js +355 -279
  39. package/bundles/angulartics2.umd.js.map +1 -1
  40. package/bundles/angulartics2.umd.min.js +12 -12
  41. package/bundles/angulartics2.umd.min.js.map +1 -1
  42. package/clicky/bundles/angulartics2-clicky.umd.js +13 -223
  43. package/clicky/bundles/angulartics2-clicky.umd.js.map +1 -1
  44. package/clicky/bundles/angulartics2-clicky.umd.min.js +1 -15
  45. package/clicky/bundles/angulartics2-clicky.umd.min.js.map +1 -1
  46. package/clicky/esm2015/angulartics2-clicky.js +1 -1
  47. package/clicky/esm2015/clicky.interfaces.js +1 -1
  48. package/clicky/esm2015/clicky.js +7 -9
  49. package/clicky/fesm2015/angulartics2-clicky.js +6 -7
  50. package/clicky/fesm2015/angulartics2-clicky.js.map +1 -1
  51. package/clicky/package.json +3 -5
  52. package/esm2015/angular-router.js +7 -9
  53. package/esm2015/angulartics2-config.js +1 -1
  54. package/esm2015/angulartics2-core.js +8 -11
  55. package/esm2015/angulartics2-interfaces.js +1 -1
  56. package/esm2015/angulartics2-token.js +1 -1
  57. package/esm2015/angulartics2.js +1 -1
  58. package/esm2015/angulartics2.module.js +10 -13
  59. package/esm2015/angulartics2On.js +22 -35
  60. package/esm2015/public_api.js +2 -1
  61. package/esm2015/routerless.js +1 -1
  62. package/facebook/bundles/angulartics2-facebook.umd.js +12 -222
  63. package/facebook/bundles/angulartics2-facebook.umd.js.map +1 -1
  64. package/facebook/bundles/angulartics2-facebook.umd.min.js +1 -15
  65. package/facebook/bundles/angulartics2-facebook.umd.min.js.map +1 -1
  66. package/facebook/esm2015/angulartics2-facebook.js +1 -1
  67. package/facebook/esm2015/facebook.js +7 -9
  68. package/facebook/fesm2015/angulartics2-facebook.js +6 -7
  69. package/facebook/fesm2015/angulartics2-facebook.js.map +1 -1
  70. package/facebook/package.json +3 -5
  71. package/fesm2015/angulartics2.js +42 -55
  72. package/fesm2015/angulartics2.js.map +1 -1
  73. package/ga/bundles/angulartics2-ga.umd.js +313 -222
  74. package/ga/bundles/angulartics2-ga.umd.js.map +1 -1
  75. package/ga/bundles/angulartics2-ga.umd.min.js +11 -11
  76. package/ga/bundles/angulartics2-ga.umd.min.js.map +1 -1
  77. package/ga/esm2015/angulartics2-ga.js +1 -1
  78. package/ga/esm2015/ga.js +8 -10
  79. package/ga/fesm2015/angulartics2-ga.js +6 -7
  80. package/ga/fesm2015/angulartics2-ga.js.map +1 -1
  81. package/ga/package.json +3 -5
  82. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js +9 -219
  83. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js.map +1 -1
  84. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js +1 -15
  85. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js.map +1 -1
  86. package/ga-enhanced-ecom/esm2015/angulartics2-ga-enhanced-ecom.js +1 -1
  87. package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom-options.js +1 -1
  88. package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom.js +6 -8
  89. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js +5 -6
  90. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js.map +1 -1
  91. package/ga-enhanced-ecom/package.json +3 -5
  92. package/gosquared/bundles/angulartics2-gosquared.umd.js +14 -228
  93. package/gosquared/bundles/angulartics2-gosquared.umd.js.map +1 -1
  94. package/gosquared/bundles/angulartics2-gosquared.umd.min.js +1 -15
  95. package/gosquared/bundles/angulartics2-gosquared.umd.min.js.map +1 -1
  96. package/gosquared/esm2015/angulartics2-gosquared.js +1 -1
  97. package/gosquared/esm2015/gosquared.js +7 -9
  98. package/gosquared/fesm2015/angulartics2-gosquared.js +6 -7
  99. package/gosquared/fesm2015/angulartics2-gosquared.js.map +1 -1
  100. package/gosquared/package.json +3 -5
  101. package/gst/bundles/angulartics2-gst.umd.js +316 -225
  102. package/gst/bundles/angulartics2-gst.umd.js.map +1 -1
  103. package/gst/bundles/angulartics2-gst.umd.min.js +11 -11
  104. package/gst/bundles/angulartics2-gst.umd.min.js.map +1 -1
  105. package/gst/esm2015/angulartics2-gst.js +1 -1
  106. package/gst/esm2015/gst-interfaces.js +1 -1
  107. package/gst/esm2015/gst.js +8 -10
  108. package/gst/fesm2015/angulartics2-gst.js +6 -7
  109. package/gst/fesm2015/angulartics2-gst.js.map +1 -1
  110. package/gst/package.json +3 -5
  111. package/gtm/bundles/angulartics2-gtm.umd.js +14 -224
  112. package/gtm/bundles/angulartics2-gtm.umd.js.map +1 -1
  113. package/gtm/bundles/angulartics2-gtm.umd.min.js +1 -15
  114. package/gtm/bundles/angulartics2-gtm.umd.min.js.map +1 -1
  115. package/gtm/esm2015/angulartics2-gtm.js +1 -1
  116. package/gtm/esm2015/gtm.js +8 -10
  117. package/gtm/fesm2015/angulartics2-gtm.js +6 -7
  118. package/gtm/fesm2015/angulartics2-gtm.js.map +1 -1
  119. package/gtm/package.json +3 -5
  120. package/hubspot/bundles/angulartics2-hubspot.umd.js +12 -222
  121. package/hubspot/bundles/angulartics2-hubspot.umd.js.map +1 -1
  122. package/hubspot/bundles/angulartics2-hubspot.umd.min.js +1 -15
  123. package/hubspot/bundles/angulartics2-hubspot.umd.min.js.map +1 -1
  124. package/hubspot/esm2015/angulartics2-hubspot.js +1 -1
  125. package/hubspot/esm2015/hubspot.js +7 -9
  126. package/hubspot/fesm2015/angulartics2-hubspot.js +6 -7
  127. package/hubspot/fesm2015/angulartics2-hubspot.js.map +1 -1
  128. package/hubspot/package.json +3 -5
  129. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js +12 -222
  130. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js.map +1 -1
  131. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js +1 -15
  132. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js.map +1 -1
  133. package/ibm-digital-analytics/esm2015/angulartics2-ibm-digital-analytics.js +1 -1
  134. package/ibm-digital-analytics/esm2015/ibm-digital-analytics.js +7 -9
  135. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js +6 -7
  136. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js.map +1 -1
  137. package/ibm-digital-analytics/package.json +3 -5
  138. package/intercom/bundles/angulartics2-intercom.umd.js +12 -222
  139. package/intercom/bundles/angulartics2-intercom.umd.js.map +1 -1
  140. package/intercom/bundles/angulartics2-intercom.umd.min.js +1 -15
  141. package/intercom/bundles/angulartics2-intercom.umd.min.js.map +1 -1
  142. package/intercom/esm2015/angulartics2-intercom.js +1 -1
  143. package/intercom/esm2015/intercom.js +7 -9
  144. package/intercom/fesm2015/angulartics2-intercom.js +6 -7
  145. package/intercom/fesm2015/angulartics2-intercom.js.map +1 -1
  146. package/intercom/package.json +3 -5
  147. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js +12 -222
  148. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js.map +1 -1
  149. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js +1 -15
  150. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js.map +1 -1
  151. package/kissmetrics/esm2015/angulartics2-kissmetrics.js +1 -1
  152. package/kissmetrics/esm2015/kissmetrics.js +7 -9
  153. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js +6 -7
  154. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js.map +1 -1
  155. package/kissmetrics/package.json +3 -5
  156. package/launch/bundles/angulartics2-launch.umd.js +12 -222
  157. package/launch/bundles/angulartics2-launch.umd.js.map +1 -1
  158. package/launch/bundles/angulartics2-launch.umd.min.js +1 -15
  159. package/launch/bundles/angulartics2-launch.umd.min.js.map +1 -1
  160. package/launch/esm2015/angulartics2-launch.js +1 -1
  161. package/launch/esm2015/launch.js +7 -9
  162. package/launch/fesm2015/angulartics2-launch.js +6 -7
  163. package/launch/fesm2015/angulartics2-launch.js.map +1 -1
  164. package/launch/package.json +3 -5
  165. package/{piwik → matomo}/README.md +20 -20
  166. package/{piwik/angulartics2-piwik.d.ts → matomo/angulartics2-matomo.d.ts} +1 -1
  167. package/matomo/angulartics2-matomo.metadata.json +1 -0
  168. package/matomo/bundles/angulartics2-matomo.umd.js +309 -0
  169. package/matomo/bundles/angulartics2-matomo.umd.js.map +1 -0
  170. package/matomo/bundles/angulartics2-matomo.umd.min.js +2 -0
  171. package/matomo/bundles/angulartics2-matomo.umd.min.js.map +1 -0
  172. package/matomo/esm2015/angulartics2-matomo.js +5 -0
  173. package/matomo/esm2015/matomo.js +294 -0
  174. package/{piwik/fesm2015/angulartics2-piwik.js → matomo/fesm2015/angulartics2-matomo.js} +74 -33
  175. package/matomo/fesm2015/angulartics2-matomo.js.map +1 -0
  176. package/matomo/matomo.d.ts +137 -0
  177. package/matomo/package.json +20 -0
  178. package/mixpanel/bundles/angulartics2-mixpanel.umd.js +12 -222
  179. package/mixpanel/bundles/angulartics2-mixpanel.umd.js.map +1 -1
  180. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js +1 -15
  181. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js.map +1 -1
  182. package/mixpanel/esm2015/angulartics2-mixpanel.js +1 -1
  183. package/mixpanel/esm2015/mixpanel.js +7 -9
  184. package/mixpanel/fesm2015/angulartics2-mixpanel.js +6 -7
  185. package/mixpanel/fesm2015/angulartics2-mixpanel.js.map +1 -1
  186. package/mixpanel/package.json +3 -5
  187. package/package.json +10 -10
  188. package/pyze/bundles/angulartics2-pyze.umd.js +12 -222
  189. package/pyze/bundles/angulartics2-pyze.umd.js.map +1 -1
  190. package/pyze/bundles/angulartics2-pyze.umd.min.js +1 -15
  191. package/pyze/bundles/angulartics2-pyze.umd.min.js.map +1 -1
  192. package/pyze/esm2015/angulartics2-pyze.js +1 -1
  193. package/pyze/esm2015/pyze.js +7 -9
  194. package/pyze/fesm2015/angulartics2-pyze.js +6 -7
  195. package/pyze/fesm2015/angulartics2-pyze.js.map +1 -1
  196. package/pyze/package.json +3 -5
  197. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js +10 -222
  198. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js.map +1 -1
  199. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js +1 -15
  200. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js.map +1 -1
  201. package/routerlessmodule/esm2015/angulartics2-routerlessmodule.js +1 -1
  202. package/routerlessmodule/esm2015/routerless.module.js +9 -12
  203. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js +8 -10
  204. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js.map +1 -1
  205. package/routerlessmodule/package.json +3 -5
  206. package/segment/angulartics2-segment.metadata.json +1 -1
  207. package/segment/bundles/angulartics2-segment.umd.js +20 -222
  208. package/segment/bundles/angulartics2-segment.umd.js.map +1 -1
  209. package/segment/bundles/angulartics2-segment.umd.min.js +1 -15
  210. package/segment/bundles/angulartics2-segment.umd.min.js.map +1 -1
  211. package/segment/esm2015/angulartics2-segment.js +1 -1
  212. package/segment/esm2015/segment.js +15 -9
  213. package/segment/fesm2015/angulartics2-segment.js +14 -7
  214. package/segment/fesm2015/angulartics2-segment.js.map +1 -1
  215. package/segment/package.json +3 -5
  216. package/segment/segment.d.ts +6 -0
  217. package/splunk/bundles/angulartics2-splunk.umd.js +12 -222
  218. package/splunk/bundles/angulartics2-splunk.umd.js.map +1 -1
  219. package/splunk/bundles/angulartics2-splunk.umd.min.js +1 -15
  220. package/splunk/bundles/angulartics2-splunk.umd.min.js.map +1 -1
  221. package/splunk/esm2015/angulartics2-splunk.js +1 -1
  222. package/splunk/esm2015/splunk.js +7 -9
  223. package/splunk/fesm2015/angulartics2-splunk.js +6 -7
  224. package/splunk/fesm2015/angulartics2-splunk.js.map +1 -1
  225. package/splunk/package.json +3 -5
  226. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js +19 -231
  227. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js.map +1 -1
  228. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js +1 -15
  229. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js.map +1 -1
  230. package/uiroutermodule/esm2015/angulartics2-uiroutermodule.js +1 -1
  231. package/uiroutermodule/esm2015/public_api.js +1 -1
  232. package/uiroutermodule/esm2015/uirouter.js +8 -10
  233. package/uiroutermodule/esm2015/uirouter.module.js +9 -12
  234. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js +14 -16
  235. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js.map +1 -1
  236. package/uiroutermodule/package.json +3 -5
  237. package/woopra/bundles/angulartics2-woopra.umd.js +12 -222
  238. package/woopra/bundles/angulartics2-woopra.umd.js.map +1 -1
  239. package/woopra/bundles/angulartics2-woopra.umd.min.js +1 -15
  240. package/woopra/bundles/angulartics2-woopra.umd.min.js.map +1 -1
  241. package/woopra/esm2015/angulartics2-woopra.js +1 -1
  242. package/woopra/esm2015/woopra.js +7 -9
  243. package/woopra/fesm2015/angulartics2-woopra.js +6 -7
  244. package/woopra/fesm2015/angulartics2-woopra.js.map +1 -1
  245. package/woopra/package.json +3 -5
  246. package/adobeanalytics/esm5/adobeanalytics.js +0 -108
  247. package/adobeanalytics/esm5/angulartics2-adobeanalytics.js +0 -5
  248. package/adobeanalytics/fesm5/angulartics2-adobeanalytics.js +0 -111
  249. package/adobeanalytics/fesm5/angulartics2-adobeanalytics.js.map +0 -1
  250. package/amplitude/esm5/amplitude.js +0 -78
  251. package/amplitude/esm5/angulartics2-amplitude.js +0 -5
  252. package/amplitude/fesm5/angulartics2-amplitude.js +0 -82
  253. package/amplitude/fesm5/angulartics2-amplitude.js.map +0 -1
  254. package/appinsights/esm5/angulartics2-appinsights.js +0 -5
  255. package/appinsights/esm5/appinsights.js +0 -129
  256. package/appinsights/fesm5/angulartics2-appinsights.js +0 -130
  257. package/appinsights/fesm5/angulartics2-appinsights.js.map +0 -1
  258. package/baidu/esm5/angulartics2-baidu.js +0 -5
  259. package/baidu/esm5/baidu.js +0 -88
  260. package/baidu/fesm5/angulartics2-baidu.js +0 -92
  261. package/baidu/fesm5/angulartics2-baidu.js.map +0 -1
  262. package/clicky/esm5/angulartics2-clicky.js +0 -5
  263. package/clicky/esm5/clicky.interfaces.js +0 -1
  264. package/clicky/esm5/clicky.js +0 -72
  265. package/clicky/fesm5/angulartics2-clicky.js +0 -75
  266. package/clicky/fesm5/angulartics2-clicky.js.map +0 -1
  267. package/esm5/angular-router.js +0 -39
  268. package/esm5/angulartics2-config.js +0 -21
  269. package/esm5/angulartics2-core.js +0 -109
  270. package/esm5/angulartics2-interfaces.js +0 -1
  271. package/esm5/angulartics2-token.js +0 -3
  272. package/esm5/angulartics2.js +0 -5
  273. package/esm5/angulartics2.module.js +0 -33
  274. package/esm5/angulartics2On.js +0 -73
  275. package/esm5/public_api.js +0 -8
  276. package/esm5/routerless.js +0 -14
  277. package/facebook/esm5/angulartics2-facebook.js +0 -5
  278. package/facebook/esm5/facebook.js +0 -52
  279. package/facebook/fesm5/angulartics2-facebook.js +0 -56
  280. package/facebook/fesm5/angulartics2-facebook.js.map +0 -1
  281. package/fesm5/angulartics2.js +0 -268
  282. package/fesm5/angulartics2.js.map +0 -1
  283. package/ga/esm5/angulartics2-ga.js +0 -5
  284. package/ga/esm5/ga.js +0 -289
  285. package/ga/fesm5/angulartics2-ga.js +0 -292
  286. package/ga/fesm5/angulartics2-ga.js.map +0 -1
  287. package/ga-enhanced-ecom/esm5/angulartics2-ga-enhanced-ecom.js +0 -5
  288. package/ga-enhanced-ecom/esm5/ga-enhanced-ecom-options.js +0 -6
  289. package/ga-enhanced-ecom/esm5/ga-enhanced-ecom.js +0 -35
  290. package/ga-enhanced-ecom/fesm5/angulartics2-ga-enhanced-ecom.js +0 -40
  291. package/ga-enhanced-ecom/fesm5/angulartics2-ga-enhanced-ecom.js.map +0 -1
  292. package/gosquared/esm5/angulartics2-gosquared.js +0 -5
  293. package/gosquared/esm5/gosquared.js +0 -66
  294. package/gosquared/fesm5/angulartics2-gosquared.js +0 -70
  295. package/gosquared/fesm5/angulartics2-gosquared.js.map +0 -1
  296. package/gst/esm5/angulartics2-gst.js +0 -5
  297. package/gst/esm5/gst-interfaces.js +0 -1
  298. package/gst/esm5/gst.js +0 -203
  299. package/gst/fesm5/angulartics2-gst.js +0 -206
  300. package/gst/fesm5/angulartics2-gst.js.map +0 -1
  301. package/gtm/esm5/angulartics2-gtm.js +0 -5
  302. package/gtm/esm5/gtm.js +0 -115
  303. package/gtm/fesm5/angulartics2-gtm.js +0 -118
  304. package/gtm/fesm5/angulartics2-gtm.js.map +0 -1
  305. package/hubspot/esm5/angulartics2-hubspot.js +0 -5
  306. package/hubspot/esm5/hubspot.js +0 -48
  307. package/hubspot/fesm5/angulartics2-hubspot.js +0 -52
  308. package/hubspot/fesm5/angulartics2-hubspot.js.map +0 -1
  309. package/ibm-digital-analytics/esm5/angulartics2-ibm-digital-analytics.js +0 -5
  310. package/ibm-digital-analytics/esm5/ibm-digital-analytics.js +0 -132
  311. package/ibm-digital-analytics/fesm5/angulartics2-ibm-digital-analytics.js +0 -136
  312. package/ibm-digital-analytics/fesm5/angulartics2-ibm-digital-analytics.js.map +0 -1
  313. package/intercom/esm5/angulartics2-intercom.js +0 -5
  314. package/intercom/esm5/intercom.js +0 -69
  315. package/intercom/fesm5/angulartics2-intercom.js +0 -73
  316. package/intercom/fesm5/angulartics2-intercom.js.map +0 -1
  317. package/kissmetrics/esm5/angulartics2-kissmetrics.js +0 -5
  318. package/kissmetrics/esm5/kissmetrics.js +0 -49
  319. package/kissmetrics/fesm5/angulartics2-kissmetrics.js +0 -53
  320. package/kissmetrics/fesm5/angulartics2-kissmetrics.js.map +0 -1
  321. package/launch/esm5/angulartics2-launch.js +0 -5
  322. package/launch/esm5/launch.js +0 -68
  323. package/launch/fesm5/angulartics2-launch.js +0 -72
  324. package/launch/fesm5/angulartics2-launch.js.map +0 -1
  325. package/mixpanel/esm5/angulartics2-mixpanel.js +0 -5
  326. package/mixpanel/esm5/mixpanel.js +0 -122
  327. package/mixpanel/fesm5/angulartics2-mixpanel.js +0 -126
  328. package/mixpanel/fesm5/angulartics2-mixpanel.js.map +0 -1
  329. package/piwik/angulartics2-piwik.metadata.json +0 -1
  330. package/piwik/bundles/angulartics2-piwik.umd.js +0 -478
  331. package/piwik/bundles/angulartics2-piwik.umd.js.map +0 -1
  332. package/piwik/bundles/angulartics2-piwik.umd.min.js +0 -16
  333. package/piwik/bundles/angulartics2-piwik.umd.min.js.map +0 -1
  334. package/piwik/esm2015/angulartics2-piwik.js +0 -5
  335. package/piwik/esm2015/piwik.js +0 -254
  336. package/piwik/esm5/angulartics2-piwik.js +0 -5
  337. package/piwik/esm5/piwik.js +0 -258
  338. package/piwik/fesm2015/angulartics2-piwik.js.map +0 -1
  339. package/piwik/fesm5/angulartics2-piwik.js +0 -262
  340. package/piwik/fesm5/angulartics2-piwik.js.map +0 -1
  341. package/piwik/package.json +0 -22
  342. package/piwik/piwik.d.ts +0 -27
  343. package/pyze/esm5/angulartics2-pyze.js +0 -5
  344. package/pyze/esm5/pyze.js +0 -72
  345. package/pyze/fesm5/angulartics2-pyze.js +0 -76
  346. package/pyze/fesm5/angulartics2-pyze.js.map +0 -1
  347. package/routerlessmodule/esm5/angulartics2-routerlessmodule.js +0 -5
  348. package/routerlessmodule/esm5/routerless.module.js +0 -28
  349. package/routerlessmodule/fesm5/angulartics2-routerlessmodule.js +0 -34
  350. package/routerlessmodule/fesm5/angulartics2-routerlessmodule.js.map +0 -1
  351. package/segment/esm5/angulartics2-segment.js +0 -5
  352. package/segment/esm5/segment.js +0 -102
  353. package/segment/fesm5/angulartics2-segment.js +0 -106
  354. package/segment/fesm5/angulartics2-segment.js.map +0 -1
  355. package/splunk/esm5/angulartics2-splunk.js +0 -5
  356. package/splunk/esm5/splunk.js +0 -52
  357. package/splunk/fesm5/angulartics2-splunk.js +0 -56
  358. package/splunk/fesm5/angulartics2-splunk.js.map +0 -1
  359. package/uiroutermodule/esm5/angulartics2-uiroutermodule.js +0 -5
  360. package/uiroutermodule/esm5/public_api.js +0 -3
  361. package/uiroutermodule/esm5/uirouter.js +0 -44
  362. package/uiroutermodule/esm5/uirouter.module.js +0 -29
  363. package/uiroutermodule/fesm5/angulartics2-uiroutermodule.js +0 -73
  364. package/uiroutermodule/fesm5/angulartics2-uiroutermodule.js.map +0 -1
  365. package/woopra/esm5/angulartics2-woopra.js +0 -5
  366. package/woopra/esm5/woopra.js +0 -69
  367. package/woopra/fesm5/angulartics2-woopra.js +0 -73
  368. package/woopra/fesm5/angulartics2-woopra.js.map +0 -1
package/gst/esm5/gst.js DELETED
@@ -1,203 +0,0 @@
1
- import { __assign, __decorate, __values } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Angulartics2, GoogleGlobalSiteTagSettings, UserTimings } from 'angulartics2';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "angulartics2";
6
- var GoogleGlobalSiteTagDefaults = /** @class */ (function () {
7
- function GoogleGlobalSiteTagDefaults() {
8
- var _this = this;
9
- this.trackingIds = [];
10
- if (typeof ga !== 'undefined' && ga) {
11
- // See: https://developers.google.com/analytics/devguides/collection/analyticsjs/ga-object-methods-reference
12
- ga(function () {
13
- ga.getAll().forEach(function (tracker) {
14
- var id = tracker.get('trackingId');
15
- // If set both in forRoot and HTML page, we want to avoid duplicates
16
- if (id !== undefined && _this.trackingIds.indexOf(id) === -1) {
17
- _this.trackingIds.push(id);
18
- }
19
- });
20
- });
21
- }
22
- }
23
- return GoogleGlobalSiteTagDefaults;
24
- }());
25
- export { GoogleGlobalSiteTagDefaults };
26
- var Angulartics2GoogleGlobalSiteTag = /** @class */ (function () {
27
- function Angulartics2GoogleGlobalSiteTag(angulartics2) {
28
- this.angulartics2 = angulartics2;
29
- this.dimensionsAndMetrics = {};
30
- var defaults = new GoogleGlobalSiteTagDefaults();
31
- // Set the default settings for this module
32
- this.angulartics2.settings.gst = __assign(__assign({}, defaults), this.angulartics2.settings.gst);
33
- }
34
- Angulartics2GoogleGlobalSiteTag.prototype.startTracking = function () {
35
- var _this = this;
36
- this.angulartics2.pageTrack
37
- .pipe(this.angulartics2.filterDeveloperMode())
38
- .subscribe(function (x) { return _this.pageTrack(x.path); });
39
- this.angulartics2.eventTrack
40
- .pipe(this.angulartics2.filterDeveloperMode())
41
- .subscribe(function (x) { return _this.eventTrack(x.action, x.properties); });
42
- this.angulartics2.exceptionTrack
43
- .pipe(this.angulartics2.filterDeveloperMode())
44
- .subscribe(function (x) { return _this.exceptionTrack(x); });
45
- this.angulartics2.userTimings
46
- .pipe(this.angulartics2.filterDeveloperMode())
47
- .subscribe(function (x) { return _this.userTimings(_this.convertTimings(x)); });
48
- this.angulartics2.setUsername
49
- .pipe(this.angulartics2.filterDeveloperMode())
50
- .subscribe(function (x) { return _this.setUsername(x); });
51
- this.angulartics2.setUserProperties
52
- .pipe(this.angulartics2.filterDeveloperMode())
53
- .subscribe(function (x) { return _this.setUserProperties(x); });
54
- };
55
- /**
56
- * Manually track page view, see:
57
- *
58
- * https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#tracking_virtual_pageviews
59
- *
60
- * @param path relative url
61
- */
62
- Angulartics2GoogleGlobalSiteTag.prototype.pageTrack = function (path) {
63
- var e_1, _a;
64
- if (typeof gtag !== 'undefined' && gtag) {
65
- var params = __assign({ page_path: path, page_location: window.location.protocol + '//' + window.location.host + path }, this.dimensionsAndMetrics);
66
- // Custom map must be reset with all config to stay valid.
67
- if (this.angulartics2.settings.gst.customMap) {
68
- params.custom_map = this.angulartics2.settings.gst.customMap;
69
- }
70
- if (this.angulartics2.settings.gst.userId) {
71
- params.user_id = this.angulartics2.settings.gst.userId;
72
- }
73
- if (this.angulartics2.settings.gst.anonymizeIp) {
74
- params.anonymize_ip = this.angulartics2.settings.gst.anonymizeIp;
75
- }
76
- try {
77
- for (var _b = __values(this.angulartics2.settings.gst.trackingIds), _c = _b.next(); !_c.done; _c = _b.next()) {
78
- var id = _c.value;
79
- gtag('config', id, params);
80
- }
81
- }
82
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
83
- finally {
84
- try {
85
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
86
- }
87
- finally { if (e_1) throw e_1.error; }
88
- }
89
- }
90
- };
91
- /**
92
- * Send interactions to gtag, i.e. for event tracking in Google Analytics. See:
93
- *
94
- * https://developers.google.com/analytics/devguides/collection/gtagjs/events
95
- *
96
- * @param action associated with the event
97
- */
98
- Angulartics2GoogleGlobalSiteTag.prototype.eventTrack = function (action, properties) {
99
- if (properties === void 0) { properties = {}; }
100
- this.eventTrackInternal(action, __assign({ event_category: properties.category || 'interaction', event_label: properties.label, value: properties.value, non_interaction: properties.noninteraction }, properties.gstCustom));
101
- };
102
- /**
103
- * Exception Track Event in GST. See:
104
- *
105
- * https://developers.google.com/analytics/devguides/collection/gtagjs/exceptions
106
- *
107
- */
108
- Angulartics2GoogleGlobalSiteTag.prototype.exceptionTrack = function (properties) {
109
- // TODO: make interface
110
- // @param {Object} properties
111
- // @param {string} [properties.description]
112
- // @param {boolean} [properties.fatal]
113
- if (properties.fatal === undefined) {
114
- console.log('No "fatal" provided, sending with fatal=true');
115
- properties.fatal = true;
116
- }
117
- properties.exDescription = properties.event ? properties.event.stack : properties.description;
118
- this.eventTrack('exception', {
119
- gstCustom: __assign({ description: properties.exDescription, fatal: properties.fatal }, properties.gstCustom)
120
- });
121
- };
122
- /**
123
- * User Timings Event in GST.
124
- *
125
- * @param properties Comprised of the mandatory fields:
126
- * - name (string)
127
- * - value (number - integer)
128
- * Properties can also have the optional fields:
129
- * - category (string)
130
- * - label (string)
131
- *
132
- * @link https://developers.google.com/analytics/devguides/collection/gtagjs/user-timings
133
- */
134
- Angulartics2GoogleGlobalSiteTag.prototype.userTimings = function (properties) {
135
- if (!properties) {
136
- console.error('User timings - "properties" parameter is required to be set.');
137
- return;
138
- }
139
- this.eventTrackInternal('timing_complete', {
140
- name: properties.name,
141
- value: properties.value,
142
- event_category: properties.category,
143
- event_label: properties.label
144
- });
145
- };
146
- Angulartics2GoogleGlobalSiteTag.prototype.convertTimings = function (properties) {
147
- return {
148
- name: properties.timingVar,
149
- value: properties.timingValue,
150
- category: properties.timingCategory,
151
- label: properties.timingLabel
152
- };
153
- };
154
- Angulartics2GoogleGlobalSiteTag.prototype.setUsername = function (userId) {
155
- this.angulartics2.settings.gst.userId = userId;
156
- if (typeof gtag !== 'undefined' && gtag) {
157
- gtag('set', { user_id: typeof userId === 'string' || !userId ? userId : userId.userId });
158
- }
159
- };
160
- Angulartics2GoogleGlobalSiteTag.prototype.setUserProperties = function (properties) {
161
- this.setDimensionsAndMetrics(properties);
162
- };
163
- Angulartics2GoogleGlobalSiteTag.prototype.setDimensionsAndMetrics = function (properties) {
164
- var _this = this;
165
- // We want the dimensions and metrics to accumulate, so we merge with previous value
166
- this.dimensionsAndMetrics = __assign(__assign({}, this.dimensionsAndMetrics), properties);
167
- // Remove properties that are null or undefined
168
- Object.keys(this.dimensionsAndMetrics).forEach(function (key) {
169
- var val = _this.dimensionsAndMetrics[key];
170
- if (val === undefined || val === null) {
171
- delete _this.dimensionsAndMetrics[key];
172
- }
173
- });
174
- if (typeof gtag !== 'undefined' && gtag) {
175
- gtag('set', this.dimensionsAndMetrics);
176
- }
177
- };
178
- Angulartics2GoogleGlobalSiteTag.prototype.eventTrackInternal = function (action, properties) {
179
- if (properties === void 0) { properties = {}; }
180
- this.cleanProperties(properties);
181
- if (typeof gtag !== 'undefined' && gtag) {
182
- gtag('event', action, properties);
183
- }
184
- };
185
- Angulartics2GoogleGlobalSiteTag.prototype.cleanProperties = function (properties) {
186
- // GA requires that eventValue be an non-negative integer, see:
187
- // https://developers.google.com/analytics/devguides/collection/gtagjs/events
188
- if (properties.value) {
189
- var parsed = parseInt(properties.value, 10);
190
- properties.value = isNaN(parsed) ? 0 : parsed;
191
- }
192
- };
193
- Angulartics2GoogleGlobalSiteTag.ctorParameters = function () { return [
194
- { type: Angulartics2 }
195
- ]; };
196
- Angulartics2GoogleGlobalSiteTag.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2GoogleGlobalSiteTag_Factory() { return new Angulartics2GoogleGlobalSiteTag(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2GoogleGlobalSiteTag, providedIn: "root" });
197
- Angulartics2GoogleGlobalSiteTag = __decorate([
198
- Injectable({ providedIn: 'root' })
199
- ], Angulartics2GoogleGlobalSiteTag);
200
- return Angulartics2GoogleGlobalSiteTag;
201
- }());
202
- export { Angulartics2GoogleGlobalSiteTag };
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3N0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhcnRpY3MyL2dzdC8iLCJzb3VyY2VzIjpbImdzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLDJCQUEyQixFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBTXRGO0lBR0U7UUFBQSxpQkFhQztRQWZELGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUNuQyw0R0FBNEc7WUFDNUcsRUFBRSxDQUFDO2dCQUNELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFZO29CQUMvQixJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNyQyxvRUFBb0U7b0JBQ3BFLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDM0QsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzNCO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDSCxrQ0FBQztBQUFELENBQUMsQUFqQkQsSUFpQkM7O0FBR0Q7SUFHRSx5Q0FBc0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGeEMseUJBQW9CLEdBQTJCLEVBQUUsQ0FBQztRQUd4RCxJQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDbkQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcseUJBQVEsUUFBUSxHQUFLLElBQUks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UUFDL0QsNkVBQTZFO1FBQzdFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNwQixJQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDL0M7SUFDSCxDQUFDOztnQkF4TG1DLFlBQVk7OztJQUhyQywrQkFBK0I7UUFEM0MsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO09BQ3RCLCtCQUErQixDQTRMM0M7MENBeE5EO0NBd05DLEFBNUxELElBNExDO1NBNUxZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW5ndWxhcnRpY3MyLCBHb29nbGVHbG9iYWxTaXRlVGFnU2V0dGluZ3MsIFVzZXJUaW1pbmdzIH0gZnJvbSAnYW5ndWxhcnRpY3MyJztcbmltcG9ydCB7IEV2ZW50R3N0LCBVc2VyVGltaW5nc0dzdCB9IGZyb20gJy4vZ3N0LWludGVyZmFjZXMnO1xuXG5kZWNsYXJlIHZhciBndGFnOiBhbnk7XG5kZWNsYXJlIHZhciBnYTogYW55O1xuXG5leHBvcnQgY2xhc3MgR29vZ2xlR2xvYmFsU2l0ZVRhZ0RlZmF1bHRzIGltcGxlbWVudHMgR29vZ2xlR2xvYmFsU2l0ZVRhZ1NldHRpbmdzIHtcbiAgdHJhY2tpbmdJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHR5cGVvZiBnYSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2EpIHtcbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL2dhLW9iamVjdC1tZXRob2RzLXJlZmVyZW5jZVxuICAgICAgZ2EoKCkgPT4ge1xuICAgICAgICBnYS5nZXRBbGwoKS5mb3JFYWNoKCh0cmFja2VyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBpZCA9IHRyYWNrZXIuZ2V0KCd0cmFja2luZ0lkJyk7XG4gICAgICAgICAgLy8gSWYgc2V0IGJvdGggaW4gZm9yUm9vdCBhbmQgSFRNTCBwYWdlLCB3ZSB3YW50IHRvIGF2b2lkIGR1cGxpY2F0ZXNcbiAgICAgICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnRyYWNraW5nSWRzLmluZGV4T2YoaWQpID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy50cmFja2luZ0lkcy5wdXNoKGlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyR29vZ2xlR2xvYmFsU2l0ZVRhZyB7XG4gIHByaXZhdGUgZGltZW5zaW9uc0FuZE1ldHJpY3M6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIpIHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IG5ldyBHb29nbGVHbG9iYWxTaXRlVGFnRGVmYXVsdHMoKTtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgbW9kdWxlXG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3N0ID0geyAuLi5kZWZhdWx0cywgLi4udGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3N0IH07XG4gIH1cblxuICBzdGFydFRyYWNraW5nKCk6IHZvaWQge1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnBhZ2VUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5wYWdlVHJhY2soeC5wYXRoKSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuZXZlbnRUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5ldmVudFRyYWNrKHguYWN0aW9uLCB4LnByb3BlcnRpZXMpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5leGNlcHRpb25UcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSgoeDogYW55KSA9PiB0aGlzLmV4Y2VwdGlvblRyYWNrKHgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi51c2VyVGltaW5nc1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMudXNlclRpbWluZ3ModGhpcy5jb252ZXJ0VGltaW5ncyh4KSkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJuYW1lXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHRoaXMuc2V0VXNlcm5hbWUoeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJQcm9wZXJ0aWVzXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKCh4OiBhbnkpID0+IHRoaXMuc2V0VXNlclByb3BlcnRpZXMoeCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IHRyYWNrIHBhZ2Ugdmlldywgc2VlOlxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vZ3RhZ2pzL3NpbmdsZS1wYWdlLWFwcGxpY2F0aW9ucyN0cmFja2luZ192aXJ0dWFsX3BhZ2V2aWV3c1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSB1cmxcbiAgICovXG4gIHBhZ2VUcmFjayhwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGd0YWcgIT09ICd1bmRlZmluZWQnICYmIGd0YWcpIHtcbiAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBwYWdlX3BhdGg6IHBhdGgsXG4gICAgICAgIHBhZ2VfbG9jYXRpb246IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHBhdGgsXG4gICAgICAgIC4uLnRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3NcbiAgICAgIH07XG5cbiAgICAgIC8vIEN1c3RvbSBtYXAgbXVzdCBiZSByZXNldCB3aXRoIGFsbCBjb25maWcgdG8gc3RheSB2YWxpZC5cblxuICAgICAgaWYgKHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdC5jdXN0b21NYXApIHtcbiAgICAgICAgcGFyYW1zLmN1c3RvbV9tYXAgPSB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QuY3VzdG9tTWFwO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdC51c2VySWQpIHtcbiAgICAgICAgcGFyYW1zLnVzZXJfaWQgPSB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QudXNlcklkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdC5hbm9ueW1pemVJcCkge1xuICAgICAgICBwYXJhbXMuYW5vbnltaXplX2lwID0gdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3N0LmFub255bWl6ZUlwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdC50cmFja2luZ0lkcykge1xuICAgICAgICBndGFnKCdjb25maWcnLCBpZCwgcGFyYW1zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbnRlcmFjdGlvbnMgdG8gZ3RhZywgaS5lLiBmb3IgZXZlbnQgdHJhY2tpbmcgaW4gR29vZ2xlIEFuYWx5dGljcy4gU2VlOlxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vZ3RhZ2pzL2V2ZW50c1xuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAgICovXG4gIGV2ZW50VHJhY2soYWN0aW9uOiBzdHJpbmcsIHByb3BlcnRpZXM6IFBhcnRpYWw8RXZlbnRHc3Q+ID0ge30pIHtcbiAgICB0aGlzLmV2ZW50VHJhY2tJbnRlcm5hbChhY3Rpb24sIHtcbiAgICAgIGV2ZW50X2NhdGVnb3J5OiBwcm9wZXJ0aWVzLmNhdGVnb3J5IHx8ICdpbnRlcmFjdGlvbicsXG4gICAgICBldmVudF9sYWJlbDogcHJvcGVydGllcy5sYWJlbCxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgbm9uX2ludGVyYWN0aW9uOiBwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uLFxuICAgICAgLi4ucHJvcGVydGllcy5nc3RDdXN0b21cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGNlcHRpb24gVHJhY2sgRXZlbnQgaW4gR1NULiBTZWU6XG4gICAqXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9ndGFnanMvZXhjZXB0aW9uc1xuICAgKlxuICAgKi9cbiAgZXhjZXB0aW9uVHJhY2socHJvcGVydGllczogYW55KSB7XG4gICAgLy8gVE9ETzogbWFrZSBpbnRlcmZhY2VcbiAgICAvLyAgQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXNcbiAgICAvLyAgQHBhcmFtIHtzdHJpbmd9IFtwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uXVxuICAgIC8vICBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wZXJ0aWVzLmZhdGFsXVxuICAgIGlmIChwcm9wZXJ0aWVzLmZhdGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBcImZhdGFsXCIgcHJvdmlkZWQsIHNlbmRpbmcgd2l0aCBmYXRhbD10cnVlJyk7XG4gICAgICBwcm9wZXJ0aWVzLmZhdGFsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24gPSBwcm9wZXJ0aWVzLmV2ZW50ID8gcHJvcGVydGllcy5ldmVudC5zdGFjayA6IHByb3BlcnRpZXMuZGVzY3JpcHRpb247XG5cbiAgICB0aGlzLmV2ZW50VHJhY2soJ2V4Y2VwdGlvbicsIHtcbiAgICAgIGdzdEN1c3RvbToge1xuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcGVydGllcy5leERlc2NyaXB0aW9uLFxuICAgICAgICBmYXRhbDogcHJvcGVydGllcy5mYXRhbCxcbiAgICAgICAgLi4ucHJvcGVydGllcy5nc3RDdXN0b21cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VyIFRpbWluZ3MgRXZlbnQgaW4gR1NULlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydGllcyBDb21wcmlzZWQgb2YgdGhlIG1hbmRhdG9yeSBmaWVsZHM6XG4gICAqICAtIG5hbWUgKHN0cmluZylcbiAgICogIC0gdmFsdWUgKG51bWJlciAtIGludGVnZXIpXG4gICAqIFByb3BlcnRpZXMgY2FuIGFsc28gaGF2ZSB0aGUgb3B0aW9uYWwgZmllbGRzOlxuICAgKiAgLSBjYXRlZ29yeSAoc3RyaW5nKVxuICAgKiAgLSBsYWJlbCAoc3RyaW5nKVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vZ3RhZ2pzL3VzZXItdGltaW5nc1xuICAgKi9cbiAgdXNlclRpbWluZ3MocHJvcGVydGllczogVXNlclRpbWluZ3NHc3QpIHtcbiAgICBpZiAoIXByb3BlcnRpZXMpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXIgdGltaW5ncyAtIFwicHJvcGVydGllc1wiIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBiZSBzZXQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ldmVudFRyYWNrSW50ZXJuYWwoJ3RpbWluZ19jb21wbGV0ZScsIHtcbiAgICAgIG5hbWU6IHByb3BlcnRpZXMubmFtZSxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgZXZlbnRfY2F0ZWdvcnk6IHByb3BlcnRpZXMuY2F0ZWdvcnksXG4gICAgICBldmVudF9sYWJlbDogcHJvcGVydGllcy5sYWJlbFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VGltaW5ncyhwcm9wZXJ0aWVzOiBVc2VyVGltaW5ncyk6IFVzZXJUaW1pbmdzR3N0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogcHJvcGVydGllcy50aW1pbmdWYXIsXG4gICAgICB2YWx1ZTogcHJvcGVydGllcy50aW1pbmdWYWx1ZSxcbiAgICAgIGNhdGVnb3J5OiBwcm9wZXJ0aWVzLnRpbWluZ0NhdGVnb3J5LFxuICAgICAgbGFiZWw6IHByb3BlcnRpZXMudGltaW5nTGFiZWxcbiAgICB9O1xuICB9XG5cbiAgc2V0VXNlcm5hbWUodXNlcklkOiBzdHJpbmcgfCB7IHVzZXJJZDogc3RyaW5nIHwgbnVtYmVyIH0pIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QudXNlcklkID0gdXNlcklkO1xuICAgIGlmICh0eXBlb2YgZ3RhZyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ3RhZykge1xuICAgICAgZ3RhZygnc2V0JywgeyB1c2VyX2lkOiB0eXBlb2YgdXNlcklkID09PSAnc3RyaW5nJyB8fCAhdXNlcklkID8gdXNlcklkIDogdXNlcklkLnVzZXJJZCB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnNldERpbWVuc2lvbnNBbmRNZXRyaWNzKHByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaW1lbnNpb25zQW5kTWV0cmljcyhwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgLy8gV2Ugd2FudCB0aGUgZGltZW5zaW9ucyBhbmQgbWV0cmljcyB0byBhY2N1bXVsYXRlLCBzbyB3ZSBtZXJnZSB3aXRoIHByZXZpb3VzIHZhbHVlXG4gICAgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcyA9IHtcbiAgICAgIC4uLnRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MsXG4gICAgICAuLi5wcm9wZXJ0aWVzXG4gICAgfTtcblxuICAgIC8vIFJlbW92ZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgT2JqZWN0LmtleXModGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljc1trZXldO1xuICAgICAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCkge1xuICAgICAgICBkZWxldGUgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiBndGFnICE9PSAndW5kZWZpbmVkJyAmJiBndGFnKSB7XG4gICAgICBndGFnKCdzZXQnLCB0aGlzLmRpbWVuc2lvbnNBbmRNZXRyaWNzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2ZW50VHJhY2tJbnRlcm5hbChhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogYW55ID0ge30pIHtcbiAgICB0aGlzLmNsZWFuUHJvcGVydGllcyhwcm9wZXJ0aWVzKTtcbiAgICBpZiAodHlwZW9mIGd0YWcgIT09ICd1bmRlZmluZWQnICYmIGd0YWcpIHtcbiAgICAgIGd0YWcoJ2V2ZW50JywgYWN0aW9uLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFuUHJvcGVydGllcyhwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogdm9pZCB7XG4gICAgLy8gR0EgcmVxdWlyZXMgdGhhdCBldmVudFZhbHVlIGJlIGFuIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLCBzZWU6XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2d0YWdqcy9ldmVudHNcbiAgICBpZiAocHJvcGVydGllcy52YWx1ZSkge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQocHJvcGVydGllcy52YWx1ZSwgMTApO1xuICAgICAgcHJvcGVydGllcy52YWx1ZSA9IGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,206 +0,0 @@
1
- import { __assign, __values, __decorate } from 'tslib';
2
- import { ɵɵdefineInjectable, ɵɵinject, Injectable } from '@angular/core';
3
- import { Angulartics2 } from 'angulartics2';
4
-
5
- var GoogleGlobalSiteTagDefaults = /** @class */ (function () {
6
- function GoogleGlobalSiteTagDefaults() {
7
- var _this = this;
8
- this.trackingIds = [];
9
- if (typeof ga !== 'undefined' && ga) {
10
- // See: https://developers.google.com/analytics/devguides/collection/analyticsjs/ga-object-methods-reference
11
- ga(function () {
12
- ga.getAll().forEach(function (tracker) {
13
- var id = tracker.get('trackingId');
14
- // If set both in forRoot and HTML page, we want to avoid duplicates
15
- if (id !== undefined && _this.trackingIds.indexOf(id) === -1) {
16
- _this.trackingIds.push(id);
17
- }
18
- });
19
- });
20
- }
21
- }
22
- return GoogleGlobalSiteTagDefaults;
23
- }());
24
- var Angulartics2GoogleGlobalSiteTag = /** @class */ (function () {
25
- function Angulartics2GoogleGlobalSiteTag(angulartics2) {
26
- this.angulartics2 = angulartics2;
27
- this.dimensionsAndMetrics = {};
28
- var defaults = new GoogleGlobalSiteTagDefaults();
29
- // Set the default settings for this module
30
- this.angulartics2.settings.gst = __assign(__assign({}, defaults), this.angulartics2.settings.gst);
31
- }
32
- Angulartics2GoogleGlobalSiteTag.prototype.startTracking = function () {
33
- var _this = this;
34
- this.angulartics2.pageTrack
35
- .pipe(this.angulartics2.filterDeveloperMode())
36
- .subscribe(function (x) { return _this.pageTrack(x.path); });
37
- this.angulartics2.eventTrack
38
- .pipe(this.angulartics2.filterDeveloperMode())
39
- .subscribe(function (x) { return _this.eventTrack(x.action, x.properties); });
40
- this.angulartics2.exceptionTrack
41
- .pipe(this.angulartics2.filterDeveloperMode())
42
- .subscribe(function (x) { return _this.exceptionTrack(x); });
43
- this.angulartics2.userTimings
44
- .pipe(this.angulartics2.filterDeveloperMode())
45
- .subscribe(function (x) { return _this.userTimings(_this.convertTimings(x)); });
46
- this.angulartics2.setUsername
47
- .pipe(this.angulartics2.filterDeveloperMode())
48
- .subscribe(function (x) { return _this.setUsername(x); });
49
- this.angulartics2.setUserProperties
50
- .pipe(this.angulartics2.filterDeveloperMode())
51
- .subscribe(function (x) { return _this.setUserProperties(x); });
52
- };
53
- /**
54
- * Manually track page view, see:
55
- *
56
- * https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#tracking_virtual_pageviews
57
- *
58
- * @param path relative url
59
- */
60
- Angulartics2GoogleGlobalSiteTag.prototype.pageTrack = function (path) {
61
- var e_1, _a;
62
- if (typeof gtag !== 'undefined' && gtag) {
63
- var params = __assign({ page_path: path, page_location: window.location.protocol + '//' + window.location.host + path }, this.dimensionsAndMetrics);
64
- // Custom map must be reset with all config to stay valid.
65
- if (this.angulartics2.settings.gst.customMap) {
66
- params.custom_map = this.angulartics2.settings.gst.customMap;
67
- }
68
- if (this.angulartics2.settings.gst.userId) {
69
- params.user_id = this.angulartics2.settings.gst.userId;
70
- }
71
- if (this.angulartics2.settings.gst.anonymizeIp) {
72
- params.anonymize_ip = this.angulartics2.settings.gst.anonymizeIp;
73
- }
74
- try {
75
- for (var _b = __values(this.angulartics2.settings.gst.trackingIds), _c = _b.next(); !_c.done; _c = _b.next()) {
76
- var id = _c.value;
77
- gtag('config', id, params);
78
- }
79
- }
80
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
81
- finally {
82
- try {
83
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
84
- }
85
- finally { if (e_1) throw e_1.error; }
86
- }
87
- }
88
- };
89
- /**
90
- * Send interactions to gtag, i.e. for event tracking in Google Analytics. See:
91
- *
92
- * https://developers.google.com/analytics/devguides/collection/gtagjs/events
93
- *
94
- * @param action associated with the event
95
- */
96
- Angulartics2GoogleGlobalSiteTag.prototype.eventTrack = function (action, properties) {
97
- if (properties === void 0) { properties = {}; }
98
- this.eventTrackInternal(action, __assign({ event_category: properties.category || 'interaction', event_label: properties.label, value: properties.value, non_interaction: properties.noninteraction }, properties.gstCustom));
99
- };
100
- /**
101
- * Exception Track Event in GST. See:
102
- *
103
- * https://developers.google.com/analytics/devguides/collection/gtagjs/exceptions
104
- *
105
- */
106
- Angulartics2GoogleGlobalSiteTag.prototype.exceptionTrack = function (properties) {
107
- // TODO: make interface
108
- // @param {Object} properties
109
- // @param {string} [properties.description]
110
- // @param {boolean} [properties.fatal]
111
- if (properties.fatal === undefined) {
112
- console.log('No "fatal" provided, sending with fatal=true');
113
- properties.fatal = true;
114
- }
115
- properties.exDescription = properties.event ? properties.event.stack : properties.description;
116
- this.eventTrack('exception', {
117
- gstCustom: __assign({ description: properties.exDescription, fatal: properties.fatal }, properties.gstCustom)
118
- });
119
- };
120
- /**
121
- * User Timings Event in GST.
122
- *
123
- * @param properties Comprised of the mandatory fields:
124
- * - name (string)
125
- * - value (number - integer)
126
- * Properties can also have the optional fields:
127
- * - category (string)
128
- * - label (string)
129
- *
130
- * @link https://developers.google.com/analytics/devguides/collection/gtagjs/user-timings
131
- */
132
- Angulartics2GoogleGlobalSiteTag.prototype.userTimings = function (properties) {
133
- if (!properties) {
134
- console.error('User timings - "properties" parameter is required to be set.');
135
- return;
136
- }
137
- this.eventTrackInternal('timing_complete', {
138
- name: properties.name,
139
- value: properties.value,
140
- event_category: properties.category,
141
- event_label: properties.label
142
- });
143
- };
144
- Angulartics2GoogleGlobalSiteTag.prototype.convertTimings = function (properties) {
145
- return {
146
- name: properties.timingVar,
147
- value: properties.timingValue,
148
- category: properties.timingCategory,
149
- label: properties.timingLabel
150
- };
151
- };
152
- Angulartics2GoogleGlobalSiteTag.prototype.setUsername = function (userId) {
153
- this.angulartics2.settings.gst.userId = userId;
154
- if (typeof gtag !== 'undefined' && gtag) {
155
- gtag('set', { user_id: typeof userId === 'string' || !userId ? userId : userId.userId });
156
- }
157
- };
158
- Angulartics2GoogleGlobalSiteTag.prototype.setUserProperties = function (properties) {
159
- this.setDimensionsAndMetrics(properties);
160
- };
161
- Angulartics2GoogleGlobalSiteTag.prototype.setDimensionsAndMetrics = function (properties) {
162
- var _this = this;
163
- // We want the dimensions and metrics to accumulate, so we merge with previous value
164
- this.dimensionsAndMetrics = __assign(__assign({}, this.dimensionsAndMetrics), properties);
165
- // Remove properties that are null or undefined
166
- Object.keys(this.dimensionsAndMetrics).forEach(function (key) {
167
- var val = _this.dimensionsAndMetrics[key];
168
- if (val === undefined || val === null) {
169
- delete _this.dimensionsAndMetrics[key];
170
- }
171
- });
172
- if (typeof gtag !== 'undefined' && gtag) {
173
- gtag('set', this.dimensionsAndMetrics);
174
- }
175
- };
176
- Angulartics2GoogleGlobalSiteTag.prototype.eventTrackInternal = function (action, properties) {
177
- if (properties === void 0) { properties = {}; }
178
- this.cleanProperties(properties);
179
- if (typeof gtag !== 'undefined' && gtag) {
180
- gtag('event', action, properties);
181
- }
182
- };
183
- Angulartics2GoogleGlobalSiteTag.prototype.cleanProperties = function (properties) {
184
- // GA requires that eventValue be an non-negative integer, see:
185
- // https://developers.google.com/analytics/devguides/collection/gtagjs/events
186
- if (properties.value) {
187
- var parsed = parseInt(properties.value, 10);
188
- properties.value = isNaN(parsed) ? 0 : parsed;
189
- }
190
- };
191
- Angulartics2GoogleGlobalSiteTag.ctorParameters = function () { return [
192
- { type: Angulartics2 }
193
- ]; };
194
- Angulartics2GoogleGlobalSiteTag.ɵprov = ɵɵdefineInjectable({ factory: function Angulartics2GoogleGlobalSiteTag_Factory() { return new Angulartics2GoogleGlobalSiteTag(ɵɵinject(Angulartics2)); }, token: Angulartics2GoogleGlobalSiteTag, providedIn: "root" });
195
- Angulartics2GoogleGlobalSiteTag = __decorate([
196
- Injectable({ providedIn: 'root' })
197
- ], Angulartics2GoogleGlobalSiteTag);
198
- return Angulartics2GoogleGlobalSiteTag;
199
- }());
200
-
201
- /**
202
- * Generated bundle index. Do not edit.
203
- */
204
-
205
- export { Angulartics2GoogleGlobalSiteTag, GoogleGlobalSiteTagDefaults };
206
- //# sourceMappingURL=angulartics2-gst.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angulartics2-gst.js","sources":["ng://angulartics2/gst/gst.ts","ng://angulartics2/gst/angulartics2-gst.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Angulartics2, GoogleGlobalSiteTagSettings, UserTimings } from 'angulartics2';\nimport { EventGst, UserTimingsGst } from './gst-interfaces';\n\ndeclare var gtag: any;\ndeclare var ga: any;\n\nexport class GoogleGlobalSiteTagDefaults implements GoogleGlobalSiteTagSettings {\n trackingIds: string[] = [];\n\n constructor() {\n if (typeof ga !== 'undefined' && ga) {\n // See: https://developers.google.com/analytics/devguides/collection/analyticsjs/ga-object-methods-reference\n ga(() => {\n ga.getAll().forEach((tracker: any) => {\n const id = tracker.get('trackingId');\n // If set both in forRoot and HTML page, we want to avoid duplicates\n if (id !== undefined && this.trackingIds.indexOf(id) === -1) {\n this.trackingIds.push(id);\n }\n });\n });\n }\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleGlobalSiteTag {\n private dimensionsAndMetrics: { [key: string]: any } = {};\n\n constructor(protected angulartics2: Angulartics2) {\n const defaults = new GoogleGlobalSiteTagDefaults();\n // Set the default settings for this module\n this.angulartics2.settings.gst = { ...defaults, ...this.angulartics2.settings.gst };\n }\n\n startTracking(): void {\n this.angulartics2.pageTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x) => this.pageTrack(x.path));\n this.angulartics2.eventTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x) => this.eventTrack(x.action, x.properties));\n this.angulartics2.exceptionTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x: any) => this.exceptionTrack(x));\n this.angulartics2.userTimings\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe(x => this.userTimings(this.convertTimings(x)));\n this.angulartics2.setUsername\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x: string) => this.setUsername(x));\n this.angulartics2.setUserProperties\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x: any) => this.setUserProperties(x));\n }\n\n /**\n * Manually track page view, see:\n *\n * https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#tracking_virtual_pageviews\n *\n * @param path relative url\n */\n pageTrack(path: string) {\n if (typeof gtag !== 'undefined' && gtag) {\n const params: any = {\n page_path: path,\n page_location: window.location.protocol + '//' + window.location.host + path,\n ...this.dimensionsAndMetrics\n };\n\n // Custom map must be reset with all config to stay valid.\n\n if (this.angulartics2.settings.gst.customMap) {\n params.custom_map = this.angulartics2.settings.gst.customMap;\n }\n if (this.angulartics2.settings.gst.userId) {\n params.user_id = this.angulartics2.settings.gst.userId;\n }\n if (this.angulartics2.settings.gst.anonymizeIp) {\n params.anonymize_ip = this.angulartics2.settings.gst.anonymizeIp;\n }\n\n for (const id of this.angulartics2.settings.gst.trackingIds) {\n gtag('config', id, params);\n }\n }\n }\n\n /**\n * Send interactions to gtag, i.e. for event tracking in Google Analytics. See:\n *\n * https://developers.google.com/analytics/devguides/collection/gtagjs/events\n *\n * @param action associated with the event\n */\n eventTrack(action: string, properties: Partial<EventGst> = {}) {\n this.eventTrackInternal(action, {\n event_category: properties.category || 'interaction',\n event_label: properties.label,\n value: properties.value,\n non_interaction: properties.noninteraction,\n ...properties.gstCustom\n });\n }\n\n /**\n * Exception Track Event in GST. See:\n *\n * https://developers.google.com/analytics/devguides/collection/gtagjs/exceptions\n *\n */\n exceptionTrack(properties: any) {\n // TODO: make interface\n // @param {Object} properties\n // @param {string} [properties.description]\n // @param {boolean} [properties.fatal]\n if (properties.fatal === undefined) {\n console.log('No \"fatal\" provided, sending with fatal=true');\n properties.fatal = true;\n }\n\n properties.exDescription = properties.event ? properties.event.stack : properties.description;\n\n this.eventTrack('exception', {\n gstCustom: {\n description: properties.exDescription,\n fatal: properties.fatal,\n ...properties.gstCustom\n }\n });\n }\n\n /**\n * User Timings Event in GST.\n *\n * @param properties Comprised of the mandatory fields:\n * - name (string)\n * - value (number - integer)\n * Properties can also have the optional fields:\n * - category (string)\n * - label (string)\n *\n * @link https://developers.google.com/analytics/devguides/collection/gtagjs/user-timings\n */\n userTimings(properties: UserTimingsGst) {\n if (!properties) {\n console.error('User timings - \"properties\" parameter is required to be set.');\n return;\n }\n\n this.eventTrackInternal('timing_complete', {\n name: properties.name,\n value: properties.value,\n event_category: properties.category,\n event_label: properties.label\n });\n }\n\n private convertTimings(properties: UserTimings): UserTimingsGst {\n return {\n name: properties.timingVar,\n value: properties.timingValue,\n category: properties.timingCategory,\n label: properties.timingLabel\n };\n }\n\n setUsername(userId: string | { userId: string | number }) {\n this.angulartics2.settings.gst.userId = userId;\n if (typeof gtag !== 'undefined' && gtag) {\n gtag('set', { user_id: typeof userId === 'string' || !userId ? userId : userId.userId });\n }\n }\n\n setUserProperties(properties: any) {\n this.setDimensionsAndMetrics(properties);\n }\n\n private setDimensionsAndMetrics(properties: { [key: string]: any }) {\n // We want the dimensions and metrics to accumulate, so we merge with previous value\n this.dimensionsAndMetrics = {\n ...this.dimensionsAndMetrics,\n ...properties\n };\n\n // Remove properties that are null or undefined\n Object.keys(this.dimensionsAndMetrics).forEach(key => {\n const val = this.dimensionsAndMetrics[key];\n if (val === undefined || val === null) {\n delete this.dimensionsAndMetrics[key];\n }\n });\n\n if (typeof gtag !== 'undefined' && gtag) {\n gtag('set', this.dimensionsAndMetrics);\n }\n }\n\n private eventTrackInternal(action: string, properties: any = {}) {\n this.cleanProperties(properties);\n if (typeof gtag !== 'undefined' && gtag) {\n gtag('event', action, properties);\n }\n }\n\n private cleanProperties(properties: { [key: string]: any }): void {\n // GA requires that eventValue be an non-negative integer, see:\n // https://developers.google.com/analytics/devguides/collection/gtagjs/events\n if (properties.value) {\n const parsed = parseInt(properties.value, 10);\n properties.value = isNaN(parsed) ? 0 : parsed;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './gst';\n"],"names":[],"mappings":";;;;;IAWE;QAAA,iBAaC;QAfD,gBAAW,GAAa,EAAE,CAAC;QAGzB,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,EAAE,EAAE;;YAEnC,EAAE,CAAC;gBACD,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAC,OAAY;oBAC/B,IAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;;oBAErC,IAAI,EAAE,KAAK,SAAS,IAAI,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;wBAC3D,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBAC3B;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;KACF;IACH,kCAAC;AAAD,CAAC,IAAA;;IAMC,yCAAsB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QAFxC,yBAAoB,GAA2B,EAAE,CAAC;QAGxD,IAAM,QAAQ,GAAG,IAAI,2BAA2B,EAAE,CAAC;;QAEnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,yBAAQ,QAAQ,GAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC;KACrF;IAED,uDAAa,GAAb;QAAA,iBAmBC;QAlBC,IAAI,CAAC,YAAY,CAAC,SAAS;aACxB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAA,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,UAAU;aACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,GAAA,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,cAAc;aAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,WAAW;aAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,WAAW;aAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAC,CAAS,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,iBAAiB;aAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;aAC7C,SAAS,CAAC,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;KACrD;;;;;;;;IASD,mDAAS,GAAT,UAAU,IAAY;;QACpB,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE;YACvC,IAAM,MAAM,cACV,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,IACzE,IAAI,CAAC,oBAAoB,CAC7B,CAAC;;YAIF,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC5C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;aAC9D;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;gBACzC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;aACxD;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC9C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;aAClE;;gBAED,KAAiB,IAAA,KAAA,SAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAA,gBAAA,4BAAE;oBAAxD,IAAM,EAAE,WAAA;oBACX,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;iBAC5B;;;;;;;;;SACF;KACF;;;;;;;;IASD,oDAAU,GAAV,UAAW,MAAc,EAAE,UAAkC;QAAlC,2BAAA,EAAA,eAAkC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,MAAM,aAC5B,cAAc,EAAE,UAAU,CAAC,QAAQ,IAAI,aAAa,EACpD,WAAW,EAAE,UAAU,CAAC,KAAK,EAC7B,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,eAAe,EAAE,UAAU,CAAC,cAAc,IACvC,UAAU,CAAC,SAAS,EACvB,CAAC;KACJ;;;;;;;IAQD,wDAAc,GAAd,UAAe,UAAe;;;;;QAK5B,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;SACzB;QAED,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC;QAE9F,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,SAAS,aACP,WAAW,EAAE,UAAU,CAAC,aAAa,EACrC,KAAK,EAAE,UAAU,CAAC,KAAK,IACpB,UAAU,CAAC,SAAS,CACxB;SACF,CAAC,CAAC;KACJ;;;;;;;;;;;;;IAcD,qDAAW,GAAX,UAAY,UAA0B;QACpC,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAC9E,OAAO;SACR;QAED,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;YACzC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,cAAc,EAAE,UAAU,CAAC,QAAQ;YACnC,WAAW,EAAE,UAAU,CAAC,KAAK;SAC9B,CAAC,CAAC;KACJ;IAEO,wDAAc,GAAtB,UAAuB,UAAuB;QAC5C,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,SAAS;YAC1B,KAAK,EAAE,UAAU,CAAC,WAAW;YAC7B,QAAQ,EAAE,UAAU,CAAC,cAAc;YACnC,KAAK,EAAE,UAAU,CAAC,WAAW;SAC9B,CAAC;KACH;IAED,qDAAW,GAAX,UAAY,MAA4C;QACtD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAC/C,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1F;KACF;IAED,2DAAiB,GAAjB,UAAkB,UAAe;QAC/B,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;KAC1C;IAEO,iEAAuB,GAA/B,UAAgC,UAAkC;QAAlE,iBAkBC;;QAhBC,IAAI,CAAC,oBAAoB,yBACpB,IAAI,CAAC,oBAAoB,GACzB,UAAU,CACd,CAAC;;QAGF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;YAChD,IAAM,GAAG,GAAG,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;gBACrC,OAAO,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACxC;KACF;IAEO,4DAAkB,GAA1B,UAA2B,MAAc,EAAE,UAAoB;QAApB,2BAAA,EAAA,eAAoB;QAC7D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;SACnC;KACF;IAEO,yDAAe,GAAvB,UAAwB,UAAkC;;;QAGxD,IAAI,UAAU,CAAC,KAAK,EAAE;YACpB,IAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;SAC/C;KACF;;gBAxLmC,YAAY;;;IAHrC,+BAA+B;QAD3C,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;OACtB,+BAA+B,CA4L3C;0CAxND;CA4BA;;AC5BA;;;;;;"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './gtm';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcnRpY3MyLWd0bS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXJ0aWNzMi9ndG0vIiwic291cmNlcyI6WyJhbmd1bGFydGljczItZ3RtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZ3RtJztcbiJdfQ==
package/gtm/esm5/gtm.js DELETED
@@ -1,115 +0,0 @@
1
- import { __assign, __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Angulartics2, GoogleTagManagerSettings } from 'angulartics2';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "angulartics2";
6
- var GoogleTagManagerDefaults = /** @class */ (function () {
7
- function GoogleTagManagerDefaults() {
8
- this.userId = null;
9
- }
10
- return GoogleTagManagerDefaults;
11
- }());
12
- export { GoogleTagManagerDefaults };
13
- var Angulartics2GoogleTagManager = /** @class */ (function () {
14
- function Angulartics2GoogleTagManager(angulartics2) {
15
- var _this = this;
16
- this.angulartics2 = angulartics2;
17
- // The dataLayer needs to be initialized
18
- if (typeof dataLayer !== 'undefined' && dataLayer) {
19
- dataLayer = window.dataLayer = window.dataLayer || [];
20
- }
21
- var defaults = new GoogleTagManagerDefaults();
22
- // Set the default settings for this module
23
- this.angulartics2.settings.gtm = __assign(__assign({}, defaults), this.angulartics2.settings.gtm);
24
- this.angulartics2.setUsername
25
- .subscribe(function (x) { return _this.setUsername(x); });
26
- }
27
- Angulartics2GoogleTagManager.prototype.startTracking = function () {
28
- var _this = this;
29
- this.angulartics2.pageTrack
30
- .pipe(this.angulartics2.filterDeveloperMode())
31
- .subscribe(function (x) { return _this.pageTrack(x.path); });
32
- this.angulartics2.eventTrack
33
- .pipe(this.angulartics2.filterDeveloperMode())
34
- .subscribe(function (x) { return _this.eventTrack(x.action, x.properties); });
35
- this.angulartics2.exceptionTrack
36
- .pipe(this.angulartics2.filterDeveloperMode())
37
- .subscribe(function (x) { return _this.exceptionTrack(x); });
38
- };
39
- Angulartics2GoogleTagManager.prototype.pageTrack = function (path) {
40
- this.pushLayer({
41
- event: 'Page View',
42
- 'content-name': path,
43
- userId: this.angulartics2.settings.gtm.userId
44
- });
45
- };
46
- /**
47
- * Send Data Layer
48
- *
49
- * @layer data layer object
50
- */
51
- Angulartics2GoogleTagManager.prototype.pushLayer = function (layer) {
52
- if (typeof dataLayer !== 'undefined' && dataLayer) {
53
- dataLayer.push(layer);
54
- }
55
- };
56
- /**
57
- * Send interactions to the dataLayer, i.e. for event tracking in Google Analytics
58
- *
59
- * @param action associated with the event
60
- */
61
- Angulartics2GoogleTagManager.prototype.eventTrack = function (action, properties) {
62
- // TODO: make interface
63
- // @param {string} properties.category
64
- // @param {string} [properties.label]
65
- // @param {number} [properties.value]
66
- // @param {boolean} [properties.noninteraction]
67
- // Set a default GTM category
68
- properties = properties || {};
69
- this.pushLayer(__assign({ event: properties.event || 'interaction', target: properties.category || 'Event', action: action, label: properties.label, value: properties.value, interactionType: properties.noninteraction, userId: this.angulartics2.settings.gtm.userId }, properties.gtmCustom));
70
- };
71
- /**
72
- * Exception Track Event in GTM
73
- *
74
- */
75
- Angulartics2GoogleTagManager.prototype.exceptionTrack = function (properties) {
76
- // TODO: make interface
77
- // @param {Object} properties
78
- // @param {string} properties.appId
79
- // @param {string} properties.appName
80
- // @param {string} properties.appVersion
81
- // @param {string} [properties.description]
82
- // @param {boolean} [properties.fatal]
83
- if (!properties || !properties.appId || !properties.appName || !properties.appVersion) {
84
- console.error('Must be setted appId, appName and appVersion.');
85
- return;
86
- }
87
- if (properties.fatal === undefined) {
88
- console.log('No "fatal" provided, sending with fatal=true');
89
- properties.exFatal = true;
90
- }
91
- properties.exDescription = properties.event ? properties.event.stack : properties.description;
92
- this.eventTrack("Exception thrown for " + properties.appName + " <" + properties.appId + "@" + properties.appVersion + ">", {
93
- category: 'Exception',
94
- label: properties.exDescription,
95
- });
96
- };
97
- /**
98
- * Set userId for use with Universal Analytics User ID feature
99
- *
100
- * @param userId used to identify user cross-device in Google Analytics
101
- */
102
- Angulartics2GoogleTagManager.prototype.setUsername = function (userId) {
103
- this.angulartics2.settings.gtm.userId = userId;
104
- };
105
- Angulartics2GoogleTagManager.ctorParameters = function () { return [
106
- { type: Angulartics2 }
107
- ]; };
108
- Angulartics2GoogleTagManager.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2GoogleTagManager_Factory() { return new Angulartics2GoogleTagManager(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2GoogleTagManager, providedIn: "root" });
109
- Angulartics2GoogleTagManager = __decorate([
110
- Injectable({ providedIn: 'root' })
111
- ], Angulartics2GoogleTagManager);
112
- return Angulartics2GoogleTagManager;
113
- }());
114
- export { Angulartics2GoogleTagManager };
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhcnRpY3MyL2d0bS8iLCJzb3VyY2VzIjpbImd0bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFJdEU7SUFBQTtRQUNFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFELCtCQUFDO0FBQUQsQ0FBQyxBQUZELElBRUM7O0FBR0Q7SUFFRSxzQ0FDWSxZQUEwQjtRQUR0QyxpQkFZQztRQVhXLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRXBDLHdDQUF3QztRQUN4QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDakQsU0FBUyxHQUFJLE1BQWMsQ0FBQyxTQUFTLEdBQUksTUFBYyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7U0FDekU7UUFDRCxJQUFNLFFBQVEsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDaEQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcseUJBQVEsUUFBUSxHQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUMxQixTQUFTLENBQUMsVUFBQyxDQUFTLElBQUssT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFuQixDQUFtQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELG9EQUFhLEdBQWI7UUFBQSxpQkFVQztRQVRDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUzthQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxVQUFDLENBQUMs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VUFBVSxDQUFDLDBCQUF3QixVQUFVLENBQUMsT0FBTyxVQUFLLFVBQVUsQ0FBQyxLQUFLLFNBQUksVUFBVSxDQUFDLFVBQVUsTUFBRyxFQUFFO1lBQzNHLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEtBQUssRUFBRSxVQUFVLENBQUMsYUFBYTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtEQUFXLEdBQVgsVUFBWSxNQUFjO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2pELENBQUM7O2dCQTNHeUIsWUFBWTs7O0lBSDNCLDRCQUE0QjtRQUR4QyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7T0FDdEIsNEJBQTRCLENBK0d4Qzt1Q0ExSEQ7Q0EwSEMsQUEvR0QsSUErR0M7U0EvR1ksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbmd1bGFydGljczIsIEdvb2dsZVRhZ01hbmFnZXJTZXR0aW5ncyB9IGZyb20gJ2FuZ3VsYXJ0aWNzMic7XG5cbmRlY2xhcmUgdmFyIGRhdGFMYXllcjogYW55O1xuXG5leHBvcnQgY2xhc3MgR29vZ2xlVGFnTWFuYWdlckRlZmF1bHRzIGltcGxlbWVudHMgR29vZ2xlVGFnTWFuYWdlclNldHRpbmdzIHtcbiAgdXNlcklkID0gbnVsbDtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFydGljczJHb29nbGVUYWdNYW5hZ2VyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIsXG4gICkge1xuICAgIC8vIFRoZSBkYXRhTGF5ZXIgbmVlZHMgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICBpZiAodHlwZW9mIGRhdGFMYXllciAhPT0gJ3VuZGVmaW5lZCcgJiYgZGF0YUxheWVyKSB7XG4gICAgICBkYXRhTGF5ZXIgPSAod2luZG93IGFzIGFueSkuZGF0YUxheWVyID0gKHdpbmRvdyBhcyBhbnkpLmRhdGFMYXllciB8fCBbXTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdHMgPSBuZXcgR29vZ2xlVGFnTWFuYWdlckRlZmF1bHRzKCk7XG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGlzIG1vZHVsZVxuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmd0bSA9IHsgLi4uZGVmYXVsdHMsIC4uLnRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmd0bSB9O1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJuYW1lXG4gICAgICAuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHRoaXMuc2V0VXNlcm5hbWUoeCkpO1xuICB9XG5cbiAgc3RhcnRUcmFja2luZygpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHRoaXMucGFnZVRyYWNrKHgucGF0aCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLmV2ZW50VHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHRoaXMuZXZlbnRUcmFjayh4LmFjdGlvbiwgeC5wcm9wZXJ0aWVzKSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuZXhjZXB0aW9uVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHg6IGFueSkgPT4gdGhpcy5leGNlcHRpb25UcmFjayh4KSk7XG4gIH1cblxuICBwYWdlVHJhY2socGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy5wdXNoTGF5ZXIoe1xuICAgICAgZXZlbnQ6ICdQYWdlIFZpZXcnLFxuICAgICAgJ2NvbnRlbnQtbmFtZSc6IHBhdGgsXG4gICAgICB1c2VySWQ6IHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmd0bS51c2VySWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIERhdGEgTGF5ZXJcbiAgICpcbiAgICogQGxheWVyIGRhdGEgbGF5ZXIgb2JqZWN0XG4gICAqL1xuICBwdXNoTGF5ZXIobGF5ZXI6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZGF0YUxheWVyICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhTGF5ZXIpIHtcbiAgICAgIGRhdGFMYXllci5wdXNoKGxheWVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbnRlcmFjdGlvbnMgdG8gdGhlIGRhdGFMYXllciwgaS5lLiBmb3IgZXZlbnQgdHJhY2tpbmcgaW4gR29vZ2xlIEFuYWx5dGljc1xuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAgICovXG4gIGV2ZW50VHJhY2soYWN0aW9uOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSkge1xuICAgIC8vIFRPRE86IG1ha2UgaW50ZXJmYWNlXG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0aWVzLmNhdGVnb3J5XG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBbcHJvcGVydGllcy5sYWJlbF1cbiAgICAvLyAgQHBhcmFtIHtudW1iZXJ9IFtwcm9wZXJ0aWVzLnZhbHVlXVxuICAgIC8vICBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uXVxuICAgIC8vIFNldCBhIGRlZmF1bHQgR1RNIGNhdGVnb3J5XG4gICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG5cbiAgICB0aGlzLnB1c2hMYXllcih7XG4gICAgICBldmVudDogcHJvcGVydGllcy5ldmVudCB8fCAnaW50ZXJhY3Rpb24nLFxuICAgICAgdGFyZ2V0OiBwcm9wZXJ0aWVzLmNhdGVnb3J5IHx8ICdFdmVudCcsXG4gICAgICBhY3Rpb24sXG4gICAgICBsYWJlbDogcHJvcGVydGllcy5sYWJlbCxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgaW50ZXJhY3Rpb25UeXBlOiBwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uLFxuICAgICAgdXNlcklkOiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5ndG0udXNlcklkLFxuICAgICAgLi4ucHJvcGVydGllcy5ndG1DdXN0b21cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGNlcHRpb24gVHJhY2sgRXZlbnQgaW4gR1RNXG4gICAqXG4gICAqL1xuICBleGNlcHRpb25UcmFjayhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAvLyBUT0RPOiBtYWtlIGludGVyZmFjZVxuICAgIC8vICBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1xuICAgIC8vICBAcGFyYW0ge3N0cmluZ30gcHJvcGVydGllcy5hcHBJZFxuICAgIC8vICBAcGFyYW0ge3N0cmluZ30gcHJvcGVydGllcy5hcHBOYW1lXG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0aWVzLmFwcFZlcnNpb25cbiAgICAvLyAgQHBhcmFtIHtzdHJpbmd9IFtwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uXVxuICAgIC8vICBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wZXJ0aWVzLmZhdGFsXVxuICAgIGlmICghIHByb3BlcnRpZXMgfHwgISBwcm9wZXJ0aWVzLmFwcElkIHx8ICEgcHJvcGVydGllcy5hcHBOYW1lIHx8ICEgcHJvcGVydGllcy5hcHBWZXJzaW9uKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNdXN0IGJlIHNldHRlZCBhcHBJZCwgYXBwTmFtZSBhbmQgYXBwVmVyc2lvbi4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydGllcy5mYXRhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnTm8gXCJmYXRhbFwiIHByb3ZpZGVkLCBzZW5kaW5nIHdpdGggZmF0YWw9dHJ1ZScpO1xuICAgICAgcHJvcGVydGllcy5leEZhdGFsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24gPSBwcm9wZXJ0aWVzLmV2ZW50ID8gcHJvcGVydGllcy5ldmVudC5zdGFjayA6IHByb3BlcnRpZXMuZGVzY3JpcHRpb247XG5cbiAgICB0aGlzLmV2ZW50VHJhY2soYEV4Y2VwdGlvbiB0aHJvd24gZm9yICR7cHJvcGVydGllcy5hcHBOYW1lfSA8JHtwcm9wZXJ0aWVzLmFwcElkfUAke3Byb3BlcnRpZXMuYXBwVmVyc2lvbn0+YCwge1xuICAgICAgY2F0ZWdvcnk6ICdFeGNlcHRpb24nLFxuICAgICAgbGFiZWw6IHByb3BlcnRpZXMuZXhEZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXNlcklkIGZvciB1c2Ugd2l0aCBVbml2ZXJzYWwgQW5hbHl0aWNzIFVzZXIgSUQgZmVhdHVyZVxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIHVzZWQgdG8gaWRlbnRpZnkgdXNlciBjcm9zcy1kZXZpY2UgaW4gR29vZ2xlIEFuYWx5dGljc1xuICAgKi9cbiAgc2V0VXNlcm5hbWUodXNlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5ndG0udXNlcklkID0gdXNlcklkO1xuICB9XG59XG4iXX0=