angulartics2 9.1.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -9
  3. package/angular-router.d.ts +3 -0
  4. package/angulartics2-core.d.ts +3 -1
  5. package/angulartics2.d.ts +1 -0
  6. package/angulartics2.module.d.ts +5 -0
  7. package/angulartics2On.d.ts +6 -0
  8. package/esm2020/angular-router.mjs +33 -0
  9. package/esm2020/angulartics2-config.mjs +19 -0
  10. package/esm2020/angulartics2-core.mjs +93 -0
  11. package/esm2020/angulartics2-interfaces.mjs +2 -0
  12. package/esm2020/angulartics2-token.mjs +3 -0
  13. package/esm2020/angulartics2.mjs +5 -0
  14. package/esm2020/angulartics2.module.mjs +30 -0
  15. package/esm2020/angulartics2On.mjs +66 -0
  16. package/esm2020/providers/adobeanalytics/adobeanalytics.mjs +98 -0
  17. package/esm2020/providers/amplitude/amplitude.mjs +68 -0
  18. package/esm2020/providers/appinsights/appinsights.mjs +118 -0
  19. package/esm2020/providers/baidu/baidu.mjs +81 -0
  20. package/esm2020/providers/clicky/clicky.interfaces.mjs +2 -0
  21. package/esm2020/providers/clicky/clicky.mjs +64 -0
  22. package/esm2020/providers/facebook/facebook.mjs +45 -0
  23. package/esm2020/providers/ga/ga.mjs +219 -0
  24. package/esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom-options.mjs +7 -0
  25. package/esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom.mjs +32 -0
  26. package/esm2020/providers/gosquared/gosquared.mjs +55 -0
  27. package/esm2020/providers/gst/gst-interfaces.mjs +2 -0
  28. package/esm2020/providers/gst/gst.mjs +197 -0
  29. package/esm2020/providers/gtm/gtm.mjs +114 -0
  30. package/esm2020/providers/hubspot/hubspot.mjs +40 -0
  31. package/esm2020/providers/ibm-digital-analytics/ibm-digital-analytics.mjs +125 -0
  32. package/esm2020/providers/intercom/intercom.mjs +60 -0
  33. package/esm2020/providers/kissmetrics/kissmetrics.mjs +40 -0
  34. package/esm2020/providers/launch/launch.mjs +59 -0
  35. package/esm2020/providers/matomo/matomo.mjs +303 -0
  36. package/esm2020/providers/mixpanel/mixpanel.mjs +109 -0
  37. package/esm2020/providers/pyze/pyze.mjs +65 -0
  38. package/esm2020/providers/segment/segment.mjs +100 -0
  39. package/esm2020/providers/splunk/splunk.mjs +46 -0
  40. package/esm2020/providers/woopra/woopra.mjs +61 -0
  41. package/esm2020/public_api.mjs +32 -0
  42. package/esm2020/routerless.mjs +10 -0
  43. package/esm2020/routerless.module.mjs +28 -0
  44. package/fesm2015/angulartics2.mjs +2248 -0
  45. package/fesm2015/angulartics2.mjs.map +1 -0
  46. package/fesm2020/angulartics2.mjs +2294 -0
  47. package/fesm2020/angulartics2.mjs.map +1 -0
  48. package/package.json +28 -16
  49. package/{adobeanalytics → providers/adobeanalytics}/README.md +1 -1
  50. package/{adobeanalytics → providers/adobeanalytics}/adobeanalytics.d.ts +4 -1
  51. package/{amplitude → providers/amplitude}/README.md +1 -1
  52. package/{amplitude → providers/amplitude}/amplitude.d.ts +4 -1
  53. package/{appinsights → providers/appinsights}/README.md +1 -1
  54. package/{appinsights → providers/appinsights}/appinsights.d.ts +5 -1
  55. package/{baidu → providers/baidu}/README.md +1 -1
  56. package/{baidu → providers/baidu}/baidu.d.ts +4 -1
  57. package/{clicky → providers/clicky}/README.md +1 -1
  58. package/{clicky → providers/clicky}/clicky.d.ts +4 -1
  59. package/{clicky → providers/clicky}/clicky.interfaces.d.ts +0 -0
  60. package/{facebook → providers/facebook}/README.md +1 -1
  61. package/{facebook → providers/facebook}/facebook.d.ts +4 -1
  62. package/{ga → providers/ga}/README.md +1 -1
  63. package/{ga → providers/ga}/ga.d.ts +6 -1
  64. package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/README.md +1 -1
  65. package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/ga-enhanced-ecom-options.d.ts +0 -0
  66. package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/ga-enhanced-ecom.d.ts +3 -0
  67. package/{gosquared → providers/gosquared}/README.md +1 -1
  68. package/{gosquared → providers/gosquared}/gosquared.d.ts +4 -1
  69. package/{gst → providers/gst}/README.md +2 -2
  70. package/{gst → providers/gst}/gst-interfaces.d.ts +0 -0
  71. package/{gst → providers/gst}/gst.d.ts +5 -1
  72. package/{gtm → providers/gtm}/README.md +2 -2
  73. package/{gtm → providers/gtm}/gtm.d.ts +5 -1
  74. package/{hubspot → providers/hubspot}/README.md +1 -1
  75. package/{hubspot → providers/hubspot}/hubspot.d.ts +4 -1
  76. package/{ibm-digital-analytics → providers/ibm-digital-analytics}/README.md +2 -2
  77. package/{ibm-digital-analytics → providers/ibm-digital-analytics}/ibm-digital-analytics.d.ts +4 -1
  78. package/{intercom → providers/intercom}/README.md +1 -1
  79. package/{intercom → providers/intercom}/intercom.d.ts +4 -1
  80. package/{kissmetrics → providers/kissmetrics}/README.md +1 -1
  81. package/{kissmetrics → providers/kissmetrics}/kissmetrics.d.ts +4 -1
  82. package/{launch → providers/launch}/README.md +3 -3
  83. package/{launch → providers/launch}/launch.d.ts +4 -1
  84. package/{piwik → providers/matomo}/README.md +20 -20
  85. package/providers/matomo/matomo.d.ts +140 -0
  86. package/{mixpanel → providers/mixpanel}/README.md +2 -2
  87. package/{mixpanel → providers/mixpanel}/mixpanel.d.ts +4 -1
  88. package/{pyze → providers/pyze}/README.md +1 -1
  89. package/{pyze → providers/pyze}/pyze.d.ts +4 -1
  90. package/{segment → providers/segment}/README.md +3 -3
  91. package/{segment → providers/segment}/segment.d.ts +4 -1
  92. package/{splunk → providers/splunk}/README.md +2 -2
  93. package/providers/splunk/splunk.d.ts +11 -0
  94. package/{woopra → providers/woopra}/README.md +1 -1
  95. package/{woopra → providers/woopra}/woopra.d.ts +4 -1
  96. package/public_api.d.ts +23 -0
  97. package/routerless.module.d.ts +10 -0
  98. package/adobeanalytics/angulartics2-adobeanalytics.d.ts +0 -4
  99. package/adobeanalytics/angulartics2-adobeanalytics.metadata.json +0 -1
  100. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js +0 -326
  101. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js.map +0 -1
  102. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js +0 -16
  103. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js.map +0 -1
  104. package/adobeanalytics/esm2015/adobeanalytics.js +0 -105
  105. package/adobeanalytics/esm2015/angulartics2-adobeanalytics.js +0 -5
  106. package/adobeanalytics/esm5/adobeanalytics.js +0 -108
  107. package/adobeanalytics/esm5/angulartics2-adobeanalytics.js +0 -5
  108. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js +0 -108
  109. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js.map +0 -1
  110. package/adobeanalytics/fesm5/angulartics2-adobeanalytics.js +0 -111
  111. package/adobeanalytics/fesm5/angulartics2-adobeanalytics.js.map +0 -1
  112. package/adobeanalytics/package.json +0 -22
  113. package/amplitude/angulartics2-amplitude.d.ts +0 -4
  114. package/amplitude/angulartics2-amplitude.metadata.json +0 -1
  115. package/amplitude/bundles/angulartics2-amplitude.umd.js +0 -298
  116. package/amplitude/bundles/angulartics2-amplitude.umd.js.map +0 -1
  117. package/amplitude/bundles/angulartics2-amplitude.umd.min.js +0 -16
  118. package/amplitude/bundles/angulartics2-amplitude.umd.min.js.map +0 -1
  119. package/amplitude/esm2015/amplitude.js +0 -75
  120. package/amplitude/esm2015/angulartics2-amplitude.js +0 -5
  121. package/amplitude/esm5/amplitude.js +0 -78
  122. package/amplitude/esm5/angulartics2-amplitude.js +0 -5
  123. package/amplitude/fesm2015/angulartics2-amplitude.js +0 -79
  124. package/amplitude/fesm2015/angulartics2-amplitude.js.map +0 -1
  125. package/amplitude/fesm5/angulartics2-amplitude.js +0 -82
  126. package/amplitude/fesm5/angulartics2-amplitude.js.map +0 -1
  127. package/amplitude/package.json +0 -22
  128. package/angulartics2.metadata.json +0 -1
  129. package/appinsights/angulartics2-appinsights.d.ts +0 -4
  130. package/appinsights/angulartics2-appinsights.metadata.json +0 -1
  131. package/appinsights/bundles/angulartics2-appinsights.umd.js +0 -344
  132. package/appinsights/bundles/angulartics2-appinsights.umd.js.map +0 -1
  133. package/appinsights/bundles/angulartics2-appinsights.umd.min.js +0 -16
  134. package/appinsights/bundles/angulartics2-appinsights.umd.min.js.map +0 -1
  135. package/appinsights/esm2015/angulartics2-appinsights.js +0 -5
  136. package/appinsights/esm2015/appinsights.js +0 -124
  137. package/appinsights/esm5/angulartics2-appinsights.js +0 -5
  138. package/appinsights/esm5/appinsights.js +0 -129
  139. package/appinsights/fesm2015/angulartics2-appinsights.js +0 -126
  140. package/appinsights/fesm2015/angulartics2-appinsights.js.map +0 -1
  141. package/appinsights/fesm5/angulartics2-appinsights.js +0 -130
  142. package/appinsights/fesm5/angulartics2-appinsights.js.map +0 -1
  143. package/appinsights/package.json +0 -22
  144. package/baidu/angulartics2-baidu.d.ts +0 -4
  145. package/baidu/angulartics2-baidu.metadata.json +0 -1
  146. package/baidu/bundles/angulartics2-baidu.umd.js +0 -308
  147. package/baidu/bundles/angulartics2-baidu.umd.js.map +0 -1
  148. package/baidu/bundles/angulartics2-baidu.umd.min.js +0 -16
  149. package/baidu/bundles/angulartics2-baidu.umd.min.js.map +0 -1
  150. package/baidu/esm2015/angulartics2-baidu.js +0 -5
  151. package/baidu/esm2015/baidu.js +0 -85
  152. package/baidu/esm5/angulartics2-baidu.js +0 -5
  153. package/baidu/esm5/baidu.js +0 -88
  154. package/baidu/fesm2015/angulartics2-baidu.js +0 -89
  155. package/baidu/fesm2015/angulartics2-baidu.js.map +0 -1
  156. package/baidu/fesm5/angulartics2-baidu.js +0 -92
  157. package/baidu/fesm5/angulartics2-baidu.js.map +0 -1
  158. package/baidu/package.json +0 -22
  159. package/bundles/angulartics2.umd.js +0 -489
  160. package/bundles/angulartics2.umd.js.map +0 -1
  161. package/bundles/angulartics2.umd.min.js +0 -16
  162. package/bundles/angulartics2.umd.min.js.map +0 -1
  163. package/clicky/angulartics2-clicky.d.ts +0 -4
  164. package/clicky/angulartics2-clicky.metadata.json +0 -1
  165. package/clicky/bundles/angulartics2-clicky.umd.js +0 -290
  166. package/clicky/bundles/angulartics2-clicky.umd.js.map +0 -1
  167. package/clicky/bundles/angulartics2-clicky.umd.min.js +0 -16
  168. package/clicky/bundles/angulartics2-clicky.umd.min.js.map +0 -1
  169. package/clicky/esm2015/angulartics2-clicky.js +0 -5
  170. package/clicky/esm2015/clicky.interfaces.js +0 -1
  171. package/clicky/esm2015/clicky.js +0 -70
  172. package/clicky/esm5/angulartics2-clicky.js +0 -5
  173. package/clicky/esm5/clicky.interfaces.js +0 -1
  174. package/clicky/esm5/clicky.js +0 -72
  175. package/clicky/fesm2015/angulartics2-clicky.js +0 -73
  176. package/clicky/fesm2015/angulartics2-clicky.js.map +0 -1
  177. package/clicky/fesm5/angulartics2-clicky.js +0 -75
  178. package/clicky/fesm5/angulartics2-clicky.js.map +0 -1
  179. package/clicky/package.json +0 -22
  180. package/esm2015/angular-router.js +0 -38
  181. package/esm2015/angulartics2-config.js +0 -19
  182. package/esm2015/angulartics2-core.js +0 -93
  183. package/esm2015/angulartics2-interfaces.js +0 -1
  184. package/esm2015/angulartics2-token.js +0 -3
  185. package/esm2015/angulartics2.js +0 -5
  186. package/esm2015/angulartics2.module.js +0 -28
  187. package/esm2015/angulartics2On.js +0 -68
  188. package/esm2015/public_api.js +0 -8
  189. package/esm2015/routerless.js +0 -10
  190. package/esm5/angular-router.js +0 -39
  191. package/esm5/angulartics2-config.js +0 -21
  192. package/esm5/angulartics2-core.js +0 -110
  193. package/esm5/angulartics2-interfaces.js +0 -1
  194. package/esm5/angulartics2-token.js +0 -3
  195. package/esm5/angulartics2.js +0 -5
  196. package/esm5/angulartics2.module.js +0 -33
  197. package/esm5/angulartics2On.js +0 -73
  198. package/esm5/public_api.js +0 -8
  199. package/esm5/routerless.js +0 -14
  200. package/facebook/angulartics2-facebook.d.ts +0 -4
  201. package/facebook/angulartics2-facebook.metadata.json +0 -1
  202. package/facebook/bundles/angulartics2-facebook.umd.js +0 -272
  203. package/facebook/bundles/angulartics2-facebook.umd.js.map +0 -1
  204. package/facebook/bundles/angulartics2-facebook.umd.min.js +0 -16
  205. package/facebook/bundles/angulartics2-facebook.umd.min.js.map +0 -1
  206. package/facebook/esm2015/angulartics2-facebook.js +0 -5
  207. package/facebook/esm2015/facebook.js +0 -49
  208. package/facebook/esm5/angulartics2-facebook.js +0 -5
  209. package/facebook/esm5/facebook.js +0 -52
  210. package/facebook/fesm2015/angulartics2-facebook.js +0 -53
  211. package/facebook/fesm2015/angulartics2-facebook.js.map +0 -1
  212. package/facebook/fesm5/angulartics2-facebook.js +0 -56
  213. package/facebook/fesm5/angulartics2-facebook.js.map +0 -1
  214. package/facebook/package.json +0 -22
  215. package/fesm2015/angulartics2.js +0 -237
  216. package/fesm2015/angulartics2.js.map +0 -1
  217. package/fesm5/angulartics2.js +0 -269
  218. package/fesm5/angulartics2.js.map +0 -1
  219. package/ga/angulartics2-ga.d.ts +0 -4
  220. package/ga/angulartics2-ga.metadata.json +0 -1
  221. package/ga/bundles/angulartics2-ga.umd.js +0 -509
  222. package/ga/bundles/angulartics2-ga.umd.js.map +0 -1
  223. package/ga/bundles/angulartics2-ga.umd.min.js +0 -16
  224. package/ga/bundles/angulartics2-ga.umd.min.js.map +0 -1
  225. package/ga/esm2015/angulartics2-ga.js +0 -5
  226. package/ga/esm2015/ga.js +0 -209
  227. package/ga/esm5/angulartics2-ga.js +0 -5
  228. package/ga/esm5/ga.js +0 -289
  229. package/ga/fesm2015/angulartics2-ga.js +0 -213
  230. package/ga/fesm2015/angulartics2-ga.js.map +0 -1
  231. package/ga/fesm5/angulartics2-ga.js +0 -292
  232. package/ga/fesm5/angulartics2-ga.js.map +0 -1
  233. package/ga/package.json +0 -22
  234. package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.d.ts +0 -4
  235. package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.metadata.json +0 -1
  236. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js +0 -257
  237. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js.map +0 -1
  238. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js +0 -16
  239. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js.map +0 -1
  240. package/ga-enhanced-ecom/esm2015/angulartics2-ga-enhanced-ecom.js +0 -5
  241. package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom-options.js +0 -6
  242. package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom.js +0 -32
  243. package/ga-enhanced-ecom/esm5/angulartics2-ga-enhanced-ecom.js +0 -5
  244. package/ga-enhanced-ecom/esm5/ga-enhanced-ecom-options.js +0 -6
  245. package/ga-enhanced-ecom/esm5/ga-enhanced-ecom.js +0 -35
  246. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js +0 -37
  247. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js.map +0 -1
  248. package/ga-enhanced-ecom/fesm5/angulartics2-ga-enhanced-ecom.js +0 -40
  249. package/ga-enhanced-ecom/fesm5/angulartics2-ga-enhanced-ecom.js.map +0 -1
  250. package/ga-enhanced-ecom/package.json +0 -22
  251. package/gosquared/angulartics2-gosquared.d.ts +0 -4
  252. package/gosquared/angulartics2-gosquared.metadata.json +0 -1
  253. package/gosquared/bundles/angulartics2-gosquared.umd.js +0 -286
  254. package/gosquared/bundles/angulartics2-gosquared.umd.js.map +0 -1
  255. package/gosquared/bundles/angulartics2-gosquared.umd.min.js +0 -16
  256. package/gosquared/bundles/angulartics2-gosquared.umd.min.js.map +0 -1
  257. package/gosquared/esm2015/angulartics2-gosquared.js +0 -5
  258. package/gosquared/esm2015/gosquared.js +0 -59
  259. package/gosquared/esm5/angulartics2-gosquared.js +0 -5
  260. package/gosquared/esm5/gosquared.js +0 -66
  261. package/gosquared/fesm2015/angulartics2-gosquared.js +0 -63
  262. package/gosquared/fesm2015/angulartics2-gosquared.js.map +0 -1
  263. package/gosquared/fesm5/angulartics2-gosquared.js +0 -70
  264. package/gosquared/fesm5/angulartics2-gosquared.js.map +0 -1
  265. package/gosquared/package.json +0 -22
  266. package/gst/angulartics2-gst.d.ts +0 -4
  267. package/gst/angulartics2-gst.metadata.json +0 -1
  268. package/gst/bundles/angulartics2-gst.umd.js +0 -423
  269. package/gst/bundles/angulartics2-gst.umd.js.map +0 -1
  270. package/gst/bundles/angulartics2-gst.umd.min.js +0 -16
  271. package/gst/bundles/angulartics2-gst.umd.min.js.map +0 -1
  272. package/gst/esm2015/angulartics2-gst.js +0 -5
  273. package/gst/esm2015/gst-interfaces.js +0 -1
  274. package/gst/esm2015/gst.js +0 -184
  275. package/gst/esm5/angulartics2-gst.js +0 -5
  276. package/gst/esm5/gst-interfaces.js +0 -1
  277. package/gst/esm5/gst.js +0 -203
  278. package/gst/fesm2015/angulartics2-gst.js +0 -188
  279. package/gst/fesm2015/angulartics2-gst.js.map +0 -1
  280. package/gst/fesm5/angulartics2-gst.js +0 -206
  281. package/gst/fesm5/angulartics2-gst.js.map +0 -1
  282. package/gst/package.json +0 -22
  283. package/gtm/angulartics2-gtm.d.ts +0 -4
  284. package/gtm/angulartics2-gtm.metadata.json +0 -1
  285. package/gtm/bundles/angulartics2-gtm.umd.js +0 -335
  286. package/gtm/bundles/angulartics2-gtm.umd.js.map +0 -1
  287. package/gtm/bundles/angulartics2-gtm.umd.min.js +0 -16
  288. package/gtm/bundles/angulartics2-gtm.umd.min.js.map +0 -1
  289. package/gtm/esm2015/angulartics2-gtm.js +0 -5
  290. package/gtm/esm2015/gtm.js +0 -110
  291. package/gtm/esm5/angulartics2-gtm.js +0 -5
  292. package/gtm/esm5/gtm.js +0 -115
  293. package/gtm/fesm2015/angulartics2-gtm.js +0 -114
  294. package/gtm/fesm2015/angulartics2-gtm.js.map +0 -1
  295. package/gtm/fesm5/angulartics2-gtm.js +0 -118
  296. package/gtm/fesm5/angulartics2-gtm.js.map +0 -1
  297. package/gtm/package.json +0 -22
  298. package/hubspot/angulartics2-hubspot.d.ts +0 -4
  299. package/hubspot/angulartics2-hubspot.metadata.json +0 -1
  300. package/hubspot/bundles/angulartics2-hubspot.umd.js +0 -268
  301. package/hubspot/bundles/angulartics2-hubspot.umd.js.map +0 -1
  302. package/hubspot/bundles/angulartics2-hubspot.umd.min.js +0 -16
  303. package/hubspot/bundles/angulartics2-hubspot.umd.min.js.map +0 -1
  304. package/hubspot/esm2015/angulartics2-hubspot.js +0 -5
  305. package/hubspot/esm2015/hubspot.js +0 -45
  306. package/hubspot/esm5/angulartics2-hubspot.js +0 -5
  307. package/hubspot/esm5/hubspot.js +0 -48
  308. package/hubspot/fesm2015/angulartics2-hubspot.js +0 -49
  309. package/hubspot/fesm2015/angulartics2-hubspot.js.map +0 -1
  310. package/hubspot/fesm5/angulartics2-hubspot.js +0 -52
  311. package/hubspot/fesm5/angulartics2-hubspot.js.map +0 -1
  312. package/hubspot/package.json +0 -22
  313. package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.d.ts +0 -4
  314. package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.metadata.json +0 -1
  315. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js +0 -352
  316. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js.map +0 -1
  317. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js +0 -16
  318. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js.map +0 -1
  319. package/ibm-digital-analytics/esm2015/angulartics2-ibm-digital-analytics.js +0 -5
  320. package/ibm-digital-analytics/esm2015/ibm-digital-analytics.js +0 -129
  321. package/ibm-digital-analytics/esm5/angulartics2-ibm-digital-analytics.js +0 -5
  322. package/ibm-digital-analytics/esm5/ibm-digital-analytics.js +0 -132
  323. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js +0 -133
  324. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js.map +0 -1
  325. package/ibm-digital-analytics/fesm5/angulartics2-ibm-digital-analytics.js +0 -136
  326. package/ibm-digital-analytics/fesm5/angulartics2-ibm-digital-analytics.js.map +0 -1
  327. package/ibm-digital-analytics/package.json +0 -22
  328. package/intercom/angulartics2-intercom.d.ts +0 -4
  329. package/intercom/angulartics2-intercom.metadata.json +0 -1
  330. package/intercom/bundles/angulartics2-intercom.umd.js +0 -289
  331. package/intercom/bundles/angulartics2-intercom.umd.js.map +0 -1
  332. package/intercom/bundles/angulartics2-intercom.umd.min.js +0 -16
  333. package/intercom/bundles/angulartics2-intercom.umd.min.js.map +0 -1
  334. package/intercom/esm2015/angulartics2-intercom.js +0 -5
  335. package/intercom/esm2015/intercom.js +0 -66
  336. package/intercom/esm5/angulartics2-intercom.js +0 -5
  337. package/intercom/esm5/intercom.js +0 -69
  338. package/intercom/fesm2015/angulartics2-intercom.js +0 -70
  339. package/intercom/fesm2015/angulartics2-intercom.js.map +0 -1
  340. package/intercom/fesm5/angulartics2-intercom.js +0 -73
  341. package/intercom/fesm5/angulartics2-intercom.js.map +0 -1
  342. package/intercom/package.json +0 -22
  343. package/kissmetrics/angulartics2-kissmetrics.d.ts +0 -4
  344. package/kissmetrics/angulartics2-kissmetrics.metadata.json +0 -1
  345. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js +0 -269
  346. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js.map +0 -1
  347. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js +0 -16
  348. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js.map +0 -1
  349. package/kissmetrics/esm2015/angulartics2-kissmetrics.js +0 -5
  350. package/kissmetrics/esm2015/kissmetrics.js +0 -46
  351. package/kissmetrics/esm5/angulartics2-kissmetrics.js +0 -5
  352. package/kissmetrics/esm5/kissmetrics.js +0 -49
  353. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js +0 -50
  354. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js.map +0 -1
  355. package/kissmetrics/fesm5/angulartics2-kissmetrics.js +0 -53
  356. package/kissmetrics/fesm5/angulartics2-kissmetrics.js.map +0 -1
  357. package/kissmetrics/package.json +0 -25
  358. package/launch/angulartics2-launch.d.ts +0 -4
  359. package/launch/angulartics2-launch.metadata.json +0 -1
  360. package/launch/bundles/angulartics2-launch.umd.js +0 -288
  361. package/launch/bundles/angulartics2-launch.umd.js.map +0 -1
  362. package/launch/bundles/angulartics2-launch.umd.min.js +0 -16
  363. package/launch/bundles/angulartics2-launch.umd.min.js.map +0 -1
  364. package/launch/esm2015/angulartics2-launch.js +0 -5
  365. package/launch/esm2015/launch.js +0 -65
  366. package/launch/esm5/angulartics2-launch.js +0 -5
  367. package/launch/esm5/launch.js +0 -68
  368. package/launch/fesm2015/angulartics2-launch.js +0 -69
  369. package/launch/fesm2015/angulartics2-launch.js.map +0 -1
  370. package/launch/fesm5/angulartics2-launch.js +0 -72
  371. package/launch/fesm5/angulartics2-launch.js.map +0 -1
  372. package/launch/package.json +0 -22
  373. package/mixpanel/angulartics2-mixpanel.d.ts +0 -4
  374. package/mixpanel/angulartics2-mixpanel.metadata.json +0 -1
  375. package/mixpanel/bundles/angulartics2-mixpanel.umd.js +0 -342
  376. package/mixpanel/bundles/angulartics2-mixpanel.umd.js.map +0 -1
  377. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js +0 -16
  378. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js.map +0 -1
  379. package/mixpanel/esm2015/angulartics2-mixpanel.js +0 -5
  380. package/mixpanel/esm2015/mixpanel.js +0 -119
  381. package/mixpanel/esm5/angulartics2-mixpanel.js +0 -5
  382. package/mixpanel/esm5/mixpanel.js +0 -122
  383. package/mixpanel/fesm2015/angulartics2-mixpanel.js +0 -123
  384. package/mixpanel/fesm2015/angulartics2-mixpanel.js.map +0 -1
  385. package/mixpanel/fesm5/angulartics2-mixpanel.js +0 -126
  386. package/mixpanel/fesm5/angulartics2-mixpanel.js.map +0 -1
  387. package/mixpanel/package.json +0 -22
  388. package/piwik/angulartics2-piwik.d.ts +0 -4
  389. package/piwik/angulartics2-piwik.metadata.json +0 -1
  390. package/piwik/bundles/angulartics2-piwik.umd.js +0 -478
  391. package/piwik/bundles/angulartics2-piwik.umd.js.map +0 -1
  392. package/piwik/bundles/angulartics2-piwik.umd.min.js +0 -16
  393. package/piwik/bundles/angulartics2-piwik.umd.min.js.map +0 -1
  394. package/piwik/esm2015/angulartics2-piwik.js +0 -5
  395. package/piwik/esm2015/piwik.js +0 -254
  396. package/piwik/esm5/angulartics2-piwik.js +0 -5
  397. package/piwik/esm5/piwik.js +0 -258
  398. package/piwik/fesm2015/angulartics2-piwik.js +0 -258
  399. package/piwik/fesm2015/angulartics2-piwik.js.map +0 -1
  400. package/piwik/fesm5/angulartics2-piwik.js +0 -262
  401. package/piwik/fesm5/angulartics2-piwik.js.map +0 -1
  402. package/piwik/package.json +0 -22
  403. package/piwik/piwik.d.ts +0 -27
  404. package/pyze/angulartics2-pyze.d.ts +0 -4
  405. package/pyze/angulartics2-pyze.metadata.json +0 -1
  406. package/pyze/bundles/angulartics2-pyze.umd.js +0 -292
  407. package/pyze/bundles/angulartics2-pyze.umd.js.map +0 -1
  408. package/pyze/bundles/angulartics2-pyze.umd.min.js +0 -16
  409. package/pyze/bundles/angulartics2-pyze.umd.min.js.map +0 -1
  410. package/pyze/esm2015/angulartics2-pyze.js +0 -5
  411. package/pyze/esm2015/pyze.js +0 -69
  412. package/pyze/esm5/angulartics2-pyze.js +0 -5
  413. package/pyze/esm5/pyze.js +0 -72
  414. package/pyze/fesm2015/angulartics2-pyze.js +0 -73
  415. package/pyze/fesm2015/angulartics2-pyze.js.map +0 -1
  416. package/pyze/fesm5/angulartics2-pyze.js +0 -76
  417. package/pyze/fesm5/angulartics2-pyze.js.map +0 -1
  418. package/pyze/package.json +0 -22
  419. package/routerlessmodule/angulartics2-routerlessmodule.d.ts +0 -4
  420. package/routerlessmodule/angulartics2-routerlessmodule.metadata.json +0 -1
  421. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js +0 -250
  422. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js.map +0 -1
  423. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js +0 -16
  424. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js.map +0 -1
  425. package/routerlessmodule/esm2015/angulartics2-routerlessmodule.js +0 -5
  426. package/routerlessmodule/esm2015/routerless.module.js +0 -23
  427. package/routerlessmodule/esm5/angulartics2-routerlessmodule.js +0 -5
  428. package/routerlessmodule/esm5/routerless.module.js +0 -28
  429. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js +0 -29
  430. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js.map +0 -1
  431. package/routerlessmodule/fesm5/angulartics2-routerlessmodule.js +0 -34
  432. package/routerlessmodule/fesm5/angulartics2-routerlessmodule.js.map +0 -1
  433. package/routerlessmodule/package.json +0 -22
  434. package/routerlessmodule/routerless.module.d.ts +0 -5
  435. package/segment/angulartics2-segment.d.ts +0 -4
  436. package/segment/angulartics2-segment.metadata.json +0 -1
  437. package/segment/bundles/angulartics2-segment.umd.js +0 -330
  438. package/segment/bundles/angulartics2-segment.umd.js.map +0 -1
  439. package/segment/bundles/angulartics2-segment.umd.min.js +0 -16
  440. package/segment/bundles/angulartics2-segment.umd.min.js.map +0 -1
  441. package/segment/esm2015/angulartics2-segment.js +0 -5
  442. package/segment/esm2015/segment.js +0 -107
  443. package/segment/esm5/angulartics2-segment.js +0 -5
  444. package/segment/esm5/segment.js +0 -110
  445. package/segment/fesm2015/angulartics2-segment.js +0 -111
  446. package/segment/fesm2015/angulartics2-segment.js.map +0 -1
  447. package/segment/fesm5/angulartics2-segment.js +0 -114
  448. package/segment/fesm5/angulartics2-segment.js.map +0 -1
  449. package/segment/package.json +0 -22
  450. package/splunk/angulartics2-splunk.d.ts +0 -4
  451. package/splunk/angulartics2-splunk.metadata.json +0 -1
  452. package/splunk/bundles/angulartics2-splunk.umd.js +0 -272
  453. package/splunk/bundles/angulartics2-splunk.umd.js.map +0 -1
  454. package/splunk/bundles/angulartics2-splunk.umd.min.js +0 -16
  455. package/splunk/bundles/angulartics2-splunk.umd.min.js.map +0 -1
  456. package/splunk/esm2015/angulartics2-splunk.js +0 -5
  457. package/splunk/esm2015/splunk.js +0 -50
  458. package/splunk/esm5/angulartics2-splunk.js +0 -5
  459. package/splunk/esm5/splunk.js +0 -52
  460. package/splunk/fesm2015/angulartics2-splunk.js +0 -54
  461. package/splunk/fesm2015/angulartics2-splunk.js.map +0 -1
  462. package/splunk/fesm5/angulartics2-splunk.js +0 -56
  463. package/splunk/fesm5/angulartics2-splunk.js.map +0 -1
  464. package/splunk/package.json +0 -22
  465. package/splunk/splunk.d.ts +0 -8
  466. package/uiroutermodule/angulartics2-uiroutermodule.d.ts +0 -4
  467. package/uiroutermodule/angulartics2-uiroutermodule.metadata.json +0 -1
  468. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js +0 -288
  469. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js.map +0 -1
  470. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js +0 -16
  471. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js.map +0 -1
  472. package/uiroutermodule/esm2015/angulartics2-uiroutermodule.js +0 -5
  473. package/uiroutermodule/esm2015/public_api.js +0 -3
  474. package/uiroutermodule/esm2015/uirouter.js +0 -42
  475. package/uiroutermodule/esm2015/uirouter.module.js +0 -24
  476. package/uiroutermodule/esm5/angulartics2-uiroutermodule.js +0 -5
  477. package/uiroutermodule/esm5/public_api.js +0 -3
  478. package/uiroutermodule/esm5/uirouter.js +0 -44
  479. package/uiroutermodule/esm5/uirouter.module.js +0 -29
  480. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js +0 -66
  481. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js.map +0 -1
  482. package/uiroutermodule/fesm5/angulartics2-uiroutermodule.js +0 -73
  483. package/uiroutermodule/fesm5/angulartics2-uiroutermodule.js.map +0 -1
  484. package/uiroutermodule/package.json +0 -22
  485. package/uiroutermodule/public_api.d.ts +0 -2
  486. package/uiroutermodule/uirouter.d.ts +0 -17
  487. package/uiroutermodule/uirouter.module.d.ts +0 -5
  488. package/woopra/angulartics2-woopra.d.ts +0 -4
  489. package/woopra/angulartics2-woopra.metadata.json +0 -1
  490. package/woopra/bundles/angulartics2-woopra.umd.js +0 -289
  491. package/woopra/bundles/angulartics2-woopra.umd.js.map +0 -1
  492. package/woopra/bundles/angulartics2-woopra.umd.min.js +0 -16
  493. package/woopra/bundles/angulartics2-woopra.umd.min.js.map +0 -1
  494. package/woopra/esm2015/angulartics2-woopra.js +0 -5
  495. package/woopra/esm2015/woopra.js +0 -66
  496. package/woopra/esm5/angulartics2-woopra.js +0 -5
  497. package/woopra/esm5/woopra.js +0 -69
  498. package/woopra/fesm2015/angulartics2-woopra.js +0 -70
  499. package/woopra/fesm2015/angulartics2-woopra.js.map +0 -1
  500. package/woopra/fesm5/angulartics2-woopra.js +0 -73
  501. package/woopra/fesm5/angulartics2-woopra.js.map +0 -1
  502. package/woopra/package.json +0 -22
