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.
- package/LICENSE +1 -1
- package/README.md +7 -8
- package/angular-router.d.ts +3 -0
- package/angulartics2-core.d.ts +3 -0
- package/angulartics2.d.ts +1 -0
- package/angulartics2.module.d.ts +5 -0
- package/angulartics2On.d.ts +6 -0
- package/esm2020/angular-router.mjs +33 -0
- package/esm2020/angulartics2-config.mjs +19 -0
- package/esm2020/angulartics2-core.mjs +93 -0
- package/esm2020/angulartics2-interfaces.mjs +2 -0
- package/esm2020/angulartics2-token.mjs +3 -0
- package/esm2020/angulartics2.mjs +5 -0
- package/{esm2015/angulartics2.module.js → esm2020/angulartics2.module.mjs} +12 -7
- package/esm2020/angulartics2On.mjs +66 -0
- package/esm2020/providers/adobeanalytics/adobeanalytics.mjs +98 -0
- package/esm2020/providers/amplitude/amplitude.mjs +68 -0
- package/esm2020/providers/appinsights/appinsights.mjs +118 -0
- package/esm2020/providers/baidu/baidu.mjs +81 -0
- package/{clicky/esm2015/clicky.interfaces.js → esm2020/providers/clicky/clicky.interfaces.mjs} +1 -0
- package/esm2020/providers/clicky/clicky.mjs +64 -0
- package/esm2020/providers/facebook/facebook.mjs +45 -0
- package/esm2020/providers/ga/ga.mjs +219 -0
- package/{ga-enhanced-ecom/esm2015/ga-enhanced-ecom-options.js → esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom-options.mjs} +1 -0
- package/esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom.mjs +32 -0
- package/esm2020/providers/gosquared/gosquared.mjs +55 -0
- package/{gst/esm2015/gst-interfaces.js → esm2020/providers/gst/gst-interfaces.mjs} +1 -0
- package/esm2020/providers/gst/gst.mjs +197 -0
- package/esm2020/providers/gtm/gtm.mjs +114 -0
- package/esm2020/providers/hubspot/hubspot.mjs +40 -0
- package/esm2020/providers/ibm-digital-analytics/ibm-digital-analytics.mjs +125 -0
- package/esm2020/providers/intercom/intercom.mjs +60 -0
- package/esm2020/providers/kissmetrics/kissmetrics.mjs +40 -0
- package/esm2020/providers/launch/launch.mjs +59 -0
- package/esm2020/providers/matomo/matomo.mjs +303 -0
- package/esm2020/providers/mixpanel/mixpanel.mjs +109 -0
- package/esm2020/providers/pyze/pyze.mjs +65 -0
- package/esm2020/providers/segment/segment.mjs +100 -0
- package/esm2020/providers/splunk/splunk.mjs +46 -0
- package/esm2020/providers/woopra/woopra.mjs +61 -0
- package/esm2020/public_api.mjs +32 -0
- package/esm2020/routerless.mjs +10 -0
- package/esm2020/routerless.module.mjs +28 -0
- package/fesm2015/angulartics2.mjs +2248 -0
- package/fesm2015/angulartics2.mjs.map +1 -0
- package/fesm2020/angulartics2.mjs +2294 -0
- package/fesm2020/angulartics2.mjs.map +1 -0
- package/package.json +26 -13
- package/{adobeanalytics → providers/adobeanalytics}/README.md +1 -1
- package/{adobeanalytics → providers/adobeanalytics}/adobeanalytics.d.ts +4 -1
- package/{amplitude → providers/amplitude}/README.md +1 -1
- package/{amplitude → providers/amplitude}/amplitude.d.ts +4 -1
- package/{appinsights → providers/appinsights}/README.md +1 -1
- package/{appinsights → providers/appinsights}/appinsights.d.ts +5 -1
- package/{baidu → providers/baidu}/README.md +1 -1
- package/{baidu → providers/baidu}/baidu.d.ts +4 -1
- package/{clicky → providers/clicky}/README.md +1 -1
- package/{clicky → providers/clicky}/clicky.d.ts +4 -1
- package/{clicky → providers/clicky}/clicky.interfaces.d.ts +0 -0
- package/{facebook → providers/facebook}/README.md +1 -1
- package/{facebook → providers/facebook}/facebook.d.ts +4 -1
- package/{ga → providers/ga}/README.md +1 -1
- package/{ga → providers/ga}/ga.d.ts +6 -1
- package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/README.md +1 -1
- package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/ga-enhanced-ecom-options.d.ts +0 -0
- package/{ga-enhanced-ecom → providers/ga-enhanced-ecom}/ga-enhanced-ecom.d.ts +3 -0
- package/{gosquared → providers/gosquared}/README.md +1 -1
- package/{gosquared → providers/gosquared}/gosquared.d.ts +4 -1
- package/{gst → providers/gst}/README.md +2 -2
- package/{gst → providers/gst}/gst-interfaces.d.ts +0 -0
- package/{gst → providers/gst}/gst.d.ts +5 -1
- package/{gtm → providers/gtm}/README.md +2 -2
- package/{gtm → providers/gtm}/gtm.d.ts +5 -1
- package/{hubspot → providers/hubspot}/README.md +1 -1
- package/{hubspot → providers/hubspot}/hubspot.d.ts +4 -1
- package/{ibm-digital-analytics → providers/ibm-digital-analytics}/README.md +2 -2
- package/{ibm-digital-analytics → providers/ibm-digital-analytics}/ibm-digital-analytics.d.ts +4 -1
- package/{intercom → providers/intercom}/README.md +1 -1
- package/{intercom → providers/intercom}/intercom.d.ts +4 -1
- package/{kissmetrics → providers/kissmetrics}/README.md +1 -1
- package/{kissmetrics → providers/kissmetrics}/kissmetrics.d.ts +4 -1
- package/{launch → providers/launch}/README.md +3 -3
- package/{launch → providers/launch}/launch.d.ts +4 -1
- package/{matomo → providers/matomo}/README.md +3 -3
- package/{matomo → providers/matomo}/matomo.d.ts +9 -6
- package/{mixpanel → providers/mixpanel}/README.md +2 -2
- package/{mixpanel → providers/mixpanel}/mixpanel.d.ts +4 -1
- package/{pyze → providers/pyze}/README.md +1 -1
- package/providers/pyze/pyze.d.ts +13 -0
- package/{segment → providers/segment}/README.md +3 -3
- package/{segment → providers/segment}/segment.d.ts +4 -1
- package/{splunk → providers/splunk}/README.md +2 -2
- package/providers/splunk/splunk.d.ts +11 -0
- package/{woopra → providers/woopra}/README.md +1 -1
- package/{woopra → providers/woopra}/woopra.d.ts +4 -1
- package/public_api.d.ts +23 -0
- package/routerless.module.d.ts +10 -0
- package/adobeanalytics/angulartics2-adobeanalytics.d.ts +0 -4
- package/adobeanalytics/angulartics2-adobeanalytics.metadata.json +0 -1
- package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js +0 -116
- package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.js.map +0 -1
- package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js +0 -2
- package/adobeanalytics/bundles/angulartics2-adobeanalytics.umd.min.js.map +0 -1
- package/adobeanalytics/esm2015/adobeanalytics.js +0 -103
- package/adobeanalytics/esm2015/angulartics2-adobeanalytics.js +0 -5
- package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js +0 -107
- package/adobeanalytics/fesm2015/angulartics2-adobeanalytics.js.map +0 -1
- package/adobeanalytics/package.json +0 -20
- package/amplitude/angulartics2-amplitude.d.ts +0 -4
- package/amplitude/angulartics2-amplitude.metadata.json +0 -1
- package/amplitude/bundles/angulartics2-amplitude.umd.js +0 -88
- package/amplitude/bundles/angulartics2-amplitude.umd.js.map +0 -1
- package/amplitude/bundles/angulartics2-amplitude.umd.min.js +0 -2
- package/amplitude/bundles/angulartics2-amplitude.umd.min.js.map +0 -1
- package/amplitude/esm2015/amplitude.js +0 -73
- package/amplitude/esm2015/angulartics2-amplitude.js +0 -5
- package/amplitude/fesm2015/angulartics2-amplitude.js +0 -78
- package/amplitude/fesm2015/angulartics2-amplitude.js.map +0 -1
- package/amplitude/package.json +0 -20
- package/angulartics2.metadata.json +0 -1
- package/appinsights/angulartics2-appinsights.d.ts +0 -4
- package/appinsights/angulartics2-appinsights.metadata.json +0 -1
- package/appinsights/bundles/angulartics2-appinsights.umd.js +0 -134
- package/appinsights/bundles/angulartics2-appinsights.umd.js.map +0 -1
- package/appinsights/bundles/angulartics2-appinsights.umd.min.js +0 -2
- package/appinsights/bundles/angulartics2-appinsights.umd.min.js.map +0 -1
- package/appinsights/esm2015/angulartics2-appinsights.js +0 -5
- package/appinsights/esm2015/appinsights.js +0 -122
- package/appinsights/fesm2015/angulartics2-appinsights.js +0 -125
- package/appinsights/fesm2015/angulartics2-appinsights.js.map +0 -1
- package/appinsights/package.json +0 -20
- package/baidu/angulartics2-baidu.d.ts +0 -4
- package/baidu/angulartics2-baidu.metadata.json +0 -1
- package/baidu/bundles/angulartics2-baidu.umd.js +0 -98
- package/baidu/bundles/angulartics2-baidu.umd.js.map +0 -1
- package/baidu/bundles/angulartics2-baidu.umd.min.js +0 -2
- package/baidu/bundles/angulartics2-baidu.umd.min.js.map +0 -1
- package/baidu/esm2015/angulartics2-baidu.js +0 -5
- package/baidu/esm2015/baidu.js +0 -83
- package/baidu/fesm2015/angulartics2-baidu.js +0 -88
- package/baidu/fesm2015/angulartics2-baidu.js.map +0 -1
- package/baidu/package.json +0 -20
- package/bundles/angulartics2.umd.js +0 -564
- package/bundles/angulartics2.umd.js.map +0 -1
- package/bundles/angulartics2.umd.min.js +0 -16
- package/bundles/angulartics2.umd.min.js.map +0 -1
- package/clicky/angulartics2-clicky.d.ts +0 -4
- package/clicky/angulartics2-clicky.metadata.json +0 -1
- package/clicky/bundles/angulartics2-clicky.umd.js +0 -80
- package/clicky/bundles/angulartics2-clicky.umd.js.map +0 -1
- package/clicky/bundles/angulartics2-clicky.umd.min.js +0 -2
- package/clicky/bundles/angulartics2-clicky.umd.min.js.map +0 -1
- package/clicky/esm2015/angulartics2-clicky.js +0 -5
- package/clicky/esm2015/clicky.js +0 -68
- package/clicky/fesm2015/angulartics2-clicky.js +0 -72
- package/clicky/fesm2015/angulartics2-clicky.js.map +0 -1
- package/clicky/package.json +0 -20
- package/esm2015/angular-router.js +0 -36
- package/esm2015/angulartics2-config.js +0 -19
- package/esm2015/angulartics2-core.js +0 -89
- package/esm2015/angulartics2-interfaces.js +0 -1
- package/esm2015/angulartics2-token.js +0 -3
- package/esm2015/angulartics2.js +0 -5
- package/esm2015/angulartics2On.js +0 -55
- package/esm2015/public_api.js +0 -9
- package/esm2015/routerless.js +0 -10
- package/facebook/angulartics2-facebook.d.ts +0 -4
- package/facebook/angulartics2-facebook.metadata.json +0 -1
- package/facebook/bundles/angulartics2-facebook.umd.js +0 -62
- package/facebook/bundles/angulartics2-facebook.umd.js.map +0 -1
- package/facebook/bundles/angulartics2-facebook.umd.min.js +0 -2
- package/facebook/bundles/angulartics2-facebook.umd.min.js.map +0 -1
- package/facebook/esm2015/angulartics2-facebook.js +0 -5
- package/facebook/esm2015/facebook.js +0 -47
- package/facebook/fesm2015/angulartics2-facebook.js +0 -52
- package/facebook/fesm2015/angulartics2-facebook.js.map +0 -1
- package/facebook/package.json +0 -20
- package/fesm2015/angulartics2.js +0 -223
- package/fesm2015/angulartics2.js.map +0 -1
- package/ga/angulartics2-ga.d.ts +0 -4
- package/ga/angulartics2-ga.metadata.json +0 -1
- package/ga/bundles/angulartics2-ga.umd.js +0 -600
- package/ga/bundles/angulartics2-ga.umd.js.map +0 -1
- package/ga/bundles/angulartics2-ga.umd.min.js +0 -16
- package/ga/bundles/angulartics2-ga.umd.min.js.map +0 -1
- package/ga/esm2015/angulartics2-ga.js +0 -5
- package/ga/esm2015/ga.js +0 -207
- package/ga/fesm2015/angulartics2-ga.js +0 -212
- package/ga/fesm2015/angulartics2-ga.js.map +0 -1
- package/ga/package.json +0 -20
- package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.d.ts +0 -4
- package/ga-enhanced-ecom/angulartics2-ga-enhanced-ecom.metadata.json +0 -1
- package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js +0 -47
- package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.js.map +0 -1
- package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js +0 -2
- package/ga-enhanced-ecom/bundles/angulartics2-ga-enhanced-ecom.umd.min.js.map +0 -1
- package/ga-enhanced-ecom/esm2015/angulartics2-ga-enhanced-ecom.js +0 -5
- package/ga-enhanced-ecom/esm2015/ga-enhanced-ecom.js +0 -30
- package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js +0 -36
- package/ga-enhanced-ecom/fesm2015/angulartics2-ga-enhanced-ecom.js.map +0 -1
- package/ga-enhanced-ecom/package.json +0 -20
- package/gosquared/angulartics2-gosquared.d.ts +0 -4
- package/gosquared/angulartics2-gosquared.metadata.json +0 -1
- package/gosquared/bundles/angulartics2-gosquared.umd.js +0 -72
- package/gosquared/bundles/angulartics2-gosquared.umd.js.map +0 -1
- package/gosquared/bundles/angulartics2-gosquared.umd.min.js +0 -2
- package/gosquared/bundles/angulartics2-gosquared.umd.min.js.map +0 -1
- package/gosquared/esm2015/angulartics2-gosquared.js +0 -5
- package/gosquared/esm2015/gosquared.js +0 -57
- package/gosquared/fesm2015/angulartics2-gosquared.js +0 -62
- package/gosquared/fesm2015/angulartics2-gosquared.js.map +0 -1
- package/gosquared/package.json +0 -20
- package/gst/angulartics2-gst.d.ts +0 -4
- package/gst/angulartics2-gst.metadata.json +0 -1
- package/gst/bundles/angulartics2-gst.umd.js +0 -514
- package/gst/bundles/angulartics2-gst.umd.js.map +0 -1
- package/gst/bundles/angulartics2-gst.umd.min.js +0 -16
- package/gst/bundles/angulartics2-gst.umd.min.js.map +0 -1
- package/gst/esm2015/angulartics2-gst.js +0 -5
- package/gst/esm2015/gst.js +0 -182
- package/gst/fesm2015/angulartics2-gst.js +0 -187
- package/gst/fesm2015/angulartics2-gst.js.map +0 -1
- package/gst/package.json +0 -20
- package/gtm/angulartics2-gtm.d.ts +0 -4
- package/gtm/angulartics2-gtm.metadata.json +0 -1
- package/gtm/bundles/angulartics2-gtm.umd.js +0 -125
- package/gtm/bundles/angulartics2-gtm.umd.js.map +0 -1
- package/gtm/bundles/angulartics2-gtm.umd.min.js +0 -2
- package/gtm/bundles/angulartics2-gtm.umd.min.js.map +0 -1
- package/gtm/esm2015/angulartics2-gtm.js +0 -5
- package/gtm/esm2015/gtm.js +0 -108
- package/gtm/fesm2015/angulartics2-gtm.js +0 -113
- package/gtm/fesm2015/angulartics2-gtm.js.map +0 -1
- package/gtm/package.json +0 -20
- package/hubspot/angulartics2-hubspot.d.ts +0 -4
- package/hubspot/angulartics2-hubspot.metadata.json +0 -1
- package/hubspot/bundles/angulartics2-hubspot.umd.js +0 -58
- package/hubspot/bundles/angulartics2-hubspot.umd.js.map +0 -1
- package/hubspot/bundles/angulartics2-hubspot.umd.min.js +0 -2
- package/hubspot/bundles/angulartics2-hubspot.umd.min.js.map +0 -1
- package/hubspot/esm2015/angulartics2-hubspot.js +0 -5
- package/hubspot/esm2015/hubspot.js +0 -43
- package/hubspot/fesm2015/angulartics2-hubspot.js +0 -48
- package/hubspot/fesm2015/angulartics2-hubspot.js.map +0 -1
- package/hubspot/package.json +0 -20
- package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.d.ts +0 -4
- package/ibm-digital-analytics/angulartics2-ibm-digital-analytics.metadata.json +0 -1
- package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js +0 -142
- package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.js.map +0 -1
- package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js +0 -2
- package/ibm-digital-analytics/bundles/angulartics2-ibm-digital-analytics.umd.min.js.map +0 -1
- package/ibm-digital-analytics/esm2015/angulartics2-ibm-digital-analytics.js +0 -5
- package/ibm-digital-analytics/esm2015/ibm-digital-analytics.js +0 -127
- package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js +0 -132
- package/ibm-digital-analytics/fesm2015/angulartics2-ibm-digital-analytics.js.map +0 -1
- package/ibm-digital-analytics/package.json +0 -20
- package/intercom/angulartics2-intercom.d.ts +0 -4
- package/intercom/angulartics2-intercom.metadata.json +0 -1
- package/intercom/bundles/angulartics2-intercom.umd.js +0 -79
- package/intercom/bundles/angulartics2-intercom.umd.js.map +0 -1
- package/intercom/bundles/angulartics2-intercom.umd.min.js +0 -2
- package/intercom/bundles/angulartics2-intercom.umd.min.js.map +0 -1
- package/intercom/esm2015/angulartics2-intercom.js +0 -5
- package/intercom/esm2015/intercom.js +0 -64
- package/intercom/fesm2015/angulartics2-intercom.js +0 -69
- package/intercom/fesm2015/angulartics2-intercom.js.map +0 -1
- package/intercom/package.json +0 -20
- package/kissmetrics/angulartics2-kissmetrics.d.ts +0 -4
- package/kissmetrics/angulartics2-kissmetrics.metadata.json +0 -1
- package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js +0 -59
- package/kissmetrics/bundles/angulartics2-kissmetrics.umd.js.map +0 -1
- package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js +0 -2
- package/kissmetrics/bundles/angulartics2-kissmetrics.umd.min.js.map +0 -1
- package/kissmetrics/esm2015/angulartics2-kissmetrics.js +0 -5
- package/kissmetrics/esm2015/kissmetrics.js +0 -44
- package/kissmetrics/fesm2015/angulartics2-kissmetrics.js +0 -49
- package/kissmetrics/fesm2015/angulartics2-kissmetrics.js.map +0 -1
- package/kissmetrics/package.json +0 -23
- package/launch/angulartics2-launch.d.ts +0 -4
- package/launch/angulartics2-launch.metadata.json +0 -1
- package/launch/bundles/angulartics2-launch.umd.js +0 -78
- package/launch/bundles/angulartics2-launch.umd.js.map +0 -1
- package/launch/bundles/angulartics2-launch.umd.min.js +0 -2
- package/launch/bundles/angulartics2-launch.umd.min.js.map +0 -1
- package/launch/esm2015/angulartics2-launch.js +0 -5
- package/launch/esm2015/launch.js +0 -63
- package/launch/fesm2015/angulartics2-launch.js +0 -68
- package/launch/fesm2015/angulartics2-launch.js.map +0 -1
- package/launch/package.json +0 -20
- package/matomo/angulartics2-matomo.d.ts +0 -4
- package/matomo/angulartics2-matomo.metadata.json +0 -1
- package/matomo/bundles/angulartics2-matomo.umd.js +0 -309
- package/matomo/bundles/angulartics2-matomo.umd.js.map +0 -1
- package/matomo/bundles/angulartics2-matomo.umd.min.js +0 -2
- package/matomo/bundles/angulartics2-matomo.umd.min.js.map +0 -1
- package/matomo/esm2015/angulartics2-matomo.js +0 -5
- package/matomo/esm2015/matomo.js +0 -294
- package/matomo/fesm2015/angulartics2-matomo.js +0 -299
- package/matomo/fesm2015/angulartics2-matomo.js.map +0 -1
- package/matomo/package.json +0 -20
- package/mixpanel/angulartics2-mixpanel.d.ts +0 -4
- package/mixpanel/angulartics2-mixpanel.metadata.json +0 -1
- package/mixpanel/bundles/angulartics2-mixpanel.umd.js +0 -132
- package/mixpanel/bundles/angulartics2-mixpanel.umd.js.map +0 -1
- package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js +0 -2
- package/mixpanel/bundles/angulartics2-mixpanel.umd.min.js.map +0 -1
- package/mixpanel/esm2015/angulartics2-mixpanel.js +0 -5
- package/mixpanel/esm2015/mixpanel.js +0 -117
- package/mixpanel/fesm2015/angulartics2-mixpanel.js +0 -122
- package/mixpanel/fesm2015/angulartics2-mixpanel.js.map +0 -1
- package/mixpanel/package.json +0 -20
- package/pyze/angulartics2-pyze.d.ts +0 -4
- package/pyze/angulartics2-pyze.metadata.json +0 -1
- package/pyze/bundles/angulartics2-pyze.umd.js +0 -82
- package/pyze/bundles/angulartics2-pyze.umd.js.map +0 -1
- package/pyze/bundles/angulartics2-pyze.umd.min.js +0 -2
- package/pyze/bundles/angulartics2-pyze.umd.min.js.map +0 -1
- package/pyze/esm2015/angulartics2-pyze.js +0 -5
- package/pyze/esm2015/pyze.js +0 -67
- package/pyze/fesm2015/angulartics2-pyze.js +0 -72
- package/pyze/fesm2015/angulartics2-pyze.js.map +0 -1
- package/pyze/package.json +0 -20
- package/pyze/pyze.d.ts +0 -10
- package/routerlessmodule/angulartics2-routerlessmodule.d.ts +0 -4
- package/routerlessmodule/angulartics2-routerlessmodule.metadata.json +0 -1
- package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js +0 -38
- package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.js.map +0 -1
- package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js +0 -2
- package/routerlessmodule/bundles/angulartics2-routerlessmodule.umd.min.js.map +0 -1
- package/routerlessmodule/esm2015/angulartics2-routerlessmodule.js +0 -5
- package/routerlessmodule/esm2015/routerless.module.js +0 -20
- package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js +0 -27
- package/routerlessmodule/fesm2015/angulartics2-routerlessmodule.js.map +0 -1
- package/routerlessmodule/package.json +0 -20
- package/routerlessmodule/routerless.module.d.ts +0 -5
- package/segment/angulartics2-segment.d.ts +0 -4
- package/segment/angulartics2-segment.metadata.json +0 -1
- package/segment/bundles/angulartics2-segment.umd.js +0 -120
- package/segment/bundles/angulartics2-segment.umd.js.map +0 -1
- package/segment/bundles/angulartics2-segment.umd.min.js +0 -2
- package/segment/bundles/angulartics2-segment.umd.min.js.map +0 -1
- package/segment/esm2015/angulartics2-segment.js +0 -5
- package/segment/esm2015/segment.js +0 -105
- package/segment/fesm2015/angulartics2-segment.js +0 -110
- package/segment/fesm2015/angulartics2-segment.js.map +0 -1
- package/segment/package.json +0 -20
- package/splunk/angulartics2-splunk.d.ts +0 -4
- package/splunk/angulartics2-splunk.metadata.json +0 -1
- package/splunk/bundles/angulartics2-splunk.umd.js +0 -62
- package/splunk/bundles/angulartics2-splunk.umd.js.map +0 -1
- package/splunk/bundles/angulartics2-splunk.umd.min.js +0 -2
- package/splunk/bundles/angulartics2-splunk.umd.min.js.map +0 -1
- package/splunk/esm2015/angulartics2-splunk.js +0 -5
- package/splunk/esm2015/splunk.js +0 -48
- package/splunk/fesm2015/angulartics2-splunk.js +0 -53
- package/splunk/fesm2015/angulartics2-splunk.js.map +0 -1
- package/splunk/package.json +0 -20
- package/splunk/splunk.d.ts +0 -8
- package/uiroutermodule/angulartics2-uiroutermodule.d.ts +0 -4
- package/uiroutermodule/angulartics2-uiroutermodule.metadata.json +0 -1
- package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js +0 -76
- package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.js.map +0 -1
- package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js +0 -2
- package/uiroutermodule/bundles/angulartics2-uiroutermodule.umd.min.js.map +0 -1
- package/uiroutermodule/esm2015/angulartics2-uiroutermodule.js +0 -5
- package/uiroutermodule/esm2015/public_api.js +0 -3
- package/uiroutermodule/esm2015/uirouter.js +0 -40
- package/uiroutermodule/esm2015/uirouter.module.js +0 -21
- package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js +0 -64
- package/uiroutermodule/fesm2015/angulartics2-uiroutermodule.js.map +0 -1
- package/uiroutermodule/package.json +0 -20
- package/uiroutermodule/public_api.d.ts +0 -2
- package/uiroutermodule/uirouter.d.ts +0 -17
- package/uiroutermodule/uirouter.module.d.ts +0 -5
- package/woopra/angulartics2-woopra.d.ts +0 -4
- package/woopra/angulartics2-woopra.metadata.json +0 -1
- package/woopra/bundles/angulartics2-woopra.umd.js +0 -79
- package/woopra/bundles/angulartics2-woopra.umd.js.map +0 -1
- package/woopra/bundles/angulartics2-woopra.umd.min.js +0 -2
- package/woopra/bundles/angulartics2-woopra.umd.min.js.map +0 -1
- package/woopra/esm2015/angulartics2-woopra.js +0 -5
- package/woopra/esm2015/woopra.js +0 -64
- package/woopra/fesm2015/angulartics2-woopra.js +0 -69
- package/woopra/fesm2015/angulartics2-woopra.js.map +0 -1
- package/woopra/package.json +0 -20
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class Angulartics2GoogleAnalyticsEnhancedEcommerce {
|
4
|
+
/**
|
5
|
+
* Add impression in GA enhanced ecommerce tracking
|
6
|
+
* @link https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-activities
|
7
|
+
*/
|
8
|
+
ecAddImpression(properties) {
|
9
|
+
ga('ec:addImpression', properties);
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* Add product in GA enhanced ecommerce tracking
|
13
|
+
* @link https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce
|
14
|
+
*/
|
15
|
+
ecAddProduct(product) {
|
16
|
+
ga('ec:addProduct', product);
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Set action in GA enhanced ecommerce tracking
|
20
|
+
* @link https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce
|
21
|
+
*/
|
22
|
+
ecSetAction(action, properties) {
|
23
|
+
ga('ec:setAction', action, properties);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
Angulartics2GoogleAnalyticsEnhancedEcommerce.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleAnalyticsEnhancedEcommerce, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
27
|
+
Angulartics2GoogleAnalyticsEnhancedEcommerce.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleAnalyticsEnhancedEcommerce, providedIn: 'root' });
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleAnalyticsEnhancedEcommerce, decorators: [{
|
29
|
+
type: Injectable,
|
30
|
+
args: [{ providedIn: 'root' }]
|
31
|
+
}] });
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2EtZW5oYW5jZWQtZWNvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJvdmlkZXJzL2dhLWVuaGFuY2VkLWVjb20vZ2EtZW5oYW5jZWQtZWNvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQyxNQUFNLE9BQU8sNENBQTRDO0lBQ3ZEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxVQUF3RDtRQUN0RSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxPQUFrRDtRQUM3RCxFQUFFLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQ1QsTUFBNEIsRUFDNUIsVUFBb0Q7UUFFcEQsRUFBRSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7eUlBMUJVLDRDQUE0Qzs2SUFBNUMsNENBQTRDLGNBRC9CLE1BQU07MkZBQ25CLDRDQUE0QztrQkFEeEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHYUVuaGFuY2VkRWNvbUFjdGlvbixcbiAgR2FFbmhhbmNlZEVjb21BY3Rpb25GaWVsZE9iamVjdCxcbiAgR2FFbmhhbmNlZEVjb21JbXByZXNzaW9uRmllbGRPYmplY3QsXG4gIEdhRW5oYW5jZWRFY29tUHJvZHVjdEZpZWxkT2JqZWN0LFxufSBmcm9tICcuL2dhLWVuaGFuY2VkLWVjb20tb3B0aW9ucyc7XG5cbmRlY2xhcmUgdmFyIGdhOiBVbml2ZXJzYWxBbmFseXRpY3MuZ2E7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyR29vZ2xlQW5hbHl0aWNzRW5oYW5jZWRFY29tbWVyY2Uge1xuICAvKipcbiAgICogQWRkIGltcHJlc3Npb24gaW4gR0EgZW5oYW5jZWQgZWNvbW1lcmNlIHRyYWNraW5nXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9lbmhhbmNlZC1lY29tbWVyY2UjbWVhc3VyaW5nLWFjdGl2aXRpZXNcbiAgICovXG4gIGVjQWRkSW1wcmVzc2lvbihwcm9wZXJ0aWVzOiBQYXJ0aWFsPEdhRW5oYW5jZWRFY29tSW1wcmVzc2lvbkZpZWxkT2JqZWN0Pikge1xuICAgIGdhKCdlYzphZGRJbXByZXNzaW9uJywgcHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHByb2R1Y3QgaW4gR0EgZW5oYW5jZWQgZWNvbW1lcmNlIHRyYWNraW5nXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9lY29tbWVyY2VcbiAgICovXG4gIGVjQWRkUHJvZHVjdChwcm9kdWN0OiBQYXJ0aWFsPEdhRW5oYW5jZWRFY29tUHJvZHVjdEZpZWxkT2JqZWN0Pikge1xuICAgIGdhKCdlYzphZGRQcm9kdWN0JywgcHJvZHVjdCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFjdGlvbiBpbiBHQSBlbmhhbmNlZCBlY29tbWVyY2UgdHJhY2tpbmdcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2FuYWx5dGljc2pzL2Vjb21tZXJjZVxuICAgKi9cbiAgZWNTZXRBY3Rpb24oXG4gICAgYWN0aW9uOiBHYUVuaGFuY2VkRWNvbUFjdGlvbixcbiAgICBwcm9wZXJ0aWVzOiBQYXJ0aWFsPEdhRW5oYW5jZWRFY29tQWN0aW9uRmllbGRPYmplY3Q+XG4gICkge1xuICAgIGdhKCdlYzpzZXRBY3Rpb24nLCBhY3Rpb24sIHByb3BlcnRpZXMpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../../angulartics2-core";
|
4
|
+
export class Angulartics2GoSquared {
|
5
|
+
constructor(angulartics2) {
|
6
|
+
this.angulartics2 = angulartics2;
|
7
|
+
this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));
|
8
|
+
this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserProperties(x));
|
9
|
+
}
|
10
|
+
startTracking() {
|
11
|
+
this.angulartics2.pageTrack
|
12
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
13
|
+
.subscribe(x => this.pageTrack(x.path));
|
14
|
+
this.angulartics2.eventTrack
|
15
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
16
|
+
.subscribe(x => this.eventTrack(x.action, x.properties));
|
17
|
+
}
|
18
|
+
pageTrack(path) {
|
19
|
+
try {
|
20
|
+
_gs('track', path);
|
21
|
+
}
|
22
|
+
catch (e) {
|
23
|
+
if (!(e instanceof ReferenceError)) {
|
24
|
+
throw e;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
eventTrack(action, properties) {
|
29
|
+
try {
|
30
|
+
_gs('event', action, properties);
|
31
|
+
}
|
32
|
+
catch (e) {
|
33
|
+
if (!(e instanceof ReferenceError)) {
|
34
|
+
throw e;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
setUserProperties(properties) {
|
39
|
+
try {
|
40
|
+
_gs('identify', properties);
|
41
|
+
}
|
42
|
+
catch (e) {
|
43
|
+
if (!(e instanceof ReferenceError)) {
|
44
|
+
throw e;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
Angulartics2GoSquared.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoSquared, deps: [{ token: i1.Angulartics2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
50
|
+
Angulartics2GoSquared.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoSquared, providedIn: 'root' });
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoSquared, decorators: [{
|
52
|
+
type: Injectable,
|
53
|
+
args: [{ providedIn: 'root' }]
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.Angulartics2 }]; } });
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zcXVhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvZ29zcXVhcmVkL2dvc3F1YXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7YUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVTthQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsSUFBSTtZQUNGLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDcEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxjQUFjLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsVUFBZTtRQUN4QyxJQUFJO1lBQ0YsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDbEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxjQUFjLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWU7UUFDL0IsSUFBSTtZQUNGLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDN0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxjQUFjLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtTQUNGO0lBQ0gsQ0FBQzs7a0hBM0NVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRFIsTUFBTTsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW5ndWxhcnRpY3MyIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWNvcmUnO1xuXG5kZWNsYXJlIHZhciBfZ3M6IGFueTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFydGljczJHb1NxdWFyZWQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJ0aWNzMjogQW5ndWxhcnRpY3MyKSB7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXMuc3Vic2NyaWJlKHggPT4gdGhpcy5zZXRVc2VyUHJvcGVydGllcyh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXNPbmNlLnN1YnNjcmliZSh4ID0+IHRoaXMuc2V0VXNlclByb3BlcnRpZXMoeCkpO1xuICB9XG5cbiAgc3RhcnRUcmFja2luZygpOiB2b2lkIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLnBhZ2VUcmFjayh4LnBhdGgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5ldmVudFRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5ldmVudFRyYWNrKHguYWN0aW9uLCB4LnByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIHBhZ2VUcmFjayhwYXRoOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgX2dzKCd0cmFjaycsIHBhdGgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBldmVudFRyYWNrKGFjdGlvbjogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgX2dzKCdldmVudCcsIGFjdGlvbiwgcHJvcGVydGllcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFVzZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBfZ3MoJ2lkZW50aWZ5JywgcHJvcGVydGllcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
@@ -1 +1,2 @@
|
|
1
|
+
export {};
|
1
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3N0LWludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb3ZpZGVycy9nc3QvZ3N0LWludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGluayBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vZ3RhZ2pzL3VzZXItdGltaW5ncyAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyVGltaW5nc0dzdCB7XG4gIC8qKiBBIHN0cmluZyB0byBpZGVudGlmeSB0aGUgdmFyaWFibGUgYmVpbmcgcmVjb3JkZWQgKGUuZy4gJ2xvYWQnKS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gZWxhcHNlZCB0aW1lIHRvIHJlcG9ydCB0byBHb29nbGUgQW5hbHl0aWNzIChlLmcuIDIwKS4gKi9cbiAgdmFsdWU6IG51bWJlcjtcbiAgLyoqIEEgc3RyaW5nIGZvciBjYXRlZ29yaXppbmcgYWxsIHVzZXIgdGltaW5nIHZhcmlhYmxlcyBpbnRvIGxvZ2ljYWwgZ3JvdXBzIChlLmcuICdKUyBEZXBlbmRlbmNpZXMnKS4gKi9cbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIC8qKiBBIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBmbGV4aWJpbGl0eSBpbiB2aXN1YWxpemluZyB1c2VyIHRpbWluZ3MgaW4gdGhlIHJlcG9ydHMgKGUuZy4gJ0dvb2dsZSBDRE4nKS4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRHc3Qge1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgdmFsdWU/OiBudW1iZXIgfCBzdHJpbmc7XG4gIG5vbmludGVyYWN0aW9uPzogYm9vbGVhbjtcbiAgZ3N0Q3VzdG9tPzogYW55O1xufVxuIl19
|
@@ -0,0 +1,197 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../../angulartics2-core";
|
4
|
+
export class GoogleGlobalSiteTagDefaults {
|
5
|
+
constructor() {
|
6
|
+
this.trackingIds = [];
|
7
|
+
if (typeof ga !== 'undefined' && ga) {
|
8
|
+
// See: https://developers.google.com/analytics/devguides/collection/analyticsjs/ga-object-methods-reference
|
9
|
+
ga(() => {
|
10
|
+
ga.getAll().forEach((tracker) => {
|
11
|
+
const id = tracker.get('trackingId');
|
12
|
+
// If set both in forRoot and HTML page, we want to avoid duplicates
|
13
|
+
if (id !== undefined && this.trackingIds.indexOf(id) === -1) {
|
14
|
+
this.trackingIds.push(id);
|
15
|
+
}
|
16
|
+
});
|
17
|
+
});
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
export class Angulartics2GoogleGlobalSiteTag {
|
22
|
+
constructor(angulartics2) {
|
23
|
+
this.angulartics2 = angulartics2;
|
24
|
+
this.dimensionsAndMetrics = {};
|
25
|
+
const defaults = new GoogleGlobalSiteTagDefaults();
|
26
|
+
// Set the default settings for this module
|
27
|
+
this.angulartics2.settings.gst = { ...defaults, ...this.angulartics2.settings.gst };
|
28
|
+
}
|
29
|
+
startTracking() {
|
30
|
+
this.angulartics2.pageTrack
|
31
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
32
|
+
.subscribe(x => this.pageTrack(x.path));
|
33
|
+
this.angulartics2.eventTrack
|
34
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
35
|
+
.subscribe(x => this.eventTrack(x.action, x.properties));
|
36
|
+
this.angulartics2.exceptionTrack
|
37
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
38
|
+
.subscribe((x) => this.exceptionTrack(x));
|
39
|
+
this.angulartics2.userTimings
|
40
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
41
|
+
.subscribe(x => this.userTimings(this.convertTimings(x)));
|
42
|
+
this.angulartics2.setUsername
|
43
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
44
|
+
.subscribe((x) => this.setUsername(x));
|
45
|
+
this.angulartics2.setUserProperties
|
46
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
47
|
+
.subscribe((x) => this.setUserProperties(x));
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Manually track page view, see:
|
51
|
+
*
|
52
|
+
* https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#tracking_virtual_pageviews
|
53
|
+
*
|
54
|
+
* @param path relative url
|
55
|
+
*/
|
56
|
+
pageTrack(path) {
|
57
|
+
if (typeof gtag !== 'undefined' && gtag) {
|
58
|
+
const params = {
|
59
|
+
page_path: path,
|
60
|
+
page_location: window.location.protocol + '//' + window.location.host + path,
|
61
|
+
...this.dimensionsAndMetrics,
|
62
|
+
};
|
63
|
+
// Custom map must be reset with all config to stay valid.
|
64
|
+
if (this.angulartics2.settings.gst.customMap) {
|
65
|
+
params.custom_map = this.angulartics2.settings.gst.customMap;
|
66
|
+
}
|
67
|
+
if (this.angulartics2.settings.gst.userId) {
|
68
|
+
params.user_id = this.angulartics2.settings.gst.userId;
|
69
|
+
}
|
70
|
+
if (this.angulartics2.settings.gst.anonymizeIp) {
|
71
|
+
params.anonymize_ip = this.angulartics2.settings.gst.anonymizeIp;
|
72
|
+
}
|
73
|
+
for (const id of this.angulartics2.settings.gst.trackingIds) {
|
74
|
+
gtag('config', id, params);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* Send interactions to gtag, i.e. for event tracking in Google Analytics. See:
|
80
|
+
*
|
81
|
+
* https://developers.google.com/analytics/devguides/collection/gtagjs/events
|
82
|
+
*
|
83
|
+
* @param action associated with the event
|
84
|
+
*/
|
85
|
+
eventTrack(action, properties = {}) {
|
86
|
+
this.eventTrackInternal(action, {
|
87
|
+
event_category: properties.category || 'interaction',
|
88
|
+
event_label: properties.label,
|
89
|
+
value: properties.value,
|
90
|
+
non_interaction: properties.noninteraction,
|
91
|
+
...properties.gstCustom,
|
92
|
+
});
|
93
|
+
}
|
94
|
+
/**
|
95
|
+
* Exception Track Event in GST. See:
|
96
|
+
*
|
97
|
+
* https://developers.google.com/analytics/devguides/collection/gtagjs/exceptions
|
98
|
+
*
|
99
|
+
*/
|
100
|
+
exceptionTrack(properties) {
|
101
|
+
// TODO: make interface
|
102
|
+
// @param {Object} properties
|
103
|
+
// @param {string} [properties.description]
|
104
|
+
// @param {boolean} [properties.fatal]
|
105
|
+
if (properties.fatal === undefined) {
|
106
|
+
console.log('No "fatal" provided, sending with fatal=true');
|
107
|
+
properties.fatal = true;
|
108
|
+
}
|
109
|
+
properties.exDescription = properties.event ? properties.event.stack : properties.description;
|
110
|
+
this.eventTrack('exception', {
|
111
|
+
gstCustom: {
|
112
|
+
description: properties.exDescription,
|
113
|
+
fatal: properties.fatal,
|
114
|
+
...properties.gstCustom,
|
115
|
+
},
|
116
|
+
});
|
117
|
+
}
|
118
|
+
/**
|
119
|
+
* User Timings Event in GST.
|
120
|
+
*
|
121
|
+
* @param properties Comprised of the mandatory fields:
|
122
|
+
* - name (string)
|
123
|
+
* - value (number - integer)
|
124
|
+
* Properties can also have the optional fields:
|
125
|
+
* - category (string)
|
126
|
+
* - label (string)
|
127
|
+
*
|
128
|
+
* @link https://developers.google.com/analytics/devguides/collection/gtagjs/user-timings
|
129
|
+
*/
|
130
|
+
userTimings(properties) {
|
131
|
+
if (!properties) {
|
132
|
+
console.error('User timings - "properties" parameter is required to be set.');
|
133
|
+
return;
|
134
|
+
}
|
135
|
+
this.eventTrackInternal('timing_complete', {
|
136
|
+
name: properties.name,
|
137
|
+
value: properties.value,
|
138
|
+
event_category: properties.category,
|
139
|
+
event_label: properties.label,
|
140
|
+
});
|
141
|
+
}
|
142
|
+
convertTimings(properties) {
|
143
|
+
return {
|
144
|
+
name: properties.timingVar,
|
145
|
+
value: properties.timingValue,
|
146
|
+
category: properties.timingCategory,
|
147
|
+
label: properties.timingLabel,
|
148
|
+
};
|
149
|
+
}
|
150
|
+
setUsername(userId) {
|
151
|
+
this.angulartics2.settings.gst.userId = userId;
|
152
|
+
if (typeof gtag !== 'undefined' && gtag) {
|
153
|
+
gtag('set', { user_id: typeof userId === 'string' || !userId ? userId : userId.userId });
|
154
|
+
}
|
155
|
+
}
|
156
|
+
setUserProperties(properties) {
|
157
|
+
this.setDimensionsAndMetrics(properties);
|
158
|
+
}
|
159
|
+
setDimensionsAndMetrics(properties) {
|
160
|
+
// We want the dimensions and metrics to accumulate, so we merge with previous value
|
161
|
+
this.dimensionsAndMetrics = {
|
162
|
+
...this.dimensionsAndMetrics,
|
163
|
+
...properties,
|
164
|
+
};
|
165
|
+
// Remove properties that are null or undefined
|
166
|
+
Object.keys(this.dimensionsAndMetrics).forEach(key => {
|
167
|
+
const val = this.dimensionsAndMetrics[key];
|
168
|
+
if (val === undefined || val === null) {
|
169
|
+
delete this.dimensionsAndMetrics[key];
|
170
|
+
}
|
171
|
+
});
|
172
|
+
if (typeof gtag !== 'undefined' && gtag) {
|
173
|
+
gtag('set', this.dimensionsAndMetrics);
|
174
|
+
}
|
175
|
+
}
|
176
|
+
eventTrackInternal(action, properties = {}) {
|
177
|
+
this.cleanProperties(properties);
|
178
|
+
if (typeof gtag !== 'undefined' && gtag) {
|
179
|
+
gtag('event', action, properties);
|
180
|
+
}
|
181
|
+
}
|
182
|
+
cleanProperties(properties) {
|
183
|
+
// GA requires that eventValue be an non-negative integer, see:
|
184
|
+
// https://developers.google.com/analytics/devguides/collection/gtagjs/events
|
185
|
+
if (properties.value) {
|
186
|
+
const parsed = parseInt(properties.value, 10);
|
187
|
+
properties.value = isNaN(parsed) ? 0 : parsed;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
}
|
191
|
+
Angulartics2GoogleGlobalSiteTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleGlobalSiteTag, deps: [{ token: i1.Angulartics2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
192
|
+
Angulartics2GoogleGlobalSiteTag.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleGlobalSiteTag, providedIn: 'root' });
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleGlobalSiteTag, decorators: [{
|
194
|
+
type: Injectable,
|
195
|
+
args: [{ providedIn: 'root' }]
|
196
|
+
}], ctorParameters: function () { return [{ type: i1.Angulartics2 }]; } });
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvZ3N0L2dzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVM0MsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QztRQUZBLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUNuQyw0R0FBNEc7WUFDNUcsRUFBRSxDQUFDLEdBQUcsRUFBRTtnQkFDTixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7b0JBQ25DLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3JDLG9FQUFvRTtvQkFDcEUsSUFBSSxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDM0I7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUFzQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUZ4Qyx5QkFBb0IsR0FBMkIsRUFBRSxDQUFDO1FBR3hELE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUNuRCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FB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O1NBQy9DO0lBQ0gsQ0FBQzs7NEhBM0xVLCtCQUErQjtnSUFBL0IsK0JBQStCLGNBRGxCLE1BQU07MkZBQ25CLCtCQUErQjtrQkFEM0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFVzZXJUaW1pbmdzIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgR29vZ2xlR2xvYmFsU2l0ZVRhZ1NldHRpbmdzIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWNvbmZpZyc7XG5pbXBvcnQgeyBBbmd1bGFydGljczIgfSBmcm9tICcuLi8uLi9hbmd1bGFydGljczItY29yZSc7XG5pbXBvcnQgeyBFdmVudEdzdCwgVXNlclRpbWluZ3NHc3QgfSBmcm9tICcuL2dzdC1pbnRlcmZhY2VzJztcblxuZGVjbGFyZSB2YXIgZ3RhZzogYW55O1xuZGVjbGFyZSB2YXIgZ2E6IGFueTtcblxuZXhwb3J0IGNsYXNzIEdvb2dsZUdsb2JhbFNpdGVUYWdEZWZhdWx0cyBpbXBsZW1lbnRzIEdvb2dsZUdsb2JhbFNpdGVUYWdTZXR0aW5ncyB7XG4gIHRyYWNraW5nSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0eXBlb2YgZ2EgIT09ICd1bmRlZmluZWQnICYmIGdhKSB7XG4gICAgICAvLyBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9hbmFseXRpY3Nqcy9nYS1vYmplY3QtbWV0aG9kcy1yZWZlcmVuY2VcbiAgICAgIGdhKCgpID0+IHtcbiAgICAgICAgZ2EuZ2V0QWxsKCkuZm9yRWFjaCgodHJhY2tlcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgaWQgPSB0cmFja2VyLmdldCgndHJhY2tpbmdJZCcpO1xuICAgICAgICAgIC8vIElmIHNldCBib3RoIGluIGZvclJvb3QgYW5kIEhUTUwgcGFnZSwgd2Ugd2FudCB0byBhdm9pZCBkdXBsaWNhdGVzXG4gICAgICAgICAgaWYgKGlkICE9PSB1bmRlZmluZWQgJiYgdGhpcy50cmFja2luZ0lkcy5pbmRleE9mKGlkKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tpbmdJZHMucHVzaChpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJ0aWNzMkdvb2dsZUdsb2JhbFNpdGVUYWcge1xuICBwcml2YXRlIGRpbWVuc2lvbnNBbmRNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFuZ3VsYXJ0aWNzMjogQW5ndWxhcnRpY3MyKSB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBuZXcgR29vZ2xlR2xvYmFsU2l0ZVRhZ0RlZmF1bHRzKCk7XG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGlzIG1vZHVsZVxuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdCA9IHsgLi4uZGVmYXVsdHMsIC4uLnRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdCB9O1xuICB9XG5cbiAgc3RhcnRUcmFja2luZygpOiB2b2lkIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLnBhZ2VUcmFjayh4LnBhdGgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5ldmVudFRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5ldmVudFRyYWNrKHguYWN0aW9uLCB4LnByb3BlcnRpZXMpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5leGNlcHRpb25UcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSgoeDogYW55KSA9PiB0aGlzLmV4Y2VwdGlvblRyYWNrKHgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi51c2VyVGltaW5nc1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMudXNlclRpbWluZ3ModGhpcy5jb252ZXJ0VGltaW5ncyh4KSkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJuYW1lXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHRoaXMuc2V0VXNlcm5hbWUoeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJQcm9wZXJ0aWVzXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKCh4OiBhbnkpID0+IHRoaXMuc2V0VXNlclByb3BlcnRpZXMoeCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IHRyYWNrIHBhZ2Ugdmlldywgc2VlOlxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vZ3RhZ2pzL3NpbmdsZS1wYWdlLWFwcGxpY2F0aW9ucyN0cmFja2luZ192aXJ0dWFsX3BhZ2V2aWV3c1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSB1cmxcbiAgICovXG4gIHBhZ2VUcmFjayhwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGd0YWcgIT09ICd1bmRlZmluZWQnICYmIGd0YWcpIHtcbiAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBwYWdlX3BhdGg6IHBhdGgsXG4gICAgICAgIHBhZ2VfbG9jYXRpb246IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArIHBhdGgsXG4gICAgICAgIC4uLnRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MsXG4gICAgICB9O1xuXG4gICAgICAvLyBDdXN0b20gbWFwIG11c3QgYmUgcmVzZXQgd2l0aCBhbGwgY29uZmlnIHRvIHN0YXkgdmFsaWQuXG5cbiAgICAgIGlmICh0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QuY3VzdG9tTWFwKSB7XG4gICAgICAgIHBhcmFtcy5jdXN0b21fbWFwID0gdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3N0LmN1c3RvbU1hcDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QudXNlcklkKSB7XG4gICAgICAgIHBhcmFtcy51c2VyX2lkID0gdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3N0LnVzZXJJZDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QuYW5vbnltaXplSXApIHtcbiAgICAgICAgcGFyYW1zLmFub255bWl6ZV9pcCA9IHRoaXMuYW5ndWxhcnRpY3MyLnNldHRpbmdzLmdzdC5hbm9ueW1pemVJcDtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBpZCBvZiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QudHJhY2tpbmdJZHMpIHtcbiAgICAgICAgZ3RhZygnY29uZmlnJywgaWQsIHBhcmFtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgaW50ZXJhY3Rpb25zIHRvIGd0YWcsIGkuZS4gZm9yIGV2ZW50IHRyYWNraW5nIGluIEdvb2dsZSBBbmFseXRpY3MuIFNlZTpcbiAgICpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2d0YWdqcy9ldmVudHNcbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50XG4gICAqL1xuICBldmVudFRyYWNrKGFjdGlvbjogc3RyaW5nLCBwcm9wZXJ0aWVzOiBQYXJ0aWFsPEV2ZW50R3N0PiA9IHt9KSB7XG4gICAgdGhpcy5ldmVudFRyYWNrSW50ZXJuYWwoYWN0aW9uLCB7XG4gICAgICBldmVudF9jYXRlZ29yeTogcHJvcGVydGllcy5jYXRlZ29yeSB8fCAnaW50ZXJhY3Rpb24nLFxuICAgICAgZXZlbnRfbGFiZWw6IHByb3BlcnRpZXMubGFiZWwsXG4gICAgICB2YWx1ZTogcHJvcGVydGllcy52YWx1ZSxcbiAgICAgIG5vbl9pbnRlcmFjdGlvbjogcHJvcGVydGllcy5ub25pbnRlcmFjdGlvbixcbiAgICAgIC4uLnByb3BlcnRpZXMuZ3N0Q3VzdG9tLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiBUcmFjayBFdmVudCBpbiBHU1QuIFNlZTpcbiAgICpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2d0YWdqcy9leGNlcHRpb25zXG4gICAqXG4gICAqL1xuICBleGNlcHRpb25UcmFjayhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAvLyBUT0RPOiBtYWtlIGludGVyZmFjZVxuICAgIC8vICBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1xuICAgIC8vICBAcGFyYW0ge3N0cmluZ30gW3Byb3BlcnRpZXMuZGVzY3JpcHRpb25dXG4gICAgLy8gIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BlcnRpZXMuZmF0YWxdXG4gICAgaWYgKHByb3BlcnRpZXMuZmF0YWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5sb2coJ05vIFwiZmF0YWxcIiBwcm92aWRlZCwgc2VuZGluZyB3aXRoIGZhdGFsPXRydWUnKTtcbiAgICAgIHByb3BlcnRpZXMuZmF0YWwgPSB0cnVlO1xuICAgIH1cblxuICAgIHByb3BlcnRpZXMuZXhEZXNjcmlwdGlvbiA9IHByb3BlcnRpZXMuZXZlbnQgPyBwcm9wZXJ0aWVzLmV2ZW50LnN0YWNrIDogcHJvcGVydGllcy5kZXNjcmlwdGlvbjtcblxuICAgIHRoaXMuZXZlbnRUcmFjaygnZXhjZXB0aW9uJywge1xuICAgICAgZ3N0Q3VzdG9tOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24sXG4gICAgICAgIGZhdGFsOiBwcm9wZXJ0aWVzLmZhdGFsLFxuICAgICAgICAuLi5wcm9wZXJ0aWVzLmdzdEN1c3RvbSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlciBUaW1pbmdzIEV2ZW50IGluIEdTVC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BlcnRpZXMgQ29tcHJpc2VkIG9mIHRoZSBtYW5kYXRvcnkgZmllbGRzOlxuICAgKiAgLSBuYW1lIChzdHJpbmcpXG4gICAqICAtIHZhbHVlIChudW1iZXIgLSBpbnRlZ2VyKVxuICAgKiBQcm9wZXJ0aWVzIGNhbiBhbHNvIGhhdmUgdGhlIG9wdGlvbmFsIGZpZWxkczpcbiAgICogIC0gY2F0ZWdvcnkgKHN0cmluZylcbiAgICogIC0gbGFiZWwgKHN0cmluZylcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2d0YWdqcy91c2VyLXRpbWluZ3NcbiAgICovXG4gIHVzZXJUaW1pbmdzKHByb3BlcnRpZXM6IFVzZXJUaW1pbmdzR3N0KSB7XG4gICAgaWYgKCFwcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdVc2VyIHRpbWluZ3MgLSBcInByb3BlcnRpZXNcIiBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gYmUgc2V0LicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXZlbnRUcmFja0ludGVybmFsKCd0aW1pbmdfY29tcGxldGUnLCB7XG4gICAgICBuYW1lOiBwcm9wZXJ0aWVzLm5hbWUsXG4gICAgICB2YWx1ZTogcHJvcGVydGllcy52YWx1ZSxcbiAgICAgIGV2ZW50X2NhdGVnb3J5OiBwcm9wZXJ0aWVzLmNhdGVnb3J5LFxuICAgICAgZXZlbnRfbGFiZWw6IHByb3BlcnRpZXMubGFiZWwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUaW1pbmdzKHByb3BlcnRpZXM6IFVzZXJUaW1pbmdzKTogVXNlclRpbWluZ3NHc3Qge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBwcm9wZXJ0aWVzLnRpbWluZ1ZhcixcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzLnRpbWluZ1ZhbHVlLFxuICAgICAgY2F0ZWdvcnk6IHByb3BlcnRpZXMudGltaW5nQ2F0ZWdvcnksXG4gICAgICBsYWJlbDogcHJvcGVydGllcy50aW1pbmdMYWJlbCxcbiAgICB9O1xuICB9XG5cbiAgc2V0VXNlcm5hbWUodXNlcklkOiBzdHJpbmcgfCB7IHVzZXJJZDogc3RyaW5nIHwgbnVtYmVyIH0pIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5nc3QudXNlcklkID0gdXNlcklkO1xuICAgIGlmICh0eXBlb2YgZ3RhZyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ3RhZykge1xuICAgICAgZ3RhZygnc2V0JywgeyB1c2VyX2lkOiB0eXBlb2YgdXNlcklkID09PSAnc3RyaW5nJyB8fCAhdXNlcklkID8gdXNlcklkIDogdXNlcklkLnVzZXJJZCB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnNldERpbWVuc2lvbnNBbmRNZXRyaWNzKHByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaW1lbnNpb25zQW5kTWV0cmljcyhwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgLy8gV2Ugd2FudCB0aGUgZGltZW5zaW9ucyBhbmQgbWV0cmljcyB0byBhY2N1bXVsYXRlLCBzbyB3ZSBtZXJnZSB3aXRoIHByZXZpb3VzIHZhbHVlXG4gICAgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcyA9IHtcbiAgICAgIC4uLnRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MsXG4gICAgICAuLi5wcm9wZXJ0aWVzLFxuICAgIH07XG5cbiAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGFyZSBudWxsIG9yIHVuZGVmaW5lZFxuICAgIE9iamVjdC5rZXlzKHRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3MpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3Nba2V5XTtcbiAgICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuZGltZW5zaW9uc0FuZE1ldHJpY3Nba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0eXBlb2YgZ3RhZyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ3RhZykge1xuICAgICAgZ3RhZygnc2V0JywgdGhpcy5kaW1lbnNpb25zQW5kTWV0cmljcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBldmVudFRyYWNrSW50ZXJuYWwoYWN0aW9uOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSA9IHt9KSB7XG4gICAgdGhpcy5jbGVhblByb3BlcnRpZXMocHJvcGVydGllcyk7XG4gICAgaWYgKHR5cGVvZiBndGFnICE9PSAndW5kZWZpbmVkJyAmJiBndGFnKSB7XG4gICAgICBndGFnKCdldmVudCcsIGFjdGlvbiwgcHJvcGVydGllcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblByb3BlcnRpZXMocHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIC8vIEdBIHJlcXVpcmVzIHRoYXQgZXZlbnRWYWx1ZSBiZSBhbiBub24tbmVnYXRpdmUgaW50ZWdlciwgc2VlOlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9ndGFnanMvZXZlbnRzXG4gICAgaWYgKHByb3BlcnRpZXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHByb3BlcnRpZXMudmFsdWUsIDEwKTtcbiAgICAgIHByb3BlcnRpZXMudmFsdWUgPSBpc05hTihwYXJzZWQpID8gMCA6IHBhcnNlZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,114 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../../angulartics2-core";
|
4
|
+
export class GoogleTagManagerDefaults {
|
5
|
+
constructor() {
|
6
|
+
this.userId = null;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
export class Angulartics2GoogleTagManager {
|
10
|
+
constructor(angulartics2) {
|
11
|
+
this.angulartics2 = angulartics2;
|
12
|
+
// The dataLayer needs to be initialized
|
13
|
+
if (typeof dataLayer !== 'undefined' && dataLayer) {
|
14
|
+
dataLayer = window.dataLayer = window.dataLayer || [];
|
15
|
+
}
|
16
|
+
const defaults = new GoogleTagManagerDefaults();
|
17
|
+
// Set the default settings for this module
|
18
|
+
this.angulartics2.settings.gtm = { ...defaults, ...this.angulartics2.settings.gtm };
|
19
|
+
this.angulartics2.setUsername.subscribe((x) => this.setUsername(x));
|
20
|
+
}
|
21
|
+
startTracking() {
|
22
|
+
this.angulartics2.pageTrack
|
23
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
24
|
+
.subscribe(x => this.pageTrack(x.path));
|
25
|
+
this.angulartics2.eventTrack
|
26
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
27
|
+
.subscribe(x => this.eventTrack(x.action, x.properties));
|
28
|
+
this.angulartics2.exceptionTrack
|
29
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
30
|
+
.subscribe((x) => this.exceptionTrack(x));
|
31
|
+
}
|
32
|
+
pageTrack(path) {
|
33
|
+
this.pushLayer({
|
34
|
+
event: 'Page View',
|
35
|
+
'content-name': path,
|
36
|
+
userId: this.angulartics2.settings.gtm.userId,
|
37
|
+
});
|
38
|
+
}
|
39
|
+
/**
|
40
|
+
* Send Data Layer
|
41
|
+
*
|
42
|
+
* @layer data layer object
|
43
|
+
*/
|
44
|
+
pushLayer(layer) {
|
45
|
+
if (typeof dataLayer !== 'undefined' && dataLayer) {
|
46
|
+
dataLayer.push(layer);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Send interactions to the dataLayer, i.e. for event tracking in Google Analytics
|
51
|
+
*
|
52
|
+
* @param action associated with the event
|
53
|
+
*/
|
54
|
+
eventTrack(action, properties) {
|
55
|
+
// TODO: make interface
|
56
|
+
// @param {string} properties.category
|
57
|
+
// @param {string} [properties.label]
|
58
|
+
// @param {number} [properties.value]
|
59
|
+
// @param {boolean} [properties.noninteraction]
|
60
|
+
// Set a default GTM category
|
61
|
+
properties = properties || {};
|
62
|
+
this.pushLayer({
|
63
|
+
event: properties.event || 'interaction',
|
64
|
+
target: properties.category || 'Event',
|
65
|
+
action,
|
66
|
+
label: properties.label,
|
67
|
+
value: properties.value,
|
68
|
+
interactionType: properties.noninteraction,
|
69
|
+
userId: this.angulartics2.settings.gtm.userId,
|
70
|
+
...properties.gtmCustom,
|
71
|
+
});
|
72
|
+
}
|
73
|
+
/**
|
74
|
+
* Exception Track Event in GTM
|
75
|
+
*
|
76
|
+
*/
|
77
|
+
exceptionTrack(properties) {
|
78
|
+
// TODO: make interface
|
79
|
+
// @param {Object} properties
|
80
|
+
// @param {string} properties.appId
|
81
|
+
// @param {string} properties.appName
|
82
|
+
// @param {string} properties.appVersion
|
83
|
+
// @param {string} [properties.description]
|
84
|
+
// @param {boolean} [properties.fatal]
|
85
|
+
if (!properties || !properties.appId || !properties.appName || !properties.appVersion) {
|
86
|
+
console.error('Must be setted appId, appName and appVersion.');
|
87
|
+
return;
|
88
|
+
}
|
89
|
+
if (properties.fatal === undefined) {
|
90
|
+
console.log('No "fatal" provided, sending with fatal=true');
|
91
|
+
properties.exFatal = true;
|
92
|
+
}
|
93
|
+
properties.exDescription = properties.event ? properties.event.stack : properties.description;
|
94
|
+
this.eventTrack(`Exception thrown for ${properties.appName} <${properties.appId}@${properties.appVersion}>`, {
|
95
|
+
category: 'Exception',
|
96
|
+
label: properties.exDescription,
|
97
|
+
});
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Set userId for use with Universal Analytics User ID feature
|
101
|
+
*
|
102
|
+
* @param userId used to identify user cross-device in Google Analytics
|
103
|
+
*/
|
104
|
+
setUsername(userId) {
|
105
|
+
this.angulartics2.settings.gtm.userId = userId;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
Angulartics2GoogleTagManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleTagManager, deps: [{ token: i1.Angulartics2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
109
|
+
Angulartics2GoogleTagManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleTagManager, providedIn: 'root' });
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2GoogleTagManager, decorators: [{
|
111
|
+
type: Injectable,
|
112
|
+
args: [{ providedIn: 'root' }]
|
113
|
+
}], ctorParameters: function () { return [{ type: i1.Angulartics2 }]; } });
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvZ3RtL2d0bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUFyQztRQUNFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUFBO0FBR0QsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUFzQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM5Qyx3Q0FBd0M7UUFDeEMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQ2pELFNBQVMsR0FBSSxNQUFjLENBQUMsU0FBUyxHQUFJLE1BQWMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1NBQ3pFO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hELDJDQUEyQztRQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTO2FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMs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QVc7WUFDckIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhO1NBQ2hDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQWM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakQsQ0FBQzs7eUhBN0dVLDRCQUE0Qjs2SEFBNUIsNEJBQTRCLGNBRGYsTUFBTTsyRkFDbkIsNEJBQTRCO2tCQUR4QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW5ndWxhcnRpY3MyIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWNvcmUnO1xuaW1wb3J0IHsgR29vZ2xlVGFnTWFuYWdlclNldHRpbmdzIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWNvbmZpZyc7XG5cbmRlY2xhcmUgdmFyIGRhdGFMYXllcjogYW55O1xuXG5leHBvcnQgY2xhc3MgR29vZ2xlVGFnTWFuYWdlckRlZmF1bHRzIGltcGxlbWVudHMgR29vZ2xlVGFnTWFuYWdlclNldHRpbmdzIHtcbiAgdXNlcklkID0gbnVsbDtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFydGljczJHb29nbGVUYWdNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFuZ3VsYXJ0aWNzMjogQW5ndWxhcnRpY3MyKSB7XG4gICAgLy8gVGhlIGRhdGFMYXllciBuZWVkcyB0byBiZSBpbml0aWFsaXplZFxuICAgIGlmICh0eXBlb2YgZGF0YUxheWVyICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhTGF5ZXIpIHtcbiAgICAgIGRhdGFMYXllciA9ICh3aW5kb3cgYXMgYW55KS5kYXRhTGF5ZXIgPSAod2luZG93IGFzIGFueSkuZGF0YUxheWVyIHx8IFtdO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0cyA9IG5ldyBHb29nbGVUYWdNYW5hZ2VyRGVmYXVsdHMoKTtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgbW9kdWxlXG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3RtID0geyAuLi5kZWZhdWx0cywgLi4udGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3RtIH07XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlcm5hbWUuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHRoaXMuc2V0VXNlcm5hbWUoeCkpO1xuICB9XG5cbiAgc3RhcnRUcmFja2luZygpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLnBhZ2VUcmFjayh4LnBhdGgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5ldmVudFRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5ldmVudFRyYWNrKHguYWN0aW9uLCB4LnByb3BlcnRpZXMpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5leGNlcHRpb25UcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSgoeDogYW55KSA9PiB0aGlzLmV4Y2VwdGlvblRyYWNrKHgpKTtcbiAgfVxuXG4gIHBhZ2VUcmFjayhwYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLnB1c2hMYXllcih7XG4gICAgICBldmVudDogJ1BhZ2UgVmlldycsXG4gICAgICAnY29udGVudC1uYW1lJzogcGF0aCxcbiAgICAgIHVzZXJJZDogdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3RtLnVzZXJJZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIERhdGEgTGF5ZXJcbiAgICpcbiAgICogQGxheWVyIGRhdGEgbGF5ZXIgb2JqZWN0XG4gICAqL1xuICBwdXNoTGF5ZXIobGF5ZXI6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZGF0YUxheWVyICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhTGF5ZXIpIHtcbiAgICAgIGRhdGFMYXllci5wdXNoKGxheWVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbnRlcmFjdGlvbnMgdG8gdGhlIGRhdGFMYXllciwgaS5lLiBmb3IgZXZlbnQgdHJhY2tpbmcgaW4gR29vZ2xlIEFuYWx5dGljc1xuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAgICovXG4gIGV2ZW50VHJhY2soYWN0aW9uOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSkge1xuICAgIC8vIFRPRE86IG1ha2UgaW50ZXJmYWNlXG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0aWVzLmNhdGVnb3J5XG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBbcHJvcGVydGllcy5sYWJlbF1cbiAgICAvLyAgQHBhcmFtIHtudW1iZXJ9IFtwcm9wZXJ0aWVzLnZhbHVlXVxuICAgIC8vICBAcGFyYW0ge2Jvb2xlYW59IFtwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uXVxuICAgIC8vIFNldCBhIGRlZmF1bHQgR1RNIGNhdGVnb3J5XG4gICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG5cbiAgICB0aGlzLnB1c2hMYXllcih7XG4gICAgICBldmVudDogcHJvcGVydGllcy5ldmVudCB8fCAnaW50ZXJhY3Rpb24nLFxuICAgICAgdGFyZ2V0OiBwcm9wZXJ0aWVzLmNhdGVnb3J5IHx8ICdFdmVudCcsXG4gICAgICBhY3Rpb24sXG4gICAgICBsYWJlbDogcHJvcGVydGllcy5sYWJlbCxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgaW50ZXJhY3Rpb25UeXBlOiBwcm9wZXJ0aWVzLm5vbmludGVyYWN0aW9uLFxuICAgICAgdXNlcklkOiB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXR0aW5ncy5ndG0udXNlcklkLFxuICAgICAgLi4ucHJvcGVydGllcy5ndG1DdXN0b20sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhjZXB0aW9uIFRyYWNrIEV2ZW50IGluIEdUTVxuICAgKlxuICAgKi9cbiAgZXhjZXB0aW9uVHJhY2socHJvcGVydGllczogYW55KSB7XG4gICAgLy8gVE9ETzogbWFrZSBpbnRlcmZhY2VcbiAgICAvLyAgQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXNcbiAgICAvLyAgQHBhcmFtIHtzdHJpbmd9IHByb3BlcnRpZXMuYXBwSWRcbiAgICAvLyAgQHBhcmFtIHtzdHJpbmd9IHByb3BlcnRpZXMuYXBwTmFtZVxuICAgIC8vICBAcGFyYW0ge3N0cmluZ30gcHJvcGVydGllcy5hcHBWZXJzaW9uXG4gICAgLy8gIEBwYXJhbSB7c3RyaW5nfSBbcHJvcGVydGllcy5kZXNjcmlwdGlvbl1cbiAgICAvLyAgQHBhcmFtIHtib29sZWFufSBbcHJvcGVydGllcy5mYXRhbF1cbiAgICBpZiAoIXByb3BlcnRpZXMgfHwgIXByb3BlcnRpZXMuYXBwSWQgfHwgIXByb3BlcnRpZXMuYXBwTmFtZSB8fCAhcHJvcGVydGllcy5hcHBWZXJzaW9uKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNdXN0IGJlIHNldHRlZCBhcHBJZCwgYXBwTmFtZSBhbmQgYXBwVmVyc2lvbi4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydGllcy5mYXRhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnTm8gXCJmYXRhbFwiIHByb3ZpZGVkLCBzZW5kaW5nIHdpdGggZmF0YWw9dHJ1ZScpO1xuICAgICAgcHJvcGVydGllcy5leEZhdGFsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24gPSBwcm9wZXJ0aWVzLmV2ZW50ID8gcHJvcGVydGllcy5ldmVudC5zdGFjayA6IHByb3BlcnRpZXMuZGVzY3JpcHRpb247XG5cbiAgICB0aGlzLmV2ZW50VHJhY2soXG4gICAgICBgRXhjZXB0aW9uIHRocm93biBmb3IgJHtwcm9wZXJ0aWVzLmFwcE5hbWV9IDwke3Byb3BlcnRpZXMuYXBwSWR9QCR7cHJvcGVydGllcy5hcHBWZXJzaW9ufT5gLFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeTogJ0V4Y2VwdGlvbicsXG4gICAgICAgIGxhYmVsOiBwcm9wZXJ0aWVzLmV4RGVzY3JpcHRpb24sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVzZXJJZCBmb3IgdXNlIHdpdGggVW5pdmVyc2FsIEFuYWx5dGljcyBVc2VyIElEIGZlYXR1cmVcbiAgICpcbiAgICogQHBhcmFtIHVzZXJJZCB1c2VkIHRvIGlkZW50aWZ5IHVzZXIgY3Jvc3MtZGV2aWNlIGluIEdvb2dsZSBBbmFseXRpY3NcbiAgICovXG4gIHNldFVzZXJuYW1lKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0dGluZ3MuZ3RtLnVzZXJJZCA9IHVzZXJJZDtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../../angulartics2-core";
|
4
|
+
export class Angulartics2Hubspot {
|
5
|
+
constructor(angulartics2) {
|
6
|
+
this.angulartics2 = angulartics2;
|
7
|
+
this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));
|
8
|
+
}
|
9
|
+
startTracking() {
|
10
|
+
this.angulartics2.pageTrack
|
11
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
12
|
+
.subscribe(x => this.pageTrack(x.path));
|
13
|
+
this.angulartics2.eventTrack
|
14
|
+
.pipe(this.angulartics2.filterDeveloperMode())
|
15
|
+
.subscribe(x => this.eventTrack(x.action, x.properties));
|
16
|
+
}
|
17
|
+
pageTrack(path) {
|
18
|
+
if (typeof _hsq !== 'undefined') {
|
19
|
+
_hsq.push(['setPath', path]);
|
20
|
+
_hsq.push(['trackPageView']);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
eventTrack(action, properties) {
|
24
|
+
if (typeof _hsq !== 'undefined') {
|
25
|
+
_hsq.push(['trackEvent', properties]);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
setUserProperties(properties) {
|
29
|
+
if (typeof _hsq !== 'undefined') {
|
30
|
+
_hsq.push(['identify', properties]);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
Angulartics2Hubspot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Hubspot, deps: [{ token: i1.Angulartics2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
35
|
+
Angulartics2Hubspot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Hubspot, providedIn: 'root' });
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Hubspot, decorators: [{
|
37
|
+
type: Injectable,
|
38
|
+
args: [{ providedIn: 'root' }]
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.Angulartics2 }]; } });
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVic3BvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJvdmlkZXJzL2h1YnNwb3QvaHVic3BvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTO2FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVU7YUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYyxFQUFFLFVBQWU7UUFDeEMsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWU7UUFDL0IsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7Z0hBL0JVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW5ndWxhcnRpY3MyIH0gZnJvbSAnLi4vLi4vYW5ndWxhcnRpY3MyLWNvcmUnO1xuXG5kZWNsYXJlIHZhciBfaHNxOiBhbnk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MySHVic3BvdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRVc2VyUHJvcGVydGllcy5zdWJzY3JpYmUoeCA9PiB0aGlzLnNldFVzZXJQcm9wZXJ0aWVzKHgpKTtcbiAgfVxuXG4gIHN0YXJ0VHJhY2tpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5hbmd1bGFydGljczIucGFnZVRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5wYWdlVHJhY2soeC5wYXRoKSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuZXZlbnRUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMuZXZlbnRUcmFjayh4LmFjdGlvbiwgeC5wcm9wZXJ0aWVzKSk7XG4gIH1cblxuICBwYWdlVHJhY2socGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBfaHNxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgX2hzcS5wdXNoKFsnc2V0UGF0aCcsIHBhdGhdKTtcbiAgICAgIF9oc3EucHVzaChbJ3RyYWNrUGFnZVZpZXcnXSk7XG4gICAgfVxuICB9XG5cbiAgZXZlbnRUcmFjayhhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBfaHNxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgX2hzcS5wdXNoKFsndHJhY2tFdmVudCcsIHByb3BlcnRpZXNdKTtcbiAgICB9XG4gIH1cblxuICBzZXRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIF9oc3EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBfaHNxLnB1c2goWydpZGVudGlmeScsIHByb3BlcnRpZXNdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|