aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Dominik Guzei <dominik.guzei@gmail.com>2019-03-28 12:13:27 +0100
committerLibravatar Dominik Guzei <dominik.guzei@gmail.com>2019-03-28 12:13:27 +0100
commiteb57e4f787d06648dab2c473830dcfbfa168e00c (patch)
tree5340f3a9f4f181aa990f7a6261a752280fac6cef /src
parentindicate any server interaction with spinners and infoboxes (diff)
downloadferdium-app-eb57e4f787d06648dab2c473830dcfbfa168e00c.tar.gz
ferdium-app-eb57e4f787d06648dab2c473830dcfbfa168e00c.tar.zst
ferdium-app-eb57e4f787d06648dab2c473830dcfbfa168e00c.zip
add analytic events for workspace actions
Diffstat (limited to 'src')
-rw-r--r--src/components/layout/Sidebar.js4
-rw-r--r--src/features/workspaces/components/CreateWorkspaceForm.js6
-rw-r--r--src/features/workspaces/components/EditWorkspaceForm.js16
-rw-r--r--src/features/workspaces/components/WorkspaceDrawer.js13
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.js1
-rw-r--r--src/features/workspaces/index.js2
-rw-r--r--src/i18n/locales/defaultMessages.json272
-rw-r--r--src/i18n/messages/src/components/layout/Sidebar.json24
-rw-r--r--src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json8
-rw-r--r--src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json20
-rw-r--r--src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json12
-rw-r--r--src/i18n/messages/src/lib/Menu.json208
-rw-r--r--src/lib/Menu.js6
-rw-r--r--src/lib/analytics.js4
14 files changed, 310 insertions, 286 deletions
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index f7bacfe0f..4fa5e79de 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -6,7 +6,8 @@ import { observer } from 'mobx-react';
6 6
7import Tabbar from '../services/tabs/Tabbar'; 7import Tabbar from '../services/tabs/Tabbar';
8import { ctrlKey } from '../../environment'; 8import { ctrlKey } from '../../environment';
9import { workspaceStore } from '../../features/workspaces'; 9import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../../features/workspaces';
10import { gaEvent } from '../../lib/analytics';
10 11
11const messages = defineMessages({ 12const messages = defineMessages({
12 settings: { 13 settings: {
@@ -95,6 +96,7 @@ export default @observer class Sidebar extends Component {
95 onClick={() => { 96 onClick={() => {
96 toggleWorkspaceDrawer(); 97 toggleWorkspaceDrawer();
97 this.updateToolTip(); 98 this.updateToolTip();
99 gaEvent(GA_CATEGORY_WORKSPACES, 'toggleDrawer', 'sidebar');
98 }} 100 }}
99 className={`sidebar__button sidebar__button--workspaces ${isWorkspaceDrawerOpen ? 'is-active' : ''}`} 101 className={`sidebar__button sidebar__button--workspaces ${isWorkspaceDrawerOpen ? 'is-active' : ''}`}
100 data-tip={`${intl.formatMessage(workspaceToggleMessage)} (${ctrlKey}+Shift+D)`} 102 data-tip={`${intl.formatMessage(workspaceToggleMessage)} (${ctrlKey}+Shift+D)`}
diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js
index 8b5039246..a8f07d0d5 100644
--- a/src/features/workspaces/components/CreateWorkspaceForm.js
+++ b/src/features/workspaces/components/CreateWorkspaceForm.js
@@ -6,6 +6,8 @@ import { Input, Button } from '@meetfranz/forms';
6import injectSheet from 'react-jss'; 6import injectSheet from 'react-jss';
7import Form from '../../../lib/Form'; 7import Form from '../../../lib/Form';
8import { required } from '../../../helpers/validation-helpers'; 8import { required } from '../../../helpers/validation-helpers';
9import { gaEvent } from '../../../lib/analytics';
10import { GA_CATEGORY_WORKSPACES } from '../index';
9 11
10const messages = defineMessages({ 12const messages = defineMessages({
11 submitButton: { 13 submitButton: {
@@ -63,7 +65,9 @@ class CreateWorkspaceForm extends Component {
63 form.submit({ 65 form.submit({
64 onSuccess: async (f) => { 66 onSuccess: async (f) => {
65 const { onSubmit } = this.props; 67 const { onSubmit } = this.props;
66 onSubmit(f.values()); 68 const values = f.values();
69 onSubmit(values);
70 gaEvent(GA_CATEGORY_WORKSPACES, 'create', values.name);
67 }, 71 },
68 }); 72 });
69 } 73 }
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js
index a9fd4d21c..e4bf44248 100644
--- a/src/features/workspaces/components/EditWorkspaceForm.js
+++ b/src/features/workspaces/components/EditWorkspaceForm.js
@@ -12,6 +12,8 @@ import Form from '../../../lib/Form';
12import { required } from '../../../helpers/validation-helpers'; 12import { required } from '../../../helpers/validation-helpers';
13import ServiceListItem from './ServiceListItem'; 13import ServiceListItem from './ServiceListItem';
14import Request from '../../../stores/lib/Request'; 14import Request from '../../../stores/lib/Request';
15import { gaEvent } from '../../../lib/analytics';
16import { GA_CATEGORY_WORKSPACES } from '../index';
15 17
16const messages = defineMessages({ 18const messages = defineMessages({
17 buttonDelete: { 19 buttonDelete: {
@@ -87,17 +89,24 @@ class EditWorkspaceForm extends Component {
87 }); 89 });
88 } 90 }
89 91
90 submitForm(form) { 92 save(form) {
91 form.submit({ 93 form.submit({
92 onSuccess: async (f) => { 94 onSuccess: async (f) => {
93 const { onSave } = this.props; 95 const { onSave } = this.props;
94 const values = f.values(); 96 const values = f.values();
95 onSave(values); 97 onSave(values);
98 gaEvent(GA_CATEGORY_WORKSPACES, 'save');
96 }, 99 },
97 onError: async () => {}, 100 onError: async () => {},
98 }); 101 });
99 } 102 }
100 103
104 delete() {
105 const { onDelete } = this.props;
106 onDelete();
107 gaEvent(GA_CATEGORY_WORKSPACES, 'delete');
108 }
109
101 toggleService(service) { 110 toggleService(service) {
102 const servicesField = this.form.$('services'); 111 const servicesField = this.form.$('services');
103 const serviceIds = servicesField.value; 112 const serviceIds = servicesField.value;
@@ -113,7 +122,6 @@ class EditWorkspaceForm extends Component {
113 const { intl } = this.context; 122 const { intl } = this.context;
114 const { 123 const {
115 classes, 124 classes,
116 onDelete,
117 workspace, 125 workspace,
118 services, 126 services,
119 deleteWorkspaceRequest, 127 deleteWorkspaceRequest,
@@ -161,7 +169,7 @@ class EditWorkspaceForm extends Component {
161 buttonType={isDeleting ? 'secondary' : 'danger'} 169 buttonType={isDeleting ? 'secondary' : 'danger'}
162 className="settings__delete-button" 170 className="settings__delete-button"
163 disabled={isDeleting} 171 disabled={isDeleting}
164 onClick={onDelete} 172 onClick={this.delete.bind(this)}
165 /> 173 />
166 {/* ===== Save Button ===== */} 174 {/* ===== Save Button ===== */}
167 <Button 175 <Button
@@ -169,7 +177,7 @@ class EditWorkspaceForm extends Component {
169 label={intl.formatMessage(messages.buttonSave)} 177 label={intl.formatMessage(messages.buttonSave)}
170 busy={isSaving} 178 busy={isSaving}
171 buttonType={isSaving ? 'secondary' : 'primary'} 179 buttonType={isSaving ? 'secondary' : 'primary'}
172 onClick={this.submitForm.bind(this, form)} 180 onClick={this.save.bind(this, form)}
173 disabled={isSaving} 181 disabled={isSaving}
174 /> 182 />
175 </div> 183 </div>
diff --git a/src/features/workspaces/components/WorkspaceDrawer.js b/src/features/workspaces/components/WorkspaceDrawer.js
index 6dc779be9..4d48c45ef 100644
--- a/src/features/workspaces/components/WorkspaceDrawer.js
+++ b/src/features/workspaces/components/WorkspaceDrawer.js
@@ -8,7 +8,8 @@ import ReactTooltip from 'react-tooltip';
8 8
9import WorkspaceDrawerItem from './WorkspaceDrawerItem'; 9import WorkspaceDrawerItem from './WorkspaceDrawerItem';
10import { workspaceActions } from '../actions'; 10import { workspaceActions } from '../actions';
11import { workspaceStore } from '../index'; 11import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../index';
12import { gaEvent } from '../../../lib/analytics';
12 13
13const messages = defineMessages({ 14const messages = defineMessages({
14 headline: { 15 headline: {
@@ -96,7 +97,10 @@ class WorkspaceDrawer extends Component {
96 <div className={classes.workspaces}> 97 <div className={classes.workspaces}>
97 <WorkspaceDrawerItem 98 <WorkspaceDrawerItem
98 name={intl.formatMessage(messages.allServices)} 99 name={intl.formatMessage(messages.allServices)}
99 onClick={() => workspaceActions.deactivate()} 100 onClick={() => {
101 workspaceActions.deactivate();
102 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'drawer');
103 }}
100 services={getServicesForWorkspace(null)} 104 services={getServicesForWorkspace(null)}
101 isActive={actualWorkspace == null} 105 isActive={actualWorkspace == null}
102 /> 106 />
@@ -105,7 +109,10 @@ class WorkspaceDrawer extends Component {
105 key={workspace.id} 109 key={workspace.id}
106 name={workspace.name} 110 name={workspace.name}
107 isActive={actualWorkspace === workspace} 111 isActive={actualWorkspace === workspace}
108 onClick={() => workspaceActions.activate({ workspace })} 112 onClick={() => {
113 workspaceActions.activate({ workspace });
114 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'drawer');
115 }}
109 services={getServicesForWorkspace(workspace)} 116 services={getServicesForWorkspace(workspace)}
110 /> 117 />
111 ))} 118 ))}
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js
index b31581a5b..52c3afdcf 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.js
+++ b/src/features/workspaces/components/WorkspacesDashboard.js
@@ -77,7 +77,6 @@ class WorkspacesDashboard extends Component {
77 workspaces, 77 workspaces,
78 } = this.props; 78 } = this.props;
79 const { intl } = this.context; 79 const { intl } = this.context;
80 console.log(deleteWorkspaceRequest.result);
81 return ( 80 return (
82 <div className="settings__main"> 81 <div className="settings__main">
83 <div className="settings__header"> 82 <div className="settings__header">
diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js
index 0d30cd19d..89999ab0f 100644
--- a/src/features/workspaces/index.js
+++ b/src/features/workspaces/index.js
@@ -4,6 +4,8 @@ import { resetApiRequests } from './api';
4 4
5const debug = require('debug')('Franz:feature:workspaces'); 5const debug = require('debug')('Franz:feature:workspaces');
6 6
7export const GA_CATEGORY_WORKSPACES = 'workspaces';
8
7export const workspaceStore = new WorkspacesStore(); 9export const workspaceStore = new WorkspacesStore();
8 10
9export default function initWorkspaces(stores, actions) { 11export default function initWorkspaces(stores, actions) {
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 4b6a8eca9..659b1b361 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -708,78 +708,78 @@
708 "defaultMessage": "!!!Settings", 708 "defaultMessage": "!!!Settings",
709 "end": { 709 "end": {
710 "column": 3, 710 "column": 3,
711 "line": 15 711 "line": 16
712 }, 712 },
713 "file": "src/components/layout/Sidebar.js", 713 "file": "src/components/layout/Sidebar.js",
714 "id": "sidebar.settings", 714 "id": "sidebar.settings",
715 "start": { 715 "start": {
716 "column": 12, 716 "column": 12,
717 "line": 12 717 "line": 13
718 } 718 }
719 }, 719 },
720 { 720 {
721 "defaultMessage": "!!!Add new service", 721 "defaultMessage": "!!!Add new service",
722 "end": { 722 "end": {
723 "column": 3, 723 "column": 3,
724 "line": 19 724 "line": 20
725 }, 725 },
726 "file": "src/components/layout/Sidebar.js", 726 "file": "src/components/layout/Sidebar.js",
727 "id": "sidebar.addNewService", 727 "id": "sidebar.addNewService",
728 "start": { 728 "start": {
729 "column": 17, 729 "column": 17,
730 "line": 16 730 "line": 17
731 } 731 }
732 }, 732 },
733 { 733 {
734 "defaultMessage": "!!!Disable notifications & audio", 734 "defaultMessage": "!!!Disable notifications & audio",
735 "end": { 735 "end": {
736 "column": 3, 736 "column": 3,
737 "line": 23 737 "line": 24
738 }, 738 },
739 "file": "src/components/layout/Sidebar.js", 739 "file": "src/components/layout/Sidebar.js",
740 "id": "sidebar.muteApp", 740 "id": "sidebar.muteApp",
741 "start": { 741 "start": {
742 "column": 8, 742 "column": 8,
743 "line": 20 743 "line": 21
744 } 744 }
745 }, 745 },
746 { 746 {
747 "defaultMessage": "!!!Enable notifications & audio", 747 "defaultMessage": "!!!Enable notifications & audio",
748 "end": { 748 "end": {
749 "column": 3, 749 "column": 3,
750 "line": 27 750 "line": 28
751 }, 751 },
752 "file": "src/components/layout/Sidebar.js", 752 "file": "src/components/layout/Sidebar.js",
753 "id": "sidebar.unmuteApp", 753 "id": "sidebar.unmuteApp",
754 "start": { 754 "start": {
755 "column": 10, 755 "column": 10,
756 "line": 24 756 "line": 25
757 } 757 }
758 }, 758 },
759 { 759 {
760 "defaultMessage": "!!!Open workspace drawer", 760 "defaultMessage": "!!!Open workspace drawer",
761 "end": { 761 "end": {
762 "column": 3, 762 "column": 3,
763 "line": 31 763 "line": 32
764 }, 764 },
765 "file": "src/components/layout/Sidebar.js", 765 "file": "src/components/layout/Sidebar.js",
766 "id": "sidebar.openWorkspaceDrawer", 766 "id": "sidebar.openWorkspaceDrawer",
767 "start": { 767 "start": {
768 "column": 23, 768 "column": 23,
769 "line": 28 769 "line": 29
770 } 770 }
771 }, 771 },
772 { 772 {
773 "defaultMessage": "!!!Close workspace drawer", 773 "defaultMessage": "!!!Close workspace drawer",
774 "end": { 774 "end": {
775 "column": 3, 775 "column": 3,
776 "line": 35 776 "line": 36
777 }, 777 },
778 "file": "src/components/layout/Sidebar.js", 778 "file": "src/components/layout/Sidebar.js",
779 "id": "sidebar.closeWorkspaceDrawer", 779 "id": "sidebar.closeWorkspaceDrawer",
780 "start": { 780 "start": {
781 "column": 24, 781 "column": 24,
782 "line": 32 782 "line": 33
783 } 783 }
784 } 784 }
785 ], 785 ],
@@ -3225,26 +3225,26 @@
3225 "defaultMessage": "!!!Create workspace", 3225 "defaultMessage": "!!!Create workspace",
3226 "end": { 3226 "end": {
3227 "column": 3, 3227 "column": 3,
3228 "line": 14 3228 "line": 16
3229 }, 3229 },
3230 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 3230 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
3231 "id": "settings.workspace.add.form.submitButton", 3231 "id": "settings.workspace.add.form.submitButton",
3232 "start": { 3232 "start": {
3233 "column": 16, 3233 "column": 16,
3234 "line": 11 3234 "line": 13
3235 } 3235 }
3236 }, 3236 },
3237 { 3237 {
3238 "defaultMessage": "!!!Name", 3238 "defaultMessage": "!!!Name",
3239 "end": { 3239 "end": {
3240 "column": 3, 3240 "column": 3,
3241 "line": 18 3241 "line": 20
3242 }, 3242 },
3243 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 3243 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
3244 "id": "settings.workspace.add.form.name", 3244 "id": "settings.workspace.add.form.name",
3245 "start": { 3245 "start": {
3246 "column": 8, 3246 "column": 8,
3247 "line": 15 3247 "line": 17
3248 } 3248 }
3249 } 3249 }
3250 ], 3250 ],
@@ -3256,65 +3256,65 @@
3256 "defaultMessage": "!!!Delete workspace", 3256 "defaultMessage": "!!!Delete workspace",
3257 "end": { 3257 "end": {
3258 "column": 3, 3258 "column": 3,
3259 "line": 20 3259 "line": 22
3260 }, 3260 },
3261 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 3261 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3262 "id": "settings.workspace.form.buttonDelete", 3262 "id": "settings.workspace.form.buttonDelete",
3263 "start": { 3263 "start": {
3264 "column": 16, 3264 "column": 16,
3265 "line": 17 3265 "line": 19
3266 } 3266 }
3267 }, 3267 },
3268 { 3268 {
3269 "defaultMessage": "!!!Save workspace", 3269 "defaultMessage": "!!!Save workspace",
3270 "end": { 3270 "end": {
3271 "column": 3, 3271 "column": 3,
3272 "line": 24 3272 "line": 26
3273 }, 3273 },
3274 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 3274 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3275 "id": "settings.workspace.form.buttonSave", 3275 "id": "settings.workspace.form.buttonSave",
3276 "start": { 3276 "start": {
3277 "column": 14, 3277 "column": 14,
3278 "line": 21 3278 "line": 23
3279 } 3279 }
3280 }, 3280 },
3281 { 3281 {
3282 "defaultMessage": "!!!Name", 3282 "defaultMessage": "!!!Name",
3283 "end": { 3283 "end": {
3284 "column": 3, 3284 "column": 3,
3285 "line": 28 3285 "line": 30
3286 }, 3286 },
3287 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 3287 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3288 "id": "settings.workspace.form.name", 3288 "id": "settings.workspace.form.name",
3289 "start": { 3289 "start": {
3290 "column": 8, 3290 "column": 8,
3291 "line": 25 3291 "line": 27
3292 } 3292 }
3293 }, 3293 },
3294 { 3294 {
3295 "defaultMessage": "!!!Your workspaces", 3295 "defaultMessage": "!!!Your workspaces",
3296 "end": { 3296 "end": {
3297 "column": 3, 3297 "column": 3,
3298 "line": 32 3298 "line": 34
3299 }, 3299 },
3300 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 3300 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3301 "id": "settings.workspace.form.yourWorkspaces", 3301 "id": "settings.workspace.form.yourWorkspaces",
3302 "start": { 3302 "start": {
3303 "column": 18, 3303 "column": 18,
3304 "line": 29 3304 "line": 31
3305 } 3305 }
3306 }, 3306 },
3307 { 3307 {
3308 "defaultMessage": "!!!Services in this Workspace", 3308 "defaultMessage": "!!!Services in this Workspace",
3309 "end": { 3309 "end": {
3310 "column": 3, 3310 "column": 3,
3311 "line": 36 3311 "line": 38
3312 }, 3312 },
3313 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 3313 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3314 "id": "settings.workspace.form.servicesInWorkspaceHeadline", 3314 "id": "settings.workspace.form.servicesInWorkspaceHeadline",
3315 "start": { 3315 "start": {
3316 "column": 31, 3316 "column": 31,
3317 "line": 33 3317 "line": 35
3318 } 3318 }
3319 } 3319 }
3320 ], 3320 ],
@@ -3326,39 +3326,39 @@
3326 "defaultMessage": "!!!Workspaces", 3326 "defaultMessage": "!!!Workspaces",
3327 "end": { 3327 "end": {
3328 "column": 3, 3328 "column": 3,
3329 "line": 17 3329 "line": 18
3330 }, 3330 },
3331 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 3331 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
3332 "id": "workspaceDrawer.headline", 3332 "id": "workspaceDrawer.headline",
3333 "start": { 3333 "start": {
3334 "column": 12, 3334 "column": 12,
3335 "line": 14 3335 "line": 15
3336 } 3336 }
3337 }, 3337 },
3338 { 3338 {
3339 "defaultMessage": "!!!All services", 3339 "defaultMessage": "!!!All services",
3340 "end": { 3340 "end": {
3341 "column": 3, 3341 "column": 3,
3342 "line": 21 3342 "line": 22
3343 }, 3343 },
3344 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 3344 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
3345 "id": "workspaceDrawer.allServices", 3345 "id": "workspaceDrawer.allServices",
3346 "start": { 3346 "start": {
3347 "column": 15, 3347 "column": 15,
3348 "line": 18 3348 "line": 19
3349 } 3349 }
3350 }, 3350 },
3351 { 3351 {
3352 "defaultMessage": "!!!Add workspace", 3352 "defaultMessage": "!!!Add workspace",
3353 "end": { 3353 "end": {
3354 "column": 3, 3354 "column": 3,
3355 "line": 25 3355 "line": 26
3356 }, 3356 },
3357 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 3357 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
3358 "id": "workspaceDrawer.addWorkspaceTooltip", 3358 "id": "workspaceDrawer.addWorkspaceTooltip",
3359 "start": { 3359 "start": {
3360 "column": 23, 3360 "column": 23,
3361 "line": 22 3361 "line": 23
3362 } 3362 }
3363 } 3363 }
3364 ], 3364 ],
@@ -3642,676 +3642,676 @@
3642 "defaultMessage": "!!!Edit", 3642 "defaultMessage": "!!!Edit",
3643 "end": { 3643 "end": {
3644 "column": 3, 3644 "column": 3,
3645 "line": 15 3645 "line": 16
3646 }, 3646 },
3647 "file": "src/lib/Menu.js", 3647 "file": "src/lib/Menu.js",
3648 "id": "menu.edit", 3648 "id": "menu.edit",
3649 "start": { 3649 "start": {
3650 "column": 8, 3650 "column": 8,
3651 "line": 12 3651 "line": 13
3652 } 3652 }
3653 }, 3653 },
3654 { 3654 {
3655 "defaultMessage": "!!!Undo", 3655 "defaultMessage": "!!!Undo",
3656 "end": { 3656 "end": {
3657 "column": 3, 3657 "column": 3,
3658 "line": 19 3658 "line": 20
3659 }, 3659 },
3660 "file": "src/lib/Menu.js", 3660 "file": "src/lib/Menu.js",
3661 "id": "menu.edit.undo", 3661 "id": "menu.edit.undo",
3662 "start": { 3662 "start": {
3663 "column": 8, 3663 "column": 8,
3664 "line": 16 3664 "line": 17
3665 } 3665 }
3666 }, 3666 },
3667 { 3667 {
3668 "defaultMessage": "!!!Redo", 3668 "defaultMessage": "!!!Redo",
3669 "end": { 3669 "end": {
3670 "column": 3, 3670 "column": 3,
3671 "line": 23 3671 "line": 24
3672 }, 3672 },
3673 "file": "src/lib/Menu.js", 3673 "file": "src/lib/Menu.js",
3674 "id": "menu.edit.redo", 3674 "id": "menu.edit.redo",
3675 "start": { 3675 "start": {
3676 "column": 8, 3676 "column": 8,
3677 "line": 20 3677 "line": 21
3678 } 3678 }
3679 }, 3679 },
3680 { 3680 {
3681 "defaultMessage": "!!!Cut", 3681 "defaultMessage": "!!!Cut",
3682 "end": { 3682 "end": {
3683 "column": 3, 3683 "column": 3,
3684 "line": 27 3684 "line": 28
3685 }, 3685 },
3686 "file": "src/lib/Menu.js", 3686 "file": "src/lib/Menu.js",
3687 "id": "menu.edit.cut", 3687 "id": "menu.edit.cut",
3688 "start": { 3688 "start": {
3689 "column": 7, 3689 "column": 7,
3690 "line": 24 3690 "line": 25
3691 } 3691 }
3692 }, 3692 },
3693 { 3693 {
3694 "defaultMessage": "!!!Copy", 3694 "defaultMessage": "!!!Copy",
3695 "end": { 3695 "end": {
3696 "column": 3, 3696 "column": 3,
3697 "line": 31 3697 "line": 32
3698 }, 3698 },
3699 "file": "src/lib/Menu.js", 3699 "file": "src/lib/Menu.js",
3700 "id": "menu.edit.copy", 3700 "id": "menu.edit.copy",
3701 "start": { 3701 "start": {
3702 "column": 8, 3702 "column": 8,
3703 "line": 28 3703 "line": 29
3704 } 3704 }
3705 }, 3705 },
3706 { 3706 {
3707 "defaultMessage": "!!!Paste", 3707 "defaultMessage": "!!!Paste",
3708 "end": { 3708 "end": {
3709 "column": 3, 3709 "column": 3,
3710 "line": 35 3710 "line": 36
3711 }, 3711 },
3712 "file": "src/lib/Menu.js", 3712 "file": "src/lib/Menu.js",
3713 "id": "menu.edit.paste", 3713 "id": "menu.edit.paste",
3714 "start": { 3714 "start": {
3715 "column": 9, 3715 "column": 9,
3716 "line": 32 3716 "line": 33
3717 } 3717 }
3718 }, 3718 },
3719 { 3719 {
3720 "defaultMessage": "!!!Paste And Match Style", 3720 "defaultMessage": "!!!Paste And Match Style",
3721 "end": { 3721 "end": {
3722 "column": 3, 3722 "column": 3,
3723 "line": 39 3723 "line": 40
3724 }, 3724 },
3725 "file": "src/lib/Menu.js", 3725 "file": "src/lib/Menu.js",
3726 "id": "menu.edit.pasteAndMatchStyle", 3726 "id": "menu.edit.pasteAndMatchStyle",
3727 "start": { 3727 "start": {
3728 "column": 22, 3728 "column": 22,
3729 "line": 36 3729 "line": 37
3730 } 3730 }
3731 }, 3731 },
3732 { 3732 {
3733 "defaultMessage": "!!!Delete", 3733 "defaultMessage": "!!!Delete",
3734 "end": { 3734 "end": {
3735 "column": 3, 3735 "column": 3,
3736 "line": 43 3736 "line": 44
3737 }, 3737 },
3738 "file": "src/lib/Menu.js", 3738 "file": "src/lib/Menu.js",
3739 "id": "menu.edit.delete", 3739 "id": "menu.edit.delete",
3740 "start": { 3740 "start": {
3741 "column": 10, 3741 "column": 10,
3742 "line": 40 3742 "line": 41
3743 } 3743 }
3744 }, 3744 },
3745 { 3745 {
3746 "defaultMessage": "!!!Select All", 3746 "defaultMessage": "!!!Select All",
3747 "end": { 3747 "end": {
3748 "column": 3, 3748 "column": 3,
3749 "line": 47 3749 "line": 48
3750 }, 3750 },
3751 "file": "src/lib/Menu.js", 3751 "file": "src/lib/Menu.js",
3752 "id": "menu.edit.selectAll", 3752 "id": "menu.edit.selectAll",
3753 "start": { 3753 "start": {
3754 "column": 13, 3754 "column": 13,
3755 "line": 44 3755 "line": 45
3756 } 3756 }
3757 }, 3757 },
3758 { 3758 {
3759 "defaultMessage": "!!!Speech", 3759 "defaultMessage": "!!!Speech",
3760 "end": { 3760 "end": {
3761 "column": 3, 3761 "column": 3,
3762 "line": 51 3762 "line": 52
3763 }, 3763 },
3764 "file": "src/lib/Menu.js", 3764 "file": "src/lib/Menu.js",
3765 "id": "menu.edit.speech", 3765 "id": "menu.edit.speech",
3766 "start": { 3766 "start": {
3767 "column": 10, 3767 "column": 10,
3768 "line": 48 3768 "line": 49
3769 } 3769 }
3770 }, 3770 },
3771 { 3771 {
3772 "defaultMessage": "!!!Start Speaking", 3772 "defaultMessage": "!!!Start Speaking",
3773 "end": { 3773 "end": {
3774 "column": 3, 3774 "column": 3,
3775 "line": 55 3775 "line": 56
3776 }, 3776 },
3777 "file": "src/lib/Menu.js", 3777 "file": "src/lib/Menu.js",
3778 "id": "menu.edit.startSpeaking", 3778 "id": "menu.edit.startSpeaking",
3779 "start": { 3779 "start": {
3780 "column": 17, 3780 "column": 17,
3781 "line": 52 3781 "line": 53
3782 } 3782 }
3783 }, 3783 },
3784 { 3784 {
3785 "defaultMessage": "!!!Stop Speaking", 3785 "defaultMessage": "!!!Stop Speaking",
3786 "end": { 3786 "end": {
3787 "column": 3, 3787 "column": 3,
3788 "line": 59 3788 "line": 60
3789 }, 3789 },
3790 "file": "src/lib/Menu.js", 3790 "file": "src/lib/Menu.js",
3791 "id": "menu.edit.stopSpeaking", 3791 "id": "menu.edit.stopSpeaking",
3792 "start": { 3792 "start": {
3793 "column": 16, 3793 "column": 16,
3794 "line": 56 3794 "line": 57
3795 } 3795 }
3796 }, 3796 },
3797 { 3797 {
3798 "defaultMessage": "!!!Start Dictation", 3798 "defaultMessage": "!!!Start Dictation",
3799 "end": { 3799 "end": {
3800 "column": 3, 3800 "column": 3,
3801 "line": 63 3801 "line": 64
3802 }, 3802 },
3803 "file": "src/lib/Menu.js", 3803 "file": "src/lib/Menu.js",
3804 "id": "menu.edit.startDictation", 3804 "id": "menu.edit.startDictation",
3805 "start": { 3805 "start": {
3806 "column": 18, 3806 "column": 18,
3807 "line": 60 3807 "line": 61
3808 } 3808 }
3809 }, 3809 },
3810 { 3810 {
3811 "defaultMessage": "!!!Emoji & Symbols", 3811 "defaultMessage": "!!!Emoji & Symbols",
3812 "end": { 3812 "end": {
3813 "column": 3, 3813 "column": 3,
3814 "line": 67 3814 "line": 68
3815 }, 3815 },
3816 "file": "src/lib/Menu.js", 3816 "file": "src/lib/Menu.js",
3817 "id": "menu.edit.emojiSymbols", 3817 "id": "menu.edit.emojiSymbols",
3818 "start": { 3818 "start": {
3819 "column": 16, 3819 "column": 16,
3820 "line": 64 3820 "line": 65
3821 } 3821 }
3822 }, 3822 },
3823 { 3823 {
3824 "defaultMessage": "!!!Actual Size", 3824 "defaultMessage": "!!!Actual Size",
3825 "end": { 3825 "end": {
3826 "column": 3, 3826 "column": 3,
3827 "line": 71 3827 "line": 72
3828 }, 3828 },
3829 "file": "src/lib/Menu.js", 3829 "file": "src/lib/Menu.js",
3830 "id": "menu.view.resetZoom", 3830 "id": "menu.view.resetZoom",
3831 "start": { 3831 "start": {
3832 "column": 13, 3832 "column": 13,
3833 "line": 68 3833 "line": 69
3834 } 3834 }
3835 }, 3835 },
3836 { 3836 {
3837 "defaultMessage": "!!!Zoom In", 3837 "defaultMessage": "!!!Zoom In",
3838 "end": { 3838 "end": {
3839 "column": 3, 3839 "column": 3,
3840 "line": 75 3840 "line": 76
3841 }, 3841 },
3842 "file": "src/lib/Menu.js", 3842 "file": "src/lib/Menu.js",
3843 "id": "menu.view.zoomIn", 3843 "id": "menu.view.zoomIn",
3844 "start": { 3844 "start": {
3845 "column": 10, 3845 "column": 10,
3846 "line": 72 3846 "line": 73
3847 } 3847 }
3848 }, 3848 },
3849 { 3849 {
3850 "defaultMessage": "!!!Zoom Out", 3850 "defaultMessage": "!!!Zoom Out",
3851 "end": { 3851 "end": {
3852 "column": 3, 3852 "column": 3,
3853 "line": 79 3853 "line": 80
3854 }, 3854 },
3855 "file": "src/lib/Menu.js", 3855 "file": "src/lib/Menu.js",
3856 "id": "menu.view.zoomOut", 3856 "id": "menu.view.zoomOut",
3857 "start": { 3857 "start": {
3858 "column": 11, 3858 "column": 11,
3859 "line": 76 3859 "line": 77
3860 } 3860 }
3861 }, 3861 },
3862 { 3862 {
3863 "defaultMessage": "!!!Enter Full Screen", 3863 "defaultMessage": "!!!Enter Full Screen",
3864 "end": { 3864 "end": {
3865 "column": 3, 3865 "column": 3,
3866 "line": 83 3866 "line": 84
3867 }, 3867 },
3868 "file": "src/lib/Menu.js", 3868 "file": "src/lib/Menu.js",
3869 "id": "menu.view.enterFullScreen", 3869 "id": "menu.view.enterFullScreen",
3870 "start": { 3870 "start": {
3871 "column": 19, 3871 "column": 19,
3872 "line": 80 3872 "line": 81
3873 } 3873 }
3874 }, 3874 },
3875 { 3875 {
3876 "defaultMessage": "!!!Exit Full Screen", 3876 "defaultMessage": "!!!Exit Full Screen",
3877 "end": { 3877 "end": {
3878 "column": 3, 3878 "column": 3,
3879 "line": 87 3879 "line": 88
3880 }, 3880 },
3881 "file": "src/lib/Menu.js", 3881 "file": "src/lib/Menu.js",
3882 "id": "menu.view.exitFullScreen", 3882 "id": "menu.view.exitFullScreen",
3883 "start": { 3883 "start": {
3884 "column": 18, 3884 "column": 18,
3885 "line": 84 3885 "line": 85
3886 } 3886 }
3887 }, 3887 },
3888 { 3888 {
3889 "defaultMessage": "!!!Toggle Full Screen", 3889 "defaultMessage": "!!!Toggle Full Screen",
3890 "end": { 3890 "end": {
3891 "column": 3, 3891 "column": 3,
3892 "line": 91 3892 "line": 92
3893 }, 3893 },
3894 "file": "src/lib/Menu.js", 3894 "file": "src/lib/Menu.js",
3895 "id": "menu.view.toggleFullScreen", 3895 "id": "menu.view.toggleFullScreen",
3896 "start": { 3896 "start": {
3897 "column": 20, 3897 "column": 20,
3898 "line": 88 3898 "line": 89
3899 } 3899 }
3900 }, 3900 },
3901 { 3901 {
3902 "defaultMessage": "!!!Toggle Developer Tools", 3902 "defaultMessage": "!!!Toggle Developer Tools",
3903 "end": { 3903 "end": {
3904 "column": 3, 3904 "column": 3,
3905 "line": 95 3905 "line": 96
3906 }, 3906 },
3907 "file": "src/lib/Menu.js", 3907 "file": "src/lib/Menu.js",
3908 "id": "menu.view.toggleDevTools", 3908 "id": "menu.view.toggleDevTools",
3909 "start": { 3909 "start": {
3910 "column": 18, 3910 "column": 18,
3911 "line": 92 3911 "line": 93
3912 } 3912 }
3913 }, 3913 },
3914 { 3914 {
3915 "defaultMessage": "!!!Toggle Service Developer Tools", 3915 "defaultMessage": "!!!Toggle Service Developer Tools",
3916 "end": { 3916 "end": {
3917 "column": 3, 3917 "column": 3,
3918 "line": 99 3918 "line": 100
3919 }, 3919 },
3920 "file": "src/lib/Menu.js", 3920 "file": "src/lib/Menu.js",
3921 "id": "menu.view.toggleServiceDevTools", 3921 "id": "menu.view.toggleServiceDevTools",
3922 "start": { 3922 "start": {
3923 "column": 25, 3923 "column": 25,
3924 "line": 96 3924 "line": 97
3925 } 3925 }
3926 }, 3926 },
3927 { 3927 {
3928 "defaultMessage": "!!!Reload Service", 3928 "defaultMessage": "!!!Reload Service",
3929 "end": { 3929 "end": {
3930 "column": 3, 3930 "column": 3,
3931 "line": 103 3931 "line": 104
3932 }, 3932 },
3933 "file": "src/lib/Menu.js", 3933 "file": "src/lib/Menu.js",
3934 "id": "menu.view.reloadService", 3934 "id": "menu.view.reloadService",
3935 "start": { 3935 "start": {
3936 "column": 17, 3936 "column": 17,
3937 "line": 100 3937 "line": 101
3938 } 3938 }
3939 }, 3939 },
3940 { 3940 {
3941 "defaultMessage": "!!!Reload Franz", 3941 "defaultMessage": "!!!Reload Franz",
3942 "end": { 3942 "end": {
3943 "column": 3, 3943 "column": 3,
3944 "line": 107 3944 "line": 108
3945 }, 3945 },
3946 "file": "src/lib/Menu.js", 3946 "file": "src/lib/Menu.js",
3947 "id": "menu.view.reloadFranz", 3947 "id": "menu.view.reloadFranz",
3948 "start": { 3948 "start": {
3949 "column": 15, 3949 "column": 15,
3950 "line": 104 3950 "line": 105
3951 } 3951 }
3952 }, 3952 },
3953 { 3953 {
3954 "defaultMessage": "!!!Minimize", 3954 "defaultMessage": "!!!Minimize",
3955 "end": { 3955 "end": {
3956 "column": 3, 3956 "column": 3,
3957 "line": 111 3957 "line": 112
3958 }, 3958 },
3959 "file": "src/lib/Menu.js", 3959 "file": "src/lib/Menu.js",
3960 "id": "menu.window.minimize", 3960 "id": "menu.window.minimize",
3961 "start": { 3961 "start": {
3962 "column": 12, 3962 "column": 12,
3963 "line": 108 3963 "line": 109
3964 } 3964 }
3965 }, 3965 },
3966 { 3966 {
3967 "defaultMessage": "!!!Close", 3967 "defaultMessage": "!!!Close",
3968 "end": { 3968 "end": {
3969 "column": 3, 3969 "column": 3,
3970 "line": 115 3970 "line": 116
3971 }, 3971 },
3972 "file": "src/lib/Menu.js", 3972 "file": "src/lib/Menu.js",
3973 "id": "menu.window.close", 3973 "id": "menu.window.close",
3974 "start": { 3974 "start": {
3975 "column": 9, 3975 "column": 9,
3976 "line": 112 3976 "line": 113
3977 } 3977 }
3978 }, 3978 },
3979 { 3979 {
3980 "defaultMessage": "!!!Learn More", 3980 "defaultMessage": "!!!Learn More",
3981 "end": { 3981 "end": {
3982 "column": 3, 3982 "column": 3,
3983 "line": 119 3983 "line": 120
3984 }, 3984 },
3985 "file": "src/lib/Menu.js", 3985 "file": "src/lib/Menu.js",
3986 "id": "menu.help.learnMore", 3986 "id": "menu.help.learnMore",
3987 "start": { 3987 "start": {
3988 "column": 13, 3988 "column": 13,
3989 "line": 116 3989 "line": 117
3990 } 3990 }
3991 }, 3991 },
3992 { 3992 {
3993 "defaultMessage": "!!!Changelog", 3993 "defaultMessage": "!!!Changelog",
3994 "end": { 3994 "end": {
3995 "column": 3, 3995 "column": 3,
3996 "line": 123 3996 "line": 124
3997 }, 3997 },
3998 "file": "src/lib/Menu.js", 3998 "file": "src/lib/Menu.js",
3999 "id": "menu.help.changelog", 3999 "id": "menu.help.changelog",
4000 "start": { 4000 "start": {
4001 "column": 13, 4001 "column": 13,
4002 "line": 120 4002 "line": 121
4003 } 4003 }
4004 }, 4004 },
4005 { 4005 {
4006 "defaultMessage": "!!!Support", 4006 "defaultMessage": "!!!Support",
4007 "end": { 4007 "end": {
4008 "column": 3, 4008 "column": 3,
4009 "line": 127 4009 "line": 128
4010 }, 4010 },
4011 "file": "src/lib/Menu.js", 4011 "file": "src/lib/Menu.js",
4012 "id": "menu.help.support", 4012 "id": "menu.help.support",
4013 "start": { 4013 "start": {
4014 "column": 11, 4014 "column": 11,
4015 "line": 124 4015 "line": 125
4016 } 4016 }
4017 }, 4017 },
4018 { 4018 {
4019 "defaultMessage": "!!!Terms of Service", 4019 "defaultMessage": "!!!Terms of Service",
4020 "end": { 4020 "end": {
4021 "column": 3, 4021 "column": 3,
4022 "line": 131 4022 "line": 132
4023 }, 4023 },
4024 "file": "src/lib/Menu.js", 4024 "file": "src/lib/Menu.js",
4025 "id": "menu.help.tos", 4025 "id": "menu.help.tos",
4026 "start": { 4026 "start": {
4027 "column": 7, 4027 "column": 7,
4028 "line": 128 4028 "line": 129
4029 } 4029 }
4030 }, 4030 },
4031 { 4031 {
4032 "defaultMessage": "!!!Privacy Statement", 4032 "defaultMessage": "!!!Privacy Statement",
4033 "end": { 4033 "end": {
4034 "column": 3, 4034 "column": 3,
4035 "line": 135 4035 "line": 136
4036 }, 4036 },
4037 "file": "src/lib/Menu.js", 4037 "file": "src/lib/Menu.js",
4038 "id": "menu.help.privacy", 4038 "id": "menu.help.privacy",
4039 "start": { 4039 "start": {
4040 "column": 11, 4040 "column": 11,
4041 "line": 132 4041 "line": 133
4042 } 4042 }
4043 }, 4043 },
4044 { 4044 {
4045 "defaultMessage": "!!!File", 4045 "defaultMessage": "!!!File",
4046 "end": { 4046 "end": {
4047 "column": 3, 4047 "column": 3,
4048 "line": 139 4048 "line": 140
4049 }, 4049 },
4050 "file": "src/lib/Menu.js", 4050 "file": "src/lib/Menu.js",
4051 "id": "menu.file", 4051 "id": "menu.file",
4052 "start": { 4052 "start": {
4053 "column": 8, 4053 "column": 8,
4054 "line": 136 4054 "line": 137
4055 } 4055 }
4056 }, 4056 },
4057 { 4057 {
4058 "defaultMessage": "!!!View", 4058 "defaultMessage": "!!!View",
4059 "end": { 4059 "end": {
4060 "column": 3, 4060 "column": 3,
4061 "line": 143 4061 "line": 144
4062 }, 4062 },
4063 "file": "src/lib/Menu.js", 4063 "file": "src/lib/Menu.js",
4064 "id": "menu.view", 4064 "id": "menu.view",
4065 "start": { 4065 "start": {
4066 "column": 8, 4066 "column": 8,
4067 "line": 140 4067 "line": 141
4068 } 4068 }
4069 }, 4069 },
4070 { 4070 {
4071 "defaultMessage": "!!!Services", 4071 "defaultMessage": "!!!Services",
4072 "end": { 4072 "end": {
4073 "column": 3, 4073 "column": 3,
4074 "line": 147 4074 "line": 148
4075 }, 4075 },
4076 "file": "src/lib/Menu.js", 4076 "file": "src/lib/Menu.js",
4077 "id": "menu.services", 4077 "id": "menu.services",
4078 "start": { 4078 "start": {
4079 "column": 12, 4079 "column": 12,
4080 "line": 144 4080 "line": 145
4081 } 4081 }
4082 }, 4082 },
4083 { 4083 {
4084 "defaultMessage": "!!!Window", 4084 "defaultMessage": "!!!Window",
4085 "end": { 4085 "end": {
4086 "column": 3, 4086 "column": 3,
4087 "line": 151 4087 "line": 152
4088 }, 4088 },
4089 "file": "src/lib/Menu.js", 4089 "file": "src/lib/Menu.js",
4090 "id": "menu.window", 4090 "id": "menu.window",
4091 "start": { 4091 "start": {
4092 "column": 10, 4092 "column": 10,
4093 "line": 148 4093 "line": 149
4094 } 4094 }
4095 }, 4095 },
4096 { 4096 {
4097 "defaultMessage": "!!!Help", 4097 "defaultMessage": "!!!Help",
4098 "end": { 4098 "end": {
4099 "column": 3, 4099 "column": 3,
4100 "line": 155 4100 "line": 156
4101 }, 4101 },
4102 "file": "src/lib/Menu.js", 4102 "file": "src/lib/Menu.js",
4103 "id": "menu.help", 4103 "id": "menu.help",
4104 "start": { 4104 "start": {
4105 "column": 8, 4105 "column": 8,
4106 "line": 152 4106 "line": 153
4107 } 4107 }
4108 }, 4108 },
4109 { 4109 {
4110 "defaultMessage": "!!!About Franz", 4110 "defaultMessage": "!!!About Franz",
4111 "end": { 4111 "end": {
4112 "column": 3, 4112 "column": 3,
4113 "line": 159 4113 "line": 160
4114 }, 4114 },
4115 "file": "src/lib/Menu.js", 4115 "file": "src/lib/Menu.js",
4116 "id": "menu.app.about", 4116 "id": "menu.app.about",
4117 "start": { 4117 "start": {
4118 "column": 9, 4118 "column": 9,
4119 "line": 156 4119 "line": 157
4120 } 4120 }
4121 }, 4121 },
4122 { 4122 {
4123 "defaultMessage": "!!!Settings", 4123 "defaultMessage": "!!!Settings",
4124 "end": { 4124 "end": {
4125 "column": 3, 4125 "column": 3,
4126 "line": 163 4126 "line": 164
4127 }, 4127 },
4128 "file": "src/lib/Menu.js", 4128 "file": "src/lib/Menu.js",
4129 "id": "menu.app.settings", 4129 "id": "menu.app.settings",
4130 "start": { 4130 "start": {
4131 "column": 12, 4131 "column": 12,
4132 "line": 160 4132 "line": 161
4133 } 4133 }
4134 }, 4134 },
4135 { 4135 {
4136 "defaultMessage": "!!!Hide", 4136 "defaultMessage": "!!!Hide",
4137 "end": { 4137 "end": {
4138 "column": 3, 4138 "column": 3,
4139 "line": 167 4139 "line": 168
4140 }, 4140 },
4141 "file": "src/lib/Menu.js", 4141 "file": "src/lib/Menu.js",
4142 "id": "menu.app.hide", 4142 "id": "menu.app.hide",
4143 "start": { 4143 "start": {
4144 "column": 8, 4144 "column": 8,
4145 "line": 164 4145 "line": 165
4146 } 4146 }
4147 }, 4147 },
4148 { 4148 {
4149 "defaultMessage": "!!!Hide Others", 4149 "defaultMessage": "!!!Hide Others",
4150 "end": { 4150 "end": {
4151 "column": 3, 4151 "column": 3,
4152 "line": 171 4152 "line": 172
4153 }, 4153 },
4154 "file": "src/lib/Menu.js", 4154 "file": "src/lib/Menu.js",
4155 "id": "menu.app.hideOthers", 4155 "id": "menu.app.hideOthers",
4156 "start": { 4156 "start": {
4157 "column": 14, 4157 "column": 14,
4158 "line": 168 4158 "line": 169
4159 } 4159 }
4160 }, 4160 },
4161 { 4161 {
4162 "defaultMessage": "!!!Unhide", 4162 "defaultMessage": "!!!Unhide",
4163 "end": { 4163 "end": {
4164 "column": 3, 4164 "column": 3,
4165 "line": 175 4165 "line": 176
4166 }, 4166 },
4167 "file": "src/lib/Menu.js", 4167 "file": "src/lib/Menu.js",
4168 "id": "menu.app.unhide", 4168 "id": "menu.app.unhide",
4169 "start": { 4169 "start": {
4170 "column": 10, 4170 "column": 10,
4171 "line": 172 4171 "line": 173
4172 } 4172 }
4173 }, 4173 },
4174 { 4174 {
4175 "defaultMessage": "!!!Quit", 4175 "defaultMessage": "!!!Quit",
4176 "end": { 4176 "end": {
4177 "column": 3, 4177 "column": 3,
4178 "line": 179 4178 "line": 180
4179 }, 4179 },
4180 "file": "src/lib/Menu.js", 4180 "file": "src/lib/Menu.js",
4181 "id": "menu.app.quit", 4181 "id": "menu.app.quit",
4182 "start": { 4182 "start": {
4183 "column": 8, 4183 "column": 8,
4184 "line": 176 4184 "line": 177
4185 } 4185 }
4186 }, 4186 },
4187 { 4187 {
4188 "defaultMessage": "!!!Add New Service...", 4188 "defaultMessage": "!!!Add New Service...",
4189 "end": { 4189 "end": {
4190 "column": 3, 4190 "column": 3,
4191 "line": 183 4191 "line": 184
4192 }, 4192 },
4193 "file": "src/lib/Menu.js", 4193 "file": "src/lib/Menu.js",
4194 "id": "menu.services.addNewService", 4194 "id": "menu.services.addNewService",
4195 "start": { 4195 "start": {
4196 "column": 17, 4196 "column": 17,
4197 "line": 180 4197 "line": 181
4198 } 4198 }
4199 }, 4199 },
4200 { 4200 {
4201 "defaultMessage": "!!!Add New Workspace...", 4201 "defaultMessage": "!!!Add New Workspace...",
4202 "end": { 4202 "end": {
4203 "column": 3, 4203 "column": 3,
4204 "line": 187 4204 "line": 188
4205 }, 4205 },
4206 "file": "src/lib/Menu.js", 4206 "file": "src/lib/Menu.js",
4207 "id": "menu.workspaces.addNewWorkspace", 4207 "id": "menu.workspaces.addNewWorkspace",
4208 "start": { 4208 "start": {
4209 "column": 19, 4209 "column": 19,
4210 "line": 184 4210 "line": 185
4211 } 4211 }
4212 }, 4212 },
4213 { 4213 {
4214 "defaultMessage": "!!!Open workspace drawer", 4214 "defaultMessage": "!!!Open workspace drawer",
4215 "end": { 4215 "end": {
4216 "column": 3, 4216 "column": 3,
4217 "line": 191 4217 "line": 192
4218 }, 4218 },
4219 "file": "src/lib/Menu.js", 4219 "file": "src/lib/Menu.js",
4220 "id": "menu.workspaces.openWorkspaceDrawer", 4220 "id": "menu.workspaces.openWorkspaceDrawer",
4221 "start": { 4221 "start": {
4222 "column": 23, 4222 "column": 23,
4223 "line": 188 4223 "line": 189
4224 } 4224 }
4225 }, 4225 },
4226 { 4226 {
4227 "defaultMessage": "!!!Close workspace drawer", 4227 "defaultMessage": "!!!Close workspace drawer",
4228 "end": { 4228 "end": {
4229 "column": 3, 4229 "column": 3,
4230 "line": 195 4230 "line": 196
4231 }, 4231 },
4232 "file": "src/lib/Menu.js", 4232 "file": "src/lib/Menu.js",
4233 "id": "menu.workspaces.closeWorkspaceDrawer", 4233 "id": "menu.workspaces.closeWorkspaceDrawer",
4234 "start": { 4234 "start": {
4235 "column": 24, 4235 "column": 24,
4236 "line": 192 4236 "line": 193
4237 } 4237 }
4238 }, 4238 },
4239 { 4239 {
4240 "defaultMessage": "!!!Activate next service...", 4240 "defaultMessage": "!!!Activate next service...",
4241 "end": { 4241 "end": {
4242 "column": 3, 4242 "column": 3,
4243 "line": 199 4243 "line": 200
4244 }, 4244 },
4245 "file": "src/lib/Menu.js", 4245 "file": "src/lib/Menu.js",
4246 "id": "menu.services.setNextServiceActive", 4246 "id": "menu.services.setNextServiceActive",
4247 "start": { 4247 "start": {
4248 "column": 23, 4248 "column": 23,
4249 "line": 196 4249 "line": 197
4250 } 4250 }
4251 }, 4251 },
4252 { 4252 {
4253 "defaultMessage": "!!!Activate previous service...", 4253 "defaultMessage": "!!!Activate previous service...",
4254 "end": { 4254 "end": {
4255 "column": 3, 4255 "column": 3,
4256 "line": 203 4256 "line": 204
4257 }, 4257 },
4258 "file": "src/lib/Menu.js", 4258 "file": "src/lib/Menu.js",
4259 "id": "menu.services.activatePreviousService", 4259 "id": "menu.services.activatePreviousService",
4260 "start": { 4260 "start": {
4261 "column": 27, 4261 "column": 27,
4262 "line": 200 4262 "line": 201
4263 } 4263 }
4264 }, 4264 },
4265 { 4265 {
4266 "defaultMessage": "!!!Disable notifications & audio", 4266 "defaultMessage": "!!!Disable notifications & audio",
4267 "end": { 4267 "end": {
4268 "column": 3, 4268 "column": 3,
4269 "line": 207 4269 "line": 208
4270 }, 4270 },
4271 "file": "src/lib/Menu.js", 4271 "file": "src/lib/Menu.js",
4272 "id": "sidebar.muteApp", 4272 "id": "sidebar.muteApp",
4273 "start": { 4273 "start": {
4274 "column": 11, 4274 "column": 11,
4275 "line": 204 4275 "line": 205
4276 } 4276 }
4277 }, 4277 },
4278 { 4278 {
4279 "defaultMessage": "!!!Enable notifications & audio", 4279 "defaultMessage": "!!!Enable notifications & audio",
4280 "end": { 4280 "end": {
4281 "column": 3, 4281 "column": 3,
4282 "line": 211 4282 "line": 212
4283 }, 4283 },
4284 "file": "src/lib/Menu.js", 4284 "file": "src/lib/Menu.js",
4285 "id": "sidebar.unmuteApp", 4285 "id": "sidebar.unmuteApp",
4286 "start": { 4286 "start": {
4287 "column": 13, 4287 "column": 13,
4288 "line": 208 4288 "line": 209
4289 } 4289 }
4290 }, 4290 },
4291 { 4291 {
4292 "defaultMessage": "!!!Workspaces", 4292 "defaultMessage": "!!!Workspaces",
4293 "end": { 4293 "end": {
4294 "column": 3, 4294 "column": 3,
4295 "line": 215 4295 "line": 216
4296 }, 4296 },
4297 "file": "src/lib/Menu.js", 4297 "file": "src/lib/Menu.js",
4298 "id": "menu.workspaces", 4298 "id": "menu.workspaces",
4299 "start": { 4299 "start": {
4300 "column": 14, 4300 "column": 14,
4301 "line": 212 4301 "line": 213
4302 } 4302 }
4303 }, 4303 },
4304 { 4304 {
4305 "defaultMessage": "!!!Default", 4305 "defaultMessage": "!!!Default",
4306 "end": { 4306 "end": {
4307 "column": 3, 4307 "column": 3,
4308 "line": 219 4308 "line": 220
4309 }, 4309 },
4310 "file": "src/lib/Menu.js", 4310 "file": "src/lib/Menu.js",
4311 "id": "menu.workspaces.defaultWorkspace", 4311 "id": "menu.workspaces.defaultWorkspace",
4312 "start": { 4312 "start": {
4313 "column": 20, 4313 "column": 20,
4314 "line": 216 4314 "line": 217
4315 } 4315 }
4316 } 4316 }
4317 ], 4317 ],
diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json
index 8fc508f71..d67adc96e 100644
--- a/src/i18n/messages/src/components/layout/Sidebar.json
+++ b/src/i18n/messages/src/components/layout/Sidebar.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Settings", 4 "defaultMessage": "!!!Settings",
5 "file": "src/components/layout/Sidebar.js", 5 "file": "src/components/layout/Sidebar.js",
6 "start": { 6 "start": {
7 "line": 12, 7 "line": 13,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 15, 11 "line": 16,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Add new service", 17 "defaultMessage": "!!!Add new service",
18 "file": "src/components/layout/Sidebar.js", 18 "file": "src/components/layout/Sidebar.js",
19 "start": { 19 "start": {
20 "line": 16, 20 "line": 17,
21 "column": 17 21 "column": 17
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 19, 24 "line": 20,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Disable notifications & audio", 30 "defaultMessage": "!!!Disable notifications & audio",
31 "file": "src/components/layout/Sidebar.js", 31 "file": "src/components/layout/Sidebar.js",
32 "start": { 32 "start": {
33 "line": 20, 33 "line": 21,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 23, 37 "line": 24,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Enable notifications & audio", 43 "defaultMessage": "!!!Enable notifications & audio",
44 "file": "src/components/layout/Sidebar.js", 44 "file": "src/components/layout/Sidebar.js",
45 "start": { 45 "start": {
46 "line": 24, 46 "line": 25,
47 "column": 10 47 "column": 10
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 27, 50 "line": 28,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Open workspace drawer", 56 "defaultMessage": "!!!Open workspace drawer",
57 "file": "src/components/layout/Sidebar.js", 57 "file": "src/components/layout/Sidebar.js",
58 "start": { 58 "start": {
59 "line": 28, 59 "line": 29,
60 "column": 23 60 "column": 23
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 31, 63 "line": 32,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Close workspace drawer", 69 "defaultMessage": "!!!Close workspace drawer",
70 "file": "src/components/layout/Sidebar.js", 70 "file": "src/components/layout/Sidebar.js",
71 "start": { 71 "start": {
72 "line": 32, 72 "line": 33,
73 "column": 24 73 "column": 24
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 35, 76 "line": 36,
77 "column": 3 77 "column": 3
78 } 78 }
79 } 79 }
diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
index 7cc1a374f..f62bac42c 100644
--- a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
+++ b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Create workspace", 4 "defaultMessage": "!!!Create workspace",
5 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 5 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
6 "start": { 6 "start": {
7 "line": 11, 7 "line": 13,
8 "column": 16 8 "column": 16
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 14, 11 "line": 16,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Name", 17 "defaultMessage": "!!!Name",
18 "file": "src/features/workspaces/components/CreateWorkspaceForm.js", 18 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
19 "start": { 19 "start": {
20 "line": 15, 20 "line": 17,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 18, 24 "line": 20,
25 "column": 3 25 "column": 3
26 } 26 }
27 } 27 }
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
index 8a26bf45a..7b0c3e1ce 100644
--- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
+++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Delete workspace", 4 "defaultMessage": "!!!Delete workspace",
5 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 5 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
6 "start": { 6 "start": {
7 "line": 17, 7 "line": 19,
8 "column": 16 8 "column": 16
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 20, 11 "line": 22,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Save workspace", 17 "defaultMessage": "!!!Save workspace",
18 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 18 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
19 "start": { 19 "start": {
20 "line": 21, 20 "line": 23,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 24, 24 "line": 26,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Name", 30 "defaultMessage": "!!!Name",
31 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 31 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
32 "start": { 32 "start": {
33 "line": 25, 33 "line": 27,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 28, 37 "line": 30,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Your workspaces", 43 "defaultMessage": "!!!Your workspaces",
44 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 44 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
45 "start": { 45 "start": {
46 "line": 29, 46 "line": 31,
47 "column": 18 47 "column": 18
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 32, 50 "line": 34,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Services in this Workspace", 56 "defaultMessage": "!!!Services in this Workspace",
57 "file": "src/features/workspaces/components/EditWorkspaceForm.js", 57 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
58 "start": { 58 "start": {
59 "line": 33, 59 "line": 35,
60 "column": 31 60 "column": 31
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 36, 63 "line": 38,
64 "column": 3 64 "column": 3
65 } 65 }
66 } 66 }
diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json
index 4e3237164..7026708e2 100644
--- a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json
+++ b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Workspaces", 4 "defaultMessage": "!!!Workspaces",
5 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 5 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
6 "start": { 6 "start": {
7 "line": 14, 7 "line": 15,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 17, 11 "line": 18,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!All services", 17 "defaultMessage": "!!!All services",
18 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 18 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
19 "start": { 19 "start": {
20 "line": 18, 20 "line": 19,
21 "column": 15 21 "column": 15
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 21, 24 "line": 22,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Add workspace", 30 "defaultMessage": "!!!Add workspace",
31 "file": "src/features/workspaces/components/WorkspaceDrawer.js", 31 "file": "src/features/workspaces/components/WorkspaceDrawer.js",
32 "start": { 32 "start": {
33 "line": 22, 33 "line": 23,
34 "column": 23 34 "column": 23
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 25, 37 "line": 26,
38 "column": 3 38 "column": 3
39 } 39 }
40 } 40 }
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index adbbd2638..3889d39e0 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Edit", 4 "defaultMessage": "!!!Edit",
5 "file": "src/lib/Menu.js", 5 "file": "src/lib/Menu.js",
6 "start": { 6 "start": {
7 "line": 12, 7 "line": 13,
8 "column": 8 8 "column": 8
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 15, 11 "line": 16,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Undo", 17 "defaultMessage": "!!!Undo",
18 "file": "src/lib/Menu.js", 18 "file": "src/lib/Menu.js",
19 "start": { 19 "start": {
20 "line": 16, 20 "line": 17,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 19, 24 "line": 20,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Redo", 30 "defaultMessage": "!!!Redo",
31 "file": "src/lib/Menu.js", 31 "file": "src/lib/Menu.js",
32 "start": { 32 "start": {
33 "line": 20, 33 "line": 21,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 23, 37 "line": 24,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Cut", 43 "defaultMessage": "!!!Cut",
44 "file": "src/lib/Menu.js", 44 "file": "src/lib/Menu.js",
45 "start": { 45 "start": {
46 "line": 24, 46 "line": 25,
47 "column": 7 47 "column": 7
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 27, 50 "line": 28,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Copy", 56 "defaultMessage": "!!!Copy",
57 "file": "src/lib/Menu.js", 57 "file": "src/lib/Menu.js",
58 "start": { 58 "start": {
59 "line": 28, 59 "line": 29,
60 "column": 8 60 "column": 8
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 31, 63 "line": 32,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Paste", 69 "defaultMessage": "!!!Paste",
70 "file": "src/lib/Menu.js", 70 "file": "src/lib/Menu.js",
71 "start": { 71 "start": {
72 "line": 32, 72 "line": 33,
73 "column": 9 73 "column": 9
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 35, 76 "line": 36,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Paste And Match Style", 82 "defaultMessage": "!!!Paste And Match Style",
83 "file": "src/lib/Menu.js", 83 "file": "src/lib/Menu.js",
84 "start": { 84 "start": {
85 "line": 36, 85 "line": 37,
86 "column": 22 86 "column": 22
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 39, 89 "line": 40,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Delete", 95 "defaultMessage": "!!!Delete",
96 "file": "src/lib/Menu.js", 96 "file": "src/lib/Menu.js",
97 "start": { 97 "start": {
98 "line": 40, 98 "line": 41,
99 "column": 10 99 "column": 10
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 43, 102 "line": 44,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Select All", 108 "defaultMessage": "!!!Select All",
109 "file": "src/lib/Menu.js", 109 "file": "src/lib/Menu.js",
110 "start": { 110 "start": {
111 "line": 44, 111 "line": 45,
112 "column": 13 112 "column": 13
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 47, 115 "line": 48,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Speech", 121 "defaultMessage": "!!!Speech",
122 "file": "src/lib/Menu.js", 122 "file": "src/lib/Menu.js",
123 "start": { 123 "start": {
124 "line": 48, 124 "line": 49,
125 "column": 10 125 "column": 10
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 51, 128 "line": 52,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Start Speaking", 134 "defaultMessage": "!!!Start Speaking",
135 "file": "src/lib/Menu.js", 135 "file": "src/lib/Menu.js",
136 "start": { 136 "start": {
137 "line": 52, 137 "line": 53,
138 "column": 17 138 "column": 17
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 55, 141 "line": 56,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,11 +147,11 @@
147 "defaultMessage": "!!!Stop Speaking", 147 "defaultMessage": "!!!Stop Speaking",
148 "file": "src/lib/Menu.js", 148 "file": "src/lib/Menu.js",
149 "start": { 149 "start": {
150 "line": 56, 150 "line": 57,
151 "column": 16 151 "column": 16
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 59, 154 "line": 60,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
@@ -160,11 +160,11 @@
160 "defaultMessage": "!!!Start Dictation", 160 "defaultMessage": "!!!Start Dictation",
161 "file": "src/lib/Menu.js", 161 "file": "src/lib/Menu.js",
162 "start": { 162 "start": {
163 "line": 60, 163 "line": 61,
164 "column": 18 164 "column": 18
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 63, 167 "line": 64,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
@@ -173,11 +173,11 @@
173 "defaultMessage": "!!!Emoji & Symbols", 173 "defaultMessage": "!!!Emoji & Symbols",
174 "file": "src/lib/Menu.js", 174 "file": "src/lib/Menu.js",
175 "start": { 175 "start": {
176 "line": 64, 176 "line": 65,
177 "column": 16 177 "column": 16
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 67, 180 "line": 68,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!Actual Size", 186 "defaultMessage": "!!!Actual Size",
187 "file": "src/lib/Menu.js", 187 "file": "src/lib/Menu.js",
188 "start": { 188 "start": {
189 "line": 68, 189 "line": 69,
190 "column": 13 190 "column": 13
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 71, 193 "line": 72,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Zoom In", 199 "defaultMessage": "!!!Zoom In",
200 "file": "src/lib/Menu.js", 200 "file": "src/lib/Menu.js",
201 "start": { 201 "start": {
202 "line": 72, 202 "line": 73,
203 "column": 10 203 "column": 10
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 75, 206 "line": 76,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!Zoom Out", 212 "defaultMessage": "!!!Zoom Out",
213 "file": "src/lib/Menu.js", 213 "file": "src/lib/Menu.js",
214 "start": { 214 "start": {
215 "line": 76, 215 "line": 77,
216 "column": 11 216 "column": 11
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 79, 219 "line": 80,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!Enter Full Screen", 225 "defaultMessage": "!!!Enter Full Screen",
226 "file": "src/lib/Menu.js", 226 "file": "src/lib/Menu.js",
227 "start": { 227 "start": {
228 "line": 80, 228 "line": 81,
229 "column": 19 229 "column": 19
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 83, 232 "line": 84,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!Exit Full Screen", 238 "defaultMessage": "!!!Exit Full Screen",
239 "file": "src/lib/Menu.js", 239 "file": "src/lib/Menu.js",
240 "start": { 240 "start": {
241 "line": 84, 241 "line": 85,
242 "column": 18 242 "column": 18
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 87, 245 "line": 88,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!Toggle Full Screen", 251 "defaultMessage": "!!!Toggle Full Screen",
252 "file": "src/lib/Menu.js", 252 "file": "src/lib/Menu.js",
253 "start": { 253 "start": {
254 "line": 88, 254 "line": 89,
255 "column": 20 255 "column": 20
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 91, 258 "line": 92,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!Toggle Developer Tools", 264 "defaultMessage": "!!!Toggle Developer Tools",
265 "file": "src/lib/Menu.js", 265 "file": "src/lib/Menu.js",
266 "start": { 266 "start": {
267 "line": 92, 267 "line": 93,
268 "column": 18 268 "column": 18
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 95, 271 "line": 96,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!Toggle Service Developer Tools", 277 "defaultMessage": "!!!Toggle Service Developer Tools",
278 "file": "src/lib/Menu.js", 278 "file": "src/lib/Menu.js",
279 "start": { 279 "start": {
280 "line": 96, 280 "line": 97,
281 "column": 25 281 "column": 25
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 99, 284 "line": 100,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,11 +290,11 @@
290 "defaultMessage": "!!!Reload Service", 290 "defaultMessage": "!!!Reload Service",
291 "file": "src/lib/Menu.js", 291 "file": "src/lib/Menu.js",
292 "start": { 292 "start": {
293 "line": 100, 293 "line": 101,
294 "column": 17 294 "column": 17
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 103, 297 "line": 104,
298 "column": 3 298 "column": 3
299 } 299 }
300 }, 300 },
@@ -303,11 +303,11 @@
303 "defaultMessage": "!!!Reload Franz", 303 "defaultMessage": "!!!Reload Franz",
304 "file": "src/lib/Menu.js", 304 "file": "src/lib/Menu.js",
305 "start": { 305 "start": {
306 "line": 104, 306 "line": 105,
307 "column": 15 307 "column": 15
308 }, 308 },
309 "end": { 309 "end": {
310 "line": 107, 310 "line": 108,
311 "column": 3 311 "column": 3
312 } 312 }
313 }, 313 },
@@ -316,11 +316,11 @@
316 "defaultMessage": "!!!Minimize", 316 "defaultMessage": "!!!Minimize",
317 "file": "src/lib/Menu.js", 317 "file": "src/lib/Menu.js",
318 "start": { 318 "start": {
319 "line": 108, 319 "line": 109,
320 "column": 12 320 "column": 12
321 }, 321 },
322 "end": { 322 "end": {
323 "line": 111, 323 "line": 112,
324 "column": 3 324 "column": 3
325 } 325 }
326 }, 326 },
@@ -329,11 +329,11 @@
329 "defaultMessage": "!!!Close", 329 "defaultMessage": "!!!Close",
330 "file": "src/lib/Menu.js", 330 "file": "src/lib/Menu.js",
331 "start": { 331 "start": {
332 "line": 112, 332 "line": 113,
333 "column": 9 333 "column": 9
334 }, 334 },
335 "end": { 335 "end": {
336 "line": 115, 336 "line": 116,
337 "column": 3 337 "column": 3
338 } 338 }
339 }, 339 },
@@ -342,11 +342,11 @@
342 "defaultMessage": "!!!Learn More", 342 "defaultMessage": "!!!Learn More",
343 "file": "src/lib/Menu.js", 343 "file": "src/lib/Menu.js",
344 "start": { 344 "start": {
345 "line": 116, 345 "line": 117,
346 "column": 13 346 "column": 13
347 }, 347 },
348 "end": { 348 "end": {
349 "line": 119, 349 "line": 120,
350 "column": 3 350 "column": 3
351 } 351 }
352 }, 352 },
@@ -355,11 +355,11 @@
355 "defaultMessage": "!!!Changelog", 355 "defaultMessage": "!!!Changelog",
356 "file": "src/lib/Menu.js", 356 "file": "src/lib/Menu.js",
357 "start": { 357 "start": {
358 "line": 120, 358 "line": 121,
359 "column": 13 359 "column": 13
360 }, 360 },
361 "end": { 361 "end": {
362 "line": 123, 362 "line": 124,
363 "column": 3 363 "column": 3
364 } 364 }
365 }, 365 },
@@ -368,11 +368,11 @@
368 "defaultMessage": "!!!Support", 368 "defaultMessage": "!!!Support",
369 "file": "src/lib/Menu.js", 369 "file": "src/lib/Menu.js",
370 "start": { 370 "start": {
371 "line": 124, 371 "line": 125,
372 "column": 11 372 "column": 11
373 }, 373 },
374 "end": { 374 "end": {
375 "line": 127, 375 "line": 128,
376 "column": 3 376 "column": 3
377 } 377 }
378 }, 378 },
@@ -381,11 +381,11 @@
381 "defaultMessage": "!!!Terms of Service", 381 "defaultMessage": "!!!Terms of Service",
382 "file": "src/lib/Menu.js", 382 "file": "src/lib/Menu.js",
383 "start": { 383 "start": {
384 "line": 128, 384 "line": 129,
385 "column": 7 385 "column": 7
386 }, 386 },
387 "end": { 387 "end": {
388 "line": 131, 388 "line": 132,
389 "column": 3 389 "column": 3
390 } 390 }
391 }, 391 },
@@ -394,11 +394,11 @@
394 "defaultMessage": "!!!Privacy Statement", 394 "defaultMessage": "!!!Privacy Statement",
395 "file": "src/lib/Menu.js", 395 "file": "src/lib/Menu.js",
396 "start": { 396 "start": {
397 "line": 132, 397 "line": 133,
398 "column": 11 398 "column": 11
399 }, 399 },
400 "end": { 400 "end": {
401 "line": 135, 401 "line": 136,
402 "column": 3 402 "column": 3
403 } 403 }
404 }, 404 },
@@ -407,11 +407,11 @@
407 "defaultMessage": "!!!File", 407 "defaultMessage": "!!!File",
408 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
409 "start": { 409 "start": {
410 "line": 136, 410 "line": 137,
411 "column": 8 411 "column": 8
412 }, 412 },
413 "end": { 413 "end": {
414 "line": 139, 414 "line": 140,
415 "column": 3 415 "column": 3
416 } 416 }
417 }, 417 },
@@ -420,11 +420,11 @@
420 "defaultMessage": "!!!View", 420 "defaultMessage": "!!!View",
421 "file": "src/lib/Menu.js", 421 "file": "src/lib/Menu.js",
422 "start": { 422 "start": {
423 "line": 140, 423 "line": 141,
424 "column": 8 424 "column": 8
425 }, 425 },
426 "end": { 426 "end": {
427 "line": 143, 427 "line": 144,
428 "column": 3 428 "column": 3
429 } 429 }
430 }, 430 },
@@ -433,11 +433,11 @@
433 "defaultMessage": "!!!Services", 433 "defaultMessage": "!!!Services",
434 "file": "src/lib/Menu.js", 434 "file": "src/lib/Menu.js",
435 "start": { 435 "start": {
436 "line": 144, 436 "line": 145,
437 "column": 12 437 "column": 12
438 }, 438 },
439 "end": { 439 "end": {
440 "line": 147, 440 "line": 148,
441 "column": 3 441 "column": 3
442 } 442 }
443 }, 443 },
@@ -446,11 +446,11 @@
446 "defaultMessage": "!!!Window", 446 "defaultMessage": "!!!Window",
447 "file": "src/lib/Menu.js", 447 "file": "src/lib/Menu.js",
448 "start": { 448 "start": {
449 "line": 148, 449 "line": 149,
450 "column": 10 450 "column": 10
451 }, 451 },
452 "end": { 452 "end": {
453 "line": 151, 453 "line": 152,
454 "column": 3 454 "column": 3
455 } 455 }
456 }, 456 },
@@ -459,11 +459,11 @@
459 "defaultMessage": "!!!Help", 459 "defaultMessage": "!!!Help",
460 "file": "src/lib/Menu.js", 460 "file": "src/lib/Menu.js",
461 "start": { 461 "start": {
462 "line": 152, 462 "line": 153,
463 "column": 8 463 "column": 8
464 }, 464 },
465 "end": { 465 "end": {
466 "line": 155, 466 "line": 156,
467 "column": 3 467 "column": 3
468 } 468 }
469 }, 469 },
@@ -472,11 +472,11 @@
472 "defaultMessage": "!!!About Franz", 472 "defaultMessage": "!!!About Franz",
473 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
474 "start": { 474 "start": {
475 "line": 156, 475 "line": 157,
476 "column": 9 476 "column": 9
477 }, 477 },
478 "end": { 478 "end": {
479 "line": 159, 479 "line": 160,
480 "column": 3 480 "column": 3
481 } 481 }
482 }, 482 },
@@ -485,11 +485,11 @@
485 "defaultMessage": "!!!Settings", 485 "defaultMessage": "!!!Settings",
486 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
487 "start": { 487 "start": {
488 "line": 160, 488 "line": 161,
489 "column": 12 489 "column": 12
490 }, 490 },
491 "end": { 491 "end": {
492 "line": 163, 492 "line": 164,
493 "column": 3 493 "column": 3
494 } 494 }
495 }, 495 },
@@ -498,11 +498,11 @@
498 "defaultMessage": "!!!Hide", 498 "defaultMessage": "!!!Hide",
499 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
500 "start": { 500 "start": {
501 "line": 164, 501 "line": 165,
502 "column": 8 502 "column": 8
503 }, 503 },
504 "end": { 504 "end": {
505 "line": 167, 505 "line": 168,
506 "column": 3 506 "column": 3
507 } 507 }
508 }, 508 },
@@ -511,11 +511,11 @@
511 "defaultMessage": "!!!Hide Others", 511 "defaultMessage": "!!!Hide Others",
512 "file": "src/lib/Menu.js", 512 "file": "src/lib/Menu.js",
513 "start": { 513 "start": {
514 "line": 168, 514 "line": 169,
515 "column": 14 515 "column": 14
516 }, 516 },
517 "end": { 517 "end": {
518 "line": 171, 518 "line": 172,
519 "column": 3 519 "column": 3
520 } 520 }
521 }, 521 },
@@ -524,11 +524,11 @@
524 "defaultMessage": "!!!Unhide", 524 "defaultMessage": "!!!Unhide",
525 "file": "src/lib/Menu.js", 525 "file": "src/lib/Menu.js",
526 "start": { 526 "start": {
527 "line": 172, 527 "line": 173,
528 "column": 10 528 "column": 10
529 }, 529 },
530 "end": { 530 "end": {
531 "line": 175, 531 "line": 176,
532 "column": 3 532 "column": 3
533 } 533 }
534 }, 534 },
@@ -537,11 +537,11 @@
537 "defaultMessage": "!!!Quit", 537 "defaultMessage": "!!!Quit",
538 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
539 "start": { 539 "start": {
540 "line": 176, 540 "line": 177,
541 "column": 8 541 "column": 8
542 }, 542 },
543 "end": { 543 "end": {
544 "line": 179, 544 "line": 180,
545 "column": 3 545 "column": 3
546 } 546 }
547 }, 547 },
@@ -550,11 +550,11 @@
550 "defaultMessage": "!!!Add New Service...", 550 "defaultMessage": "!!!Add New Service...",
551 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
552 "start": { 552 "start": {
553 "line": 180, 553 "line": 181,
554 "column": 17 554 "column": 17
555 }, 555 },
556 "end": { 556 "end": {
557 "line": 183, 557 "line": 184,
558 "column": 3 558 "column": 3
559 } 559 }
560 }, 560 },
@@ -563,11 +563,11 @@
563 "defaultMessage": "!!!Add New Workspace...", 563 "defaultMessage": "!!!Add New Workspace...",
564 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
565 "start": { 565 "start": {
566 "line": 184, 566 "line": 185,
567 "column": 19 567 "column": 19
568 }, 568 },
569 "end": { 569 "end": {
570 "line": 187, 570 "line": 188,
571 "column": 3 571 "column": 3
572 } 572 }
573 }, 573 },
@@ -576,11 +576,11 @@
576 "defaultMessage": "!!!Open workspace drawer", 576 "defaultMessage": "!!!Open workspace drawer",
577 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
578 "start": { 578 "start": {
579 "line": 188, 579 "line": 189,
580 "column": 23 580 "column": 23
581 }, 581 },
582 "end": { 582 "end": {
583 "line": 191, 583 "line": 192,
584 "column": 3 584 "column": 3
585 } 585 }
586 }, 586 },
@@ -589,11 +589,11 @@
589 "defaultMessage": "!!!Close workspace drawer", 589 "defaultMessage": "!!!Close workspace drawer",
590 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
591 "start": { 591 "start": {
592 "line": 192, 592 "line": 193,
593 "column": 24 593 "column": 24
594 }, 594 },
595 "end": { 595 "end": {
596 "line": 195, 596 "line": 196,
597 "column": 3 597 "column": 3
598 } 598 }
599 }, 599 },
@@ -602,11 +602,11 @@
602 "defaultMessage": "!!!Activate next service...", 602 "defaultMessage": "!!!Activate next service...",
603 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
604 "start": { 604 "start": {
605 "line": 196, 605 "line": 197,
606 "column": 23 606 "column": 23
607 }, 607 },
608 "end": { 608 "end": {
609 "line": 199, 609 "line": 200,
610 "column": 3 610 "column": 3
611 } 611 }
612 }, 612 },
@@ -615,11 +615,11 @@
615 "defaultMessage": "!!!Activate previous service...", 615 "defaultMessage": "!!!Activate previous service...",
616 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
617 "start": { 617 "start": {
618 "line": 200, 618 "line": 201,
619 "column": 27 619 "column": 27
620 }, 620 },
621 "end": { 621 "end": {
622 "line": 203, 622 "line": 204,
623 "column": 3 623 "column": 3
624 } 624 }
625 }, 625 },
@@ -628,11 +628,11 @@
628 "defaultMessage": "!!!Disable notifications & audio", 628 "defaultMessage": "!!!Disable notifications & audio",
629 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
630 "start": { 630 "start": {
631 "line": 204, 631 "line": 205,
632 "column": 11 632 "column": 11
633 }, 633 },
634 "end": { 634 "end": {
635 "line": 207, 635 "line": 208,
636 "column": 3 636 "column": 3
637 } 637 }
638 }, 638 },
@@ -641,11 +641,11 @@
641 "defaultMessage": "!!!Enable notifications & audio", 641 "defaultMessage": "!!!Enable notifications & audio",
642 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
643 "start": { 643 "start": {
644 "line": 208, 644 "line": 209,
645 "column": 13 645 "column": 13
646 }, 646 },
647 "end": { 647 "end": {
648 "line": 211, 648 "line": 212,
649 "column": 3 649 "column": 3
650 } 650 }
651 }, 651 },
@@ -654,11 +654,11 @@
654 "defaultMessage": "!!!Workspaces", 654 "defaultMessage": "!!!Workspaces",
655 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
656 "start": { 656 "start": {
657 "line": 212, 657 "line": 213,
658 "column": 14 658 "column": 14
659 }, 659 },
660 "end": { 660 "end": {
661 "line": 215, 661 "line": 216,
662 "column": 3 662 "column": 3
663 } 663 }
664 }, 664 },
@@ -667,11 +667,11 @@
667 "defaultMessage": "!!!Default", 667 "defaultMessage": "!!!Default",
668 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
669 "start": { 669 "start": {
670 "line": 216, 670 "line": 217,
671 "column": 20 671 "column": 20
672 }, 672 },
673 "end": { 673 "end": {
674 "line": 219, 674 "line": 220,
675 "column": 3 675 "column": 3
676 } 676 }
677 } 677 }
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 3d6b6c824..d19aa9d6e 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -3,8 +3,9 @@ import { observable, autorun } from 'mobx';
3import { defineMessages } from 'react-intl'; 3import { defineMessages } from 'react-intl';
4 4
5import { isMac, ctrlKey, cmdKey } from '../environment'; 5import { isMac, ctrlKey, cmdKey } from '../environment';
6import { workspaceStore } from '../features/workspaces/index'; 6import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../features/workspaces/index';
7import { workspaceActions } from '../features/workspaces/actions'; 7import { workspaceActions } from '../features/workspaces/actions';
8import { gaEvent } from './analytics';
8 9
9const { app, Menu, dialog } = remote; 10const { app, Menu, dialog } = remote;
10 11
@@ -809,6 +810,7 @@ export default class FranzMenu {
809 accelerator: `${cmdKey}+D`, 810 accelerator: `${cmdKey}+D`,
810 click: () => { 811 click: () => {
811 workspaceActions.toggleWorkspaceDrawer(); 812 workspaceActions.toggleWorkspaceDrawer();
813 gaEvent(GA_CATEGORY_WORKSPACES, 'toggleDrawer', 'menu');
812 }, 814 },
813 enabled: this.stores.user.isLoggedIn, 815 enabled: this.stores.user.isLoggedIn,
814 }, { 816 }, {
@@ -823,6 +825,7 @@ export default class FranzMenu {
823 checked: !activeWorkspace, 825 checked: !activeWorkspace,
824 click: () => { 826 click: () => {
825 workspaceActions.deactivate(); 827 workspaceActions.deactivate();
828 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'menu');
826 }, 829 },
827 }); 830 });
828 831
@@ -835,6 +838,7 @@ export default class FranzMenu {
835 checked: activeWorkspace ? workspace.id === activeWorkspace.id : false, 838 checked: activeWorkspace ? workspace.id === activeWorkspace.id : false,
836 click: () => { 839 click: () => {
837 workspaceActions.activate({ workspace }); 840 workspaceActions.activate({ workspace });
841 gaEvent(GA_CATEGORY_WORKSPACES, 'switch', 'menu');
838 }, 842 },
839 })); 843 }));
840 } 844 }
diff --git a/src/lib/analytics.js b/src/lib/analytics.js
index 0519192d1..e7daa9d06 100644
--- a/src/lib/analytics.js
+++ b/src/lib/analytics.js
@@ -28,12 +28,10 @@ ga('send', 'App');
28 28
29export function gaPage(page) { 29export function gaPage(page) {
30 ga('send', 'pageview', page); 30 ga('send', 'pageview', page);
31
32 debug('GA track page', page); 31 debug('GA track page', page);
33} 32}
34 33
35export function gaEvent(category, action, label) { 34export function gaEvent(category, action, label) {
36 ga('send', 'event', category, action, label); 35 ga('send', 'event', category, action, label);
37 36 debug('GA track event', category, action, label);
38 debug('GA track event', category, action);
39} 37}