Socket
Socket
Sign inDemoInstall

ember-google-analytics-embed

Package Overview
Dependencies
223
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.7 to 0.2.0

.env

29

addon/components/authorize-button.js

@@ -1,7 +0,10 @@

import Ember from 'ember';
import Component from '@ember/component';
import { assert } from '@ember/debug';
import { assign } from '@ember/polyfills';
import { get, observer, set } from '@ember/object';
import { next } from '@ember/runloop';
import { inject as service } from '@ember/service';
const { assert, assign, get, inject: { service }, observer, set } = Ember;
export default Component.extend({
export default Ember.Component.extend({
gaEmbed: service(),

@@ -15,3 +18,3 @@

didInsertElement() {
this._super(...arguments);
get(this, 'gaEmbed')._onApiReady(() => {

@@ -44,2 +47,6 @@ this.authorize();

onSignIn() {},
onSignOut() {},
onError() {},
authorizeWithAccessToken() {

@@ -54,3 +61,4 @@

set(this, 'gaEmbed.isAuthorized', true);
this.sendAction('onSignIn');
get(this, 'onSignIn')();
get(this, 'onSignOut')();

@@ -64,3 +72,3 @@ },

set(this, 'gaEmbed.isAuthorized', true);
this.sendAction('onSignIn');
get(this, 'onSignIn')();

@@ -71,3 +79,3 @@ });

set(this, 'gaEmbed.isAuthorized', false);
this.sendAction('onSignOut');
get(this, 'onSignOut')();

@@ -77,3 +85,3 @@ });

authorize.on('error', (err) => {
this.sendAction('onError', err);
get(this, 'onError')(err);
});

@@ -83,2 +91,3 @@

// eslint-disable-next-line ember/no-observers
hideOnAuthorize: observer('gaEmbed.isAuthorized', function() {

@@ -88,3 +97,3 @@ const isAuthorized = get(this, 'gaEmbed.isAuthorized');

Ember.run.next(() => {
next(() => {
this.$().css({ display });

@@ -91,0 +100,0 @@ });

@@ -1,9 +0,10 @@

import Ember from 'ember';
import Component from '@ember/component';
import { get, set } from '@ember/object';
const { set } = Ember;
export default Component.extend({
export default Ember.Component.extend({
classNames: ['ga-embed-view-selector'],
onChange() {},
didInsertElement() {

@@ -20,4 +21,3 @@ let viewSelector = new window.gapi.analytics.ViewSelector({

set(this, 'ids', ids);
this.sendAction('onChange', ids);
get(this, 'onChange')(ids);
});

@@ -24,0 +24,0 @@

@@ -1,11 +0,13 @@

import Ember from 'ember';
import Component from '@ember/component';
import { A } from '@ember/array';
import { assert } from '@ember/debug';
import { computed, get, getWithDefault, set, setProperties } from '@ember/object';
import { assign } from '@ember/polyfills';
import { cancel, debounce, later } from '@ember/runloop';
import { inject as service } from '@ember/service';
import { isBlank, isPresent, typeOf } from '@ember/utils';
const {
$, assert, computed,
get, getWithDefault, inject: { service },
isBlank, isPresent, run, run: { debounce },
set, setProperties, typeOf
} = Ember;
import $ from 'jquery';
export default Ember.Component.extend({
export default Component.extend({

@@ -18,12 +20,15 @@ gaEmbed: service(),

isLoading: true,
responsiveResize: true,
debounce: false,
requiredOptions: [],
_requiredOptions: Ember.A(['query']),
init() {
this._super(...arguments);
set(this, '_requiredOptions', A(['query']));
},
mergedOptions: computed('defaultOptions', 'options', function() {
const defaultOptions = getWithDefault(this, 'defaultOptions', {});
const options = getWithDefault(this, 'options', {});
let defaultOptions = getWithDefault(this, 'defaultOptions', {}),
options = getWithDefault(this, 'options', {});
return $.extend({}, defaultOptions, options);
return assign({}, defaultOptions, options);
}),

@@ -77,10 +82,7 @@

this._super(...arguments);
this._mergeInitialOptions();
this.newVisualizationAttrs(...arguments);
this.newVisualizationAttrs();
},
newVisualizationAttrs() {
if (get(this, 'isDestroyed')) { return; }

@@ -91,7 +93,7 @@

if (debounce && typeOf(debounce) === 'number') {
run.cancel(
cancel(
get(this, '_willUpdateVisualization')
);
set(this, '_willUpdateVisualization', run.later(this, () => {
set(this, '_willUpdateVisualization', later(this, () => {
if (get(this, 'isDestroyed')) { return; }

@@ -129,7 +131,7 @@ this.willUpdateVisualization();

if (debounce && typeOf(debounce) === 'number') {
run.cancel(
cancel(
get(this, 'willExecute')
);
set(this, 'willExecute', run.later(this, () => {
set(this, 'willExecute', later(this, () => {
get(this, 'visualization').execute();

@@ -146,3 +148,4 @@ }, debounce / 2));

_assertRequiredOptions() {
const options = get(this, '_requiredOptions').pushObjects(get(this, 'requiredOptions')).uniq();
let requiredOptions = getWithDefault(this, 'requiredOptions', A([])),
options = get(this, '_requiredOptions').pushObjects(requiredOptions).uniq();

@@ -156,3 +159,2 @@ options.forEach(key => {

_getAttrValue(value) {
if (isBlank(value)) { return value; }

@@ -162,5 +164,5 @@

if (typeof value === 'object') {
let objectKeys = Ember.A(Object.keys(value));
let objectKeys = A(Object.keys(value));
if (objectKeys.any((objectkey) => objectkey.indexOf('MUTABLE_CELL') >= 0)) {
value = Ember.get(value, 'value');
value = get(value, 'value');
}

@@ -182,4 +184,2 @@ }

responsiveResize: true,
_setResize() {

@@ -197,4 +197,4 @@ if (!get(this, 'responsiveResize')) { return; }

willDestroyElement() {
run.cancel(get(this, 'willExecute'));
run.cancel(get(this, '_willUpdateVisualization'));
cancel(get(this, 'willExecute'));
cancel(get(this, '_willUpdateVisualization'));
$(window).off(`resize.${get(this, 'elementId')}`);

@@ -201,0 +201,0 @@

import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
import { computed } from '@ember/object';

@@ -9,19 +10,21 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
// Animation
'animation',
// Interaction
'enableInteractivity', 'explorer',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend', 'tooltip',
// Axis
'hAxes', 'hAxis', 'vAxis', 'axisTitlesPosition',
// Style
'backgroundColor', 'dataOpacity', 'fontSize', 'fontName',
// Bar Style
'bar', 'bars', 'colors', 'isStacked', 'series',
// Sizing & Positioning
'chartArea', 'height', 'width', 'reverseCategories', 'orientation'
]
visualizationOptions: computed(function() {
return [
// Animation
'animation',
// Interaction
'enableInteractivity', 'explorer',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend', 'tooltip',
// Axis
'hAxes', 'hAxis', 'vAxis', 'axisTitlesPosition',
// Style
'backgroundColor', 'dataOpacity', 'fontSize', 'fontName',
// Bar Style
'bar', 'bars', 'colors', 'isStacked', 'series',
// Sizing & Positioning
'chartArea', 'height', 'width', 'reverseCategories', 'orientation'
];
})
});

@@ -1,15 +0,18 @@

import Ember from 'ember';
import BaseVisualization from 'ember-google-analytics-embed/components/visualizations/base-visualization';
import pojo from 'ember-google-analytics-embed/utils/pojo';
const { get, getProperties, isBlank, set } = Ember;
import { get, getProperties, set } from '@ember/object';
export default BaseVisualization.extend({
chartOptions: Ember.Object.create({}),
classNames: ['ga-embed-chart'],
init() {
this._super(...arguments);
set(this, 'chartOptions', {});
},
mergeInitialOptions() {
set(this, 'chartOptions', get(this, 'mergedOptions'));
let mergedOptions = get(this, 'mergedOptions');
set(this, 'chartOptions', mergedOptions);

@@ -27,22 +30,21 @@ },

newVisualizationAttrs({ newAttrs }) {
const visualizationOptions = get(this, 'visualizationOptions');
const chartOptions = get(this, 'chartOptions');
newVisualizationAttrs() {
let visualizationOptions = get(this, 'visualizationOptions'),
chartOptions = get(this, 'chartOptions');
Object.keys(newAttrs).forEach(key => {
// If key isn't present in accepted visualizationOptions, don't add it
if (!visualizationOptions.includes(key)) { return; }
let newValues = visualizationOptions.reduce((values, key) => {
let value = get(this, key);
value = this._getAttrValue(value);
values[key] = value;
return values;
}, {});
const value = this._getAttrValue(newAttrs[key]);
let changedValues = {};
// If value isn't null, set it as a chart option and return
if (!isBlank(value)) {
return set(chartOptions, key, value);
Object.keys(newValues).forEach(key => {
let value = newValues[key];
if (value !== chartOptions[key]) {
chartOptions[key] = value;
changedValues[key] = value;
}
// Otherwise, if key is present in chartOptions, remove it
if (Object.keys(chartOptions).includes(key)) {
return delete chartOptions[key];
}
});

@@ -61,4 +63,6 @@

query = pojo(query); chartOptions = pojo(chartOptions);
query = pojo(query);
chartOptions = pojo(chartOptions);
// eslint-disable-next-line ember/use-ember-get-and-set
visualization.set({ query, chart: { type: chartType, options: chartOptions } });

@@ -65,0 +69,0 @@

import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
import { computed } from '@ember/object';

@@ -9,19 +10,21 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
// Animation
'animation',
// Interaction
'enableInteractivity', 'explorer',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend', 'tooltip',
// Axis
'hAxis', 'vAxis', 'vAxes', 'axisTitlesPosition',
// Style
'backgroundColor', 'dataOpacity', 'fontSize', 'fontName',
// Bar Style
'bar', 'bars', 'colors', 'isStacked', 'series',
// Sizing & Positioning
'chartArea', 'height', 'width', 'reverseCategories', 'orientation'
]
visualizationOptions: computed(function() {
return [
// Animation
'animation',
// Interaction
'enableInteractivity', 'explorer',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend', 'tooltip',
// Axis
'hAxis', 'vAxis', 'vAxes', 'axisTitlesPosition',
// Style
'backgroundColor', 'dataOpacity', 'fontSize', 'fontName',
// Bar Style
'bar', 'bars', 'colors', 'isStacked', 'series',
// Sizing & Positioning
'chartArea', 'height', 'width', 'reverseCategories', 'orientation'
];
})
});

@@ -1,7 +0,6 @@

import Ember from 'ember';
import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
const {
assert, get, isEmpty
} = Ember;
import { assert } from '@ember/debug';
import { computed, get } from '@ember/object';
import { isEmpty } from '@ember/utils';

@@ -14,21 +13,23 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
'backgroundColor',
'colorAxis',
'datalessRegionColor',
'defaultColor',
'displayMode',
'domain',
'enableRegionInteractivity',
'height',
'keepAspectRatio',
'legend',
'region',
'magnifyingGlass',
'markerOpacity',
'resolution',
'sizeAxis',
'tooltip',
'width'
],
visualizationOptions: computed(function() {
return [
'backgroundColor',
'colorAxis',
'datalessRegionColor',
'defaultColor',
'displayMode',
'domain',
'enableRegionInteractivity',
'height',
'keepAspectRatio',
'legend',
'region',
'magnifyingGlass',
'markerOpacity',
'resolution',
'sizeAxis',
'tooltip',
'width'
];
}),

@@ -45,3 +46,5 @@ willInsertElement() {

_regions: ['002', '015', '011', '017', '014', '018', '150', '154', '155', '151', '039', '019', '021', '029', '013', '005', '142', '143', '030', '034', '035', '145', '009', '053', '054', '057', '061'],
_regions: computed(function() {
return ['002', '015', '011', '017', '014', '018', '150', '154', '155', '151', '039', '019', '021', '029', '013', '005', '142', '143', '030', '034', '035', '145', '009', '053', '054', '057', '061'];
}),

@@ -48,0 +51,0 @@ _validateRegion() {

import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
import { computed } from '@ember/object';

@@ -9,20 +10,21 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
// Animation
'animation',
// Interaction
'crosshair', 'enableInteractivity', 'explorer', 'selectionMode', 'tooltip',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend',
// Axis
'hAxis', 'vAxis', 'vAxes', 'axisTitlesPosition',
// Style
'backgroundColor', 'curveType', 'dataOpacity', 'fontSize', 'fontName',
// Line Style
'colors', 'lineDashStyle', 'lineWidth', 'pointShape', 'pointSize', 'pointsVisible',
// Sizing & Positioning
'chartArea', 'height', 'width', 'orientation', 'reverseCategories'
visualizationOptions: computed(function() {
return [
// Animation
'animation',
// Interaction
'crosshair', 'enableInteractivity', 'explorer', 'selectionMode', 'tooltip',
// Text
'annotations', 'title', 'titlePosition', 'titleTextStyle', 'legend',
// Axis
'hAxis', 'vAxis', 'vAxes', 'axisTitlesPosition',
// Style
'backgroundColor', 'curveType', 'dataOpacity', 'fontSize', 'fontName',
// Line Style
'colors', 'lineDashStyle', 'lineWidth', 'pointShape', 'pointSize', 'pointsVisible',
// Sizing & Positioning
'chartArea', 'height', 'width', 'orientation', 'reverseCategories'
]
})
]
});
import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
import { computed } from '@ember/object';

@@ -9,12 +10,14 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
'backgroundColor', 'chartArea', 'colors',
'enableInteractivity', 'fontSize', 'fontName',
'height', 'is3D', 'legend', 'pieHole', 'pieSliceBorderColor',
'pieSliceText', 'pieSliceTextStyle', 'pieStartAngle',
'reverseCategories', 'pieResidueSliceColor', 'pieResidueSliceLabel',
'slices', 'sliceVisibilityThreshold', 'title', 'titleTextStyle',
'tooltip', 'width'
]
visualizationOptions: computed(function() {
return [
'backgroundColor', 'chartArea', 'colors',
'enableInteractivity', 'fontSize', 'fontName',
'height', 'is3D', 'legend', 'pieHole', 'pieSliceBorderColor',
'pieSliceText', 'pieSliceTextStyle', 'pieStartAngle',
'reverseCategories', 'pieResidueSliceColor', 'pieResidueSliceLabel',
'slices', 'sliceVisibilityThreshold', 'title', 'titleTextStyle',
'tooltip', 'width'
]
})
});
import BaseChartVisualization from 'ember-google-analytics-embed/components/visualizations/charts/base-chart';
import { computed } from '@ember/object';

@@ -9,11 +10,13 @@ export default BaseChartVisualization.extend({

visualizationOptions: [
'allowHtml', 'alternatingRowStyle', 'cssClassNames',
'firstRowNumber', 'frozenColumns', 'height',
'page', 'pageSize', 'pagingButtons',
'rtlTable', 'scrollLeftStartPosition',
'showRowNumber', 'sort', 'sortAscending', 'sortColumn',
'startPage', 'width'
]
visualizationOptions: computed(function() {
return [
'allowHtml', 'alternatingRowStyle', 'cssClassNames',
'firstRowNumber', 'frozenColumns', 'height',
'page', 'pageSize', 'pagingButtons',
'rtlTable', 'scrollLeftStartPosition',
'showRowNumber', 'sort', 'sortAscending', 'sortColumn',
'startPage', 'width'
]
})
});
export function initialize(appInstance) {
const gaEmbedService = appInstance.lookup('service:ga-embed');
let gaEmbedService = appInstance.lookup('service:ga-embed');
gaEmbedService.initialize();
}

@@ -8,0 +5,0 @@

@@ -1,9 +0,16 @@

import Ember from 'ember';
import Service from '@ember/service';
import { assert } from '@ember/debug';
import Evented from '@ember/object/evented';
import { get, set } from '@ember/object';
import { defer, Promise } from 'rsvp';
const { assert, get, set } = Ember;
export default Service.extend(Evented, {
export default Ember.Service.extend(Ember.Evented, {
init() {
this._super(...arguments);
this.on('apiReady', this.setAuthorizedUser);
},
initialize() {
if (typeof FastBoot !== 'undefined') { return; }

@@ -27,3 +34,3 @@

setAuthorizedUser: Ember.on('apiReady', function() {
setAuthorizedUser() {
window.gapi.analytics.auth.on('signIn', () => {

@@ -33,5 +40,4 @@ const userData = window.gapi.analytics.auth.getUserProfile();

});
},
}),
isAuthorized: false,

@@ -50,3 +56,3 @@

return this._onApiReady(() => {
return new Ember.RSVP.Promise((resolve) => {
return new Promise((resolve) => {
const auth = window.gapi.analytics.auth;

@@ -95,4 +101,3 @@ auth.signOut();

return new Ember.RSVP.Promise((resolve, reject) => {
return new Promise((resolve, reject) => {
// Buffer to ensure API is ready

@@ -114,9 +119,9 @@ this._onApiReady(() => {

let defer = Ember.RSVP.defer();
let whenReady = defer();
window.gapi.analytics.ready(() => {
defer.resolve(callback());
whenReady.resolve(callback());
});
return defer.promise.then(res => {
return whenReady.promise.then(res => {
return res;

@@ -123,0 +128,0 @@ });

@@ -1,4 +0,4 @@

import Ember from 'ember';
import { assert } from '@ember/debug';
import { typeOf } from '@ember/utils';
const { assert, typeOf } = Ember;
const { parse, stringify } = JSON;

@@ -10,4 +10,5 @@

return parse(stringify(obj));
}
export default pojo;

@@ -1,2 +0,2 @@

/*jshint node:true*/
/* eslint-env node */
'use strict';

@@ -3,0 +3,0 @@

@@ -1,2 +0,2 @@

/* jshint node: true */
/* eslint-env node */
'use strict';

@@ -3,0 +3,0 @@

{
"name": "ember-google-analytics-embed",
"version": "0.1.7",
"version": "0.2.0",
"description": "An Ember.js Addon for adding analytics visualizations using the Google Analytics Embed API.",

@@ -35,3 +35,4 @@ "keywords": [

"dependencies": {
"ember-cli-babel": "^5.1.7",
"concat-map": "0.0.1",
"ember-cli-babel": "^6.3.0",
"ember-cli-htmlbars": "^1.1.1"

@@ -41,28 +42,30 @@ },

"broccoli-asset-rev": "^2.4.5",
"ember-ajax": "^2.4.1",
"ember-cli": "2.11.0",
"ember-ajax": "^3.0.0",
"ember-cli": "~2.15.1",
"ember-cli-app-version": "^2.0.0",
"ember-cli-dependency-checker": "^1.3.0",
"ember-cli-htmlbars-inline-precompile": "^0.3.3",
"ember-cli-dependency-checker": "^2.0.0",
"ember-cli-dotenv": "^1.2.0",
"ember-cli-eslint": "^4.0.0",
"ember-cli-htmlbars": "^2.0.1",
"ember-cli-htmlbars-inline-precompile": "^1.0.0",
"ember-cli-inject-live-reload": "^1.4.1",
"ember-cli-jshint": "^2.0.1",
"ember-cli-qunit": "^3.0.1",
"ember-cli-release": "^0.2.9",
"ember-cli-shims": "^1.0.2",
"ember-cli-qunit": "^4.0.0",
"ember-cli-shims": "^1.1.0",
"ember-cli-sri": "^2.1.0",
"ember-cli-test-loader": "^1.1.0",
"ember-cli-uglify": "^1.2.0",
"ember-composable-helpers": "2.0.0",
"ember-data": "^2.11.0",
"ember-disable-prototype-extensions": "^1.1.0",
"ember-export-application-global": "^1.0.5",
"ember-load-initializers": "^0.6.0",
"ember-resolver": "^2.0.3",
"ember-data": "^2.15.0",
"ember-diff-attrs": "^0.1.2",
"ember-disable-prototype-extensions": "^1.1.2",
"ember-export-application-global": "^2.0.0",
"ember-load-initializers": "^1.0.0",
"ember-resolver": "^4.0.0",
"ember-route-action-helper": "2.0.2",
"ember-source": "^2.11.0",
"ember-welcome-page": "^2.0.2",
"loader.js": "^4.0.10"
"ember-source": "~2.15.0",
"ember-welcome-page": "^3.0.0",
"eslint-plugin-ember": "^4.5.0",
"loader.js": "^4.2.3"
},
"engines": {
"node": ">= 0.12.0"
"node": "^4.5 || 6.* || >= 7.*"
},

@@ -69,0 +72,0 @@ "ember-addon": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc