@cronapp/framework-analytics-google 1.0.4

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/cronapp.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "postUpdate": {
3
+ "browser": {
4
+ "includes": [
5
+ {
6
+ "file": "index.html",
7
+ "script": "node_modules/@cronapp/framework-analytics-google/cronapp.framework.analytics.google.js",
8
+ "type": "script"
9
+ }
10
+ ]
11
+ }
12
+ },
13
+ "configuration": {
14
+ "title": "cronapp.framework.analytics.google.title",
15
+ "icon": "icon.svg",
16
+ "properties": {
17
+ "cronapp.framework.analytics.google.trackingId": {
18
+ "type": "string",
19
+ "description": "cronapp.framework.analytics.google.trackingId",
20
+ "frameworks": ["browser"]
21
+ }
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "cronapp.framework.analytics.google.title": "Google Analytics",
3
+ "cronapp.framework.analytics.google.trackingId": "Tracking ID"
4
+ }
package/icon.svg ADDED
@@ -0,0 +1,70 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ width="24"
11
+ height="24"
12
+ version="1.1"
13
+ id="svg12"
14
+ sodipodi:docname="google_analytics-icon.svg"
15
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
16
+ <metadata
17
+ id="metadata18">
18
+ <rdf:RDF>
19
+ <cc:Work
20
+ rdf:about="">
21
+ <dc:format>image/svg+xml</dc:format>
22
+ <dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
24
+ <dc:title></dc:title>
25
+ </cc:Work>
26
+ </rdf:RDF>
27
+ </metadata>
28
+ <defs
29
+ id="defs16" />
30
+ <sodipodi:namedview
31
+ pagecolor="#ffffff"
32
+ bordercolor="#666666"
33
+ borderopacity="1"
34
+ objecttolerance="10"
35
+ gridtolerance="10"
36
+ guidetolerance="10"
37
+ inkscape:pageopacity="0"
38
+ inkscape:pageshadow="2"
39
+ inkscape:window-width="2560"
40
+ inkscape:window-height="1367"
41
+ id="namedview14"
42
+ showgrid="false"
43
+ inkscape:zoom="15.75"
44
+ inkscape:cx="32"
45
+ inkscape:cy="32"
46
+ inkscape:window-x="1280"
47
+ inkscape:window-y="32"
48
+ inkscape:window-maximized="0"
49
+ inkscape:current-layer="svg12" />
50
+ <g
51
+ transform="matrix(0.13636184,0,0,0.13636364,-1.0907368,-1.0909121)"
52
+ id="g10">
53
+ <path
54
+ d="m 130,29 v 132 c 0,14.77 10.2,23 21,23 10,0 21,-7 21,-23 V 30 C 172,16.46 162,8 151,8 140,8 130,17.33 130,29 Z"
55
+ fill="#f9ab00"
56
+ id="path2" />
57
+ <g
58
+ fill="#e37400"
59
+ id="g8">
60
+ <path
61
+ d="m 75,96 v 65 c 0,14.77 10.2,23 21,23 10,0 21,-7 21,-23 V 97 C 117,83.46 107,75 96,75 85,75 75,84.33 75,96 Z"
62
+ id="path4" />
63
+ <circle
64
+ cx="41"
65
+ cy="163"
66
+ r="21"
67
+ id="circle6" />
68
+ </g>
69
+ </g>
70
+ </svg>
package/package.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "@cronapp/framework-analytics-google",
3
+ "version": "1.0.4",
4
+ "scripts": {
5
+ "build": "npx webpack --progress --config webpack.config.js",
6
+ "watch": "npx webpack -d eval-source-map --progress --watch --config webpack.config.js",
7
+ "prepublishOnly": "npm run build -p && cp target/browser/* .",
8
+ "postpublish": "git clean -fd"
9
+ },
10
+ "dependencies": {
11
+ "@analytics/google-analytics": "0.5.2",
12
+ "@cronapp/framework-analytics": "1.0.4"
13
+ },
14
+ "devDependencies": {
15
+ "@types/angular": "1.8.1",
16
+ "ts-loader": "9.5.1"
17
+ }
18
+ }
@@ -0,0 +1,22 @@
1
+ import googleAnalytics from '@analytics/google-analytics';
2
+ import IConfigurationService = cronapp.configuration.IConfigurationService;
3
+ import component = cronapp.ioc.component;
4
+ import qualifier = cronapp.ioc.qualifier;
5
+ import bindSingleton = cronapp.ioc.bindSingleton;
6
+ import IAnalyticsPluginFactory = cronapp.analytics.IAnalyticsPluginFactory;
7
+
8
+ @component()
9
+ class GoogleAnalyticsPluginFactory implements IAnalyticsPluginFactory<any> {
10
+ constructor(
11
+ @qualifier(IConfigurationService) private configurationService: IConfigurationService
12
+ ) {
13
+
14
+ }
15
+
16
+ async createAnalyticsPlugin(): Promise<any> {
17
+ const trackingId = await this.configurationService.getValue<string>('cronapp.framework.analytics.google.trackingId');
18
+ return googleAnalytics({trackingId});
19
+ }
20
+ }
21
+
22
+ bindSingleton(IAnalyticsPluginFactory, GoogleAnalyticsPluginFactory);
@@ -0,0 +1 @@
1
+ import 'googleAnalytics';
@@ -0,0 +1 @@
1
+ (()=>{var e={};(()=>{"use strict";function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(t){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{},o=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),o.forEach((function(n){e(t,n,a[n])}))}return t}var n={trackingId:null,debug:!1,anonymizeIp:!1,customDimensions:{},resetCustomDimensionsOnPage:[],setCustomDimensionsToPage:!0},a={};function o(e){return e?!function(e){var t=document.querySelectorAll("script[src]");return!!Object.keys(t).filter((function(n){return(t[n].src||"")===e})).length}(e):"undefined"==typeof ga}function i(e){var t=e.instanceName;return{instancePrefix:t?"".concat(t,"."):"",instanceName:t}}function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},n=e.name,a=e.source,o=e.medium,i=e.content,r=e.keyword;return n&&(t.campaignName=n),a&&(t.campaignSource=a),o&&(t.campaignMedium=o),i&&(t.campaignContent=i),r&&(t.campaignKeyword=r),t}function c(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).customDimensions;return Object.keys(t).reduce((function(n,a){var o=t[a],i=function(e,t,n,a,o){for(t=t.split?t.split("."):t,a=0;a<t.length;a++)e=e?e[t[a]]:o;return e===o?void 0:e}(e,a)||e[a];return"boolean"==typeof i&&(i=i.toString()),i||0===i?(n[o]=i,n):n}),{})}function s(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,n=c(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e);return Object.keys(n).length?e.setCustomDimensionsToPage?(ga("".concat(t,"set"),n),{}):n:{}}const l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},l=!1,u=i(e),f=u.instanceName,g=u.instancePrefix;return{name:"google-analytics",config:t({},n,e),initialize:function(e){var n=e.config,i=e.instance;if(!n.trackingId)throw new Error("No GA trackingId defined");var r=n.customScriptSrc||"https://www.google-analytics.com/analytics.js";if(o(r)&&function(e,t,n,a,o,i,r){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,i=t.createElement(n),r=t.getElementsByTagName(n)[0],i.async=1,i.src=a,r.parentNode.insertBefore(i,r)}(window,document,"script",r,"ga"),!a[f]){var s=t({cookieDomain:n.domain||"auto",siteSpeedSampleRate:n.siteSpeedSampleRate||1,sampleRate:n.sampleRate||100,allowLinker:!0},n.cookieConfig);f&&(s.name=f),ga("create",n.trackingId,s),n.debug&&(ga("".concat(g,"set"),"sendHitTask",null),window.ga_debug={trace:!0}),n.anonymizeIp&&ga("".concat(g,"set"),"anonymizeIp",!0),n.tasks&&["customTask","previewTask","checkProtocolTask","validationTask","checkStorageTask","historyImportTask","samplerTask","buildHitTask","sendHitTask","timingTask","displayFeaturesTask"].forEach((function(e){if(n.tasks.hasOwnProperty(e)){var t=n.tasks[e];"function"==typeof t?ga(n.tasks[e]):null===t&&ga("".concat(g,"set"),e,t)}}));var l=(i.user()||{}).traits||{};if(Object.keys(l).length){var u=c(l,n);ga("".concat(g,"set"),u)}a[f]=!0}},page:function(e){var n=e.payload,a=e.config,i=e.instance,c=n.properties,u=a.resetCustomDimensionsOnPage,f=a.customDimensions,p=i.getState("context.campaign");if(!o()){if(u&&u.length){var d=u.reduce((function(e,t){return f[t]&&(e[f[t]]=null),e}),{});Object.keys(d).length&&ga("".concat(g,"set"),d)}var v=c.path||document.location.pathname,m={page:v,title:c.title,location:c.url},y={page:v,title:c.title};c.referrer!==document.referrer&&(y.referrer=c.referrer);var h=t({},m,r(p),s(c,a,g));ga("".concat(g,"set"),y),l&&delete h.location,ga("".concat(g,"send"),"pageview",h),l=!0}},track:function(e){var n=e.payload,a=e.config,c=e.instance,l=n.properties,u=n.event,f=l.label,g=l.value;!function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;if(!o()){var c,l=i(n).instancePrefix,u={hitType:e.hitType||"event",eventAction:e.event,eventLabel:e.label,eventCategory:e.category||"All",nonInteraction:void 0!==e.nonInteraction&&!!e.nonInteraction};e.value&&(u.eventValue=!(c=e.value)||c<0?0:Math.round(c));var f=t({},u,r(e),s(a.properties,n,l));ga("".concat(l,"send"),"event",f)}}({hitType:"event",event:u,label:f,category:l.category||"All",value:g,nonInteraction:l.nonInteraction,campaign:c.getState("context.campaign")},a,n)},identify:function(e){var t=e.payload,n=e.config;!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!o()){var a=i(n).instancePrefix;if(e&&ga("".concat(a,"set"),"userId",e),Object.keys(t).length){var r=c(t,n);ga("".concat(a,"set"),r)}}}(t.userId,t.traits,n)},loaded:function(){return!!window.gaplugins}}};var u=cronapp.configuration.IConfigurationService,f=cronapp.ioc.component,g=cronapp.ioc.qualifier,p=cronapp.ioc.bindSingleton,d=cronapp.analytics.IAnalyticsPluginFactory;let v=class{constructor(e){this.configurationService=e}createAnalyticsPlugin(){return e=this,t=void 0,a=function*(){const e=yield this.configurationService.getValue("cronapp.framework.analytics.google.trackingId");return l({trackingId:e})},new((n=void 0)||(n=Promise))((function(o,i){function r(e){try{s(a.next(e))}catch(e){i(e)}}function c(e){try{s(a.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,c)}s((a=a.apply(e,t||[])).next())}));var e,t,n,a}};var m,y;v=function(e,t,n,a){var o,i=arguments.length,r=i<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,a);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(r=(i<3?o(r):i>3?o(t,n,r):o(t,n))||r);return i>3&&r&&Object.defineProperty(t,n,r),r}([f(),(m=0,y=g(u),function(e,t){y(e,t,m)}),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:paramtypes",[Object])],v),p(d,v)})();var t=cronapp="undefined"==typeof cronapp?{}:cronapp;for(var n in e)t[n]=e[n];e.__esModule&&Object.defineProperty(t,"__esModule",{value:!0})})();
package/tsconfig.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../tsconfig.packages.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src/main/browser",
5
+ "outDir": "target/browser",
6
+ "baseUrl": "src/main/browser"
7
+ },
8
+ "include": [
9
+ "../typings/@cronapp/framework-core.d.ts",
10
+ "../typings/@cronapp/framework-analytics.d.ts",
11
+ "src"
12
+ ]
13
+ }
@@ -0,0 +1,9 @@
1
+ const path = require('path');
2
+ const createConfig = require('../webpack.config.js');
3
+ const packageName = 'cronapp.framework.analytics.google';
4
+
5
+ module.exports = (env, options) => {
6
+ const ROOT = path.resolve(__dirname, 'src/main/browser');
7
+ const DESTINATION = path.resolve(__dirname, 'target/browser');
8
+ return createConfig(env, options, packageName, ROOT, DESTINATION);
9
+ };