@uploadcare/file-uploader 1.24.0 → 1.24.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/env.js +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.js +258 -119
- package/dist/index.ssr.js +1 -3
- package/package.json +1 -1
- package/web/file-uploader.iife.min.d.ts +9 -6
- package/web/file-uploader.iife.min.js +4 -4
- package/web/file-uploader.min.d.ts +9 -6
- package/web/file-uploader.min.js +4 -4
- package/web/uc-cloud-image-editor.min.d.ts +9 -4
- package/web/uc-cloud-image-editor.min.js +4 -4
- package/web/uc-file-uploader-inline.min.d.ts +9 -6
- package/web/uc-file-uploader-inline.min.js +4 -4
- package/web/uc-file-uploader-minimal.min.d.ts +9 -6
- package/web/uc-file-uploader-minimal.min.js +4 -4
- package/web/uc-file-uploader-regular.min.d.ts +9 -6
- package/web/uc-file-uploader-regular.min.js +4 -4
- package/web/uc-img.min.js +1 -1
package/dist/env.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -104,12 +104,13 @@ declare class ModalManager {
|
|
|
104
104
|
destroy(): void;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
type CommonEventType = InternalEventKey | EventKey;
|
|
107
108
|
type TelemetryState = TelemetryRequest & {
|
|
108
109
|
eventTimestamp: number;
|
|
109
110
|
};
|
|
110
111
|
type TelemetryEventBody = Partial<Pick<TelemetryState, 'payload' | 'config'>> & {
|
|
111
112
|
modalId?: string;
|
|
112
|
-
eventType?:
|
|
113
|
+
eventType?: CommonEventType;
|
|
113
114
|
};
|
|
114
115
|
declare class TelemetryManager {
|
|
115
116
|
private readonly _sessionId;
|
|
@@ -181,9 +182,13 @@ declare class Block extends BaseComponent<any> {
|
|
|
181
182
|
static reg(name?: string): void;
|
|
182
183
|
}
|
|
183
184
|
|
|
184
|
-
declare const
|
|
185
|
+
declare const InternalEventType: Readonly<{
|
|
185
186
|
readonly INIT_SOLUTION: "init-solution";
|
|
186
187
|
readonly CHANGE_CONFIG: "change-config";
|
|
188
|
+
readonly ACTION_EVENT: "action-event";
|
|
189
|
+
readonly ERROR_EVENT: "error-event";
|
|
190
|
+
}>;
|
|
191
|
+
declare const EventType: Readonly<{
|
|
187
192
|
readonly FILE_ADDED: "file-added";
|
|
188
193
|
readonly FILE_REMOVED: "file-removed";
|
|
189
194
|
readonly FILE_UPLOAD_START: "file-upload-start";
|
|
@@ -204,6 +209,7 @@ declare const EventType: Readonly<{
|
|
|
204
209
|
readonly GROUP_CREATED: "group-created";
|
|
205
210
|
}>;
|
|
206
211
|
type EventKey = (typeof EventType)[keyof typeof EventType];
|
|
212
|
+
type InternalEventKey = (typeof InternalEventType)[keyof typeof InternalEventType];
|
|
207
213
|
type EventPayload = {
|
|
208
214
|
[EventType.FILE_ADDED]: OutputFileEntry<'idle'>;
|
|
209
215
|
[EventType.FILE_REMOVED]: OutputFileEntry<'removed'>;
|
|
@@ -230,8 +236,6 @@ type EventPayload = {
|
|
|
230
236
|
[EventType.COMMON_UPLOAD_FAILED]: OutputCollectionState<'failed'>;
|
|
231
237
|
[EventType.CHANGE]: OutputCollectionState;
|
|
232
238
|
[EventType.GROUP_CREATED]: OutputCollectionState<'success', 'has-group'>;
|
|
233
|
-
[EventType.INIT_SOLUTION]: void;
|
|
234
|
-
[EventType.CHANGE_CONFIG]: void;
|
|
235
239
|
};
|
|
236
240
|
declare class EventEmitter {
|
|
237
241
|
private _timeoutStore;
|
|
@@ -527,6 +531,7 @@ declare class Config extends Block {
|
|
|
527
531
|
_assertSameValueDifferentReference(key: string, previousValue: unknown, nextValue: unknown): void;
|
|
528
532
|
initCallback(): void;
|
|
529
533
|
attributeChangedCallback(name: keyof typeof attrStateMapping, oldVal: string, newVal: string): void;
|
|
534
|
+
get computationControllers(): any;
|
|
530
535
|
}
|
|
531
536
|
interface Config extends ConfigType {
|
|
532
537
|
}
|
|
@@ -1959,8 +1964,6 @@ type EventListenerMap = {
|
|
|
1959
1964
|
declare class UploadCtxProvider extends UploaderBlock {
|
|
1960
1965
|
static styleAttrs: string[];
|
|
1961
1966
|
static EventType: Readonly<{
|
|
1962
|
-
readonly INIT_SOLUTION: "init-solution";
|
|
1963
|
-
readonly CHANGE_CONFIG: "change-config";
|
|
1964
1967
|
readonly FILE_ADDED: "file-added";
|
|
1965
1968
|
readonly FILE_REMOVED: "file-removed";
|
|
1966
1969
|
readonly FILE_UPLOAD_START: "file-upload-start";
|
package/dist/index.js
CHANGED
|
@@ -31,7 +31,9 @@ import { BaseComponent as BaseComponent4, Data as Data8, UID as UID4 } from "@sy
|
|
|
31
31
|
var DEFAULT_DEBOUNCE_TIMEOUT = 20;
|
|
32
32
|
var InternalEventType = Object.freeze({
|
|
33
33
|
INIT_SOLUTION: "init-solution",
|
|
34
|
-
CHANGE_CONFIG: "change-config"
|
|
34
|
+
CHANGE_CONFIG: "change-config",
|
|
35
|
+
ACTION_EVENT: "action-event",
|
|
36
|
+
ERROR_EVENT: "error-event"
|
|
35
37
|
});
|
|
36
38
|
var EventType = Object.freeze({
|
|
37
39
|
FILE_ADDED: "file-added",
|
|
@@ -51,8 +53,7 @@ var EventType = Object.freeze({
|
|
|
51
53
|
COMMON_UPLOAD_SUCCESS: "common-upload-success",
|
|
52
54
|
COMMON_UPLOAD_FAILED: "common-upload-failed",
|
|
53
55
|
CHANGE: "change",
|
|
54
|
-
GROUP_CREATED: "group-created"
|
|
55
|
-
...InternalEventType
|
|
56
|
+
GROUP_CREATED: "group-created"
|
|
56
57
|
});
|
|
57
58
|
var EventEmitter = class {
|
|
58
59
|
_timeoutStore = /* @__PURE__ */ new Map();
|
|
@@ -1216,7 +1217,7 @@ import { TelemetryAPIService } from "@uploadcare/quality-insights";
|
|
|
1216
1217
|
import { Queue as Queue2 } from "@uploadcare/upload-client";
|
|
1217
1218
|
|
|
1218
1219
|
// package.json
|
|
1219
|
-
var version = "1.24.
|
|
1220
|
+
var version = "1.24.2";
|
|
1220
1221
|
|
|
1221
1222
|
// src/env.ts
|
|
1222
1223
|
var PACKAGE_NAME = "blocks";
|
|
@@ -1238,14 +1239,16 @@ var TelemetryManager = class {
|
|
|
1238
1239
|
for (const key of Object.keys(this._config)) {
|
|
1239
1240
|
this._block.subConfigValue(key, (value) => {
|
|
1240
1241
|
if (this._initialized && this._config[key] !== value) {
|
|
1241
|
-
this.
|
|
1242
|
+
this.sendEvent({
|
|
1243
|
+
eventType: InternalEventType.CHANGE_CONFIG
|
|
1244
|
+
});
|
|
1242
1245
|
}
|
|
1243
1246
|
this._setConfig(key, value);
|
|
1244
1247
|
});
|
|
1245
1248
|
}
|
|
1246
1249
|
}
|
|
1247
1250
|
_init(type) {
|
|
1248
|
-
if (type ===
|
|
1251
|
+
if (type === InternalEventType.INIT_SOLUTION && !this._initialized) {
|
|
1249
1252
|
this._initialized = true;
|
|
1250
1253
|
}
|
|
1251
1254
|
}
|
|
@@ -1261,7 +1264,7 @@ var TelemetryManager = class {
|
|
|
1261
1264
|
payload.activity = void 0;
|
|
1262
1265
|
}
|
|
1263
1266
|
const result = { ...body };
|
|
1264
|
-
if (body.eventType ===
|
|
1267
|
+
if (body.eventType === InternalEventType.INIT_SOLUTION || body.eventType === InternalEventType.CHANGE_CONFIG) {
|
|
1265
1268
|
result.config = this._config;
|
|
1266
1269
|
}
|
|
1267
1270
|
return {
|
|
@@ -1289,9 +1292,7 @@ var TelemetryManager = class {
|
|
|
1289
1292
|
EventType.FILE_UPLOAD_START,
|
|
1290
1293
|
EventType.FILE_UPLOAD_PROGRESS,
|
|
1291
1294
|
EventType.FILE_UPLOAD_SUCCESS,
|
|
1292
|
-
EventType.FILE_UPLOAD_FAILED
|
|
1293
|
-
EventType.FILE_URL_CHANGED,
|
|
1294
|
-
EventType.GROUP_CREATED
|
|
1295
|
+
EventType.FILE_UPLOAD_FAILED
|
|
1295
1296
|
].includes(type)) {
|
|
1296
1297
|
return true;
|
|
1297
1298
|
}
|
|
@@ -1319,6 +1320,7 @@ var TelemetryManager = class {
|
|
|
1319
1320
|
}
|
|
1320
1321
|
sendEventError(error, context = "unknown") {
|
|
1321
1322
|
this.sendEvent({
|
|
1323
|
+
eventType: InternalEventType.ERROR_EVENT,
|
|
1322
1324
|
payload: {
|
|
1323
1325
|
metadata: {
|
|
1324
1326
|
event: "error",
|
|
@@ -1333,6 +1335,7 @@ var TelemetryManager = class {
|
|
|
1333
1335
|
*/
|
|
1334
1336
|
sendEventCloudImageEditor(e, tabId, options = {}) {
|
|
1335
1337
|
this.sendEvent({
|
|
1338
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
1336
1339
|
payload: {
|
|
1337
1340
|
metadata: {
|
|
1338
1341
|
tabId,
|
|
@@ -4369,16 +4372,64 @@ var CameraSource = class extends UploaderBlock {
|
|
|
4369
4372
|
onCancel: () => {
|
|
4370
4373
|
this.historyBack();
|
|
4371
4374
|
},
|
|
4372
|
-
onShot: () =>
|
|
4375
|
+
onShot: () => {
|
|
4376
|
+
this.telemetryManager.sendEvent({
|
|
4377
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4378
|
+
payload: {
|
|
4379
|
+
metadata: {
|
|
4380
|
+
event: "shot-camera",
|
|
4381
|
+
node: this.tagName,
|
|
4382
|
+
tabId: this._activeTab
|
|
4383
|
+
}
|
|
4384
|
+
}
|
|
4385
|
+
});
|
|
4386
|
+
this._shot();
|
|
4387
|
+
},
|
|
4373
4388
|
onRequestPermissions: () => this._capture(),
|
|
4374
4389
|
/** General method for photo and video capture */
|
|
4375
|
-
onStartCamera: () =>
|
|
4390
|
+
onStartCamera: () => {
|
|
4391
|
+
this.telemetryManager.sendEvent({
|
|
4392
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4393
|
+
payload: {
|
|
4394
|
+
metadata: {
|
|
4395
|
+
event: "start-camera",
|
|
4396
|
+
node: this.tagName,
|
|
4397
|
+
tabId: this._activeTab
|
|
4398
|
+
}
|
|
4399
|
+
}
|
|
4400
|
+
});
|
|
4401
|
+
this._chooseActionWithCamera();
|
|
4402
|
+
},
|
|
4376
4403
|
onStartRecording: () => this._startRecording(),
|
|
4377
4404
|
onStopRecording: () => this._stopRecording(),
|
|
4378
4405
|
onToggleRecording: () => this._toggleRecording(),
|
|
4379
4406
|
onToggleAudio: () => this._toggleEnableAudio(),
|
|
4380
|
-
onRetake: () =>
|
|
4381
|
-
|
|
4407
|
+
onRetake: () => {
|
|
4408
|
+
this.telemetryManager.sendEvent({
|
|
4409
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4410
|
+
payload: {
|
|
4411
|
+
metadata: {
|
|
4412
|
+
event: "retake-camera",
|
|
4413
|
+
node: this.tagName,
|
|
4414
|
+
tabId: this._activeTab
|
|
4415
|
+
}
|
|
4416
|
+
}
|
|
4417
|
+
});
|
|
4418
|
+
this._retake();
|
|
4419
|
+
},
|
|
4420
|
+
onAccept: () => {
|
|
4421
|
+
this.telemetryManager.sendEvent({
|
|
4422
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4423
|
+
payload: {
|
|
4424
|
+
metadata: {
|
|
4425
|
+
event: "accept-camera",
|
|
4426
|
+
node: this.tagName,
|
|
4427
|
+
tabId: this._activeTab
|
|
4428
|
+
}
|
|
4429
|
+
}
|
|
4430
|
+
});
|
|
4431
|
+
this._accept();
|
|
4432
|
+
},
|
|
4382
4433
|
onClickTab: (event) => {
|
|
4383
4434
|
const target = event.currentTarget;
|
|
4384
4435
|
const id = target?.getAttribute("data-id");
|
|
@@ -4490,6 +4541,16 @@ var CameraSource = class extends UploaderBlock {
|
|
|
4490
4541
|
});
|
|
4491
4542
|
this._mediaRecorder?.stop();
|
|
4492
4543
|
this.classList.remove("uc-recording");
|
|
4544
|
+
this.telemetryManager.sendEvent({
|
|
4545
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4546
|
+
payload: {
|
|
4547
|
+
metadata: {
|
|
4548
|
+
event: "stop-camera",
|
|
4549
|
+
node: this.tagName,
|
|
4550
|
+
tabId: this._activeTab
|
|
4551
|
+
}
|
|
4552
|
+
}
|
|
4553
|
+
});
|
|
4493
4554
|
};
|
|
4494
4555
|
/** This method is used to toggle recording pause/resume */
|
|
4495
4556
|
_toggleRecording = () => {
|
|
@@ -4671,6 +4732,16 @@ var CameraSource = class extends UploaderBlock {
|
|
|
4671
4732
|
audioToggleMicrophoneHidden: !this.cfg.enableAudioRecording
|
|
4672
4733
|
});
|
|
4673
4734
|
}
|
|
4735
|
+
this.telemetryManager.sendEvent({
|
|
4736
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
4737
|
+
payload: {
|
|
4738
|
+
metadata: {
|
|
4739
|
+
event: "camera-tab-switch",
|
|
4740
|
+
node: this.tagName,
|
|
4741
|
+
tabId
|
|
4742
|
+
}
|
|
4743
|
+
}
|
|
4744
|
+
});
|
|
4674
4745
|
this._activeTab = tabId;
|
|
4675
4746
|
};
|
|
4676
4747
|
_createFile = (type, ext, format, blob) => {
|
|
@@ -8179,6 +8250,114 @@ var runAssertions = debounce((cfg) => {
|
|
|
8179
8250
|
}
|
|
8180
8251
|
}, 0);
|
|
8181
8252
|
|
|
8253
|
+
// src/blocks/Config/computed-properties.ts
|
|
8254
|
+
import { getPrefixedCdnBaseAsync, isPrefixedCdnBase } from "@uploadcare/cname-prefix/async";
|
|
8255
|
+
|
|
8256
|
+
// src/utils/isPromiseLike.ts
|
|
8257
|
+
var isPromiseLike = (value) => {
|
|
8258
|
+
return value instanceof Promise || Boolean(
|
|
8259
|
+
value && typeof value === "object" && "then" in value && typeof value.then === "function"
|
|
8260
|
+
);
|
|
8261
|
+
};
|
|
8262
|
+
|
|
8263
|
+
// src/blocks/Config/computed-properties.ts
|
|
8264
|
+
var defineComputedProperty = (declaration) => declaration;
|
|
8265
|
+
var COMPUTED_PROPERTIES = [
|
|
8266
|
+
defineComputedProperty({
|
|
8267
|
+
key: "cameraModes",
|
|
8268
|
+
deps: ["enableVideoRecording"],
|
|
8269
|
+
fn: ({ cameraModes, enableVideoRecording }) => {
|
|
8270
|
+
if (enableVideoRecording === null) {
|
|
8271
|
+
return cameraModes;
|
|
8272
|
+
}
|
|
8273
|
+
let cameraModesCsv = deserializeCsv(cameraModes);
|
|
8274
|
+
if (enableVideoRecording && !cameraModesCsv.includes("video")) {
|
|
8275
|
+
cameraModesCsv = cameraModesCsv.concat("video");
|
|
8276
|
+
} else if (!enableVideoRecording) {
|
|
8277
|
+
cameraModesCsv = cameraModesCsv.filter((mode) => mode !== "video");
|
|
8278
|
+
}
|
|
8279
|
+
return serializeCsv(cameraModesCsv);
|
|
8280
|
+
}
|
|
8281
|
+
}),
|
|
8282
|
+
defineComputedProperty({
|
|
8283
|
+
key: "cameraModes",
|
|
8284
|
+
deps: ["defaultCameraMode"],
|
|
8285
|
+
fn: ({ cameraModes, defaultCameraMode }) => {
|
|
8286
|
+
if (defaultCameraMode === null) {
|
|
8287
|
+
return cameraModes;
|
|
8288
|
+
}
|
|
8289
|
+
let cameraModesCsv = deserializeCsv(cameraModes);
|
|
8290
|
+
cameraModesCsv = cameraModesCsv.sort((a, b) => {
|
|
8291
|
+
if (a === defaultCameraMode) return -1;
|
|
8292
|
+
if (b === defaultCameraMode) return 1;
|
|
8293
|
+
return 0;
|
|
8294
|
+
});
|
|
8295
|
+
return serializeCsv(cameraModesCsv);
|
|
8296
|
+
}
|
|
8297
|
+
}),
|
|
8298
|
+
defineComputedProperty({
|
|
8299
|
+
key: "cdnCname",
|
|
8300
|
+
deps: ["pubkey", "cdnCnamePrefixed"],
|
|
8301
|
+
fn: ({ pubkey, cdnCname, cdnCnamePrefixed }) => {
|
|
8302
|
+
if (pubkey && (cdnCname === DEFAULT_CDN_CNAME || isPrefixedCdnBase(cdnCname, cdnCnamePrefixed))) {
|
|
8303
|
+
return getPrefixedCdnBaseAsync(pubkey, cdnCnamePrefixed);
|
|
8304
|
+
}
|
|
8305
|
+
return cdnCname;
|
|
8306
|
+
}
|
|
8307
|
+
})
|
|
8308
|
+
];
|
|
8309
|
+
var computeProperty = ({
|
|
8310
|
+
key,
|
|
8311
|
+
setValue,
|
|
8312
|
+
getValue,
|
|
8313
|
+
computationControllers
|
|
8314
|
+
}) => {
|
|
8315
|
+
for (const computed of COMPUTED_PROPERTIES) {
|
|
8316
|
+
if (computed.deps.includes(key)) {
|
|
8317
|
+
const args = {
|
|
8318
|
+
[computed.key]: getValue(computed.key)
|
|
8319
|
+
};
|
|
8320
|
+
for (const dep of computed.deps) {
|
|
8321
|
+
args[dep] = getValue(dep);
|
|
8322
|
+
}
|
|
8323
|
+
const abortController = new AbortController();
|
|
8324
|
+
computationControllers.get(computed.key)?.abort();
|
|
8325
|
+
computationControllers.set(computed.key, abortController);
|
|
8326
|
+
let result;
|
|
8327
|
+
try {
|
|
8328
|
+
result = computed.fn(args, {
|
|
8329
|
+
signal: abortController.signal
|
|
8330
|
+
});
|
|
8331
|
+
} catch (error) {
|
|
8332
|
+
if (computationControllers.get(computed.key) === abortController) {
|
|
8333
|
+
computationControllers.delete(computed.key);
|
|
8334
|
+
}
|
|
8335
|
+
console.error(`Failed to compute value for "${computed.key}"`, error);
|
|
8336
|
+
return;
|
|
8337
|
+
}
|
|
8338
|
+
if (isPromiseLike(result)) {
|
|
8339
|
+
result.then((resolvedValue) => {
|
|
8340
|
+
if (abortController.signal.aborted) {
|
|
8341
|
+
return;
|
|
8342
|
+
}
|
|
8343
|
+
setValue(computed.key, resolvedValue);
|
|
8344
|
+
}).catch((error) => {
|
|
8345
|
+
if (abortController.signal.aborted) {
|
|
8346
|
+
return;
|
|
8347
|
+
}
|
|
8348
|
+
console.error(`Failed to compute value for "${computed.key}"`, error);
|
|
8349
|
+
}).finally(() => {
|
|
8350
|
+
if (computationControllers.get(computed.key) === abortController) {
|
|
8351
|
+
computationControllers.delete(computed.key);
|
|
8352
|
+
}
|
|
8353
|
+
});
|
|
8354
|
+
} else {
|
|
8355
|
+
setValue(computed.key, result);
|
|
8356
|
+
}
|
|
8357
|
+
}
|
|
8358
|
+
}
|
|
8359
|
+
};
|
|
8360
|
+
|
|
8182
8361
|
// src/blocks/Config/validatorsType.ts
|
|
8183
8362
|
var asString = (value) => String(value);
|
|
8184
8363
|
var asNumber2 = (value) => {
|
|
@@ -8338,89 +8517,6 @@ var normalizeConfigValue = (key, value) => {
|
|
|
8338
8517
|
}
|
|
8339
8518
|
};
|
|
8340
8519
|
|
|
8341
|
-
// src/blocks/Config/side-effects.ts
|
|
8342
|
-
import { getPrefixedCdnBaseAsync, isPrefixedCdnBase } from "@uploadcare/cname-prefix/async";
|
|
8343
|
-
|
|
8344
|
-
// src/utils/isPromiseLike.ts
|
|
8345
|
-
var isPromiseLike = (value) => {
|
|
8346
|
-
return value instanceof Promise || Boolean(
|
|
8347
|
-
value && typeof value === "object" && "then" in value && typeof value.then === "function"
|
|
8348
|
-
);
|
|
8349
|
-
};
|
|
8350
|
-
|
|
8351
|
-
// src/blocks/Config/side-effects.ts
|
|
8352
|
-
var defineComputedProperty = (declaration) => declaration;
|
|
8353
|
-
var COMPUTED_PROPERTIES = [
|
|
8354
|
-
defineComputedProperty({
|
|
8355
|
-
key: "cameraModes",
|
|
8356
|
-
deps: ["enableVideoRecording"],
|
|
8357
|
-
fn: ({ cameraModes, enableVideoRecording }) => {
|
|
8358
|
-
if (enableVideoRecording === null) {
|
|
8359
|
-
return cameraModes;
|
|
8360
|
-
}
|
|
8361
|
-
let cameraModesCsv = deserializeCsv(cameraModes);
|
|
8362
|
-
if (enableVideoRecording && !cameraModesCsv.includes("video")) {
|
|
8363
|
-
cameraModesCsv = cameraModesCsv.concat("video");
|
|
8364
|
-
} else if (!enableVideoRecording) {
|
|
8365
|
-
cameraModesCsv = cameraModesCsv.filter((mode) => mode !== "video");
|
|
8366
|
-
}
|
|
8367
|
-
return serializeCsv(cameraModesCsv);
|
|
8368
|
-
}
|
|
8369
|
-
}),
|
|
8370
|
-
defineComputedProperty({
|
|
8371
|
-
key: "cameraModes",
|
|
8372
|
-
deps: ["defaultCameraMode"],
|
|
8373
|
-
fn: ({ cameraModes, defaultCameraMode }) => {
|
|
8374
|
-
if (defaultCameraMode === null) {
|
|
8375
|
-
return cameraModes;
|
|
8376
|
-
}
|
|
8377
|
-
let cameraModesCsv = deserializeCsv(cameraModes);
|
|
8378
|
-
cameraModesCsv = cameraModesCsv.sort((a, b) => {
|
|
8379
|
-
if (a === defaultCameraMode) return -1;
|
|
8380
|
-
if (b === defaultCameraMode) return 1;
|
|
8381
|
-
return 0;
|
|
8382
|
-
});
|
|
8383
|
-
return serializeCsv(cameraModesCsv);
|
|
8384
|
-
}
|
|
8385
|
-
}),
|
|
8386
|
-
defineComputedProperty({
|
|
8387
|
-
key: "cdnCname",
|
|
8388
|
-
deps: ["pubkey", "cdnCnamePrefixed"],
|
|
8389
|
-
fn: ({ pubkey, cdnCname, cdnCnamePrefixed }) => {
|
|
8390
|
-
if (pubkey && (cdnCname === DEFAULT_CDN_CNAME || isPrefixedCdnBase(cdnCname, cdnCnamePrefixed))) {
|
|
8391
|
-
return getPrefixedCdnBaseAsync(pubkey, cdnCnamePrefixed);
|
|
8392
|
-
}
|
|
8393
|
-
return cdnCname;
|
|
8394
|
-
}
|
|
8395
|
-
})
|
|
8396
|
-
];
|
|
8397
|
-
var runSideEffects = ({ key, setValue, getValue }) => {
|
|
8398
|
-
for (const computed of COMPUTED_PROPERTIES) {
|
|
8399
|
-
if (computed.deps.includes(key)) {
|
|
8400
|
-
const args = {
|
|
8401
|
-
[computed.key]: getValue(computed.key)
|
|
8402
|
-
};
|
|
8403
|
-
for (const dep of computed.deps) {
|
|
8404
|
-
args[dep] = getValue(dep);
|
|
8405
|
-
}
|
|
8406
|
-
const result = computed.fn(args);
|
|
8407
|
-
if (isPromiseLike(result)) {
|
|
8408
|
-
const prevValue = getValue(computed.key);
|
|
8409
|
-
result.then((resolvedValue) => {
|
|
8410
|
-
const currentValue = getValue(computed.key);
|
|
8411
|
-
if (currentValue === prevValue) {
|
|
8412
|
-
setValue(computed.key, resolvedValue);
|
|
8413
|
-
}
|
|
8414
|
-
}).catch((error) => {
|
|
8415
|
-
console.error(`Failed to compute value for "${computed.key}"`, error);
|
|
8416
|
-
});
|
|
8417
|
-
} else {
|
|
8418
|
-
setValue(computed.key, result);
|
|
8419
|
-
}
|
|
8420
|
-
}
|
|
8421
|
-
}
|
|
8422
|
-
};
|
|
8423
|
-
|
|
8424
8520
|
// src/blocks/Config/Config.ts
|
|
8425
8521
|
var allConfigKeys = [
|
|
8426
8522
|
// "debug" option should go first to be able to print debug messages from the very beginning
|
|
@@ -8455,7 +8551,8 @@ var Config = class extends Block {
|
|
|
8455
8551
|
...this.init$,
|
|
8456
8552
|
...Object.fromEntries(
|
|
8457
8553
|
Object.entries(initialConfig).map(([key, value]) => [sharedConfigKey(key), value])
|
|
8458
|
-
)
|
|
8554
|
+
),
|
|
8555
|
+
computationControllers: /* @__PURE__ */ new Map()
|
|
8459
8556
|
};
|
|
8460
8557
|
}
|
|
8461
8558
|
_flushValueToAttribute(key, value) {
|
|
@@ -8490,11 +8587,6 @@ var Config = class extends Block {
|
|
|
8490
8587
|
this._flushValueToState(key, normalizedValue);
|
|
8491
8588
|
this.debugPrint(`[uc-config] "${key}"`, normalizedValue);
|
|
8492
8589
|
runAssertions(this.cfg);
|
|
8493
|
-
runSideEffects({
|
|
8494
|
-
key,
|
|
8495
|
-
setValue: this._setValue.bind(this),
|
|
8496
|
-
getValue: this._getValue.bind(this)
|
|
8497
|
-
});
|
|
8498
8590
|
}
|
|
8499
8591
|
_getValue(key) {
|
|
8500
8592
|
const anyThis = this;
|
|
@@ -8540,10 +8632,15 @@ var Config = class extends Block {
|
|
|
8540
8632
|
return this._getValue(key);
|
|
8541
8633
|
}
|
|
8542
8634
|
});
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8546
|
-
|
|
8635
|
+
}
|
|
8636
|
+
for (const key of allConfigKeys) {
|
|
8637
|
+
this.sub(sharedConfigKey(key), () => {
|
|
8638
|
+
computeProperty({
|
|
8639
|
+
key,
|
|
8640
|
+
setValue: this._setValue.bind(this),
|
|
8641
|
+
getValue: this._getValue.bind(this),
|
|
8642
|
+
computationControllers: this.computationControllers
|
|
8643
|
+
});
|
|
8547
8644
|
});
|
|
8548
8645
|
}
|
|
8549
8646
|
}
|
|
@@ -8555,6 +8652,9 @@ var Config = class extends Block {
|
|
|
8555
8652
|
anyThis[key] = newVal;
|
|
8556
8653
|
}
|
|
8557
8654
|
}
|
|
8655
|
+
get computationControllers() {
|
|
8656
|
+
return this.$.computationControllers;
|
|
8657
|
+
}
|
|
8558
8658
|
};
|
|
8559
8659
|
Config.bindAttributes(attrStateMapping);
|
|
8560
8660
|
for (const key of allConfigKeys) {
|
|
@@ -9112,8 +9212,10 @@ var isWhitelistedMessage = (message) => {
|
|
|
9112
9212
|
var MessageBridge = class {
|
|
9113
9213
|
_handlerMap = /* @__PURE__ */ new Map();
|
|
9114
9214
|
_context;
|
|
9115
|
-
|
|
9215
|
+
_getTargetOrigin;
|
|
9216
|
+
constructor(context, getTargetOrigin) {
|
|
9116
9217
|
this._context = context;
|
|
9218
|
+
this._getTargetOrigin = getTargetOrigin;
|
|
9117
9219
|
window.addEventListener("message", this._handleMessage);
|
|
9118
9220
|
}
|
|
9119
9221
|
_handleMessage = (e) => {
|
|
@@ -9139,7 +9241,8 @@ var MessageBridge = class {
|
|
|
9139
9241
|
handlers.add(handler);
|
|
9140
9242
|
}
|
|
9141
9243
|
send(message) {
|
|
9142
|
-
this.
|
|
9244
|
+
const targetOrigin = this._getTargetOrigin();
|
|
9245
|
+
this._context.postMessage(message, targetOrigin);
|
|
9143
9246
|
}
|
|
9144
9247
|
destroy() {
|
|
9145
9248
|
window.removeEventListener("message", this._handleMessage);
|
|
@@ -9289,11 +9392,9 @@ var ExternalSource = class extends UploaderBlock {
|
|
|
9289
9392
|
showSelectionStatus: message.isMultipleMode && message.total > 0,
|
|
9290
9393
|
couldSelectAll: message.selectedCount < message.total,
|
|
9291
9394
|
couldDeselectAll: message.selectedCount === message.total,
|
|
9292
|
-
selectedList: message.selectedFiles
|
|
9395
|
+
selectedList: message.selectedFiles,
|
|
9396
|
+
showDoneBtn: message.total > 0
|
|
9293
9397
|
});
|
|
9294
|
-
if (!this.$.showDoneBtn && message.isReady) {
|
|
9295
|
-
this.$.showDoneBtn = true;
|
|
9296
|
-
}
|
|
9297
9398
|
}
|
|
9298
9399
|
handleIframeLoad() {
|
|
9299
9400
|
this.applyEmbedCss(this.cfg.externalSourcesEmbedCss);
|
|
@@ -9355,7 +9456,7 @@ var ExternalSource = class extends UploaderBlock {
|
|
|
9355
9456
|
return;
|
|
9356
9457
|
}
|
|
9357
9458
|
this._messageBridge?.destroy();
|
|
9358
|
-
this._messageBridge = new MessageBridge(iframe.contentWindow);
|
|
9459
|
+
this._messageBridge = new MessageBridge(iframe.contentWindow, () => this.cfg.socialBaseUrl);
|
|
9359
9460
|
this._messageBridge.on("selected-files-change", this.handleSelectedFilesChange.bind(this));
|
|
9360
9461
|
this._messageBridge.on("toolbar-state-change", this.handleToolbarStateChange.bind(this));
|
|
9361
9462
|
this.resetSelectionStatus();
|
|
@@ -9520,6 +9621,7 @@ var FileItem = class _FileItem extends FileItemConfig {
|
|
|
9520
9621
|
ariaLabelStatusFile: "",
|
|
9521
9622
|
onEdit: this._withEntry((entry) => {
|
|
9522
9623
|
this.telemetryManager.sendEvent({
|
|
9624
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
9523
9625
|
payload: {
|
|
9524
9626
|
metadata: {
|
|
9525
9627
|
event: "edit-file",
|
|
@@ -9535,6 +9637,7 @@ var FileItem = class _FileItem extends FileItemConfig {
|
|
|
9535
9637
|
}),
|
|
9536
9638
|
onRemove: () => {
|
|
9537
9639
|
this.telemetryManager.sendEvent({
|
|
9640
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
9538
9641
|
payload: {
|
|
9539
9642
|
metadata: {
|
|
9540
9643
|
event: "remove-file",
|
|
@@ -9572,6 +9675,7 @@ var FileItem = class _FileItem extends FileItemConfig {
|
|
|
9572
9675
|
const errorText = entry.getValue("errors")?.[0]?.message;
|
|
9573
9676
|
const source = entry.getValue("source");
|
|
9574
9677
|
const externalUrl = entry.getValue("externalUrl");
|
|
9678
|
+
const isFinished = state === FileItemState.FINISHED;
|
|
9575
9679
|
const isUploading = state === FileItemState.UPLOADING;
|
|
9576
9680
|
const isQueuedForUploading = state === FileItemState.QUEUED_UPLOADING;
|
|
9577
9681
|
const isQueuedForValidation = state === FileItemState.QUEUED_VALIDATION;
|
|
@@ -9580,7 +9684,7 @@ var FileItem = class _FileItem extends FileItemConfig {
|
|
|
9580
9684
|
let hint = "";
|
|
9581
9685
|
if (errorText) {
|
|
9582
9686
|
hint = "";
|
|
9583
|
-
} else if (externalUrl && source && Object.values(ExternalUploadSource).includes(source)) {
|
|
9687
|
+
} else if (!isFinished && externalUrl && source && Object.values(ExternalUploadSource).includes(source)) {
|
|
9584
9688
|
hint = this.l10n("waiting-for", { source: this.l10n(`src-type-${source}`) });
|
|
9585
9689
|
}
|
|
9586
9690
|
this.set$({
|
|
@@ -11243,6 +11347,15 @@ var UploadList = class extends UploaderBlock {
|
|
|
11243
11347
|
commonErrorMessage: "",
|
|
11244
11348
|
hasFiles: false,
|
|
11245
11349
|
onAdd: () => {
|
|
11350
|
+
this.telemetryManager.sendEvent({
|
|
11351
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
11352
|
+
payload: {
|
|
11353
|
+
metadata: {
|
|
11354
|
+
event: "add-more",
|
|
11355
|
+
node: this.tagName
|
|
11356
|
+
}
|
|
11357
|
+
}
|
|
11358
|
+
});
|
|
11246
11359
|
this.api.initFlow(true);
|
|
11247
11360
|
},
|
|
11248
11361
|
onUpload: () => {
|
|
@@ -11255,6 +11368,15 @@ var UploadList = class extends UploaderBlock {
|
|
|
11255
11368
|
this.api.doneFlow();
|
|
11256
11369
|
},
|
|
11257
11370
|
onCancel: () => {
|
|
11371
|
+
this.telemetryManager.sendEvent({
|
|
11372
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
11373
|
+
payload: {
|
|
11374
|
+
metadata: {
|
|
11375
|
+
event: "clear-all",
|
|
11376
|
+
node: this.tagName
|
|
11377
|
+
}
|
|
11378
|
+
}
|
|
11379
|
+
});
|
|
11258
11380
|
this.uploadCollection.clearAll();
|
|
11259
11381
|
}
|
|
11260
11382
|
};
|
|
@@ -11441,6 +11563,15 @@ var UrlSource = class extends UploaderBlock {
|
|
|
11441
11563
|
importDisabled: true,
|
|
11442
11564
|
onUpload: (event) => {
|
|
11443
11565
|
event.preventDefault();
|
|
11566
|
+
this.telemetryManager.sendEvent({
|
|
11567
|
+
eventType: InternalEventType.ACTION_EVENT,
|
|
11568
|
+
payload: {
|
|
11569
|
+
metadata: {
|
|
11570
|
+
event: "upload-from-url",
|
|
11571
|
+
node: this.tagName
|
|
11572
|
+
}
|
|
11573
|
+
}
|
|
11574
|
+
});
|
|
11444
11575
|
const url = this.ref.input["value"];
|
|
11445
11576
|
this.api.addFileFromUrl(url, { source: UploadSource.URL });
|
|
11446
11577
|
this.modalManager?.open(ActivityBlock.activities.UPLOAD_LIST);
|
|
@@ -11510,7 +11641,9 @@ var CloudImageEditor = class extends CloudImageEditorBlock {
|
|
|
11510
11641
|
}
|
|
11511
11642
|
initCallback() {
|
|
11512
11643
|
super.initCallback();
|
|
11513
|
-
this.
|
|
11644
|
+
this.telemetryManager.sendEvent({
|
|
11645
|
+
eventType: InternalEventType.INIT_SOLUTION
|
|
11646
|
+
});
|
|
11514
11647
|
this.a11y?.registerBlock(this);
|
|
11515
11648
|
}
|
|
11516
11649
|
};
|
|
@@ -11549,7 +11682,9 @@ var FileUploaderInline = class extends SolutionBlock {
|
|
|
11549
11682
|
}
|
|
11550
11683
|
initCallback() {
|
|
11551
11684
|
super.initCallback();
|
|
11552
|
-
this.
|
|
11685
|
+
this.telemetryManager.sendEvent({
|
|
11686
|
+
eventType: InternalEventType.INIT_SOLUTION
|
|
11687
|
+
});
|
|
11553
11688
|
const uBlock = this.ref.uBlock;
|
|
11554
11689
|
if (!uBlock) {
|
|
11555
11690
|
return;
|
|
@@ -11639,7 +11774,9 @@ var FileUploaderMinimal = class extends SolutionBlock {
|
|
|
11639
11774
|
}
|
|
11640
11775
|
initCallback() {
|
|
11641
11776
|
super.initCallback();
|
|
11642
|
-
this.
|
|
11777
|
+
this.telemetryManager.sendEvent({
|
|
11778
|
+
eventType: InternalEventType.INIT_SOLUTION
|
|
11779
|
+
});
|
|
11643
11780
|
const uBlock = this.ref.uBlock;
|
|
11644
11781
|
if (!uBlock) {
|
|
11645
11782
|
return;
|
|
@@ -11749,7 +11886,9 @@ var FileUploaderRegular = class extends SolutionBlock {
|
|
|
11749
11886
|
}
|
|
11750
11887
|
initCallback() {
|
|
11751
11888
|
super.initCallback();
|
|
11752
|
-
this.
|
|
11889
|
+
this.telemetryManager.sendEvent({
|
|
11890
|
+
eventType: InternalEventType.INIT_SOLUTION
|
|
11891
|
+
});
|
|
11753
11892
|
this.defineAccessor("headless", (value) => {
|
|
11754
11893
|
this.set$({ isHidden: asBoolean2(value) });
|
|
11755
11894
|
});
|
package/dist/index.ssr.js
CHANGED
|
@@ -1132,7 +1132,7 @@ export const ModalEvents = {
|
|
|
1132
1132
|
DESTROY: "modal:destroy",
|
|
1133
1133
|
};
|
|
1134
1134
|
export const PACKAGE_NAME = `blocks`;
|
|
1135
|
-
export const PACKAGE_VERSION = `1.24.
|
|
1135
|
+
export const PACKAGE_VERSION = `1.24.2`;
|
|
1136
1136
|
export const PresenceToggle = class {
|
|
1137
1137
|
static template = `<slot></slot> `;
|
|
1138
1138
|
static reg = () => {};
|
|
@@ -1461,8 +1461,6 @@ export const UploadCtxProvider = class {
|
|
|
1461
1461
|
COMMON_UPLOAD_FAILED: "common-upload-failed",
|
|
1462
1462
|
CHANGE: "change",
|
|
1463
1463
|
GROUP_CREATED: "group-created",
|
|
1464
|
-
INIT_SOLUTION: "init-solution",
|
|
1465
|
-
CHANGE_CONFIG: "change-config",
|
|
1466
1464
|
};
|
|
1467
1465
|
static extSrcList = {
|
|
1468
1466
|
FACEBOOK: "facebook",
|