@imposium-hub/components 2.6.0-0 → 2.6.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/Util.d.ts +1 -1
  2. package/dist/cjs/Util.js +33 -20
  3. package/dist/cjs/Util.js.map +1 -1
  4. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +26 -5
  5. package/dist/cjs/components/app-wrapper/AppWrapper.js +110 -22
  6. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  7. package/dist/cjs/components/assets/StoryTableNameFilter.d.ts +9 -2
  8. package/dist/cjs/components/assets/StoryTableNameFilter.js +3 -13
  9. package/dist/cjs/components/assets/StoryTableNameFilter.js.map +1 -1
  10. package/dist/cjs/components/context-menu/AnimateComponent.d.ts +6 -6
  11. package/dist/cjs/components/context-menu/AnimateComponent.js.map +1 -1
  12. package/dist/cjs/components/context-menu/ContextMenu.d.ts +12 -27
  13. package/dist/cjs/components/context-menu/ContextMenu.js +2 -15
  14. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  15. package/dist/cjs/components/context-menu/ContextMenuItem.d.ts +6 -18
  16. package/dist/cjs/components/context-menu/ContextMenuItem.js +2 -21
  17. package/dist/cjs/components/context-menu/ContextMenuItem.js.map +1 -1
  18. package/dist/cjs/components/context-menu/ContextMenuTrigger.d.ts +6 -16
  19. package/dist/cjs/components/context-menu/ContextMenuTrigger.js +2 -20
  20. package/dist/cjs/components/context-menu/ContextMenuTrigger.js.map +1 -1
  21. package/dist/cjs/components/context-menu/SubMenu.d.ts +4 -12
  22. package/dist/cjs/components/context-menu/SubMenu.js +2 -17
  23. package/dist/cjs/components/context-menu/SubMenu.js.map +1 -1
  24. package/dist/cjs/components/data-table/Paginator.d.ts +16 -1
  25. package/dist/cjs/components/data-table/Paginator.js +1 -1
  26. package/dist/cjs/components/data-table/Paginator.js.map +1 -1
  27. package/dist/cjs/components/font-picker/font-manager/constants.d.ts +4 -0
  28. package/dist/cjs/components/font-picker/font-manager/constants.js +5 -1
  29. package/dist/cjs/components/font-picker/font-manager/constants.js.map +1 -1
  30. package/dist/cjs/components/header/Header.d.ts +4 -5
  31. package/dist/cjs/components/header/Header.js +77 -128
  32. package/dist/cjs/components/header/Header.js.map +1 -1
  33. package/dist/cjs/components/header/ProjectDropdown.d.ts +13 -0
  34. package/dist/cjs/components/header/ProjectDropdown.js +128 -0
  35. package/dist/cjs/components/header/ProjectDropdown.js.map +1 -0
  36. package/dist/cjs/components/header/StoryDropdown.d.ts +6 -0
  37. package/dist/cjs/components/header/StoryDropdown.js +111 -0
  38. package/dist/cjs/components/header/StoryDropdown.js.map +1 -0
  39. package/dist/cjs/components/portal/Portal.d.ts +0 -2
  40. package/dist/cjs/components/portal/Portal.js.map +1 -1
  41. package/dist/cjs/components/publish-wizard/PublishWizard.d.ts +1 -3
  42. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  43. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  44. package/dist/cjs/constants/copy.d.ts +3 -0
  45. package/dist/cjs/constants/copy.js +3 -0
  46. package/dist/cjs/constants/copy.js.map +1 -1
  47. package/dist/cjs/index.d.ts +4 -2
  48. package/dist/cjs/index.js +10 -4
  49. package/dist/cjs/index.js.map +1 -1
  50. package/dist/cjs/redux/actions/access.js +44 -37
  51. package/dist/cjs/redux/actions/access.js.map +1 -1
  52. package/dist/cjs/services/API.d.ts +9 -2
  53. package/dist/cjs/services/API.js +198 -75
  54. package/dist/cjs/services/API.js.map +1 -1
  55. package/dist/cjs/utils/modal.d.ts +2 -0
  56. package/dist/cjs/utils/modal.js +11 -0
  57. package/dist/cjs/utils/modal.js.map +1 -0
  58. package/dist/cjs/utils/pendo.d.ts +2 -0
  59. package/dist/cjs/utils/pendo.js +39 -0
  60. package/dist/cjs/utils/pendo.js.map +1 -0
  61. package/dist/cjs/utils/routing.d.ts +2 -0
  62. package/dist/cjs/utils/routing.js +10 -1
  63. package/dist/cjs/utils/routing.js.map +1 -1
  64. package/dist/esm/Util.d.ts +1 -1
  65. package/dist/esm/Util.js +10 -19
  66. package/dist/esm/Util.js.map +1 -1
  67. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +26 -5
  68. package/dist/esm/components/app-wrapper/AppWrapper.js +103 -19
  69. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  70. package/dist/esm/components/assets/StoryTableNameFilter.d.ts +9 -2
  71. package/dist/esm/components/assets/StoryTableNameFilter.js +3 -13
  72. package/dist/esm/components/assets/StoryTableNameFilter.js.map +1 -1
  73. package/dist/esm/components/context-menu/AnimateComponent.d.ts +6 -6
  74. package/dist/esm/components/context-menu/AnimateComponent.js.map +1 -1
  75. package/dist/esm/components/context-menu/ContextMenu.d.ts +12 -27
  76. package/dist/esm/components/context-menu/ContextMenu.js +2 -4
  77. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  78. package/dist/esm/components/context-menu/ContextMenuItem.d.ts +6 -18
  79. package/dist/esm/components/context-menu/ContextMenuItem.js +2 -10
  80. package/dist/esm/components/context-menu/ContextMenuItem.js.map +1 -1
  81. package/dist/esm/components/context-menu/ContextMenuTrigger.d.ts +6 -16
  82. package/dist/esm/components/context-menu/ContextMenuTrigger.js +2 -9
  83. package/dist/esm/components/context-menu/ContextMenuTrigger.js.map +1 -1
  84. package/dist/esm/components/context-menu/SubMenu.d.ts +4 -12
  85. package/dist/esm/components/context-menu/SubMenu.js +2 -6
  86. package/dist/esm/components/context-menu/SubMenu.js.map +1 -1
  87. package/dist/esm/components/data-table/Paginator.d.ts +16 -1
  88. package/dist/esm/components/data-table/Paginator.js +1 -1
  89. package/dist/esm/components/data-table/Paginator.js.map +1 -1
  90. package/dist/esm/components/font-picker/font-manager/constants.d.ts +4 -0
  91. package/dist/esm/components/font-picker/font-manager/constants.js +4 -0
  92. package/dist/esm/components/font-picker/font-manager/constants.js.map +1 -1
  93. package/dist/esm/components/header/Header.d.ts +4 -5
  94. package/dist/esm/components/header/Header.js +75 -117
  95. package/dist/esm/components/header/Header.js.map +1 -1
  96. package/dist/esm/components/header/ProjectDropdown.d.ts +13 -0
  97. package/dist/esm/components/header/ProjectDropdown.js +101 -0
  98. package/dist/esm/components/header/ProjectDropdown.js.map +1 -0
  99. package/dist/esm/components/header/StoryDropdown.d.ts +6 -0
  100. package/dist/esm/components/header/StoryDropdown.js +82 -0
  101. package/dist/esm/components/header/StoryDropdown.js.map +1 -0
  102. package/dist/esm/components/portal/Portal.d.ts +0 -2
  103. package/dist/esm/components/portal/Portal.js.map +1 -1
  104. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +1 -3
  105. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  106. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  107. package/dist/esm/constants/copy.d.ts +3 -0
  108. package/dist/esm/constants/copy.js +3 -0
  109. package/dist/esm/constants/copy.js.map +1 -1
  110. package/dist/esm/index.d.ts +4 -2
  111. package/dist/esm/index.js +4 -2
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/redux/actions/access.js +63 -56
  114. package/dist/esm/redux/actions/access.js.map +1 -1
  115. package/dist/esm/services/API.d.ts +9 -2
  116. package/dist/esm/services/API.js +43 -18
  117. package/dist/esm/services/API.js.map +1 -1
  118. package/dist/esm/utils/modal.d.ts +2 -0
  119. package/dist/esm/utils/modal.js +7 -0
  120. package/dist/esm/utils/modal.js.map +1 -0
  121. package/dist/esm/utils/pendo.d.ts +2 -0
  122. package/dist/esm/utils/pendo.js +29 -0
  123. package/dist/esm/utils/pendo.js.map +1 -0
  124. package/dist/esm/utils/routing.d.ts +2 -0
  125. package/dist/esm/utils/routing.js +7 -0
  126. package/dist/esm/utils/routing.js.map +1 -1
  127. package/package.json +10 -7
  128. package/src/Util.ts +10 -16
  129. package/src/components/app-wrapper/AppWrapper.tsx +167 -26
  130. package/src/components/assets/StoryTableNameFilter.tsx +6 -22
  131. package/src/components/context-menu/AnimateComponent.tsx +12 -1
  132. package/src/components/context-menu/ContextMenu.tsx +16 -8
  133. package/src/components/context-menu/ContextMenuItem.tsx +12 -11
  134. package/src/components/context-menu/ContextMenuTrigger.tsx +12 -10
  135. package/src/components/context-menu/SubMenu.tsx +6 -8
  136. package/src/components/data-table/Paginator.tsx +19 -6
  137. package/src/components/font-picker/font-manager/constants.ts +5 -0
  138. package/src/components/header/Header.tsx +105 -192
  139. package/src/components/header/ProjectDropdown.tsx +174 -0
  140. package/src/components/portal/Portal.tsx +1 -2
  141. package/src/components/publish-wizard/PublishWizard.tsx +1 -1
  142. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +7 -1
  143. package/src/constants/copy.ts +3 -0
  144. package/src/index.ts +8 -3
  145. package/src/redux/actions/access.ts +64 -72
  146. package/src/services/API.ts +55 -20
  147. package/src/utils/modal.ts +9 -0
  148. package/src/utils/pendo.ts +38 -0
  149. package/src/utils/routing.ts +10 -0
