@imposium-hub/components 2.9.0-14 → 2.9.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.
- package/dist/cjs/Util.js +0 -6
- package/dist/cjs/Util.js.map +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper.js +0 -5
- package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableAssetIdFilter.js +1 -1
- package/dist/cjs/components/assets/AssetsTableAssetIdFilter.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableNameFilter.js +1 -1
- package/dist/cjs/components/assets/AssetsTableNameFilter.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTablePreviewCell.d.ts +0 -1
- package/dist/cjs/components/assets/AssetsTablePreviewCell.js +4 -7
- package/dist/cjs/components/assets/AssetsTablePreviewCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableTagsFilter.js +1 -1
- package/dist/cjs/components/assets/AssetsTableTagsFilter.js.map +1 -1
- package/dist/cjs/components/assets/AssetsUploadMenu.js +2 -4
- package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/cjs/components/auth-gate/AuthGate.d.ts +2 -0
- package/dist/cjs/components/auth-gate/AuthGate.js +105 -0
- package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -0
- package/dist/cjs/components/confirm-modal/ConfirmModal.js +2 -3
- package/dist/cjs/components/confirm-modal/ConfirmModal.js.map +1 -1
- package/dist/cjs/components/field-wrapper/FieldWrapper.d.ts +0 -1
- package/dist/cjs/components/field-wrapper/FieldWrapper.js +8 -10
- package/dist/cjs/components/field-wrapper/FieldWrapper.js.map +1 -1
- package/dist/cjs/components/header/Header.js +7 -10
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/number-field/NumberField.d.ts +0 -1
- package/dist/cjs/components/number-field/NumberField.js +2 -5
- package/dist/cjs/components/number-field/NumberField.js.map +1 -1
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +28 -61
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.d.ts +0 -1
- package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js +12 -34
- package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js.map +1 -1
- package/dist/cjs/components/slider-field/SliderField.d.ts +0 -2
- package/dist/cjs/components/slider-field/SliderField.js +8 -17
- package/dist/cjs/components/slider-field/SliderField.js.map +1 -1
- package/dist/cjs/components/story-previewer/StoryPreviewer.js +3 -17
- package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/cjs/components/tabs/Tabs.js +1 -2
- package/dist/cjs/components/tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/text-field/TextField.d.ts +0 -1
- package/dist/cjs/components/text-field/TextField.js +2 -2
- package/dist/cjs/components/text-field/TextField.js.map +1 -1
- package/dist/cjs/constants/copy.d.ts +1 -5
- package/dist/cjs/constants/copy.js +2 -6
- package/dist/cjs/constants/copy.js.map +1 -1
- package/dist/cjs/constants/icons.d.ts +0 -2
- package/dist/cjs/constants/icons.js +1 -3
- package/dist/cjs/constants/icons.js.map +1 -1
- package/dist/cjs/constants/publish.d.ts +0 -3
- package/dist/cjs/constants/publish.js +3 -5
- package/dist/cjs/constants/publish.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/redux/actions/asset-uploads.d.ts +1 -1
- package/dist/cjs/redux/actions/asset-uploads.js +119 -169
- package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
- package/dist/cjs/redux/actions/auth.d.ts +9 -0
- package/dist/cjs/redux/actions/auth.js +30 -0
- package/dist/cjs/redux/actions/auth.js.map +1 -0
- package/dist/cjs/redux/actions/publish.js +3 -11
- package/dist/cjs/redux/actions/publish.js.map +1 -1
- package/dist/cjs/redux/reducers/asset-uploads.js +1 -2
- package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
- package/dist/cjs/redux/reducers/auth.d.ts +3 -0
- package/dist/cjs/redux/reducers/auth.js +67 -0
- package/dist/cjs/redux/reducers/auth.js.map +1 -0
- package/dist/cjs/services/API.d.ts +10 -5
- package/dist/cjs/services/API.js +105 -36
- package/dist/cjs/services/API.js.map +1 -1
- package/dist/cjs/services/Auth0.d.ts +18 -0
- package/dist/cjs/services/Auth0.js +102 -0
- package/dist/cjs/services/Auth0.js.map +1 -0
- package/dist/cjs/services/Session.d.ts +26 -0
- package/dist/cjs/services/Session.js +155 -0
- package/dist/cjs/services/Session.js.map +1 -0
- package/dist/cjs/utils/modal.d.ts +0 -1
- package/dist/cjs/utils/modal.js +2 -3
- package/dist/cjs/utils/modal.js.map +1 -1
- package/dist/esm/Util.js +0 -6
- package/dist/esm/Util.js.map +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper.js +0 -5
- package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableAssetIdFilter.js +1 -1
- package/dist/esm/components/assets/AssetsTableAssetIdFilter.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableNameFilter.js +1 -1
- package/dist/esm/components/assets/AssetsTableNameFilter.js.map +1 -1
- package/dist/esm/components/assets/AssetsTablePreviewCell.d.ts +0 -1
- package/dist/esm/components/assets/AssetsTablePreviewCell.js +5 -8
- package/dist/esm/components/assets/AssetsTablePreviewCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableTagsFilter.js +1 -1
- package/dist/esm/components/assets/AssetsTableTagsFilter.js.map +1 -1
- package/dist/esm/components/assets/AssetsUploadMenu.js +3 -5
- package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/esm/components/auth-gate/AuthGate.d.ts +2 -0
- package/dist/esm/components/auth-gate/AuthGate.js +59 -0
- package/dist/esm/components/auth-gate/AuthGate.js.map +1 -0
- package/dist/esm/components/confirm-modal/ConfirmModal.js +2 -3
- package/dist/esm/components/confirm-modal/ConfirmModal.js.map +1 -1
- package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +0 -1
- package/dist/esm/components/field-wrapper/FieldWrapper.js +8 -10
- package/dist/esm/components/field-wrapper/FieldWrapper.js.map +1 -1
- package/dist/esm/components/header/Header.js +5 -8
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/number-field/NumberField.d.ts +0 -1
- package/dist/esm/components/number-field/NumberField.js +2 -5
- package/dist/esm/components/number-field/NumberField.js.map +1 -1
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +19 -52
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/esm/components/replace-files-modal/ReplaceFilesModal.d.ts +0 -1
- package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js +12 -31
- package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js.map +1 -1
- package/dist/esm/components/slider-field/SliderField.d.ts +0 -2
- package/dist/esm/components/slider-field/SliderField.js +8 -17
- package/dist/esm/components/slider-field/SliderField.js.map +1 -1
- package/dist/esm/components/story-previewer/StoryPreviewer.js +4 -13
- package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/esm/components/tabs/Tabs.js +1 -2
- package/dist/esm/components/tabs/Tabs.js.map +1 -1
- package/dist/esm/components/text-field/TextField.d.ts +0 -1
- package/dist/esm/components/text-field/TextField.js +2 -2
- package/dist/esm/components/text-field/TextField.js.map +1 -1
- package/dist/esm/constants/copy.d.ts +1 -5
- package/dist/esm/constants/copy.js +2 -6
- package/dist/esm/constants/copy.js.map +1 -1
- package/dist/esm/constants/icons.d.ts +0 -2
- package/dist/esm/constants/icons.js +1 -3
- package/dist/esm/constants/icons.js.map +1 -1
- package/dist/esm/constants/publish.d.ts +0 -3
- package/dist/esm/constants/publish.js +2 -4
- package/dist/esm/constants/publish.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/redux/actions/asset-uploads.d.ts +1 -1
- package/dist/esm/redux/actions/asset-uploads.js +115 -165
- package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
- package/dist/esm/redux/actions/auth.d.ts +9 -0
- package/dist/esm/redux/actions/auth.js +25 -0
- package/dist/esm/redux/actions/auth.js.map +1 -0
- package/dist/esm/redux/actions/publish.js +3 -11
- package/dist/esm/redux/actions/publish.js.map +1 -1
- package/dist/esm/redux/reducers/asset-uploads.js +1 -2
- package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
- package/dist/esm/redux/reducers/auth.d.ts +3 -0
- package/dist/esm/redux/reducers/auth.js +27 -0
- package/dist/esm/redux/reducers/auth.js.map +1 -0
- package/dist/esm/services/API.d.ts +10 -5
- package/dist/esm/services/API.js +50 -16
- package/dist/esm/services/API.js.map +1 -1
- package/dist/esm/services/Auth0.d.ts +18 -0
- package/dist/esm/services/Auth0.js +68 -0
- package/dist/esm/services/Auth0.js.map +1 -0
- package/dist/esm/services/Session.d.ts +26 -0
- package/dist/esm/services/Session.js +107 -0
- package/dist/esm/services/Session.js.map +1 -0
- package/dist/esm/utils/modal.d.ts +0 -1
- package/dist/esm/utils/modal.js +1 -2
- package/dist/esm/utils/modal.js.map +1 -1
- package/dist/styles.css +6 -101
- package/dist/styles.less +58 -91
- package/less/components/assets.less +39 -5
- package/less/components/button-menu.less +0 -1
- package/less/components/button.less +19 -57
- package/less/components/form-field.less +0 -27
- package/less/components/story-previewer.less +1 -1
- package/package.json +5 -5
- package/src/Util.ts +0 -9
- package/src/components/app-wrapper/AppWrapper.tsx +0 -6
- package/src/components/assets/AssetsTableAssetIdFilter.tsx +0 -1
- package/src/components/assets/AssetsTableNameFilter.tsx +0 -1
- package/src/components/assets/AssetsTablePreviewCell.tsx +14 -10
- package/src/components/assets/AssetsTableTagsFilter.tsx +0 -1
- package/src/components/assets/AssetsUploadMenu.tsx +11 -20
- package/src/components/confirm-modal/ConfirmModal.tsx +2 -3
- package/src/components/field-wrapper/FieldWrapper.tsx +12 -16
- package/src/components/header/Header.tsx +5 -8
- package/src/components/number-field/NumberField.tsx +2 -6
- package/src/components/publish-wizard/publish/EmailWorkflow.tsx +26 -77
- package/src/components/slider-field/SliderField.tsx +22 -44
- package/src/components/story-previewer/StoryPreviewer.tsx +8 -24
- package/src/components/tabs/Tabs.tsx +1 -2
- package/src/components/text-field/TextField.tsx +2 -5
- package/src/constants/copy.ts +2 -6
- package/src/constants/icons.tsx +1 -10
- package/src/constants/publish.ts +2 -7
- package/src/index.ts +1 -1
- package/src/redux/actions/asset-uploads.ts +162 -193
- package/src/redux/actions/publish.ts +3 -11
- package/src/redux/reducers/asset-uploads.ts +1 -2
- package/src/services/API.ts +82 -24
- package/src/utils/modal.ts +1 -3
- package/dist/cjs/components/edit-guide-modal/EditGuideModal.d.ts +0 -8
- package/dist/cjs/components/edit-guide-modal/EditGuideModal.js +0 -122
- package/dist/cjs/components/edit-guide-modal/EditGuideModal.js.map +0 -1
- package/dist/cjs/components/edit-marker-modal/EditMarkerModal.d.ts +0 -8
- package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js +0 -104
- package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js.map +0 -1
- package/dist/esm/components/edit-guide-modal/EditGuideModal.d.ts +0 -8
- package/dist/esm/components/edit-guide-modal/EditGuideModal.js +0 -65
- package/dist/esm/components/edit-guide-modal/EditGuideModal.js.map +0 -1
- package/dist/esm/components/edit-marker-modal/EditMarkerModal.d.ts +0 -8
- package/dist/esm/components/edit-marker-modal/EditMarkerModal.js +0 -72
- package/dist/esm/components/edit-marker-modal/EditMarkerModal.js.map +0 -1
package/src/services/API.ts
CHANGED
|
@@ -120,6 +120,8 @@ export interface IImposiumAPI {
|
|
|
120
120
|
addUser(organizationId: string, email: string, roleId: number);
|
|
121
121
|
updateRole(organizationId: string, userId: string, roleId: number);
|
|
122
122
|
deleteUser(organizationId: string, userId: string);
|
|
123
|
+
getPlayerMetrics(storyId: string, start: number, end: number, alias: string);
|
|
124
|
+
getSystemMetrics(storyId: string, start: number, end: number, step: number, alias: string);
|
|
123
125
|
getOrganizations(page: number, itemsPerPage: number): Promise<any[]>;
|
|
124
126
|
addOrganization(orgName: string, enableCloudfront: boolean, defaultStory?: string);
|
|
125
127
|
cancelExperiencePolling();
|
|
@@ -146,7 +148,7 @@ export interface IImposiumAPI {
|
|
|
146
148
|
getAssetMap(storyId: string);
|
|
147
149
|
clearStoryCache(storyId: string);
|
|
148
150
|
debugId(id: string);
|
|
149
|
-
cacheActiveStory(serviceId: any, orgId: string, storyId
|
|
151
|
+
cacheActiveStory(serviceId: any, orgId: string, storyId: string);
|
|
150
152
|
getCachedStoryForOrg(serviceId: string, orgId: string);
|
|
151
153
|
getAccessData(includeTotalRenders?: boolean, orgId?: string);
|
|
152
154
|
deleteExperience(experienceId: string, eraseMedia?: boolean);
|
|
@@ -157,7 +159,6 @@ export interface IImposiumAPI {
|
|
|
157
159
|
removeAllQueueAssocs(queueId: string);
|
|
158
160
|
removeQueueAssoc(queueId: string, storyId: string);
|
|
159
161
|
getQueueStories(config: any, itemsPerPage: number);
|
|
160
|
-
cancelAllPendingRequests();
|
|
161
162
|
getToken: any;
|
|
162
163
|
}
|
|
163
164
|
|
|
@@ -171,6 +172,11 @@ interface ITTSOptions {
|
|
|
171
172
|
minimum_silence_length?: number;
|
|
172
173
|
}
|
|
173
174
|
|
|
175
|
+
interface ICancelTokenCache {
|
|
176
|
+
player: CancelTokenSource | undefined;
|
|
177
|
+
system: CancelTokenSource | undefined;
|
|
178
|
+
}
|
|
179
|
+
|
|
174
180
|
export default class API {
|
|
175
181
|
private http: AxiosInstance;
|
|
176
182
|
|
|
@@ -182,14 +188,17 @@ export default class API {
|
|
|
182
188
|
|
|
183
189
|
private jobPollTimer: any;
|
|
184
190
|
|
|
191
|
+
private cancelTokenCache: ICancelTokenCache = {
|
|
192
|
+
player: undefined,
|
|
193
|
+
system: undefined
|
|
194
|
+
};
|
|
195
|
+
|
|
185
196
|
private cancelTokens: object = {};
|
|
186
197
|
|
|
187
198
|
public getToken;
|
|
188
199
|
|
|
189
200
|
private authType;
|
|
190
201
|
|
|
191
|
-
private abortController;
|
|
192
|
-
|
|
193
202
|
public init(baseURL: string, credentials: any, organizationId?: string): void {
|
|
194
203
|
// JWT
|
|
195
204
|
const headers = {
|
|
@@ -220,17 +229,12 @@ export default class API {
|
|
|
220
229
|
|
|
221
230
|
this.getToken = credentials;
|
|
222
231
|
this.awsHttp = axios.create();
|
|
223
|
-
this.abortController = new AbortController();
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
public cancelAllPendingRequests() {
|
|
227
|
-
this.abortController.abort();
|
|
228
|
-
this.abortController = new AbortController();
|
|
229
232
|
}
|
|
230
233
|
|
|
231
234
|
private doRequest = async (
|
|
232
235
|
config: AxiosRequestConfig,
|
|
233
|
-
organizationId?: string
|
|
236
|
+
organizationId?: string,
|
|
237
|
+
reqAlias: string = ''
|
|
234
238
|
): Promise<any> => {
|
|
235
239
|
if (this.authType === API_AUTH_TYPES.TOKEN) {
|
|
236
240
|
const token = await this.getToken();
|
|
@@ -245,14 +249,19 @@ export default class API {
|
|
|
245
249
|
config.headers = headers;
|
|
246
250
|
}
|
|
247
251
|
|
|
248
|
-
config.signal = this.abortController.signal;
|
|
249
|
-
|
|
250
252
|
return new Promise((resolve, reject) => {
|
|
251
253
|
this.http(config)
|
|
252
254
|
.then((res: AxiosResponse) => {
|
|
255
|
+
if (reqAlias) {
|
|
256
|
+
this.clearCache(reqAlias);
|
|
257
|
+
}
|
|
258
|
+
|
|
253
259
|
resolve(res.data);
|
|
254
260
|
})
|
|
255
261
|
.catch((e: AxiosError) => {
|
|
262
|
+
if (!axios.isCancel(e) && reqAlias) {
|
|
263
|
+
this.clearCache(reqAlias);
|
|
264
|
+
}
|
|
256
265
|
reject(e);
|
|
257
266
|
});
|
|
258
267
|
});
|
|
@@ -277,7 +286,22 @@ export default class API {
|
|
|
277
286
|
});
|
|
278
287
|
};
|
|
279
288
|
|
|
280
|
-
private
|
|
289
|
+
private cancelPrevious = (reqAlias: string): CancelToken => {
|
|
290
|
+
const source: CancelTokenSource = axios.CancelToken.source();
|
|
291
|
+
|
|
292
|
+
if (this.cancelTokenCache[reqAlias]) {
|
|
293
|
+
this.cancelTokenCache[reqAlias].cancel();
|
|
294
|
+
}
|
|
295
|
+
this.cancelTokenCache[reqAlias] = source;
|
|
296
|
+
|
|
297
|
+
return source.token;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
private clearCache = (reqAlias: string): void => {
|
|
301
|
+
this.cancelTokenCache[reqAlias] = undefined;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
private doAWSRequest = (config: AxiosRequestConfig, reqAlias: string = ''): Promise<any> => {
|
|
281
305
|
return new Promise((resolve, reject) => {
|
|
282
306
|
this.awsHttp(config)
|
|
283
307
|
.then((res: AxiosResponse) => {
|
|
@@ -490,6 +514,10 @@ export default class API {
|
|
|
490
514
|
return source.token;
|
|
491
515
|
};
|
|
492
516
|
|
|
517
|
+
private clearCancelTokes = () => {
|
|
518
|
+
this.cancelTokens = {};
|
|
519
|
+
};
|
|
520
|
+
|
|
493
521
|
public uploadAsset = (
|
|
494
522
|
storyId: string,
|
|
495
523
|
tags: string,
|
|
@@ -1426,6 +1454,41 @@ export default class API {
|
|
|
1426
1454
|
});
|
|
1427
1455
|
};
|
|
1428
1456
|
|
|
1457
|
+
public getPlayerMetrics = (
|
|
1458
|
+
storyId: string,
|
|
1459
|
+
start: number,
|
|
1460
|
+
end: number,
|
|
1461
|
+
alias: string = 'player'
|
|
1462
|
+
): Promise<any> => {
|
|
1463
|
+
const token = this.cancelPrevious(alias);
|
|
1464
|
+
const config: AxiosRequestConfig = {
|
|
1465
|
+
method: 'GET',
|
|
1466
|
+
url: `/metrics/player/${storyId}`,
|
|
1467
|
+
params: { start, end },
|
|
1468
|
+
cancelToken: token
|
|
1469
|
+
};
|
|
1470
|
+
|
|
1471
|
+
return this.doRequest(config, alias);
|
|
1472
|
+
};
|
|
1473
|
+
|
|
1474
|
+
public getSystemMetrics = (
|
|
1475
|
+
storyId: string,
|
|
1476
|
+
start: number,
|
|
1477
|
+
end: number,
|
|
1478
|
+
step: number,
|
|
1479
|
+
alias: string = 'system'
|
|
1480
|
+
): Promise<any> => {
|
|
1481
|
+
const token = this.cancelPrevious(alias);
|
|
1482
|
+
const config: AxiosRequestConfig = {
|
|
1483
|
+
method: 'GET',
|
|
1484
|
+
url: `/metrics/system/${storyId}`,
|
|
1485
|
+
params: { start, end, step },
|
|
1486
|
+
cancelToken: token
|
|
1487
|
+
};
|
|
1488
|
+
|
|
1489
|
+
return this.doRequest(config, alias);
|
|
1490
|
+
};
|
|
1491
|
+
|
|
1429
1492
|
public getOrganizations = (page: number, itemsPerPage: number): Promise<any[]> => {
|
|
1430
1493
|
return this.doRequest({
|
|
1431
1494
|
url: '/account',
|
|
@@ -1655,21 +1718,16 @@ export default class API {
|
|
|
1655
1718
|
});
|
|
1656
1719
|
};
|
|
1657
1720
|
|
|
1658
|
-
public cacheActiveStory = (serviceId, orgId, storyId
|
|
1721
|
+
public cacheActiveStory = (serviceId, orgId, storyId): Promise<any | Error> => {
|
|
1659
1722
|
const route = `/service/${serviceId}/${orgId}/active`;
|
|
1660
1723
|
|
|
1661
|
-
const data: any = {
|
|
1662
|
-
organization_id: orgId
|
|
1663
|
-
};
|
|
1664
|
-
|
|
1665
|
-
if (storyId) {
|
|
1666
|
-
data['story_id'] = storyId;
|
|
1667
|
-
}
|
|
1668
|
-
|
|
1669
1724
|
return this.doRequest({
|
|
1670
1725
|
method: 'POST',
|
|
1671
1726
|
url: route,
|
|
1672
|
-
data
|
|
1727
|
+
data: {
|
|
1728
|
+
story_id: storyId,
|
|
1729
|
+
organization_id: orgId
|
|
1730
|
+
}
|
|
1673
1731
|
});
|
|
1674
1732
|
};
|
|
1675
1733
|
|
package/src/utils/modal.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { IConfirmModalProps } from '../components/confirm-modal/ConfirmModal';
|
|
2
2
|
|
|
3
|
-
export const confirmModalEvent = 'openconfirmmodal';
|
|
4
|
-
|
|
5
3
|
export const openConfirmModal = (detail: IConfirmModalProps) => {
|
|
6
|
-
const event = new CustomEvent(
|
|
4
|
+
const event = new CustomEvent('openconfirmmodal', {
|
|
7
5
|
detail
|
|
8
6
|
});
|
|
9
7
|
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
37
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
38
|
-
if (!m) return o;
|
|
39
|
-
var i = m.call(o), r, ar = [], e;
|
|
40
|
-
try {
|
|
41
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
42
|
-
}
|
|
43
|
-
catch (error) { e = { error: error }; }
|
|
44
|
-
finally {
|
|
45
|
-
try {
|
|
46
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
47
|
-
}
|
|
48
|
-
finally { if (e) throw e.error; }
|
|
49
|
-
}
|
|
50
|
-
return ar;
|
|
51
|
-
};
|
|
52
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
53
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
54
|
-
};
|
|
55
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
-
exports.EditGuideModal = void 0;
|
|
57
|
-
var react_1 = __importStar(require("react"));
|
|
58
|
-
var react_dom_1 = __importDefault(require("react-dom"));
|
|
59
|
-
var Modal_1 = __importDefault(require("../modal/Modal"));
|
|
60
|
-
var Button_1 = __importDefault(require("../button/Button"));
|
|
61
|
-
var Section_1 = __importDefault(require("../section/Section"));
|
|
62
|
-
var NumberField_1 = __importDefault(require("../number-field/NumberField"));
|
|
63
|
-
var EditGuideModal = function () {
|
|
64
|
-
var _a = __read((0, react_1.useState)(null), 2), props = _a[0], setProps = _a[1];
|
|
65
|
-
var _b = __read((0, react_1.useState)(false), 2), isOpen = _b[0], setIsOpen = _b[1];
|
|
66
|
-
var _c = __read((0, react_1.useState)(null), 2), guide = _c[0], setGuide = _c[1];
|
|
67
|
-
var onOpen = function (event) {
|
|
68
|
-
setProps(__assign({}, event.detail));
|
|
69
|
-
setIsOpen(true);
|
|
70
|
-
};
|
|
71
|
-
var onClose = function () { return setIsOpen(false); };
|
|
72
|
-
(0, react_1.useEffect)(function () {
|
|
73
|
-
window.addEventListener('openeditguidemodal', onOpen);
|
|
74
|
-
return function () {
|
|
75
|
-
window.removeEventListener('openeditguidemodal', onOpen);
|
|
76
|
-
};
|
|
77
|
-
}, []);
|
|
78
|
-
(0, react_1.useEffect)(function () {
|
|
79
|
-
if (props === null || props === void 0 ? void 0 : props.guide) {
|
|
80
|
-
setGuide(props.guide);
|
|
81
|
-
}
|
|
82
|
-
}, [props === null || props === void 0 ? void 0 : props.guide]);
|
|
83
|
-
var onKeyDown = function (e) {
|
|
84
|
-
if (e.key === 'Enter') {
|
|
85
|
-
e.preventDefault();
|
|
86
|
-
onContinue(guide);
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
(0, react_1.useEffect)(function () {
|
|
90
|
-
if (isOpen) {
|
|
91
|
-
window.addEventListener('keypress', onKeyDown);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
95
|
-
}
|
|
96
|
-
return function () {
|
|
97
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
98
|
-
};
|
|
99
|
-
}, [isOpen, onKeyDown]);
|
|
100
|
-
var onContinue = (0, react_1.useCallback)(function (e) {
|
|
101
|
-
if (e) {
|
|
102
|
-
props.onContinue(e);
|
|
103
|
-
onClose();
|
|
104
|
-
}
|
|
105
|
-
}, [isOpen]);
|
|
106
|
-
var modal = isOpen && (react_1.default.createElement(Modal_1.default, { onRequestClose: onClose, style: {
|
|
107
|
-
width: '200px',
|
|
108
|
-
height: '110px',
|
|
109
|
-
top: '25%',
|
|
110
|
-
left: '55%'
|
|
111
|
-
}, isOpen: true },
|
|
112
|
-
react_1.default.createElement(Section_1.default, { title: "Edit ".concat(props.isHorizontal ? 'Horizontal Guide' : 'Vertical Guide'), style: { padding: '10px' } },
|
|
113
|
-
react_1.default.createElement(NumberField_1.default, { label: 'Guide Position', labelPosition: 'top', onChange: function (e) { return setGuide(Number(e)); }, focusOnMount: true, value: guide }),
|
|
114
|
-
react_1.default.createElement(Button_1.default, { onClick: onClose, style: 'bold', color: 'secondary' }, "Cancel"),
|
|
115
|
-
react_1.default.createElement(Button_1.default, { onClick: function () { return onContinue(guide); }, style: 'bold', color: 'primary' }, "Ok"))));
|
|
116
|
-
var PortalContextComponent = function () {
|
|
117
|
-
return react_dom_1.default.createPortal(modal, document.querySelector('#react-root'));
|
|
118
|
-
};
|
|
119
|
-
return react_1.default.createElement(PortalContextComponent, null);
|
|
120
|
-
};
|
|
121
|
-
exports.EditGuideModal = EditGuideModal;
|
|
122
|
-
//# sourceMappingURL=EditGuideModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditGuideModal.js","sourceRoot":"","sources":["../../../../src/components/edit-guide-modal/EditGuideModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
-
};
|
|
32
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
exports.EditMarkerModal = void 0;
|
|
34
|
-
var react_1 = __importDefault(require("react"));
|
|
35
|
-
var react_2 = require("react");
|
|
36
|
-
var Button_1 = __importDefault(require("../button/Button"));
|
|
37
|
-
var Modal_1 = __importDefault(require("../modal/Modal"));
|
|
38
|
-
var Section_1 = __importDefault(require("../section/Section"));
|
|
39
|
-
var SMPTEField_1 = __importDefault(require("../smpte-field/SMPTEField"));
|
|
40
|
-
var TextField_1 = __importDefault(require("../text-field/TextField"));
|
|
41
|
-
var EditMarkerModal = function () {
|
|
42
|
-
var _a = __read((0, react_2.useState)(''), 2), label = _a[0], setLabel = _a[1];
|
|
43
|
-
var _b = __read((0, react_2.useState)(0), 2), frame = _b[0], setFrame = _b[1];
|
|
44
|
-
var _c = __read((0, react_2.useState)(null), 2), props = _c[0], setProps = _c[1];
|
|
45
|
-
var _d = __read((0, react_2.useState)(false), 2), isOpen = _d[0], setIsOpen = _d[1];
|
|
46
|
-
var onOpen = function (event) {
|
|
47
|
-
setProps(__assign({}, event.detail));
|
|
48
|
-
setIsOpen(true);
|
|
49
|
-
};
|
|
50
|
-
var onClose = function () { return setIsOpen(false); };
|
|
51
|
-
(0, react_2.useEffect)(function () {
|
|
52
|
-
window.addEventListener('openeditmarkermodal', onOpen);
|
|
53
|
-
return function () {
|
|
54
|
-
window.removeEventListener('openeditmarkermodal', onOpen);
|
|
55
|
-
};
|
|
56
|
-
}, []);
|
|
57
|
-
var onUpdate = (0, react_2.useCallback)(function (e) {
|
|
58
|
-
if (e) {
|
|
59
|
-
props.updateMarker(e);
|
|
60
|
-
setIsOpen(false);
|
|
61
|
-
}
|
|
62
|
-
}, [isOpen]);
|
|
63
|
-
var onKeyDown = function (e) {
|
|
64
|
-
if (e.key === 'Enter') {
|
|
65
|
-
e.preventDefault();
|
|
66
|
-
onUpdate({ label: label, frame: frame });
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
(0, react_2.useEffect)(function () {
|
|
70
|
-
if (isOpen) {
|
|
71
|
-
window.addEventListener('keypress', onKeyDown);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
75
|
-
}
|
|
76
|
-
return function () {
|
|
77
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
78
|
-
};
|
|
79
|
-
}, [isOpen, onKeyDown]);
|
|
80
|
-
(0, react_2.useEffect)(function () {
|
|
81
|
-
if (props === null || props === void 0 ? void 0 : props.marker) {
|
|
82
|
-
setLabel(props.marker.label ? props.marker.label : '');
|
|
83
|
-
setFrame(props.marker.frame ? props.marker.frame : 0);
|
|
84
|
-
}
|
|
85
|
-
}, [props === null || props === void 0 ? void 0 : props.marker]);
|
|
86
|
-
if (!isOpen)
|
|
87
|
-
return null;
|
|
88
|
-
return (react_1.default.createElement(Modal_1.default, { onRequestClose: onClose, wrapperStyle: {
|
|
89
|
-
left: '0px',
|
|
90
|
-
width: '100%'
|
|
91
|
-
}, style: {
|
|
92
|
-
width: '200px',
|
|
93
|
-
height: '150px',
|
|
94
|
-
top: 'calc(50% - 150px)',
|
|
95
|
-
left: 'calc((100% - 200px) / 2)'
|
|
96
|
-
}, isOpen: true },
|
|
97
|
-
react_1.default.createElement(Section_1.default, { title: 'Edit Marker' },
|
|
98
|
-
react_1.default.createElement("div", { className: 'edit-marker-modal' },
|
|
99
|
-
react_1.default.createElement(TextField_1.default, { label: 'Label', labelPosition: 'top', value: label, onChange: function (e) { return setLabel(e); } }),
|
|
100
|
-
react_1.default.createElement(SMPTEField_1.default, { label: 'Frame', labelPosition: 'top', value: frame, onChange: function (e) { return setFrame(e); }, frameRate: props === null || props === void 0 ? void 0 : props.frameRate }),
|
|
101
|
-
react_1.default.createElement(Button_1.default, { color: 'primary', style: 'bold', onClick: function () { return onUpdate({ label: label, frame: frame }); } }, "Update Marker")))));
|
|
102
|
-
};
|
|
103
|
-
exports.EditMarkerModal = EditMarkerModal;
|
|
104
|
-
//# sourceMappingURL=EditMarkerModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditMarkerModal.js","sourceRoot":"","sources":["../../../../src/components/edit-marker-modal/EditMarkerModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import ReactDOM from 'react-dom';
|
|
3
|
-
import Modal from '../modal/Modal';
|
|
4
|
-
import Button from '../button/Button';
|
|
5
|
-
import Section from '../section/Section';
|
|
6
|
-
import NumberField from '../number-field/NumberField';
|
|
7
|
-
export const EditGuideModal = () => {
|
|
8
|
-
const [props, setProps] = useState(null);
|
|
9
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
10
|
-
const [guide, setGuide] = useState(null);
|
|
11
|
-
const onOpen = (event) => {
|
|
12
|
-
setProps({
|
|
13
|
-
...event.detail
|
|
14
|
-
});
|
|
15
|
-
setIsOpen(true);
|
|
16
|
-
};
|
|
17
|
-
const onClose = () => setIsOpen(false);
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
window.addEventListener('openeditguidemodal', onOpen);
|
|
20
|
-
return () => {
|
|
21
|
-
window.removeEventListener('openeditguidemodal', onOpen);
|
|
22
|
-
};
|
|
23
|
-
}, []);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (props?.guide) {
|
|
26
|
-
setGuide(props.guide);
|
|
27
|
-
}
|
|
28
|
-
}, [props?.guide]);
|
|
29
|
-
const onKeyDown = (e) => {
|
|
30
|
-
if (e.key === 'Enter') {
|
|
31
|
-
e.preventDefault();
|
|
32
|
-
onContinue(guide);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
if (isOpen) {
|
|
37
|
-
window.addEventListener('keypress', onKeyDown);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
41
|
-
}
|
|
42
|
-
return () => {
|
|
43
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
44
|
-
};
|
|
45
|
-
}, [isOpen, onKeyDown]);
|
|
46
|
-
const onContinue = useCallback((e) => {
|
|
47
|
-
if (e) {
|
|
48
|
-
props.onContinue(e);
|
|
49
|
-
onClose();
|
|
50
|
-
}
|
|
51
|
-
}, [isOpen]);
|
|
52
|
-
const modal = isOpen && (React.createElement(Modal, { onRequestClose: onClose, style: {
|
|
53
|
-
width: '200px',
|
|
54
|
-
height: '110px',
|
|
55
|
-
top: '25%',
|
|
56
|
-
left: '55%'
|
|
57
|
-
}, isOpen: true },
|
|
58
|
-
React.createElement(Section, { title: `Edit ${props.isHorizontal ? 'Horizontal Guide' : 'Vertical Guide'}`, style: { padding: '10px' } },
|
|
59
|
-
React.createElement(NumberField, { label: 'Guide Position', labelPosition: 'top', onChange: (e) => setGuide(Number(e)), focusOnMount: true, value: guide }),
|
|
60
|
-
React.createElement(Button, { onClick: onClose, style: 'bold', color: 'secondary' }, "Cancel"),
|
|
61
|
-
React.createElement(Button, { onClick: () => onContinue(guide), style: 'bold', color: 'primary' }, "Ok"))));
|
|
62
|
-
const PortalContextComponent = () => ReactDOM.createPortal(modal, document.querySelector('#react-root'));
|
|
63
|
-
return React.createElement(PortalContextComponent, null);
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=EditGuideModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditGuideModal.js","sourceRoot":"","sources":["../../../../src/components/edit-guide-modal/EditGuideModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
3
|
-
import Button from '../button/Button';
|
|
4
|
-
import Modal from '../modal/Modal';
|
|
5
|
-
import Section from '../section/Section';
|
|
6
|
-
import SMPTEField from '../smpte-field/SMPTEField';
|
|
7
|
-
import TextField from '../text-field/TextField';
|
|
8
|
-
export const EditMarkerModal = () => {
|
|
9
|
-
const [label, setLabel] = useState('');
|
|
10
|
-
const [frame, setFrame] = useState(0);
|
|
11
|
-
const [props, setProps] = useState(null);
|
|
12
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
13
|
-
const onOpen = (event) => {
|
|
14
|
-
setProps({
|
|
15
|
-
...event.detail
|
|
16
|
-
});
|
|
17
|
-
setIsOpen(true);
|
|
18
|
-
};
|
|
19
|
-
const onClose = () => setIsOpen(false);
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
window.addEventListener('openeditmarkermodal', onOpen);
|
|
22
|
-
return () => {
|
|
23
|
-
window.removeEventListener('openeditmarkermodal', onOpen);
|
|
24
|
-
};
|
|
25
|
-
}, []);
|
|
26
|
-
const onUpdate = useCallback((e) => {
|
|
27
|
-
if (e) {
|
|
28
|
-
props.updateMarker(e);
|
|
29
|
-
setIsOpen(false);
|
|
30
|
-
}
|
|
31
|
-
}, [isOpen]);
|
|
32
|
-
const onKeyDown = (e) => {
|
|
33
|
-
if (e.key === 'Enter') {
|
|
34
|
-
e.preventDefault();
|
|
35
|
-
onUpdate({ label, frame });
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
if (isOpen) {
|
|
40
|
-
window.addEventListener('keypress', onKeyDown);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
44
|
-
}
|
|
45
|
-
return () => {
|
|
46
|
-
window.removeEventListener('keypress', onKeyDown);
|
|
47
|
-
};
|
|
48
|
-
}, [isOpen, onKeyDown]);
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
if (props?.marker) {
|
|
51
|
-
setLabel(props.marker.label ? props.marker.label : '');
|
|
52
|
-
setFrame(props.marker.frame ? props.marker.frame : 0);
|
|
53
|
-
}
|
|
54
|
-
}, [props?.marker]);
|
|
55
|
-
if (!isOpen)
|
|
56
|
-
return null;
|
|
57
|
-
return (React.createElement(Modal, { onRequestClose: onClose, wrapperStyle: {
|
|
58
|
-
left: '0px',
|
|
59
|
-
width: '100%'
|
|
60
|
-
}, style: {
|
|
61
|
-
width: '200px',
|
|
62
|
-
height: '150px',
|
|
63
|
-
top: 'calc(50% - 150px)',
|
|
64
|
-
left: 'calc((100% - 200px) / 2)'
|
|
65
|
-
}, isOpen: true },
|
|
66
|
-
React.createElement(Section, { title: 'Edit Marker' },
|
|
67
|
-
React.createElement("div", { className: 'edit-marker-modal' },
|
|
68
|
-
React.createElement(TextField, { label: 'Label', labelPosition: 'top', value: label, onChange: (e) => setLabel(e) }),
|
|
69
|
-
React.createElement(SMPTEField, { label: 'Frame', labelPosition: 'top', value: frame, onChange: (e) => setFrame(e), frameRate: props?.frameRate }),
|
|
70
|
-
React.createElement(Button, { color: 'primary', style: 'bold', onClick: () => onUpdate({ label, frame }) }, "Update Marker")))));
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=EditMarkerModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditMarkerModal.js","sourceRoot":"","sources":["../../../../src/components/edit-marker-modal/EditMarkerModal.tsx"],"names":[],"mappings":"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"}
|