package/ga/esm5/ga.js DELETED
@@ -1,289 +0,0 @@
1
- import { __assign, __decorate, __values } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Angulartics2, GoogleAnalyticsSettings, UserTimings, } from 'angulartics2';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "angulartics2";
6
- var GoogleAnalyticsDefaults = /** @class */ (function () {
7
- function GoogleAnalyticsDefaults() {
8
- this.additionalAccountNames = [];
9
- this.userId = null;
10
- this.transport = '';
11
- this.anonymizeIp = false;
12
- }
13
- return GoogleAnalyticsDefaults;
14
- }());
15
- export { GoogleAnalyticsDefaults };
16
- var Angulartics2GoogleAnalytics = /** @class */ (function () {
17
- function Angulartics2GoogleAnalytics(angulartics2) {
18
- var _this = this;
19
- this.angulartics2 = angulartics2;
20
- this.dimensionsAndMetrics = [];
21
- var defaults = new GoogleAnalyticsDefaults();
22
- // Set the default settings for this module
23
- this.angulartics2.settings.ga = __assign(__assign({}, defaults), this.angulartics2.settings.ga);
24
- this.settings = this.angulartics2.settings.ga;
25
- this.angulartics2.setUsername.subscribe(function (x) { return _this.setUsername(x); });
26
- this.angulartics2.setUserProperties.subscribe(function (x) { return _this.setUserProperties(x); });
27
- }
28
- Angulartics2GoogleAnalytics.prototype.startTracking = function () {
29
- var _this = this;
30
- this.angulartics2.pageTrack
31
- .pipe(this.angulartics2.filterDeveloperMode())
32
- .subscribe(function (x) { return _this.pageTrack(x.path); });
33
- this.angulartics2.eventTrack
34
- .pipe(this.angulartics2.filterDeveloperMode())
35
- .subscribe(function (x) { return _this.eventTrack(x.action, x.properties); });
36
- this.angulartics2.exceptionTrack
37
- .pipe(this.angulartics2.filterDeveloperMode())
38
- .subscribe(function (x) { return _this.exceptionTrack(x); });
39
- this.angulartics2.userTimings
40
- .pipe(this.angulartics2.filterDeveloperMode())
41
- .subscribe(function (x) { return _this.userTimings(x); });
42
- };
43
- Angulartics2GoogleAnalytics.prototype.pageTrack = function (path) {
44
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
45
- if (typeof _gaq !== 'undefined' && _gaq) {
46
- _gaq.push(['_trackPageview', path]);
47
- try {
48
- for (var _e = __values(this.angulartics2.settings.ga.additionalAccountNames), _f = _e.next(); !_f.done; _f = _e.next()) {
49
- var accountName = _f.value;
50
- _gaq.push([accountName + '._trackPageview', path]);
51
- }
52
- }
53
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
54
- finally {
55
- try {
56
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
57
- }
58
- finally { if (e_1) throw e_1.error; }
59
- }
60
- }
61
- if (typeof ga !== 'undefined' && ga) {
62
- if (this.angulartics2.settings.ga.userId) {
63
- ga('set', '&uid', this.angulartics2.settings.ga.userId);
64
- try {
65
- for (var _g = __values(this.angulartics2.settings.ga.additionalAccountNames), _h = _g.next(); !_h.done; _h = _g.next()) {
66
- var accountName = _h.value;
67
- ga(accountName + '.set', '&uid', this.angulartics2.settings.ga.userId);
68
- }
69
- }
70
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
71
- finally {
72
- try {
73
- if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
74
- }
75
- finally { if (e_2) throw e_2.error; }
76
- }
77
- }
78
- if (this.angulartics2.settings.ga.anonymizeIp) {
79
- ga('set', 'anonymizeIp', true);
80
- try {
81
- for (var _j = __values(this.angulartics2.settings.ga.additionalAccountNames), _k = _j.next(); !_k.done; _k = _j.next()) {
82
- var accountName = _k.value;
83
- ga(accountName + '.set', 'anonymizeIp', true);
84
- }
85
- }
86
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
87
- finally {
88
- try {
89
- if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
90
- }
91
- finally { if (e_3) throw e_3.error; }
92
- }
93
- }
94
- ga('send', 'pageview', path);
95
- try {
96
- for (var _l = __values(this.angulartics2.settings.ga.additionalAccountNames), _m = _l.next(); !_m.done; _m = _l.next()) {
97
- var accountName = _m.value;
98
- ga(accountName + '.send', 'pageview', path);
99
- }
100
- }
101
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
102
- finally {
103
- try {
104
- if (_m && !_m.done && (_d = _l.return)) _d.call(_l);
105
- }
106
- finally { if (e_4) throw e_4.error; }
107
- }
108
- }
109
- };
110
- /**
111
- * Track Event in GA
112
- *
113
- * @param action Associated with the event
114
- * @param properties Comprised of:
115
- * - category (string) and optional
116
- * - label (string)
117
- * - value (integer)
118
- * - noninteraction (boolean)
119
- *
120
- * @link https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#SettingUpEventTracking
121
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events
122
- */
123
- Angulartics2GoogleAnalytics.prototype.eventTrack = function (action, properties) {
124
- var e_5, _a;
125
- // Google Analytics requires an Event Category
126
- if (!properties || !properties.category) {
127
- properties = properties || {};
128
- properties.category = 'Event';
129
- }
130
- // GA requires that eventValue be an integer, see:
131
- // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#eventValue
132
- // https://github.com/luisfarzati/angulartics/issues/81
133
- if (properties.value) {
134
- var parsed = parseInt(properties.value, 10);
135
- properties.value = isNaN(parsed) ? 0 : parsed;
136
- }
137
- if (typeof ga !== 'undefined') {
138
- var eventOptions = __assign({ eventCategory: properties.category, eventAction: action, eventLabel: properties.label, eventValue: properties.value, nonInteraction: properties.noninteraction, page: properties.page || location.hash.substring(1) || location.pathname, userId: this.angulartics2.settings.ga.userId, hitCallback: properties.hitCallback }, this.angulartics2.settings.ga.transport && { transport: this.angulartics2.settings.ga.transport });
139
- // add custom dimensions and metrics
140
- this.setDimensionsAndMetrics(properties);
141
- ga('send', 'event', eventOptions);
142
- try {
143
- for (var _b = __values(this.angulartics2.settings.ga.additionalAccountNames), _c = _b.next(); !_c.done; _c = _b.next()) {
144
- var accountName = _c.value;
145
- ga(accountName + '.send', 'event', eventOptions);
146
- }
147
- }
148
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
149
- finally {
150
- try {
151
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
152
- }
153
- finally { if (e_5) throw e_5.error; }
154
- }
155
- }
156
- else if (typeof _gaq !== 'undefined') {
157
- _gaq.push([
158
- '_trackEvent',
159
- properties.category,
160
- action,
161
- properties.label,
162
- properties.value,
163
- properties.noninteraction,
164
- ]);
165
- }
166
- };
167
- /**
168
- * Exception Track Event in GA
169
- *
170
- * @param properties Comprised of the optional fields:
171
- * - fatal (string)
172
- * - description (string)
173
- *
174
- * @https://developers.google.com/analytics/devguides/collection/analyticsjs/exceptions
175
- *
176
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events
177
- */
178
- Angulartics2GoogleAnalytics.prototype.exceptionTrack = function (properties) {
179
- var e_6, _a;
180
- if (properties.fatal === undefined) {
181
- console.log('No "fatal" provided, sending with fatal=true');
182
- properties.fatal = true;
183
- }
184
- properties.exDescription = properties.description;
185
- var eventOptions = {
186
- exFatal: properties.fatal,
187
- exDescription: properties.description,
188
- };
189
- ga('send', 'exception', eventOptions);
190
- try {
191
- for (var _b = __values(this.angulartics2.settings.ga.additionalAccountNames), _c = _b.next(); !_c.done; _c = _b.next()) {
192
- var accountName = _c.value;
193
- ga(accountName + '.send', 'exception', eventOptions);
194
- }
195
- }
196
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
197
- finally {
198
- try {
199
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
200
- }
201
- finally { if (e_6) throw e_6.error; }
202
- }
203
- };
204
- /**
205
- * User Timings Event in GA
206
- *
207
- * @param properties Comprised of the mandatory fields:
208
- * - timingCategory (string)
209
- * - timingVar (string)
210
- * - timingValue (number)
211
- * Properties can also have the optional fields:
212
- * - timingLabel (string)
213
- *
214
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/user-timings
215
- */
216
- Angulartics2GoogleAnalytics.prototype.userTimings = function (properties) {
217
- var e_7, _a;
218
- if (!properties ||
219
- !properties.timingCategory ||
220
- !properties.timingVar ||
221
- !properties.timingValue) {
222
- console.error('Properties timingCategory, timingVar, and timingValue are required to be set.');
223
- return;
224
- }
225
- if (typeof ga !== 'undefined') {
226
- ga('send', 'timing', properties);
227
- try {
228
- for (var _b = __values(this.angulartics2.settings.ga.additionalAccountNames), _c = _b.next(); !_c.done; _c = _b.next()) {
229
- var accountName = _c.value;
230
- ga(accountName + '.send', 'timing', properties);
231
- }
232
- }
233
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
234
- finally {
235
- try {
236
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
237
- }
238
- finally { if (e_7) throw e_7.error; }
239
- }
240
- }
241
- };
242
- Angulartics2GoogleAnalytics.prototype.setUsername = function (userId) {
243
- this.angulartics2.settings.ga.userId = userId;
244
- if (typeof ga === 'undefined') {
245
- return;
246
- }
247
- ga('set', 'userId', userId);
248
- };
249
- Angulartics2GoogleAnalytics.prototype.setUserProperties = function (properties) {
250
- this.setDimensionsAndMetrics(properties);
251
- };
252
- Angulartics2GoogleAnalytics.prototype.setDimensionsAndMetrics = function (properties) {
253
- var _this = this;
254
- if (typeof ga === 'undefined') {
255
- return;
256
- }
257
- // clean previously used dimensions and metrics that will not be overriden
258
- this.dimensionsAndMetrics.forEach(function (elem) {
259
- if (!properties.hasOwnProperty(elem)) {
260
- ga('set', elem, undefined);
261
- _this.angulartics2.settings.ga.additionalAccountNames.forEach(function (accountName) {
262
- ga(accountName + ".set", elem, undefined);
263
- });
264
- }
265
- });
266
- this.dimensionsAndMetrics = [];
267
- // add custom dimensions and metrics
268
- Object.keys(properties).forEach(function (key) {
269
- if (key.lastIndexOf('dimension', 0) === 0 ||
270
- key.lastIndexOf('metric', 0) === 0) {
271
- ga('set', key, properties[key]);
272
- _this.angulartics2.settings.ga.additionalAccountNames.forEach(function (accountName) {
273
- ga(accountName + ".set", key, properties[key]);
274
- });
275
- _this.dimensionsAndMetrics.push(key);
276
- }
277
- });
278
- };
279
- Angulartics2GoogleAnalytics.ctorParameters = function () { return [
280
- { type: Angulartics2 }
281
- ]; };
282
- Angulartics2GoogleAnalytics.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2GoogleAnalytics_Factory() { return new Angulartics2GoogleAnalytics(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2GoogleAnalytics, providedIn: "root" });
283
- Angulartics2GoogleAnalytics = __decorate([
284
- Injectable({ providedIn: 'root' })
285
- ], Angulartics2GoogleAnalytics);
286
- return Angulartics2GoogleAnalytics;
287
- }());
288
- export { Angulartics2GoogleAnalytics };
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2EuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFydGljczIvZ2EvIiwic291cmNlcyI6WyJnYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixXQUFXLEdBQ1osTUFBTSxjQUFjLENBQUM7OztBQU90QjtJQUFBO1FBQ0UsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUFELDhCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0M7O0FBR0Q7SUFJRSxxQ0FBb0IsWUFBMEI7UUFBOUMsaUJBVUM7UUFWbUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFIOUMseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBSXhCLElBQU0sUUFBUSxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUMvQywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSx5QkFDeEIsUUFBUSxHQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFDLENBQVMsSUFBSyxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQW5CLENBQW1CLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFD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LElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFL0Isb0NBQW9DO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsR0FBRztZQUNqQyxJQUNFLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3JDLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDbEM7Z0JBQ0EsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRWhDLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQzFELFVBQUMsV0FBbUI7b0JBQ2xCLEVBQUUsQ0FBSSxXQUFXLFNBQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELENBQUMsQ0FDRixDQUFDO2dCQUNGLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dCQS9OaUMsWUFBWTs7O0lBSm5DLDJCQUEyQjtRQUR2QyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7T0FDdEIsMkJBQTJCLENBb092QztzQ0F6UEQ7Q0F5UEMsQUFwT0QsSUFvT0M7U0FwT1ksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBbmd1bGFydGljczIsXG4gIEdvb2dsZUFuYWx5dGljc1NldHRpbmdzLFxuICBVc2VyVGltaW5ncyxcbn0gZnJvbSAnYW5ndWxhcnRpY3MyJztcblxuXG5kZWNsYXJlIHZhciBfZ2FxOiBHb29nbGVBbmFseXRpY3NDb2RlO1xuZGVjbGFyZSB2YXIgZ2E6IFVuaXZlcnNhbEFuYWx5dGljcy5nYTtcbmRlY2xhcmUgdmFyIGxvY2F0aW9uOiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVBbmFseXRpY3NEZWZhdWx0cyBpbXBsZW1lbnRzIEdvb2dsZUFuYWx5dGljc1NldHRpbmdzIHtcbiAgYWRkaXRpb25hbEFjY291bnROYW1lcyA9IFtdO1xuICB1c2VySWQgPSBudWxsO1xuICB0cmFuc3BvcnQgPSAnJztcbiAgYW5vbnltaXplSXAgPSBmYWxzZTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFydGljczJHb29nbGVBbmFseXRpY3Mge1xuICBkaW1lbnNpb25zQW5kTWV0cmljcyA9IFtdO1xuICBzZXR0aW5nczogUGFydGlhbDxHb29nbGVBbmFseXRpY3NTZXR0aW5ncz47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFydGljczI6IEFuZ3VsYXJ0aWNzMikge1xuICAgIGNvbnN0IGRlZmF1bHRzID0gbmV3IEdvb2dsZUFuYWx5dGljc0RlZmF1bHRzKCk7XG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGlzIG1vZHVsZVxuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhID0ge1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi50aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYSxcbiAgICB9O1xuICAgIHRoaXMuc2V0dGluZ3MgPSB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRVc2VybmFtZS5zdWJzY3JpYmUoKHg6IHN0cmluZykgPT4gdGhpcy5zZXRVc2VybmFtZSh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXMuc3Vic2NyaWJlKHggPT4gdGhpcy5zZXRVc2VyUHJvcGVydGllcyh4KSk7XG4gIH1cblxuICBzdGFydFRyYWNraW5nKCk6IHZvaWQge1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnBhZ2VUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMucGFnZVRyYWNrKHgucGF0aCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLmV2ZW50VHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLmV2ZW50VHJhY2soeC5hY3Rpb24sIHgucHJvcGVydGllcykpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLmV4Y2VwdGlvblRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5leGNlcHRpb25UcmFjayh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIudXNlclRpbWluZ3NcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLnVzZXJUaW1pbmdzKHgpKTtcbiAgfVxuXG4gIHBhZ2VUcmFjayhwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIF9nYXEgIT09ICd1bmRlZmluZWQnICYmIF9nYXEpIHtcbiAgICAgIF9nYXEucHVzaChbJ190cmFja1BhZ2V2aWV3JywgcGF0aF0pO1xuICAgICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICAgIF9nYXEucHVzaChbYWNjb3VudE5hbWUgKyAnLl90cmFja1BhZ2V2aWV3JywgcGF0aF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGdhICE9PSAndW5kZWZpbmVkJyAmJiBnYSkge1xuICAgICAgaWYgKHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLnVzZXJJZCkge1xuICAgICAgICBnYSgnc2V0JywgJyZ1aWQnLCB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS51c2VySWQpO1xuICAgICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgICAgICBnYShhY2NvdW50TmFtZSArICcuc2V0JywgJyZ1aWQnLCB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS51c2VySWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EuYW5vbnltaXplSXApIHtcbiAgICAgICAgZ2EoJ3NldCcsICdhbm9ueW1pemVJcCcsIHRydWUpO1xuICAgICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgICAgICBnYShhY2NvdW50TmFtZSArICcuc2V0JywgJ2Fub255bWl6ZUlwJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGdhKCdzZW5kJywgJ3BhZ2V2aWV3JywgcGF0aCk7XG4gICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgICAgZ2EoYWNjb3VudE5hbWUgKyAnLnNlbmQnLCAncGFnZXZpZXcnLCBwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgRXZlbnQgaW4gR0FcbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbiBBc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50XG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzIENvbXByaXNlZCBvZjpcbiAgICogIC0gY2F0ZWdvcnkgKHN0cmluZykgYW5kIG9wdGlvbmFsXG4gICAqICAtIGxhYmVsIChzdHJpbmcpXG4gICAqICAtIHZhbHVlIChpbnRlZ2VyKVxuICAgKiAgLSBub25pbnRlcmFjdGlvbiAoYm9vbGVhbilcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2dhanMvZXZlbnRUcmFja2VyR3VpZGUjU2V0dGluZ1VwRXZlbnRUcmFja2luZ1xuICAgKiBAbGluayBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vYW5hbHl0aWNzanMvZXZlbnRzXG4gICAqL1xuICBldmVudFRyYWNrKGFjdGlvbjogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAvLyBHb29nbGUgQW5hbHl0aWNzIHJlcXVpcmVzIGFuIEV2ZW50IENhdGVnb3J5XG4gICAgaWYgKCFwcm9wZXJ0aWVzIHx8ICFwcm9wZXJ0aWVzLmNhdGVnb3J5KSB7XG4gICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllcyB8fCB7fTtcbiAgICAgIHByb3BlcnRpZXMuY2F0ZWdvcnkgPSAnRXZlbnQnO1xuICAgIH1cbiAgICAvLyBHQSByZXF1aXJlcyB0aGF0IGV2ZW50VmFsdWUgYmUgYW4gaW50ZWdlciwgc2VlOlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9maWVsZC1yZWZlcmVuY2UjZXZlbnRWYWx1ZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWlzZmFyemF0aS9hbmd1bGFydGljcy9pc3N1ZXMvODFcbiAgICBpZiAocHJvcGVydGllcy52YWx1ZSkge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQocHJvcGVydGllcy52YWx1ZSwgMTApO1xuICAgICAgcHJvcGVydGllcy52YWx1ZSA9IGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZ2EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBldmVudE9wdGlvbnMgPSB7XG4gICAgICAgIGV2ZW50Q2F0ZWdvcnk6IHByb3BlcnRpZXMuY2F0ZWdvcnksXG4gICAgICAgIGV2ZW50QWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGV2ZW50TGFiZWw6IHByb3BlcnRpZXMubGFiZWwsXG4gICAgICAgIGV2ZW50VmFsdWU6IHByb3BlcnRpZXMudmFsdWUsXG4gICAgICAgIG5vbkludGVyYWN0aW9uOiBwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uLFxuICAgICAgICBwYWdlOiBwcm9wZXJ0aWVzLnBhZ2UgfHwgbG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSkgfHwgbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIHVzZXJJZDogdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EudXNlcklkLFxuICAgICAgICBoaXRDYWxsYmFjazogcHJvcGVydGllcy5oaXRDYWxsYmFjayxcbiAgICAgICAgLi4uIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLnRyYW5zcG9ydCAmJiB7IHRyYW5zcG9ydDogdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EudHJhbnNwb3J0IH1cbiAgICAgIH07XG5cbiAgICAgIC8vIGFkZCBjdXN0b20gZGltZW5zaW9ucyBhbmQgbWV0cmljc1xuICAgICAgdGhpcy5zZXREaW1lbnNpb25zQW5kTWV0cmljcyhwcm9wZXJ0aWVzKTtcblxuICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCBldmVudE9wdGlvbnMpO1xuXG4gICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgICAgZ2EoYWNjb3VudE5hbWUgKyAnLnNlbmQnLCAnZXZlbnQnLCBldmVudE9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIF9nYXEgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBfZ2FxLnB1c2goW1xuICAgICAgICAnX3RyYWNrRXZlbnQnLFxuICAgICAgICBwcm9wZXJ0aWVzLmNhdGVnb3J5LFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIHByb3BlcnRpZXMubGFiZWwsXG4gICAgICAgIHByb3BlcnRpZXMudmFsdWUsXG4gICAgICAgIHByb3BlcnRpZXMubm9uaW50ZXJhY3Rpb24sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhjZXB0aW9uIFRyYWNrIEV2ZW50IGluIEdBXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzIENvbXByaXNlZCBvZiB0aGUgb3B0aW9uYWwgZmllbGRzOlxuICAgKiAgLSBmYXRhbCAoc3RyaW5nKVxuICAgKiAgLSBkZXNjcmlwdGlvbiAoc3RyaW5nKVxuICAgKlxuICAgKiBAaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL2V4Y2VwdGlvbnNcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL2V2ZW50c1xuICAgKi9cbiAgZXhjZXB0aW9uVHJhY2socHJvcGVydGllczogYW55KSB7XG4gICAgaWYgKHByb3BlcnRpZXMuZmF0YWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5sb2coJ05vIFwiZmF0YWxcIiBwcm92aWRlZCwgc2VuZGluZyB3aXRoIGZhdGFsPXRydWUnKTtcbiAgICAgIHByb3BlcnRpZXMuZmF0YWwgPSB0cnVlO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMuZXhEZXNjcmlwdGlvbiA9IHByb3BlcnRpZXMuZGVzY3JpcHRpb247XG5cbiAgICBjb25zdCBldmVudE9wdGlvbnMgPSB7XG4gICAgICBleEZhdGFsOiBwcm9wZXJ0aWVzLmZhdGFsLFxuICAgICAgZXhEZXNjcmlwdGlvbjogcHJvcGVydGllcy5kZXNjcmlwdGlvbixcbiAgICB9O1xuXG4gICAgZ2EoJ3NlbmQnLCAnZXhjZXB0aW9uJywgZXZlbnRPcHRpb25zKTtcbiAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgIGdhKGFjY291bnROYW1lICsgJy5zZW5kJywgJ2V4Y2VwdGlvbicsIGV2ZW50T3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVzZXIgVGltaW5ncyBFdmVudCBpbiBHQVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydGllcyBDb21wcmlzZWQgb2YgdGhlIG1hbmRhdG9yeSBmaWVsZHM6XG4gICAqICAtIHRpbWluZ0NhdGVnb3J5IChzdHJpbmcpXG4gICAqICAtIHRpbWluZ1ZhciAoc3RyaW5nKVxuICAgKiAgLSB0aW1pbmdWYWx1ZSAobnVtYmVyKVxuICAgKiBQcm9wZXJ0aWVzIGNhbiBhbHNvIGhhdmUgdGhlIG9wdGlvbmFsIGZpZWxkczpcbiAgICogIC0gdGltaW5nTGFiZWwgKHN0cmluZylcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL3VzZXItdGltaW5nc1xuICAgKi9cbiAgdXNlclRpbWluZ3MocHJvcGVydGllczogVXNlclRpbWluZ3MpIHtcbiAgICBpZiAoXG4gICAgICAhcHJvcGVydGllcyB8fFxuICAgICAgIXByb3BlcnRpZXMudGltaW5nQ2F0ZWdvcnkgfHxcbiAgICAgICFwcm9wZXJ0aWVzLnRpbWluZ1ZhciB8fFxuICAgICAgIXByb3BlcnRpZXMudGltaW5nVmFsdWVcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdQcm9wZXJ0aWVzIHRpbWluZ0NhdGVnb3J5LCB0aW1pbmdWYXIsIGFuZCB0aW1pbmdWYWx1ZSBhcmUgcmVxdWlyZWQgdG8gYmUgc2V0LicsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZ2EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBnYSgnc2VuZCcsICd0aW1pbmcnLCBwcm9wZXJ0aWVzKTtcbiAgICAgIGZvciAoY29uc3QgYWNjb3VudE5hbWUgb2YgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EuYWRkaXRpb25hbEFjY291bnROYW1lcykge1xuICAgICAgICBnYShhY2NvdW50TmFtZSArICcuc2VuZCcsICd0aW1pbmcnLCBwcm9wZXJ0aWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRVc2VybmFtZSh1c2VySWQ6IHN0cmluZykge1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLnVzZXJJZCA9IHVzZXJJZDtcbiAgICBpZiAodHlwZW9mIGdhID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBnYSgnc2V0JywgJ3VzZXJJZCcsIHVzZXJJZCk7XG4gIH1cblxuICBzZXRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnNldERpbWVuc2lvbnNBbmRNZXRyaWNzKHByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaW1lbnNpb25zQW5kTWV0cmljcyhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIGdhID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBjbGVhbiBwcmV2aW91c2x5IHVzZWQgZGltZW5zaW9ucyBhbmQgbWV0cmljcyB0aGF0IHdpbGwgbm90IGJlIG92ZXJyaWRlblxuICAgIHRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmICghcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShlbGVtKSkge1xuICAgICAgICBnYSgnc2V0JywgZWxlbSwgdW5kZWZpbmVkKTtcblxuICAgICAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzLmZvckVhY2goXG4gICAgICAgICAgKGFjY291bnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGdhKGAke2FjY291bnROYW1lfS5zZXRgLCBlbGVtLCB1bmRlZmluZWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcyA9IFtdO1xuXG4gICAgLy8gYWRkIGN1c3RvbSBkaW1lbnNpb25zIGFuZCBtZXRyaWNzXG4gICAgT2JqZWN0LmtleXMocHJvcGVydGllcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBrZXkubGFzdEluZGV4T2YoJ2RpbWVuc2lvbicsIDApID09PSAwIHx8XG4gICAgICAgIGtleS5sYXN0SW5kZXhPZignbWV0cmljJywgMCkgPT09IDBcbiAgICAgICkge1xuICAgICAgICBnYSgnc2V0Jywga2V5LCBwcm9wZXJ0aWVzW2tleV0pO1xuXG4gICAgICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMuZm9yRWFjaChcbiAgICAgICAgICAoYWNjb3VudE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgZ2EoYCR7YWNjb3VudE5hbWV9LnNldGAsIGtleSwgcHJvcGVydGllc1trZXldKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpbWVuc2lvbnNBbmRNZXRyaWNzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,213 +0,0 @@
1
- import { __decorate } from 'tslib';
2
- import { ɵɵdefineInjectable, ɵɵinject, Injectable } from '@angular/core';
3
- import { Angulartics2 } from 'angulartics2';
4
-
5
- class GoogleAnalyticsDefaults {
6
- constructor() {
7
- this.additionalAccountNames = [];
8
- this.userId = null;
9
- this.transport = '';
10
- this.anonymizeIp = false;
11
- }
12
- }
13
- let Angulartics2GoogleAnalytics = class Angulartics2GoogleAnalytics {
14
- constructor(angulartics2) {
15
- this.angulartics2 = angulartics2;
16
- this.dimensionsAndMetrics = [];
17
- const defaults = new GoogleAnalyticsDefaults();
18
- // Set the default settings for this module
19
- this.angulartics2.settings.ga = Object.assign(Object.assign({}, defaults), this.angulartics2.settings.ga);
20
- this.settings = this.angulartics2.settings.ga;
21
- this.angulartics2.setUsername.subscribe((x) => this.setUsername(x));
22
- this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));
23
- }
24
- startTracking() {
25
- this.angulartics2.pageTrack
26
- .pipe(this.angulartics2.filterDeveloperMode())
27
- .subscribe(x => this.pageTrack(x.path));
28
- this.angulartics2.eventTrack
29
- .pipe(this.angulartics2.filterDeveloperMode())
30
- .subscribe(x => this.eventTrack(x.action, x.properties));
31
- this.angulartics2.exceptionTrack
32
- .pipe(this.angulartics2.filterDeveloperMode())
33
- .subscribe(x => this.exceptionTrack(x));
34
- this.angulartics2.userTimings
35
- .pipe(this.angulartics2.filterDeveloperMode())
36
- .subscribe(x => this.userTimings(x));
37
- }
38
- pageTrack(path) {
39
- if (typeof _gaq !== 'undefined' && _gaq) {
40
- _gaq.push(['_trackPageview', path]);
41
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
42
- _gaq.push([accountName + '._trackPageview', path]);
43
- }
44
- }
45
- if (typeof ga !== 'undefined' && ga) {
46
- if (this.angulartics2.settings.ga.userId) {
47
- ga('set', '&uid', this.angulartics2.settings.ga.userId);
48
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
49
- ga(accountName + '.set', '&uid', this.angulartics2.settings.ga.userId);
50
- }
51
- }
52
- if (this.angulartics2.settings.ga.anonymizeIp) {
53
- ga('set', 'anonymizeIp', true);
54
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
55
- ga(accountName + '.set', 'anonymizeIp', true);
56
- }
57
- }
58
- ga('send', 'pageview', path);
59
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
60
- ga(accountName + '.send', 'pageview', path);
61
- }
62
- }
63
- }
64
- /**
65
- * Track Event in GA
66
- *
67
- * @param action Associated with the event
68
- * @param properties Comprised of:
69
- * - category (string) and optional
70
- * - label (string)
71
- * - value (integer)
72
- * - noninteraction (boolean)
73
- *
74
- * @link https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#SettingUpEventTracking
75
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events
76
- */
77
- eventTrack(action, properties) {
78
- // Google Analytics requires an Event Category
79
- if (!properties || !properties.category) {
80
- properties = properties || {};
81
- properties.category = 'Event';
82
- }
83
- // GA requires that eventValue be an integer, see:
84
- // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#eventValue
85
- // https://github.com/luisfarzati/angulartics/issues/81
86
- if (properties.value) {
87
- const parsed = parseInt(properties.value, 10);
88
- properties.value = isNaN(parsed) ? 0 : parsed;
89
- }
90
- if (typeof ga !== 'undefined') {
91
- const eventOptions = Object.assign({ eventCategory: properties.category, eventAction: action, eventLabel: properties.label, eventValue: properties.value, nonInteraction: properties.noninteraction, page: properties.page || location.hash.substring(1) || location.pathname, userId: this.angulartics2.settings.ga.userId, hitCallback: properties.hitCallback }, this.angulartics2.settings.ga.transport && { transport: this.angulartics2.settings.ga.transport });
92
- // add custom dimensions and metrics
93
- this.setDimensionsAndMetrics(properties);
94
- ga('send', 'event', eventOptions);
95
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
96
- ga(accountName + '.send', 'event', eventOptions);
97
- }
98
- }
99
- else if (typeof _gaq !== 'undefined') {
100
- _gaq.push([
101
- '_trackEvent',
102
- properties.category,
103
- action,
104
- properties.label,
105
- properties.value,
106
- properties.noninteraction,
107
- ]);
108
- }
109
- }
110
- /**
111
- * Exception Track Event in GA
112
- *
113
- * @param properties Comprised of the optional fields:
114
- * - fatal (string)
115
- * - description (string)
116
- *
117
- * @https://developers.google.com/analytics/devguides/collection/analyticsjs/exceptions
118
- *
119
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events
120
- */
121
- exceptionTrack(properties) {
122
- if (properties.fatal === undefined) {
123
- console.log('No "fatal" provided, sending with fatal=true');
124
- properties.fatal = true;
125
- }
126
- properties.exDescription = properties.description;
127
- const eventOptions = {
128
- exFatal: properties.fatal,
129
- exDescription: properties.description,
130
- };
131
- ga('send', 'exception', eventOptions);
132
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
133
- ga(accountName + '.send', 'exception', eventOptions);
134
- }
135
- }
136
- /**
137
- * User Timings Event in GA
138
- *
139
- * @param properties Comprised of the mandatory fields:
140
- * - timingCategory (string)
141
- * - timingVar (string)
142
- * - timingValue (number)
143
- * Properties can also have the optional fields:
144
- * - timingLabel (string)
145
- *
146
- * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/user-timings
147
- */
148
- userTimings(properties) {
149
- if (!properties ||
150
- !properties.timingCategory ||
151
- !properties.timingVar ||
152
- !properties.timingValue) {
153
- console.error('Properties timingCategory, timingVar, and timingValue are required to be set.');
154
- return;
155
- }
156
- if (typeof ga !== 'undefined') {
157
- ga('send', 'timing', properties);
158
- for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {
159
- ga(accountName + '.send', 'timing', properties);
160
- }
161
- }
162
- }
163
- setUsername(userId) {
164
- this.angulartics2.settings.ga.userId = userId;
165
- if (typeof ga === 'undefined') {
166
- return;
167
- }
168
- ga('set', 'userId', userId);
169
- }
170
- setUserProperties(properties) {
171
- this.setDimensionsAndMetrics(properties);
172
- }
173
- setDimensionsAndMetrics(properties) {
174
- if (typeof ga === 'undefined') {
175
- return;
176
- }
177
- // clean previously used dimensions and metrics that will not be overriden
178
- this.dimensionsAndMetrics.forEach(elem => {
179
- if (!properties.hasOwnProperty(elem)) {
180
- ga('set', elem, undefined);
181
- this.angulartics2.settings.ga.additionalAccountNames.forEach((accountName) => {
182
- ga(`${accountName}.set`, elem, undefined);
183
- });
184
- }
185
- });
186
- this.dimensionsAndMetrics = [];
187
- // add custom dimensions and metrics
188
- Object.keys(properties).forEach(key => {
189
- if (key.lastIndexOf('dimension', 0) === 0 ||
190
- key.lastIndexOf('metric', 0) === 0) {
191
- ga('set', key, properties[key]);
192
- this.angulartics2.settings.ga.additionalAccountNames.forEach((accountName) => {
193
- ga(`${accountName}.set`, key, properties[key]);
194
- });
195
- this.dimensionsAndMetrics.push(key);
196
- }
197
- });
198
- }
199
- };
200
- Angulartics2GoogleAnalytics.ctorParameters = () => [
201
- { type: Angulartics2 }
202
- ];
203
- Angulartics2GoogleAnalytics.ɵprov = ɵɵdefineInjectable({ factory: function Angulartics2GoogleAnalytics_Factory() { return new Angulartics2GoogleAnalytics(ɵɵinject(Angulartics2)); }, token: Angulartics2GoogleAnalytics, providedIn: "root" });
204
- Angulartics2GoogleAnalytics = __decorate([
205
- Injectable({ providedIn: 'root' })
206
- ], Angulartics2GoogleAnalytics);
207
-
208
- /**
209
- * Generated bundle index. Do not edit.
210
- */
211
-
212
- export { Angulartics2GoogleAnalytics, GoogleAnalyticsDefaults };
213
- //# sourceMappingURL=angulartics2-ga.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angulartics2-ga.js","sources":["ng://angulartics2/ga/ga.ts","ng://angulartics2/ga/angulartics2-ga.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport {\n Angulartics2,\n GoogleAnalyticsSettings,\n UserTimings,\n} from 'angulartics2';\n\n\ndeclare var _gaq: GoogleAnalyticsCode;\ndeclare var ga: UniversalAnalytics.ga;\ndeclare var location: any;\n\nexport class GoogleAnalyticsDefaults implements GoogleAnalyticsSettings {\n additionalAccountNames = [];\n userId = null;\n transport = '';\n anonymizeIp = false;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleAnalytics {\n dimensionsAndMetrics = [];\n settings: Partial<GoogleAnalyticsSettings>;\n\n constructor(private angulartics2: Angulartics2) {\n const defaults = new GoogleAnalyticsDefaults();\n // Set the default settings for this module\n this.angulartics2.settings.ga = {\n ...defaults,\n ...this.angulartics2.settings.ga,\n };\n this.settings = this.angulartics2.settings.ga;\n this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\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 => this.exceptionTrack(x));\n this.angulartics2.userTimings\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe(x => this.userTimings(x));\n }\n\n pageTrack(path: string) {\n if (typeof _gaq !== 'undefined' && _gaq) {\n _gaq.push(['_trackPageview', path]);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n _gaq.push([accountName + '._trackPageview', path]);\n }\n }\n if (typeof ga !== 'undefined' && ga) {\n if (this.angulartics2.settings.ga.userId) {\n ga('set', '&uid', this.angulartics2.settings.ga.userId);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.set', '&uid', this.angulartics2.settings.ga.userId);\n }\n }\n if (this.angulartics2.settings.ga.anonymizeIp) {\n ga('set', 'anonymizeIp', true);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.set', 'anonymizeIp', true);\n }\n }\n ga('send', 'pageview', path);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.send', 'pageview', path);\n }\n }\n }\n\n /**\n * Track Event in GA\n *\n * @param action Associated with the event\n * @param properties Comprised of:\n * - category (string) and optional\n * - label (string)\n * - value (integer)\n * - noninteraction (boolean)\n *\n * @link https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#SettingUpEventTracking\n * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events\n */\n eventTrack(action: string, properties: any) {\n // Google Analytics requires an Event Category\n if (!properties || !properties.category) {\n properties = properties || {};\n properties.category = 'Event';\n }\n // GA requires that eventValue be an integer, see:\n // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#eventValue\n // https://github.com/luisfarzati/angulartics/issues/81\n if (properties.value) {\n const parsed = parseInt(properties.value, 10);\n properties.value = isNaN(parsed) ? 0 : parsed;\n }\n\n if (typeof ga !== 'undefined') {\n const eventOptions = {\n eventCategory: properties.category,\n eventAction: action,\n eventLabel: properties.label,\n eventValue: properties.value,\n nonInteraction: properties.noninteraction,\n page: properties.page || location.hash.substring(1) || location.pathname,\n userId: this.angulartics2.settings.ga.userId,\n hitCallback: properties.hitCallback,\n ... this.angulartics2.settings.ga.transport && { transport: this.angulartics2.settings.ga.transport }\n };\n\n // add custom dimensions and metrics\n this.setDimensionsAndMetrics(properties);\n\n ga('send', 'event', eventOptions);\n\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.send', 'event', eventOptions);\n }\n } else if (typeof _gaq !== 'undefined') {\n _gaq.push([\n '_trackEvent',\n properties.category,\n action,\n properties.label,\n properties.value,\n properties.noninteraction,\n ]);\n }\n }\n\n /**\n * Exception Track Event in GA\n *\n * @param properties Comprised of the optional fields:\n * - fatal (string)\n * - description (string)\n *\n * @https://developers.google.com/analytics/devguides/collection/analyticsjs/exceptions\n *\n * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events\n */\n exceptionTrack(properties: any) {\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.description;\n\n const eventOptions = {\n exFatal: properties.fatal,\n exDescription: properties.description,\n };\n\n ga('send', 'exception', eventOptions);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.send', 'exception', eventOptions);\n }\n }\n\n /**\n * User Timings Event in GA\n *\n * @param properties Comprised of the mandatory fields:\n * - timingCategory (string)\n * - timingVar (string)\n * - timingValue (number)\n * Properties can also have the optional fields:\n * - timingLabel (string)\n *\n * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/user-timings\n */\n userTimings(properties: UserTimings) {\n if (\n !properties ||\n !properties.timingCategory ||\n !properties.timingVar ||\n !properties.timingValue\n ) {\n console.error(\n 'Properties timingCategory, timingVar, and timingValue are required to be set.',\n );\n return;\n }\n\n if (typeof ga !== 'undefined') {\n ga('send', 'timing', properties);\n for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n ga(accountName + '.send', 'timing', properties);\n }\n }\n }\n\n setUsername(userId: string) {\n this.angulartics2.settings.ga.userId = userId;\n if (typeof ga === 'undefined') {\n return;\n }\n ga('set', 'userId', userId);\n }\n\n setUserProperties(properties: any) {\n this.setDimensionsAndMetrics(properties);\n }\n\n private setDimensionsAndMetrics(properties: any) {\n if (typeof ga === 'undefined') {\n return;\n }\n // clean previously used dimensions and metrics that will not be overriden\n this.dimensionsAndMetrics.forEach(elem => {\n if (!properties.hasOwnProperty(elem)) {\n ga('set', elem, undefined);\n\n this.angulartics2.settings.ga.additionalAccountNames.forEach(\n (accountName: string) => {\n ga(`${accountName}.set`, elem, undefined);\n },\n );\n }\n });\n this.dimensionsAndMetrics = [];\n\n // add custom dimensions and metrics\n Object.keys(properties).forEach(key => {\n if (\n key.lastIndexOf('dimension', 0) === 0 ||\n key.lastIndexOf('metric', 0) === 0\n ) {\n ga('set', key, properties[key]);\n\n this.angulartics2.settings.ga.additionalAccountNames.forEach(\n (accountName: string) => {\n ga(`${accountName}.set`, key, properties[key]);\n },\n );\n this.dimensionsAndMetrics.push(key);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ga';\n"],"names":[],"mappings":"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"}