@@ -1,33 +1,31 @@
1
+ import { getOrgIdFromStory } from '../../Util';
2
+
1
3
  export const storyAdded = (storyId: string, storyName: string): any => {
2
4
  return (dispatch, getStore) => {
3
- const {
4
- access,
5
- routing: {
6
- locationBeforeTransitions: { query }
7
- }
8
- } = getStore();
9
- const orgId: string = query.organization_id;
10
-
11
- const accessData: any = {
12
- ...access,
13
- organizations: access.organizations.map((o: any) => {
14
- if (o.id === orgId) {
15
- return {
16
- ...o,
17
- stories: [
18
- ...o.stories,
19
- {
20
- id: storyId,
21
- name: storyName
22
- }
23
- ].sort((a, b) => a.name.localeCompare(b.name))
24
- };
25
- }
5
+ const { access } = getStore();
6
+ const orgId = getOrgIdFromStory(storyId, access);
7
+ if (orgId) {
8
+ const accessData: any = {
9
+ ...access,
10
+ organizations: access.organizations.map((o: any) => {
11
+ if (o.id === orgId) {
12
+ return {
13
+ ...o,
14
+ stories: [
15
+ ...o.stories,
16
+ {
17
+ id: storyId,
18
+ name: storyName
19
+ }
20
+ ].sort((a, b) => a.name.localeCompare(b.name))
21
+ };
22
+ }
26
23
 
27
- return o;
28
- })
29
- };
30
- dispatch({ type: actions.STORY_ADDED, accessData });
24
+ return o;
25
+ })
26
+ };
27
+ dispatch({ type: actions.STORY_ADDED, accessData });
28
+ }
31
29
  };
32
30
  };
