angulartics2 10.1.0 → 12.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 (385) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -8
  3. package/angular-router.d.ts +3 -0
  4. package/angulartics2-core.d.ts +3 -0
  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/{esm2015/angulartics2.module.js → esm2020/angulartics2.module.mjs} +12 -7
  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/{clicky/esm2015/clicky.interfaces.js → esm2020/providers/clicky/clicky.interfaces.mjs} +1 -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/{ga-enhanced-ecom/esm2015/ga-enhanced-ecom-options.js → esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom-options.mjs} +1 -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/{gst/esm2015/gst-interfaces.js → esm2020/providers/gst/gst-interfaces.mjs} +1 -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 +26 -13
  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/{matomo → providers/matomo}/README.md +3 -3
  85. package/{matomo → providers/matomo}/matomo.d.ts +9 -6
  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/providers/pyze/pyze.d.ts +13 -0
  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 -116
  101. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js.map +0 -1
  102. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js +0 -2
  103. package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js.map +0 -1
  104. package/adobeanalytics/esm2015/adobeanalytics.js +0 -103
  105. package/adobeanalytics/esm2015/angulartics2-adobeanalytics.js +0 -5
  106. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js +0 -107
  107. package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js.map +0 -1
  108. package/adobeanalytics/package.json +0 -20
  109. package/amplitude/angulartics2-amplitude.d.ts +0 -4
  110. package/amplitude/angulartics2-amplitude.metadata.json +0 -1
  111. package/amplitude/bundles/angulartics2-amplitude.umd.js +0 -88
  112. package/amplitude/bundles/angulartics2-amplitude.umd.js.map +0 -1
  113. package/amplitude/bundles/angulartics2-amplitude.umd.min.js +0 -2
  114. package/amplitude/bundles/angulartics2-amplitude.umd.min.js.map +0 -1
  115. package/amplitude/esm2015/amplitude.js +0 -73
  116. package/amplitude/esm2015/angulartics2-amplitude.js +0 -5
  117. package/amplitude/fesm2015/angulartics2-amplitude.js +0 -78
  118. package/amplitude/fesm2015/angulartics2-amplitude.js.map +0 -1
  119. package/amplitude/package.json +0 -20
  120. package/angulartics2.metadata.json +0 -1
  121. package/appinsights/angulartics2-appinsights.d.ts +0 -4
  122. package/appinsights/angulartics2-appinsights.metadata.json +0 -1
  123. package/appinsights/bundles/angulartics2-appinsights.umd.js +0 -134
  124. package/appinsights/bundles/angulartics2-appinsights.umd.js.map +0 -1
  125. package/appinsights/bundles/angulartics2-appinsights.umd.min.js +0 -2
  126. package/appinsights/bundles/angulartics2-appinsights.umd.min.js.map +0 -1
  127. package/appinsights/esm2015/angulartics2-appinsights.js +0 -5
  128. package/appinsights/esm2015/appinsights.js +0 -122
  129. package/appinsights/fesm2015/angulartics2-appinsights.js +0 -125
  130. package/appinsights/fesm2015/angulartics2-appinsights.js.map +0 -1
  131. package/appinsights/package.json +0 -20
  132. package/baidu/angulartics2-baidu.d.ts +0 -4
  133. package/baidu/angulartics2-baidu.metadata.json +0 -1
  134. package/baidu/bundles/angulartics2-baidu.umd.js +0 -98
  135. package/baidu/bundles/angulartics2-baidu.umd.js.map +0 -1
  136. package/baidu/bundles/angulartics2-baidu.umd.min.js +0 -2
  137. package/baidu/bundles/angulartics2-baidu.umd.min.js.map +0 -1
  138. package/baidu/esm2015/angulartics2-baidu.js +0 -5
  139. package/baidu/esm2015/baidu.js +0 -83
  140. package/baidu/fesm2015/angulartics2-baidu.js +0 -88
  141. package/baidu/fesm2015/angulartics2-baidu.js.map +0 -1
  142. package/baidu/package.json +0 -20
  143. package/bundles/angulartics2.umd.js +0 -564
  144. package/bundles/angulartics2.umd.js.map +0 -1
  145. package/bundles/angulartics2.umd.min.js +0 -16
  146. package/bundles/angulartics2.umd.min.js.map +0 -1
  147. package/clicky/angulartics2-clicky.d.ts +0 -4
  148. package/clicky/angulartics2-clicky.metadata.json +0 -1
  149. package/clicky/bundles/angulartics2-clicky.umd.js +0 -80
  150. package/clicky/bundles/angulartics2-clicky.umd.js.map +0 -1
  151. package/clicky/bundles/angulartics2-clicky.umd.min.js +0 -2
  152. package/clicky/bundles/angulartics2-clicky.umd.min.js.map +0 -1
  153. package/clicky/esm2015/angulartics2-clicky.js +0 -5
  154. package/clicky/esm2015/clicky.js +0 -68
  155. package/clicky/fesm2015/angulartics2-clicky.js +0 -72
  156. package/clicky/fesm2015/angulartics2-clicky.js.map +0 -1
  157. package/clicky/package.json +0 -20
  158. package/esm2015/angular-router.js +0 -36
  159. package/esm2015/angulartics2-config.js +0 -19
  160. package/esm2015/angulartics2-core.js +0 -89
  161. package/esm2015/angulartics2-interfaces.js +0 -1
  162. package/esm2015/angulartics2-token.js +0 -3
  163. package/esm2015/angulartics2.js +0 -5
  164. package/esm2015/angulartics2On.js +0 -55
  165. package/esm2015/public_api.js +0 -9
  166. package/esm2015/routerless.js +0 -10
  167. package/facebook/angulartics2-facebook.d.ts +0 -4
  168. package/facebook/angulartics2-facebook.metadata.json +0 -1
  169. package/facebook/bundles/angulartics2-facebook.umd.js +0 -62
  170. package/facebook/bundles/angulartics2-facebook.umd.js.map +0 -1
  171. package/facebook/bundles/angulartics2-facebook.umd.min.js +0 -2
  172. package/facebook/bundles/angulartics2-facebook.umd.min.js.map +0 -1
  173. package/facebook/esm2015/angulartics2-facebook.js +0 -5
  174. package/facebook/esm2015/facebook.js +0 -47
  175. package/facebook/fesm2015/angulartics2-facebook.js +0 -52
  176. package/facebook/fesm2015/angulartics2-facebook.js.map +0 -1
  177. package/facebook/package.json +0 -20
  178. package/fesm2015/angulartics2.js +0 -223
  179. package/fesm2015/angulartics2.js.map +0 -1
  180. package/ga/angulartics2-ga.d.ts +0 -4
  181. package/ga/angulartics2-ga.metadata.json +0 -1
  182. package/ga/bundles/angulartics2-ga.umd.js +0 -600
  183. package/ga/bundles/angulartics2-ga.umd.js.map +0 -1
  184. package/ga/bundles/angulartics2-ga.umd.min.js +0 -16
  185. package/ga/bundles/angulartics2-ga.umd.min.js.map +0 -1
  186. package/ga/esm2015/angulartics2-ga.js +0 -5
  187. package/ga/esm2015/ga.js +0 -207
  188. package/ga/fesm2015/angulartics2-ga.js +0 -212
  189. package/ga/fesm2015/angulartics2-ga.js.map +0 -1
  190. package/ga/package.json +0 -20
  191. package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.d.ts +0 -4
  192. package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.metadata.json +0 -1
  193. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js +0 -47
  194. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js.map +0 -1
  195. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js +0 -2
  196. package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js.map +0 -1
  197. package/ga-enhanced-ecom/esm2015/angulartics2-ga-enhanced-ecom.js +0 -5
  198. package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom.js +0 -30
  199. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js +0 -36
  200. package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js.map +0 -1
  201. package/ga-enhanced-ecom/package.json +0 -20
  202. package/gosquared/angulartics2-gosquared.d.ts +0 -4
  203. package/gosquared/angulartics2-gosquared.metadata.json +0 -1
  204. package/gosquared/bundles/angulartics2-gosquared.umd.js +0 -72
  205. package/gosquared/bundles/angulartics2-gosquared.umd.js.map +0 -1
  206. package/gosquared/bundles/angulartics2-gosquared.umd.min.js +0 -2
  207. package/gosquared/bundles/angulartics2-gosquared.umd.min.js.map +0 -1
  208. package/gosquared/esm2015/angulartics2-gosquared.js +0 -5
  209. package/gosquared/esm2015/gosquared.js +0 -57
  210. package/gosquared/fesm2015/angulartics2-gosquared.js +0 -62
  211. package/gosquared/fesm2015/angulartics2-gosquared.js.map +0 -1
  212. package/gosquared/package.json +0 -20
  213. package/gst/angulartics2-gst.d.ts +0 -4
  214. package/gst/angulartics2-gst.metadata.json +0 -1
  215. package/gst/bundles/angulartics2-gst.umd.js +0 -514
  216. package/gst/bundles/angulartics2-gst.umd.js.map +0 -1
  217. package/gst/bundles/angulartics2-gst.umd.min.js +0 -16
  218. package/gst/bundles/angulartics2-gst.umd.min.js.map +0 -1
  219. package/gst/esm2015/angulartics2-gst.js +0 -5
  220. package/gst/esm2015/gst.js +0 -182
  221. package/gst/fesm2015/angulartics2-gst.js +0 -187
  222. package/gst/fesm2015/angulartics2-gst.js.map +0 -1
  223. package/gst/package.json +0 -20
  224. package/gtm/angulartics2-gtm.d.ts +0 -4
  225. package/gtm/angulartics2-gtm.metadata.json +0 -1
  226. package/gtm/bundles/angulartics2-gtm.umd.js +0 -125
  227. package/gtm/bundles/angulartics2-gtm.umd.js.map +0 -1
  228. package/gtm/bundles/angulartics2-gtm.umd.min.js +0 -2
  229. package/gtm/bundles/angulartics2-gtm.umd.min.js.map +0 -1
  230. package/gtm/esm2015/angulartics2-gtm.js +0 -5
  231. package/gtm/esm2015/gtm.js +0 -108
  232. package/gtm/fesm2015/angulartics2-gtm.js +0 -113
  233. package/gtm/fesm2015/angulartics2-gtm.js.map +0 -1
  234. package/gtm/package.json +0 -20
  235. package/hubspot/angulartics2-hubspot.d.ts +0 -4
  236. package/hubspot/angulartics2-hubspot.metadata.json +0 -1
  237. package/hubspot/bundles/angulartics2-hubspot.umd.js +0 -58
  238. package/hubspot/bundles/angulartics2-hubspot.umd.js.map +0 -1
  239. package/hubspot/bundles/angulartics2-hubspot.umd.min.js +0 -2
  240. package/hubspot/bundles/angulartics2-hubspot.umd.min.js.map +0 -1
  241. package/hubspot/esm2015/angulartics2-hubspot.js +0 -5
  242. package/hubspot/esm2015/hubspot.js +0 -43
  243. package/hubspot/fesm2015/angulartics2-hubspot.js +0 -48
  244. package/hubspot/fesm2015/angulartics2-hubspot.js.map +0 -1
  245. package/hubspot/package.json +0 -20
  246. package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.d.ts +0 -4
  247. package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.metadata.json +0 -1
  248. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js +0 -142
  249. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js.map +0 -1
  250. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js +0 -2
  251. package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js.map +0 -1
  252. package/ibm-digital-analytics/esm2015/angulartics2-ibm-digital-analytics.js +0 -5
  253. package/ibm-digital-analytics/esm2015/ibm-digital-analytics.js +0 -127
  254. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js +0 -132
  255. package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js.map +0 -1
  256. package/ibm-digital-analytics/package.json +0 -20
  257. package/intercom/angulartics2-intercom.d.ts +0 -4
  258. package/intercom/angulartics2-intercom.metadata.json +0 -1
  259. package/intercom/bundles/angulartics2-intercom.umd.js +0 -79
  260. package/intercom/bundles/angulartics2-intercom.umd.js.map +0 -1
  261. package/intercom/bundles/angulartics2-intercom.umd.min.js +0 -2
  262. package/intercom/bundles/angulartics2-intercom.umd.min.js.map +0 -1
  263. package/intercom/esm2015/angulartics2-intercom.js +0 -5
  264. package/intercom/esm2015/intercom.js +0 -64
  265. package/intercom/fesm2015/angulartics2-intercom.js +0 -69
  266. package/intercom/fesm2015/angulartics2-intercom.js.map +0 -1
  267. package/intercom/package.json +0 -20
  268. package/kissmetrics/angulartics2-kissmetrics.d.ts +0 -4
  269. package/kissmetrics/angulartics2-kissmetrics.metadata.json +0 -1
  270. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js +0 -59
  271. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js.map +0 -1
  272. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js +0 -2
  273. package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js.map +0 -1
  274. package/kissmetrics/esm2015/angulartics2-kissmetrics.js +0 -5
  275. package/kissmetrics/esm2015/kissmetrics.js +0 -44
  276. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js +0 -49
  277. package/kissmetrics/fesm2015/angulartics2-kissmetrics.js.map +0 -1
  278. package/kissmetrics/package.json +0 -23
  279. package/launch/angulartics2-launch.d.ts +0 -4
  280. package/launch/angulartics2-launch.metadata.json +0 -1
  281. package/launch/bundles/angulartics2-launch.umd.js +0 -78
  282. package/launch/bundles/angulartics2-launch.umd.js.map +0 -1
  283. package/launch/bundles/angulartics2-launch.umd.min.js +0 -2
  284. package/launch/bundles/angulartics2-launch.umd.min.js.map +0 -1
  285. package/launch/esm2015/angulartics2-launch.js +0 -5
  286. package/launch/esm2015/launch.js +0 -63
  287. package/launch/fesm2015/angulartics2-launch.js +0 -68
  288. package/launch/fesm2015/angulartics2-launch.js.map +0 -1
  289. package/launch/package.json +0 -20
  290. package/matomo/angulartics2-matomo.d.ts +0 -4
  291. package/matomo/angulartics2-matomo.metadata.json +0 -1
  292. package/matomo/bundles/angulartics2-matomo.umd.js +0 -309
  293. package/matomo/bundles/angulartics2-matomo.umd.js.map +0 -1
  294. package/matomo/bundles/angulartics2-matomo.umd.min.js +0 -2
  295. package/matomo/bundles/angulartics2-matomo.umd.min.js.map +0 -1
  296. package/matomo/esm2015/angulartics2-matomo.js +0 -5
  297. package/matomo/esm2015/matomo.js +0 -294
  298. package/matomo/fesm2015/angulartics2-matomo.js +0 -299
  299. package/matomo/fesm2015/angulartics2-matomo.js.map +0 -1
  300. package/matomo/package.json +0 -20
  301. package/mixpanel/angulartics2-mixpanel.d.ts +0 -4
  302. package/mixpanel/angulartics2-mixpanel.metadata.json +0 -1
  303. package/mixpanel/bundles/angulartics2-mixpanel.umd.js +0 -132
  304. package/mixpanel/bundles/angulartics2-mixpanel.umd.js.map +0 -1
  305. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js +0 -2
  306. package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js.map +0 -1
  307. package/mixpanel/esm2015/angulartics2-mixpanel.js +0 -5
  308. package/mixpanel/esm2015/mixpanel.js +0 -117
  309. package/mixpanel/fesm2015/angulartics2-mixpanel.js +0 -122
  310. package/mixpanel/fesm2015/angulartics2-mixpanel.js.map +0 -1
  311. package/mixpanel/package.json +0 -20
  312. package/pyze/angulartics2-pyze.d.ts +0 -4
  313. package/pyze/angulartics2-pyze.metadata.json +0 -1
  314. package/pyze/bundles/angulartics2-pyze.umd.js +0 -82
  315. package/pyze/bundles/angulartics2-pyze.umd.js.map +0 -1
  316. package/pyze/bundles/angulartics2-pyze.umd.min.js +0 -2
  317. package/pyze/bundles/angulartics2-pyze.umd.min.js.map +0 -1
  318. package/pyze/esm2015/angulartics2-pyze.js +0 -5
  319. package/pyze/esm2015/pyze.js +0 -67
  320. package/pyze/fesm2015/angulartics2-pyze.js +0 -72
  321. package/pyze/fesm2015/angulartics2-pyze.js.map +0 -1
  322. package/pyze/package.json +0 -20
  323. package/pyze/pyze.d.ts +0 -10
  324. package/routerlessmodule/angulartics2-routerlessmodule.d.ts +0 -4
  325. package/routerlessmodule/angulartics2-routerlessmodule.metadata.json +0 -1
  326. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js +0 -38
  327. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js.map +0 -1
  328. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js +0 -2
  329. package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js.map +0 -1
  330. package/routerlessmodule/esm2015/angulartics2-routerlessmodule.js +0 -5
  331. package/routerlessmodule/esm2015/routerless.module.js +0 -20
  332. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js +0 -27
  333. package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js.map +0 -1
  334. package/routerlessmodule/package.json +0 -20
  335. package/routerlessmodule/routerless.module.d.ts +0 -5
  336. package/segment/angulartics2-segment.d.ts +0 -4
  337. package/segment/angulartics2-segment.metadata.json +0 -1
  338. package/segment/bundles/angulartics2-segment.umd.js +0 -120
  339. package/segment/bundles/angulartics2-segment.umd.js.map +0 -1
  340. package/segment/bundles/angulartics2-segment.umd.min.js +0 -2
  341. package/segment/bundles/angulartics2-segment.umd.min.js.map +0 -1
  342. package/segment/esm2015/angulartics2-segment.js +0 -5
  343. package/segment/esm2015/segment.js +0 -105
  344. package/segment/fesm2015/angulartics2-segment.js +0 -110
  345. package/segment/fesm2015/angulartics2-segment.js.map +0 -1
  346. package/segment/package.json +0 -20
  347. package/splunk/angulartics2-splunk.d.ts +0 -4
  348. package/splunk/angulartics2-splunk.metadata.json +0 -1
  349. package/splunk/bundles/angulartics2-splunk.umd.js +0 -62
  350. package/splunk/bundles/angulartics2-splunk.umd.js.map +0 -1
  351. package/splunk/bundles/angulartics2-splunk.umd.min.js +0 -2
  352. package/splunk/bundles/angulartics2-splunk.umd.min.js.map +0 -1
  353. package/splunk/esm2015/angulartics2-splunk.js +0 -5
  354. package/splunk/esm2015/splunk.js +0 -48
  355. package/splunk/fesm2015/angulartics2-splunk.js +0 -53
  356. package/splunk/fesm2015/angulartics2-splunk.js.map +0 -1
  357. package/splunk/package.json +0 -20
  358. package/splunk/splunk.d.ts +0 -8
  359. package/uiroutermodule/angulartics2-uiroutermodule.d.ts +0 -4
  360. package/uiroutermodule/angulartics2-uiroutermodule.metadata.json +0 -1
  361. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js +0 -76
  362. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js.map +0 -1
  363. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js +0 -2
  364. package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js.map +0 -1
  365. package/uiroutermodule/esm2015/angulartics2-uiroutermodule.js +0 -5
  366. package/uiroutermodule/esm2015/public_api.js +0 -3
  367. package/uiroutermodule/esm2015/uirouter.js +0 -40
  368. package/uiroutermodule/esm2015/uirouter.module.js +0 -21
  369. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js +0 -64
  370. package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js.map +0 -1
  371. package/uiroutermodule/package.json +0 -20
  372. package/uiroutermodule/public_api.d.ts +0 -2
  373. package/uiroutermodule/uirouter.d.ts +0 -17
  374. package/uiroutermodule/uirouter.module.d.ts +0 -5
  375. package/woopra/angulartics2-woopra.d.ts +0 -4
  376. package/woopra/angulartics2-woopra.metadata.json +0 -1
  377. package/woopra/bundles/angulartics2-woopra.umd.js +0 -79
  378. package/woopra/bundles/angulartics2-woopra.umd.js.map +0 -1
  379. package/woopra/bundles/angulartics2-woopra.umd.min.js +0 -2
  380. package/woopra/bundles/angulartics2-woopra.umd.min.js.map +0 -1
  381. package/woopra/esm2015/angulartics2-woopra.js +0 -5
  382. package/woopra/esm2015/woopra.js +0 -64
  383. package/woopra/fesm2015/angulartics2-woopra.js +0 -69
  384. package/woopra/fesm2015/angulartics2-woopra.js.map +0 -1
  385. package/woopra/package.json +0 -20
@@ -1 +0,0 @@
1
- {"version":3,"file":"angulartics2-ga.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../src/lib/providers/ga/ga.ts","../../../../src/lib/providers/ga/angulartics2-ga.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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":["Injectable","Angulartics2"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("angulartics2")):"function"==typeof define&&define.amd?define("angulartics2/ga",["exports","@angular/core","angulartics2"],e):e(((t=t||self).angulartics2=t.angulartics2||{},t.angulartics2.ga={}),t.ng.core,t.angulartics2)}(this,(function(t,e,n){"use strict";
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */Object.create;function a(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],a=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&a>=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}Object.create;var i=function(){this.additionalAccountNames=[],this.userId=null,this.transport="",this.anonymizeIp=!1},r=function(){function t(t){var e=this;this.angulartics2=t,this.dimensionsAndMetrics=[];var n=new i;this.angulartics2.settings.ga=Object.assign(Object.assign({},n),this.angulartics2.settings.ga),this.settings=this.angulartics2.settings.ga,this.angulartics2.setUsername.subscribe((function(t){return e.setUsername(t)})),this.angulartics2.setUserProperties.subscribe((function(t){return e.setUserProperties(t)}))}return t.prototype.startTracking=function(){var t=this;this.angulartics2.pageTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe((function(e){return t.pageTrack(e.path)})),this.angulartics2.eventTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe((function(e){return t.eventTrack(e.action,e.properties)})),this.angulartics2.exceptionTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe((function(e){return t.exceptionTrack(e)})),this.angulartics2.userTimings.pipe(this.angulartics2.filterDeveloperMode()).subscribe((function(e){return t.userTimings(e)}))},t.prototype.pageTrack=function(t){var e,n,i,r,s,o,c,l;if("undefined"!=typeof _gaq&&_gaq){_gaq.push(["_trackPageview",t]);try{for(var u=a(this.angulartics2.settings.ga.additionalAccountNames),g=u.next();!g.done;g=u.next()){var d=g.value;_gaq.push([d+"._trackPageview",t])}}catch(t){e={error:t}}finally{try{g&&!g.done&&(n=u.return)&&n.call(u)}finally{if(e)throw e.error}}}if("undefined"!=typeof ga&&ga){if(this.angulartics2.settings.ga.userId){ga("set","&uid",this.angulartics2.settings.ga.userId);try{for(var f=a(this.angulartics2.settings.ga.additionalAccountNames),p=f.next();!p.done;p=f.next()){d=p.value;ga(d+".set","&uid",this.angulartics2.settings.ga.userId)}}catch(t){i={error:t}}finally{try{p&&!p.done&&(r=f.return)&&r.call(f)}finally{if(i)throw i.error}}}if(this.angulartics2.settings.ga.anonymizeIp){ga("set","anonymizeIp",!0);try{for(var h=a(this.angulartics2.settings.ga.additionalAccountNames),y=h.next();!y.done;y=h.next()){d=y.value;ga(d+".set","anonymizeIp",!0)}}catch(t){s={error:t}}finally{try{y&&!y.done&&(o=h.return)&&o.call(h)}finally{if(s)throw s.error}}}ga("send","pageview",t);try{for(var v=a(this.angulartics2.settings.ga.additionalAccountNames),m=v.next();!m.done;m=v.next()){d=m.value;ga(d+".send","pageview",t)}}catch(t){c={error:t}}finally{try{m&&!m.done&&(l=v.return)&&l.call(v)}finally{if(c)throw c.error}}}},t.prototype.eventTrack=function(t,e){var n,i;if(e&&e.category||((e=e||{}).category="Event"),e.value){var r=parseInt(e.value,10);e.value=isNaN(r)?0:r}if("undefined"!=typeof ga){var s=Object.assign({eventCategory:e.category,eventAction:t,eventLabel:e.label,eventValue:e.value,nonInteraction:e.noninteraction,page:e.page||location.hash.substring(1)||location.pathname,userId:this.angulartics2.settings.ga.userId,hitCallback:e.hitCallback},this.angulartics2.settings.ga.transport&&{transport:this.angulartics2.settings.ga.transport});this.setDimensionsAndMetrics(e),ga("send","event",s);try{for(var o=a(this.angulartics2.settings.ga.additionalAccountNames),c=o.next();!c.done;c=o.next()){var l=c.value;ga(l+".send","event",s)}}catch(t){n={error:t}}finally{try{c&&!c.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}else"undefined"!=typeof _gaq&&_gaq.push(["_trackEvent",e.category,t,e.label,e.value,e.noninteraction])},t.prototype.exceptionTrack=function(t){var e,n;void 0===t.fatal&&(console.log('No "fatal" provided, sending with fatal=true'),t.fatal=!0),t.exDescription=t.description;var i={exFatal:t.fatal,exDescription:t.description};ga("send","exception",i);try{for(var r=a(this.angulartics2.settings.ga.additionalAccountNames),s=r.next();!s.done;s=r.next()){var o=s.value;ga(o+".send","exception",i)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.userTimings=function(t){var e,n;if(t&&t.timingCategory&&t.timingVar&&t.timingValue){if("undefined"!=typeof ga){ga("send","timing",t);try{for(var i=a(this.angulartics2.settings.ga.additionalAccountNames),r=i.next();!r.done;r=i.next()){var s=r.value;ga(s+".send","timing",t)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}}}else console.error("Properties timingCategory, timingVar, and timingValue are required to be set.")},t.prototype.setUsername=function(t){this.angulartics2.settings.ga.userId=t,"undefined"!=typeof ga&&ga("set","userId",t)},t.prototype.setUserProperties=function(t){this.setDimensionsAndMetrics(t)},t.prototype.setDimensionsAndMetrics=function(t){var e=this;"undefined"!=typeof ga&&(this.dimensionsAndMetrics.forEach((function(n){t.hasOwnProperty(n)||(ga("set",n,void 0),e.angulartics2.settings.ga.additionalAccountNames.forEach((function(t){ga(t+".set",n,void 0)})))})),this.dimensionsAndMetrics=[],Object.keys(t).forEach((function(n){0!==n.lastIndexOf("dimension",0)&&0!==n.lastIndexOf("metric",0)||(ga("set",n,t[n]),e.angulartics2.settings.ga.additionalAccountNames.forEach((function(e){ga(e+".set",n,t[n])})),e.dimensionsAndMetrics.push(n))})))},t}();r.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new r(e.ɵɵinject(n.Angulartics2))},token:r,providedIn:"root"}),r.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],r.ctorParameters=function(){return[{type:n.Angulartics2}]},t.Angulartics2GoogleAnalytics=r,t.GoogleAnalyticsDefaults=i,Object.defineProperty(t,"__esModule",{value:!0})}));
16
- //# sourceMappingURL=angulartics2-ga.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../src/lib/providers/ga/ga.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","this","additionalAccountNames","userId","transport","anonymizeIp","Angulartics2GoogleAnalytics","angulartics2","_this","dimensionsAndMetrics","defaults","GoogleAnalyticsDefaults","settings","ga","assign","setUsername","subscribe","x","setUserProperties","prototype","startTracking","pageTrack","pipe","filterDeveloperMode","path","eventTrack","action","properties","exceptionTrack","userTimings","_gaq","push","_e","_f","accountName","_g","_h","_j","_k","_l","_m","category","parsed","parseInt","isNaN","eventOptions","eventCategory","eventAction","eventLabel","label","eventValue","nonInteraction","noninteraction","page","location","hash","substring","pathname","hitCallback","setDimensionsAndMetrics","_b","_c","undefined","fatal","console","log","exDescription","description","exFatal","timingCategory","timingVar","timingValue","error","forEach","elem","hasOwnProperty","keys","key","lastIndexOf","Injectable","args","providedIn","Angulartics2"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './ga';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcnRpY3MyLWdhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvZ2EvYW5ndWxhcnRpY3MyLWdhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZ2EnO1xuIl19
package/ga/esm2015/ga.js DELETED
@@ -1,207 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Angulartics2, } from 'angulartics2';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "angulartics2";
5
- export class GoogleAnalyticsDefaults {
6
- constructor() {
7
- this.additionalAccountNames = [];
8
- this.userId = null;
9
- this.transport = '';
10
- this.anonymizeIp = false;
11
- }
12
- }
13
- export 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.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2GoogleAnalytics_Factory() { return new Angulartics2GoogleAnalytics(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2GoogleAnalytics, providedIn: "root" });
201
- Angulartics2GoogleAnalytics.decorators = [
202
- { type: Injectable, args: [{ providedIn: 'root' },] }
203
- ];
204
- Angulartics2GoogleAnalytics.ctorParameters = () => [
205
- { type: Angulartics2 }
206
- ];
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb3ZpZGVycy9nYS9nYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxZQUFZLEdBR2IsTUFBTSxjQUFjLENBQUM7OztBQU90QixNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ0UsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQUFBO0FBR0QsTUFBTSxPQUFPLDJCQUEyQjtJQUl0QyxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUg5Qyx5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFJeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQy9DLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLG1DQUN4QixRQUFRLEdBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNqQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUzthQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVO2FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYzthQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7YUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQyxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRTtnQkFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BEO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUN4QyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFO29CQUM5RSxFQUFFLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN4RTthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxFQUFFLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0IsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLEVBQUU7b0JBQzlFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDL0M7YUFDRjtZQUNELEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFO2dCQUM5RSxFQUFFLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDN0M7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxVQUFVLENBQUMsTUFBYyxFQUFFLFVBQWU7UUFDeEMsOENBQThDO1FBQzlDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1NBQy9CO1FBQ0Qsa0RBQWtEO1FBQ2xELHNHQUFzRztRQUN0Ryx1REFBdUQ7UUFDdkQsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUMvQztRQUVELElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFO1lBQzdCLE1BQU0sWUFBWSxtQkFDaEIsYUFBYSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQ2xDLFdBQVcsRUFBRSxNQUFNLEVBQ25CLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFDNUIsY0FBYyxFQUFFLFVBQVUsQ0FBQyxjQUFjLEVBQ3pDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQ3hFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUM1QyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQ3RHLENBQUM7WUFFRixvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXpDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRWxDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFO2dCQUM5RSxFQUFFLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDbEQ7U0FDRjthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsYUFBYTtnQkFDYixVQUFVLENBQUMsUUFBUTtnQkFDbkIsTUFBTTtnQkFDTixVQUFVLENBQUMsS0FBSztnQkFDaEIsVUFBVSxDQUFDLEtBQUs7Z0JBQ2hCLFVBQVUsQ0FBQyxjQUFjO2FBQzFCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxjQUFjLENBQUMsVUFBZTtRQUM1QixJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQztZQUM1RCxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUVELFVBQVUsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxNQUFNLFlBQVksR0FBRztZQUNuQixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDekIsYUFBYSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1NBQ3RDLENBQUM7UUFFRixFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN0QyxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRTtZQUM5RSxFQUFFLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxXQUFXLENBQUMsVUFBdUI7UUFDakMsSUFDRSxDQUFDLFVBQVU7WUFDWCxDQUFDLFVBQVUsQ0FBQyxjQUFjO1lBQzFCLENBQUMsVUFBVSxDQUFDLFNBQVM7WUFDckIsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUN2QjtZQUNBLE9BQU8sQ0FBQyxLQUFLLENBQ1gsK0VBQStFLENBQ2hGLENBQUM7WUFDRixPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUM3QixFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqQyxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRTtnQkFDOUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDOUMsSUFBSSxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBQ0QsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWU7UUFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxVQUFlO1FBQzdDLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUNELDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FDMUQsQ0FBQyxXQUFtQixFQUFFLEVBQUU7b0JBQ3RCLEVBQUUsQ0FBQyxHQUFHLFdBQVcsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDNUMsQ0FBQyxDQUNGLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUUvQixvQ0FBb0M7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEMsSUFDRSxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ2xDO2dCQUNBLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUMxRCxDQUFDLFdBQW1CLEVBQUUsRUFBRTtvQkFDdEIsRUFBRSxDQUFDLEdBQUcsV0FBVyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O1lBcE9GLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OztZQWpCaEMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQW5ndWxhcnRpY3MyLFxuICBHb29nbGVBbmFseXRpY3NTZXR0aW5ncyxcbiAgVXNlclRpbWluZ3MsXG59IGZyb20gJ2FuZ3VsYXJ0aWNzMic7XG5cblxuZGVjbGFyZSB2YXIgX2dhcTogR29vZ2xlQW5hbHl0aWNzQ29kZTtcbmRlY2xhcmUgdmFyIGdhOiBVbml2ZXJzYWxBbmFseXRpY3MuZ2E7XG5kZWNsYXJlIHZhciBsb2NhdGlvbjogYW55O1xuXG5leHBvcnQgY2xhc3MgR29vZ2xlQW5hbHl0aWNzRGVmYXVsdHMgaW1wbGVtZW50cyBHb29nbGVBbmFseXRpY3NTZXR0aW5ncyB7XG4gIGFkZGl0aW9uYWxBY2NvdW50TmFtZXMgPSBbXTtcbiAgdXNlcklkID0gbnVsbDtcbiAgdHJhbnNwb3J0ID0gJyc7XG4gIGFub255bWl6ZUlwID0gZmFsc2U7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyR29vZ2xlQW5hbHl0aWNzIHtcbiAgZGltZW5zaW9uc0FuZE1ldHJpY3MgPSBbXTtcbiAgc2V0dGluZ3M6IFBhcnRpYWw8R29vZ2xlQW5hbHl0aWNzU2V0dGluZ3M+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIpIHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IG5ldyBHb29nbGVBbmFseXRpY3NEZWZhdWx0cygpO1xuICAgIC8vIFNldCB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhpcyBtb2R1bGVcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYSA9IHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4udGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EsXG4gICAgfTtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2E7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlcm5hbWUuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHRoaXMuc2V0VXNlcm5hbWUoeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJQcm9wZXJ0aWVzLnN1YnNjcmliZSh4ID0+IHRoaXMuc2V0VXNlclByb3BlcnRpZXMoeCkpO1xuICB9XG5cbiAgc3RhcnRUcmFja2luZygpOiB2b2lkIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLnBhZ2VUcmFjayh4LnBhdGgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5ldmVudFRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5ldmVudFRyYWNrKHguYWN0aW9uLCB4LnByb3BlcnRpZXMpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5leGNlcHRpb25UcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMuZXhjZXB0aW9uVHJhY2soeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnVzZXJUaW1pbmdzXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy51c2VyVGltaW5ncyh4KSk7XG4gIH1cblxuICBwYWdlVHJhY2socGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBfZ2FxICE9PSAndW5kZWZpbmVkJyAmJiBfZ2FxKSB7XG4gICAgICBfZ2FxLnB1c2goWydfdHJhY2tQYWdldmlldycsIHBhdGhdKTtcbiAgICAgIGZvciAoY29uc3QgYWNjb3VudE5hbWUgb2YgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EuYWRkaXRpb25hbEFjY291bnROYW1lcykge1xuICAgICAgICBfZ2FxLnB1c2goW2FjY291bnROYW1lICsgJy5fdHJhY2tQYWdldmlldycsIHBhdGhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBnYSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2EpIHtcbiAgICAgIGlmICh0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS51c2VySWQpIHtcbiAgICAgICAgZ2EoJ3NldCcsICcmdWlkJywgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EudXNlcklkKTtcbiAgICAgICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICAgICAgZ2EoYWNjb3VudE5hbWUgKyAnLnNldCcsICcmdWlkJywgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EudXNlcklkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFub255bWl6ZUlwKSB7XG4gICAgICAgIGdhKCdzZXQnLCAnYW5vbnltaXplSXAnLCB0cnVlKTtcbiAgICAgICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICAgICAgZ2EoYWNjb3VudE5hbWUgKyAnLnNldCcsICdhbm9ueW1pemVJcCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBnYSgnc2VuZCcsICdwYWdldmlldycsIHBhdGgpO1xuICAgICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICAgIGdhKGFjY291bnROYW1lICsgJy5zZW5kJywgJ3BhZ2V2aWV3JywgcGF0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrIEV2ZW50IGluIEdBXG4gICAqXG4gICAqIEBwYXJhbSBhY3Rpb24gQXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudFxuICAgKiBAcGFyYW0gcHJvcGVydGllcyBDb21wcmlzZWQgb2Y6XG4gICAqICAtIGNhdGVnb3J5IChzdHJpbmcpIGFuZCBvcHRpb25hbFxuICAgKiAgLSBsYWJlbCAoc3RyaW5nKVxuICAgKiAgLSB2YWx1ZSAoaW50ZWdlcilcbiAgICogIC0gbm9uaW50ZXJhY3Rpb24gKGJvb2xlYW4pXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9nYWpzL2V2ZW50VHJhY2tlckd1aWRlI1NldHRpbmdVcEV2ZW50VHJhY2tpbmdcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL2V2ZW50c1xuICAgKi9cbiAgZXZlbnRUcmFjayhhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogYW55KSB7XG4gICAgLy8gR29vZ2xlIEFuYWx5dGljcyByZXF1aXJlcyBhbiBFdmVudCBDYXRlZ29yeVxuICAgIGlmICghcHJvcGVydGllcyB8fCAhcHJvcGVydGllcy5jYXRlZ29yeSkge1xuICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG4gICAgICBwcm9wZXJ0aWVzLmNhdGVnb3J5ID0gJ0V2ZW50JztcbiAgICB9XG4gICAgLy8gR0EgcmVxdWlyZXMgdGhhdCBldmVudFZhbHVlIGJlIGFuIGludGVnZXIsIHNlZTpcbiAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vYW5hbHl0aWNzanMvZmllbGQtcmVmZXJlbmNlI2V2ZW50VmFsdWVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbHVpc2ZhcnphdGkvYW5ndWxhcnRpY3MvaXNzdWVzLzgxXG4gICAgaWYgKHByb3BlcnRpZXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHByb3BlcnRpZXMudmFsdWUsIDEwKTtcbiAgICAgIHByb3BlcnRpZXMudmFsdWUgPSBpc05hTihwYXJzZWQpID8gMCA6IHBhcnNlZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGdhICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgZXZlbnRPcHRpb25zID0ge1xuICAgICAgICBldmVudENhdGVnb3J5OiBwcm9wZXJ0aWVzLmNhdGVnb3J5LFxuICAgICAgICBldmVudEFjdGlvbjogYWN0aW9uLFxuICAgICAgICBldmVudExhYmVsOiBwcm9wZXJ0aWVzLmxhYmVsLFxuICAgICAgICBldmVudFZhbHVlOiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgICBub25JbnRlcmFjdGlvbjogcHJvcGVydGllcy5ub25pbnRlcmFjdGlvbixcbiAgICAgICAgcGFnZTogcHJvcGVydGllcy5wYWdlIHx8IGxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpIHx8IGxvY2F0aW9uLnBhdGhuYW1lLFxuICAgICAgICB1c2VySWQ6IHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLnVzZXJJZCxcbiAgICAgICAgaGl0Q2FsbGJhY2s6IHByb3BlcnRpZXMuaGl0Q2FsbGJhY2ssXG4gICAgICAgIC4uLiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS50cmFuc3BvcnQgJiYgeyB0cmFuc3BvcnQ6IHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLnRyYW5zcG9ydCB9XG4gICAgICB9O1xuXG4gICAgICAvLyBhZGQgY3VzdG9tIGRpbWVuc2lvbnMgYW5kIG1ldHJpY3NcbiAgICAgIHRoaXMuc2V0RGltZW5zaW9uc0FuZE1ldHJpY3MocHJvcGVydGllcyk7XG5cbiAgICAgIGdhKCdzZW5kJywgJ2V2ZW50JywgZXZlbnRPcHRpb25zKTtcblxuICAgICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICAgIGdhKGFjY291bnROYW1lICsgJy5zZW5kJywgJ2V2ZW50JywgZXZlbnRPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBfZ2FxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgX2dhcS5wdXNoKFtcbiAgICAgICAgJ190cmFja0V2ZW50JyxcbiAgICAgICAgcHJvcGVydGllcy5jYXRlZ29yeSxcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBwcm9wZXJ0aWVzLmxhYmVsLFxuICAgICAgICBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgICBwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uLFxuICAgICAgXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiBUcmFjayBFdmVudCBpbiBHQVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydGllcyBDb21wcmlzZWQgb2YgdGhlIG9wdGlvbmFsIGZpZWxkczpcbiAgICogIC0gZmF0YWwgKHN0cmluZylcbiAgICogIC0gZGVzY3JpcHRpb24gKHN0cmluZylcbiAgICpcbiAgICogQGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9leGNlcHRpb25zXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9ldmVudHNcbiAgICovXG4gIGV4Y2VwdGlvblRyYWNrKHByb3BlcnRpZXM6IGFueSkge1xuICAgIGlmIChwcm9wZXJ0aWVzLmZhdGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBcImZhdGFsXCIgcHJvdmlkZWQsIHNlbmRpbmcgd2l0aCBmYXRhbD10cnVlJyk7XG4gICAgICBwcm9wZXJ0aWVzLmZhdGFsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24gPSBwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uO1xuXG4gICAgY29uc3QgZXZlbnRPcHRpb25zID0ge1xuICAgICAgZXhGYXRhbDogcHJvcGVydGllcy5mYXRhbCxcbiAgICAgIGV4RGVzY3JpcHRpb246IHByb3BlcnRpZXMuZGVzY3JpcHRpb24sXG4gICAgfTtcblxuICAgIGdhKCdzZW5kJywgJ2V4Y2VwdGlvbicsIGV2ZW50T3B0aW9ucyk7XG4gICAgZm9yIChjb25zdCBhY2NvdW50TmFtZSBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzKSB7XG4gICAgICBnYShhY2NvdW50TmFtZSArICcuc2VuZCcsICdleGNlcHRpb24nLCBldmVudE9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VyIFRpbWluZ3MgRXZlbnQgaW4gR0FcbiAgICpcbiAgICogQHBhcmFtIHByb3BlcnRpZXMgQ29tcHJpc2VkIG9mIHRoZSBtYW5kYXRvcnkgZmllbGRzOlxuICAgKiAgLSB0aW1pbmdDYXRlZ29yeSAoc3RyaW5nKVxuICAgKiAgLSB0aW1pbmdWYXIgKHN0cmluZylcbiAgICogIC0gdGltaW5nVmFsdWUgKG51bWJlcilcbiAgICogUHJvcGVydGllcyBjYW4gYWxzbyBoYXZlIHRoZSBvcHRpb25hbCBmaWVsZHM6XG4gICAqICAtIHRpbWluZ0xhYmVsIChzdHJpbmcpXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy91c2VyLXRpbWluZ3NcbiAgICovXG4gIHVzZXJUaW1pbmdzKHByb3BlcnRpZXM6IFVzZXJUaW1pbmdzKSB7XG4gICAgaWYgKFxuICAgICAgIXByb3BlcnRpZXMgfHxcbiAgICAgICFwcm9wZXJ0aWVzLnRpbWluZ0NhdGVnb3J5IHx8XG4gICAgICAhcHJvcGVydGllcy50aW1pbmdWYXIgfHxcbiAgICAgICFwcm9wZXJ0aWVzLnRpbWluZ1ZhbHVlXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnUHJvcGVydGllcyB0aW1pbmdDYXRlZ29yeSwgdGltaW5nVmFyLCBhbmQgdGltaW5nVmFsdWUgYXJlIHJlcXVpcmVkIHRvIGJlIHNldC4nLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGdhICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZ2EoJ3NlbmQnLCAndGltaW5nJywgcHJvcGVydGllcyk7XG4gICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdhLmFkZGl0aW9uYWxBY2NvdW50TmFtZXMpIHtcbiAgICAgICAgZ2EoYWNjb3VudE5hbWUgKyAnLnNlbmQnLCAndGltaW5nJywgcHJvcGVydGllcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0VXNlcm5hbWUodXNlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS51c2VySWQgPSB1c2VySWQ7XG4gICAgaWYgKHR5cGVvZiBnYSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZ2EoJ3NldCcsICd1c2VySWQnLCB1c2VySWQpO1xuICB9XG5cbiAgc2V0VXNlclByb3BlcnRpZXMocHJvcGVydGllczogYW55KSB7XG4gICAgdGhpcy5zZXREaW1lbnNpb25zQW5kTWV0cmljcyhwcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGltZW5zaW9uc0FuZE1ldHJpY3MocHJvcGVydGllczogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBnYSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gY2xlYW4gcHJldmlvdXNseSB1c2VkIGRpbWVuc2lvbnMgYW5kIG1ldHJpY3MgdGhhdCB3aWxsIG5vdCBiZSBvdmVycmlkZW5cbiAgICB0aGlzLmRpbWVuc2lvbnNBbmRNZXRyaWNzLmZvckVhY2goZWxlbSA9PiB7XG4gICAgICBpZiAoIXByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoZWxlbSkpIHtcbiAgICAgICAgZ2EoJ3NldCcsIGVsZW0sIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ2EuYWRkaXRpb25hbEFjY291bnROYW1lcy5mb3JFYWNoKFxuICAgICAgICAgIChhY2NvdW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBnYShgJHthY2NvdW50TmFtZX0uc2V0YCwgZWxlbSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MgPSBbXTtcblxuICAgIC8vIGFkZCBjdXN0b20gZGltZW5zaW9ucyBhbmQgbWV0cmljc1xuICAgIE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAga2V5Lmxhc3RJbmRleE9mKCdkaW1lbnNpb24nLCAwKSA9PT0gMCB8fFxuICAgICAgICBrZXkubGFzdEluZGV4T2YoJ21ldHJpYycsIDApID09PSAwXG4gICAgICApIHtcbiAgICAgICAgZ2EoJ3NldCcsIGtleSwgcHJvcGVydGllc1trZXldKTtcblxuICAgICAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nYS5hZGRpdGlvbmFsQWNjb3VudE5hbWVzLmZvckVhY2goXG4gICAgICAgICAgKGFjY291bnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGdhKGAke2FjY291bnROYW1lfS5zZXRgLCBrZXksIHByb3BlcnRpZXNba2V5XSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==