33
31
 
@@ -54,61 +52,55 @@ export const orgNameMutated = (orgId: string, newOrgName: string): any => {
54
52
 
55
53
  export const storyNameMutated = (storyId: string, newStoryName: string): any => {
56
54
  return (dispatch, getStore) => {
57
- const {
58
- access,
59
- routing: {
60
- locationBeforeTransitions: { query }
61
- }
62
- } = getStore();
63
- const orgId: string = query.organization_id;
55
+ const { access } = getStore();
64
56
 
65
- const accessData: any = {
66
- ...access,
67
- organizations: access.organizations.map((o: any) => {
68
- if (o.id === orgId) {
69
- return {
70
- ...o,
71
- stories: o.stories.map((s: any) => {
72
- if (s.id === storyId) {
73
- return { ...s, name: newStoryName };
74
- }
57
+ const orgId = getOrgIdFromStory(storyId, access);
58
+ if (orgId) {
59
+ const accessData: any = {
60
+ ...access,
61
+ organizations: access.organizations.map((o: any) => {
62
+ if (o.id === orgId) {
63
+ return {
64
+ ...o,
65
+ stories: o.stories.map((s: any) => {
66
+ if (s.id === storyId) {
67
+ return { ...s, name: newStoryName };
68
+ }
75
69
 
76
- return s;
77
- })
78
- };
79
- }
70
+ return s;
71
+ })
72
+ };
73
+ }
80
74
 
81
- return o;
82
- })
83
- };
84
- dispatch({ type: actions.STORY_NAME_MUTATION, accessData });
75
+ return o;
76
+ })
77
+ };
78
+ dispatch({ type: actions.STORY_NAME_MUTATION, accessData });
79
+ }
85
80
  };
86
81
  };
87
82
 
88
83
  export const storyDeleted = (storyId: string): any => {
89
84
  return (dispatch, getStore) => {
90
- const {
91
- access,
92
- routing: {
93
- locationBeforeTransitions: { query }
94
- }
95
- } = getStore();
96
- const orgId: string = query.organization_id;
85
+ const { access } = getStore();
97
86
 
98
- const accessData: any = {
99
- ...access,
100
- organizations: access.organizations.map((o: any) => {
101
- if (o.id === orgId) {
102
- return {
103
- ...o,
104
- stories: o.stories.filter((s: any) => s.id !== storyId)
105
- };
106
- }
87
+ const orgId = getOrgIdFromStory(storyId, access);
88
+ if (orgId) {
89
+ const accessData: any = {
90
+ ...access,
91
+ organizations: access.organizations.map((o: any) => {
92
+ if (o.id === orgId) {
93
+ return {
94
+ ...o,
95
+ stories: o.stories.filter((s: any) => s.id !== storyId)
96
+ };
97
+ }
107
98
 
108
- return o;
109
- })
110
- };
111
- dispatch({ type: actions.STORY_DELETED, accessData });
99
+ return o;
100
+ })
101
+ };
102
+ dispatch({ type: actions.STORY_DELETED, accessData });
103
+ }
112
104
  };
113
105
  };
114
106
 
@@ -8,8 +8,10 @@ import axios, {
8
8
  } from 'axios';
9
9
  import { isObjEmpty } from '../Util';
10
10
  import { JOB_TYPES } from '../constants/api';
11
+ import { API_AUTH_TYPES } from '../components/font-picker/font-manager/constants';
11
12
 
12
13
  export interface IImposiumAPI {
14
+ init(baseUrl: string, credentials: any, orgId?: string);
13
15
  getAssets(filters: any, storyId: string, unprocessed?: boolean, showVariables?: boolean);
14
16
  getAssetItem(assetId: string);
15
17
  uploadAsset(
@@ -145,9 +147,13 @@ export interface IImposiumAPI {
145
147
  getAssetMap(storyId: string);
146
148
  clearStoryCache(storyId: string);
147
149
  debugId(id: string);
148
- cacheActiveStory(serviceId: string, orgId: string, storyId: string);
150
+ cacheActiveStory(serviceId: any, orgId: string, storyId: string);
149
151
  getCachedStoryForOrg(serviceId: string, orgId: string);
150
152
  getAccessData(includeTotalRenders?: boolean, orgId?: string);
153
+ deleteExperience(experienceId: string, eraseMedia?: boolean);
154
+ exportExperiences(experienceId: string, params: any);
155
+ addOrReplaceNote(experienceId: string, notes: string);
156
+ updateModerationStatus(experienceId: string, status: string, reason?: string);
151
157
  }
152
158
 
153
159
  interface ITTSOptions {
@@ -183,38 +189,51 @@ export default class API {
183
189
 
184
190
  private cancelTokens: object = {};
185
191
 
186
- constructor(baseURL: string, idToken: string, organizationId?: string) {
192
+ private getToken;
193
+
194
+ private authType;
195
+
196
+ public init(baseURL: string, credentials: any, organizationId?: string): void {
187
197
  // JWT
188
198
  const headers = {
189
- 'Authorization': `Bearer ${idToken}`,
190
199
  'X-Imposium-API-Version': '2.0.2'
191
- // 'X-Imposium-Account-Id': organizationId || ''
192
200
  };
193
201
 
194
202
  if (organizationId) {
195
203
  headers['X-Imposium-Account-Id'] = organizationId;
196
204
  }
197
- if (idToken) {
198
- this.http = axios.create({
199
- baseURL,
200
- headers
201
- });
202
205
 
203
- // Basic Access Key
204
- } else {
206
+ // If the token is a string, it's an accessKey, so use the X-Imposium-Access-Key header
207
+ if (typeof credentials === 'string') {
208
+ this.authType = API_AUTH_TYPES.ACCESS_KEY;
205
209
  this.http = axios.create({
206
210
  baseURL,
207
211
  headers: {
208
- 'X-Imposium-Access-Key': `${idToken}`,
212
+ 'X-Imposium-Access-Key': `${credentials}`,
209
213
  'X-Imposium-API-Version': '2.0.0'
210
214
  }
211
215
  });
216
+ } else {
217
+ this.authType = API_AUTH_TYPES.TOKEN;
218
+ this.http = axios.create({
219
+ baseURL,
220
+ headers
221
+ });
212
222
  }
213
223
 
224
+ this.getToken = credentials;
214
225
  this.awsHttp = axios.create();
215
226
  }
216
227
 
217
- private doRequest = (config: AxiosRequestConfig, reqAlias: string = ''): Promise<any> => {
228
+ private doRequest = async (config: AxiosRequestConfig, reqAlias: string = ''): Promise<any> => {
229
+ if (this.authType === API_AUTH_TYPES.TOKEN) {
230
+ const token = await this.getToken();
231
+ const headers = {
232
+ Authorization: `Bearer ${token}`
233
+ };
234
+ config.headers = headers;
235
+ }
236
+
218
237
  return new Promise((resolve, reject) => {
219
238
  this.http(config)
220
239
  .then((res: AxiosResponse) => {
@@ -1024,11 +1043,19 @@ export default class API {
1024
1043
  };
1025
1044
 
1026
1045
  return new Promise((resolve, reject) => {
1027
- this.pollForJob(config, resolve, reject);
1046
+ void this.pollForJob(config, resolve, reject);
1028
1047
  });
1029
1048
  };
1030
1049
 
1031
- private pollForJob = (config, resolve, reject) => {
1050
+ private pollForJob = async (config, resolve, reject) => {
1051
+ if (this.authType === API_AUTH_TYPES.TOKEN) {
1052
+ const token = await this.getToken();
1053
+ const headers = {
1054
+ Authorization: `Bearer ${token}`
1055
+ };
1056
+ config.headers = headers;
1057
+ }
1058
+
1032
1059
  this.http(config)
1033
1060
  .then((res: AxiosResponse) => {
1034
1061
  const {
@@ -1041,7 +1068,7 @@ export default class API {
1041
1068
  resolve(res.data);
1042
1069
  } else {
1043
1070
  this.jobPollTimer = setTimeout(() => {
1044
- this.pollForJob(config, resolve, reject);
1071
+ void this.pollForJob(config, resolve, reject);
1045
1072
  }, this.pollingInterval);
1046
1073
  }
1047
1074
  })
@@ -1050,7 +1077,15 @@ export default class API {
1050
1077
  });
1051
1078
  };
1052
1079
 
1053
- private pollForExperience = (config, resolve, reject) => {
1080
+ private pollForExperience = async (config, resolve, reject) => {
1081
+ if (this.authType === API_AUTH_TYPES.TOKEN) {
1082
+ const token = await this.getToken();
1083
+ const headers = {
1084
+ Authorization: `Bearer ${token}`
1085
+ };
1086
+ config.headers = headers;
1087
+ }
1088
+
1054
1089
  this.http(config)
1055
1090
  .then((res: AxiosResponse) => {
1056
1091
  if (res.data.status === 'failed') {
@@ -1060,14 +1095,14 @@ export default class API {
1060
1095
  } else if (res.data.output !== undefined) {
1061
1096
  if (isObjEmpty(res.data.output)) {
1062
1097
  this.experiencePollTimer = setTimeout(() => {
1063
- this.pollForExperience(config, resolve, reject);
1098
+ void this.pollForExperience(config, resolve, reject);
1064
1099
  }, this.pollingInterval);
1065
1100
  } else {
1066
1101
  resolve(res.data);
1067
1102
  }
1068
1103
  } else {
1069
1104
  this.experiencePollTimer = setTimeout(() => {
1070
- this.pollForExperience(config, resolve, reject);
1105
+ void this.pollForExperience(config, resolve, reject);
1071
1106
  }, this.pollingInterval);
1072
1107
  }
1073
1108
  })
@@ -1189,7 +1224,7 @@ export default class API {
1189
1224
  return this.doRequest(config);
1190
1225
  } else {
1191
1226
  return new Promise((resolve, reject) => {
1192
- this.pollForExperience(config, resolve, reject);
1227
+ void this.pollForExperience(config, resolve, reject);
1193
1228
  });
1194
1229
  }
1195
1230
  };
@@ -0,0 +1,9 @@
1
+ import { IConfirmModalProps } from '../components/confirm-modal/ConfirmModal';
2
+
3
+ export const openConfirmModal = (detail: IConfirmModalProps) => {
4
+ const event = new CustomEvent('openconfirmmodal', {
5
+ detail
6
+ });
7
+
8
+ window.dispatchEvent(event);
9
+ };
@@ -0,0 +1,38 @@
1
+ import { User } from '@auth0/auth0-react';
2
+ declare const pendo;
3
+
4
+ export const initPendo = (appLabel, environment, userInfo: User) => {
5
+ if (environment !== 'production') {
6
+ console.info(
7
+ '%cPendo%c is %cdisabled%c for local testing',
8
+ 'color: #e247e5; font-weight:bold;',
9
+ 'color:#fff; font-weight:normal;',
10
+ 'color:red; font-weight:bold;',
11
+ 'color:#fff; font-weight:normal;'
12
+ );
13
+ return;
14
+ }
15
+
16
+ try {
17
+ const visitor = {
18
+ id: userInfo.sub,
19
+ email: userInfo.email
20
+ };
21
+
22
+ /* eslint-disable no-undef */
23
+ pendo.initialize({
24
+ visitor: {
25
+ ...visitor,
26
+ environment,
27
+ product: appLabel,
28
+ language: navigator.language
29
+ }
30
+ });
31
+ /* eslint-enable no-undef */
32
+ } catch (err) {
33
+ console.groupCollapsed('Pendo Init Problem');
34
+ console.error('Problem Starting up Pendo');
35
+ console.error(err);
36
+ console.groupEnd();
37
+ }
38
+ };
@@ -1,3 +1,13 @@
1
+ import { browserHistory } from 'react-router';
2
+
3
+ export const pushRoute = (route): void => {
4
+ browserHistory.push(route);
5
+ };
6
+
7
+ export const replaceRoute = (route): void => {
8
+ browserHistory.replace(route);
9
+ };
10
+
1
11
  export const getDemoURL = (): string => {
2
12
  const {
3
13
  location: { href }