@wix/editor 1.306.0 → 1.308.0
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/index.js +191 -161
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +191 -161
- package/dist/esm/index.js.map +1 -1
- package/dist/statics/index.js +194 -164
- package/dist/statics/index.js.map +1 -1
- package/dist/types/index.d.ts +23 -23
- package/package.json +5 -5
package/dist/cjs/index.js
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var publicEditorPlatformErrors = require('@wix/public-editor-platform-errors');
|
|
4
4
|
var publicEditorPlatformEvents = require('@wix/public-editor-platform-events');
|
|
5
|
-
var hostModules = require('@wix/sdk-runtime/host-modules');
|
|
6
5
|
var editorPlatformTransport = require('@wix/editor-platform-transport');
|
|
7
6
|
var platformFrameApi = require('@wix/editor-application/platform-frame-api');
|
|
8
7
|
var platformWorkerApi = require('@wix/editor-application/platform-worker-api');
|
|
8
|
+
var hostModules = require('@wix/sdk-runtime/host-modules');
|
|
9
9
|
|
|
10
10
|
var EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {
|
|
11
11
|
EditorPlatformApplicationContextErrorCode2["IncorrectEnvironment"] = "IncorrectEnvironment";
|
|
12
|
+
EditorPlatformApplicationContextErrorCode2["ClientAuthError"] = "ClientAuthError";
|
|
12
13
|
return EditorPlatformApplicationContextErrorCode2;
|
|
13
14
|
})(EditorPlatformApplicationContextErrorCode || {});
|
|
14
15
|
class EditorPlatformApplicationContextError extends publicEditorPlatformErrors.BaseError {
|
|
@@ -171,6 +172,7 @@ const ENVIRONMENT_CONTEXT_KEY = "__ENVIRONMENT_CONTEXT_KEY";
|
|
|
171
172
|
var PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {
|
|
172
173
|
PlatformEnvironment2["Worker"] = "Worker";
|
|
173
174
|
PlatformEnvironment2["Frame"] = "Frame";
|
|
175
|
+
PlatformEnvironment2["ComponentPanel"] = "ComponentPanel";
|
|
174
176
|
return PlatformEnvironment2;
|
|
175
177
|
})(PlatformEnvironment || {});
|
|
176
178
|
class EnvironmentContext {
|
|
@@ -315,77 +317,112 @@ const auth = () => {
|
|
|
315
317
|
};
|
|
316
318
|
};
|
|
317
319
|
|
|
320
|
+
const INIT_KEY = "_EP_TRANSPORT_INIT_KEY";
|
|
321
|
+
if (!globalThis[INIT_KEY]) {
|
|
322
|
+
const isWorker = typeof importScripts === "function";
|
|
323
|
+
if (isWorker) {
|
|
324
|
+
const channel = new editorPlatformTransport.WorkerConsumerChannel();
|
|
325
|
+
channel.expose(new platformWorkerApi.PlatformWorkerAPI());
|
|
326
|
+
} else {
|
|
327
|
+
const channel = new editorPlatformTransport.IFrameConsumerChannel();
|
|
328
|
+
channel.expose(new platformFrameApi.PlatformFrameAPI());
|
|
329
|
+
}
|
|
330
|
+
globalThis[INIT_KEY] = true;
|
|
331
|
+
}
|
|
332
|
+
|
|
318
333
|
class PlatformSDKShape {
|
|
319
334
|
constructor(namespace, shape) {
|
|
320
335
|
this.namespace = namespace;
|
|
321
336
|
this.shape = shape;
|
|
322
337
|
}
|
|
323
|
-
static create(namespace, shape) {
|
|
324
|
-
return new PlatformSDKShape(namespace, shape);
|
|
325
|
-
}
|
|
326
338
|
build() {
|
|
327
339
|
return hostModules.createHostModule(
|
|
328
340
|
Object.fromEntries(
|
|
329
|
-
Object.entries(this.shape).map(([key, value]) => [
|
|
341
|
+
Object.entries(this.shape).map(([key, value]) => [
|
|
342
|
+
key,
|
|
343
|
+
(host) => {
|
|
344
|
+
if (host?.environmentContext && host?.applicationContext) {
|
|
345
|
+
return value({
|
|
346
|
+
environmentContext: host.environmentContext,
|
|
347
|
+
applicationContext: host.applicationContext
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
return async (...args) => {
|
|
351
|
+
const environmentContext = await EnvironmentContext.getInstance();
|
|
352
|
+
const applicationContext = await ApplicationContext.getInstance();
|
|
353
|
+
return value({
|
|
354
|
+
environmentContext,
|
|
355
|
+
applicationContext
|
|
356
|
+
})(...args);
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
])
|
|
330
360
|
)
|
|
331
361
|
);
|
|
332
362
|
}
|
|
333
363
|
}
|
|
334
364
|
|
|
335
|
-
const
|
|
336
|
-
getPrivateAPI
|
|
337
|
-
|
|
338
|
-
|
|
365
|
+
const applicationShape = new PlatformSDKShape("application", {
|
|
366
|
+
getPrivateAPI({ applicationContext }) {
|
|
367
|
+
return async () => {
|
|
368
|
+
return applicationContext.getPrivateApplicationAPI();
|
|
369
|
+
};
|
|
339
370
|
},
|
|
340
|
-
getPublicAPI
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
371
|
+
getPublicAPI({ applicationContext }) {
|
|
372
|
+
return async (appDefinitionId) => {
|
|
373
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
374
|
+
return privateAPI.applicationManager.getPublicApplicationAPI(
|
|
375
|
+
appDefinitionId
|
|
376
|
+
);
|
|
377
|
+
};
|
|
346
378
|
},
|
|
347
|
-
getAppInstance
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
379
|
+
getAppInstance({ applicationContext }) {
|
|
380
|
+
return async () => {
|
|
381
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
382
|
+
const bindings = applicationContext.getBindings();
|
|
383
|
+
return privateAPI.info.getAppInstance(bindings.appDefinitionId);
|
|
384
|
+
};
|
|
352
385
|
}
|
|
353
|
-
};
|
|
354
|
-
var index$
|
|
386
|
+
});
|
|
387
|
+
var index$4 = applicationShape.build();
|
|
355
388
|
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
389
|
+
const componentsShape = new PlatformSDKShape("components", {
|
|
390
|
+
getSelectedComponents({ applicationContext }) {
|
|
391
|
+
return async () => {
|
|
392
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
393
|
+
const refs = await privateAPI.components.getSelectedComponents();
|
|
394
|
+
return Promise.all(
|
|
395
|
+
refs.map((ref) => privateAPI.components.getComponent(ref))
|
|
396
|
+
);
|
|
397
|
+
};
|
|
364
398
|
}
|
|
365
|
-
};
|
|
366
|
-
var
|
|
399
|
+
});
|
|
400
|
+
var components = componentsShape.build();
|
|
367
401
|
|
|
368
|
-
const
|
|
369
|
-
addEventListener
|
|
370
|
-
|
|
371
|
-
|
|
402
|
+
const eventsShape = new PlatformSDKShape("events", {
|
|
403
|
+
addEventListener({ applicationContext }) {
|
|
404
|
+
return async (name, cb) => {
|
|
405
|
+
return applicationContext.getEvents().addEventListener(name, cb);
|
|
406
|
+
};
|
|
372
407
|
}
|
|
373
|
-
};
|
|
374
|
-
var index$3 =
|
|
408
|
+
});
|
|
409
|
+
var index$3 = eventsShape.build();
|
|
375
410
|
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
411
|
+
const infoShape = new PlatformSDKShape("info", {
|
|
412
|
+
getViewMode({ applicationContext }) {
|
|
413
|
+
return async () => {
|
|
414
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
415
|
+
return privateAPI.info.getViewMode();
|
|
416
|
+
};
|
|
381
417
|
},
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
418
|
+
getLanguageCode({ applicationContext }) {
|
|
419
|
+
return async () => {
|
|
420
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
421
|
+
return privateAPI.info.getLanguageCode();
|
|
422
|
+
};
|
|
386
423
|
}
|
|
387
|
-
};
|
|
388
|
-
var index$2 =
|
|
424
|
+
});
|
|
425
|
+
var index$2 = infoShape.build();
|
|
389
426
|
|
|
390
427
|
var WidgetShapeErrorCode = /* @__PURE__ */ ((WidgetShapeErrorCode2) => {
|
|
391
428
|
WidgetShapeErrorCode2["UndefinedCompRef"] = "UndefinedCompRef";
|
|
@@ -406,28 +443,23 @@ const getSelectedComponentRef = async () => {
|
|
|
406
443
|
}
|
|
407
444
|
return compRef;
|
|
408
445
|
};
|
|
409
|
-
const
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
// },
|
|
417
|
-
async getProp(propName) {
|
|
418
|
-
const context = await ApplicationContext.getInstance();
|
|
419
|
-
const privateAPI = context.getPrivateAPI();
|
|
420
|
-
const compRef = await getSelectedComponentRef();
|
|
421
|
-
return privateAPI.customElement.getAttribute(compRef, propName);
|
|
446
|
+
const widgetShape = new PlatformSDKShape("widget", {
|
|
447
|
+
getProp({ applicationContext }) {
|
|
448
|
+
return async (propName) => {
|
|
449
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
450
|
+
const compRef = await getSelectedComponentRef();
|
|
451
|
+
return privateAPI.customElement.getAttribute(compRef, propName);
|
|
452
|
+
};
|
|
422
453
|
},
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
454
|
+
setProp({ applicationContext }) {
|
|
455
|
+
return async (propName, value) => {
|
|
456
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
457
|
+
const compRef = await getSelectedComponentRef();
|
|
458
|
+
await privateAPI.customElement.setAttribute(compRef, propName, value);
|
|
459
|
+
};
|
|
428
460
|
}
|
|
429
|
-
};
|
|
430
|
-
var index$1 =
|
|
461
|
+
});
|
|
462
|
+
var index$1 = widgetShape.build();
|
|
431
463
|
|
|
432
464
|
const fonts = {
|
|
433
465
|
transformFontInternalValue: (value) => {
|
|
@@ -467,99 +499,99 @@ const fonts = {
|
|
|
467
499
|
};
|
|
468
500
|
}
|
|
469
501
|
};
|
|
470
|
-
const
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
502
|
+
const inputsShape = new PlatformSDKShape("inputs", {
|
|
503
|
+
selectColor({ applicationContext }) {
|
|
504
|
+
return async (value, onColorChange) => {
|
|
505
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
506
|
+
let _value = value ? {
|
|
507
|
+
color: value.color,
|
|
508
|
+
theme: value?.theme
|
|
509
|
+
} : null;
|
|
510
|
+
await privateAPI.inputs.openColorPicker(
|
|
511
|
+
{
|
|
512
|
+
color: value?.theme ? value.theme : value?.color
|
|
513
|
+
},
|
|
514
|
+
({
|
|
515
|
+
color,
|
|
516
|
+
theme
|
|
517
|
+
}) => {
|
|
518
|
+
const _color = { color, theme };
|
|
519
|
+
_value = _color;
|
|
520
|
+
onColorChange?.(_color);
|
|
521
|
+
}
|
|
522
|
+
);
|
|
523
|
+
return _value;
|
|
524
|
+
};
|
|
492
525
|
},
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
526
|
+
selectFont({ applicationContext }) {
|
|
527
|
+
return async (value, options, onFontChange) => {
|
|
528
|
+
const privateAPI = applicationContext.getPrivateAPI();
|
|
529
|
+
let _value = fonts.transformFontPublicValue(value);
|
|
530
|
+
const applyChanges = (...changes) => {
|
|
531
|
+
if (!_value) {
|
|
532
|
+
_value = fonts.transformFontPublicValue(
|
|
533
|
+
fonts.transformFontInternalValue(value)
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
switch (changes[0]) {
|
|
537
|
+
case "theme":
|
|
538
|
+
Object.assign(_value, {
|
|
539
|
+
theme: changes[1]
|
|
540
|
+
});
|
|
541
|
+
break;
|
|
542
|
+
case "size":
|
|
543
|
+
Object.assign(_value, {
|
|
544
|
+
size: changes[1]
|
|
545
|
+
});
|
|
546
|
+
break;
|
|
547
|
+
case "bold":
|
|
548
|
+
Object.assign(_value, {
|
|
549
|
+
style: {
|
|
550
|
+
..._value.style,
|
|
551
|
+
bold: changes[1]
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
break;
|
|
555
|
+
case "italic":
|
|
556
|
+
Object.assign(_value, {
|
|
557
|
+
style: {
|
|
558
|
+
..._value.style,
|
|
559
|
+
italic: changes[1]
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
break;
|
|
563
|
+
case "underline":
|
|
564
|
+
Object.assign(_value, {
|
|
565
|
+
style: {
|
|
566
|
+
..._value.style,
|
|
567
|
+
underline: changes[1]
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
break;
|
|
571
|
+
case "family":
|
|
572
|
+
Object.assign(_value, {
|
|
573
|
+
family: changes[1]
|
|
574
|
+
});
|
|
575
|
+
break;
|
|
576
|
+
}
|
|
577
|
+
};
|
|
578
|
+
await privateAPI.inputs.openFontPicker(
|
|
579
|
+
{
|
|
580
|
+
...options,
|
|
581
|
+
componentStyle: fonts.transformFontInternalValue(value)
|
|
582
|
+
},
|
|
583
|
+
(...changes) => {
|
|
584
|
+
applyChanges(...changes);
|
|
585
|
+
onFontChange?.(_value);
|
|
586
|
+
}
|
|
587
|
+
);
|
|
588
|
+
return _value;
|
|
544
589
|
};
|
|
545
|
-
await privateAPI.inputs.openFontPicker(
|
|
546
|
-
{
|
|
547
|
-
...options,
|
|
548
|
-
componentStyle: fonts.transformFontInternalValue(value)
|
|
549
|
-
},
|
|
550
|
-
(...changes) => {
|
|
551
|
-
applyChanges(...changes);
|
|
552
|
-
onFontChange?.(_value);
|
|
553
|
-
}
|
|
554
|
-
);
|
|
555
|
-
return _value;
|
|
556
590
|
}
|
|
557
|
-
};
|
|
558
|
-
var index =
|
|
591
|
+
});
|
|
592
|
+
var index = inputsShape.build();
|
|
559
593
|
|
|
560
594
|
const editorPlatformFrameHost = () => {
|
|
561
|
-
const channel = new editorPlatformTransport.IFrameConsumerChannel();
|
|
562
|
-
channel.expose(new platformFrameApi.PlatformFrameAPI());
|
|
563
595
|
return {
|
|
564
596
|
environment: {},
|
|
565
597
|
channel: {
|
|
@@ -572,8 +604,6 @@ const editorPlatformFrameHost = () => {
|
|
|
572
604
|
};
|
|
573
605
|
|
|
574
606
|
const editorPlatformWorkerHost = () => {
|
|
575
|
-
const channel = new editorPlatformTransport.WorkerConsumerChannel();
|
|
576
|
-
channel.expose(new platformWorkerApi.PlatformWorkerAPI());
|
|
577
607
|
return {
|
|
578
608
|
environment: {},
|
|
579
609
|
channel: {
|
|
@@ -596,8 +626,8 @@ const editor = {
|
|
|
596
626
|
auth
|
|
597
627
|
};
|
|
598
628
|
|
|
599
|
-
exports.application = index$
|
|
600
|
-
exports.components =
|
|
629
|
+
exports.application = index$4;
|
|
630
|
+
exports.components = components;
|
|
601
631
|
exports.editor = editor;
|
|
602
632
|
exports.events = index$3;
|
|
603
633
|
exports.info = index$2;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../editor-platform-application-context/dist/esm/index.js","../../src/auth.ts","../../src/PlatformSDKShape.ts","../../src/application/index.ts","../../src/components/index.ts","../../src/events/index.ts","../../src/info/index.ts","../../src/widget/errors.ts","../../src/widget/index.ts","../../src/inputs/index.ts","../../src/editorPlatformFrameHost.ts","../../src/editorPlatformWorkerHost.ts","../../src/index.ts"],"sourcesContent":["import { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';\nimport { PlatformAppEvent } from '@wix/public-editor-platform-events';\n\nvar EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {\n EditorPlatformApplicationContextErrorCode2[\"IncorrectEnvironment\"] = \"IncorrectEnvironment\";\n return EditorPlatformApplicationContextErrorCode2;\n})(EditorPlatformApplicationContextErrorCode || {});\nclass EditorPlatformApplicationContextError extends BaseError {\n state = {};\n constructor(message, code) {\n super(message, code, \"Editor Platform Application Context Error\");\n }\n withUrl(url) {\n this.state = { ...this.state, url };\n return this;\n }\n withAppDefinitionId(appDefinitionId) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n}\nconst createEditorPlatformApplicationContextError = createErrorBuilder(EditorPlatformApplicationContextError);\n\nasync function transformEventPayload(eventPayload, privateAPI) {\n if (!eventPayload?.type) {\n return eventPayload;\n }\n switch (eventPayload.type) {\n case \"componentSelectionChanged\":\n const componentRefs = eventPayload.componentRefs || [];\n const components = await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n })\n );\n return {\n type: eventPayload.type,\n components\n };\n default:\n return eventPayload;\n }\n}\n\nclass ApplicationBoundEvents {\n constructor(appDefinitionId, events, privateAPI) {\n this.appDefinitionId = appDefinitionId;\n this.privateAPI = privateAPI;\n this.events = events;\n this.subscribe = events.subscribe.bind(events);\n this.commit = events.commit.bind(events);\n this.startTransaction = events.startTransaction.bind(events);\n this.silent = events.silent.bind(events);\n }\n events;\n subscribe;\n commit;\n startTransaction;\n silent;\n notify(event) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId\n }\n });\n }\n notifyCustomEvent(type, payload) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type\n }\n });\n }\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n addEventListener(eventType, fn) {\n return this.events.subscribe(async (event) => {\n const isAppMatch = event.meta?.appDefinitionId === this.appDefinitionId || event.meta?.appDefinitionId === null;\n const transformPayload = () => transformEventPayload(event.payload, this.privateAPI);\n if (eventType === \"*\") {\n fn(await transformPayload());\n } else if (event.type === PlatformAppEvent.CustomEvent) {\n if (eventType === event.payload?.type && !isAppMatch) {\n fn(await transformPayload());\n }\n } else if (event.type === PlatformAppEvent.HostEvent) {\n if (eventType === event.payload?.type && isAppMatch) {\n fn(await transformPayload());\n }\n }\n });\n }\n}\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\nclass ContextInjectionStatus {\n _resolveContextInjected = () => {\n };\n _isInjected = false;\n key;\n constructor(uuid) {\n this.key = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;\n if (!globalThis[this.key]) {\n globalThis[this.key] = new Promise((resolve) => {\n this._resolveContextInjected = () => {\n this._isInjected = true;\n resolve();\n };\n });\n }\n }\n isInjected() {\n return !!this._isInjected;\n }\n resolveInjected() {\n this._resolveContextInjected?.();\n }\n waitInjected() {\n return new Promise((resolve, reject) => {\n let injected = false;\n let timeoutId;\n let retryCount = 0;\n const timeout = () => {\n if (injected) {\n return;\n }\n timeoutId = setTimeout(() => {\n retryCount++;\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, still re-trying\"\n ).withMessage(`try number ${retryCount}`).message\n );\n }\n timeout();\n return;\n }\n if (!injected) {\n const error = createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, threw by timeout\"\n );\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n timeout();\n const _waitContextInjectedPromise = globalThis[this.key];\n _waitContextInjectedPromise.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n\nconst ENVIRONMENT_CONTEXT_KEY = \"__ENVIRONMENT_CONTEXT_KEY\";\nvar PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {\n PlatformEnvironment2[\"Worker\"] = \"Worker\";\n PlatformEnvironment2[\"Frame\"] = \"Frame\";\n return PlatformEnvironment2;\n})(PlatformEnvironment || {});\nclass EnvironmentContext {\n constructor(environmentContext) {\n this.environmentContext = environmentContext;\n }\n static status = new ContextInjectionStatus(\"environment\");\n static async inject(context) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Environment context already exists and should not be overridden\"\n );\n }\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n static async getInstance() {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n getEvents() {\n return this.environmentContext.events;\n }\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n\nconst APPLICATION_CONTEXT_KEY = \"__APPLICATION_CONTEXT_KEY\";\nclass ApplicationContext {\n constructor(applicationContext, environment) {\n this.applicationContext = applicationContext;\n this.environment = environment;\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI()\n );\n }\n static status = new ContextInjectionStatus(\"application\");\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject(context) {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context can be injected only in frame environment\"\n );\n }\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context already exists and should not be overridden\"\n );\n }\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance()\n );\n this.status.resolveInjected();\n }\n static async getInstance() {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n await this.status.waitInjected();\n return globalThis[APPLICATION_CONTEXT_KEY];\n } else {\n return __APPLICATION_CONTEXT_KEY;\n }\n }\n events;\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n getBindings() {\n return this.applicationContext;\n }\n getEvents() {\n return this.events;\n }\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n if (!appDefinitionId) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"appDefinitionId is not available\"\n );\n }\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n\nexport { APPLICATION_CONTEXT_KEY, ApplicationBoundEvents, ApplicationContext, ENVIRONMENT_CONTEXT_KEY, EnvironmentContext, PlatformEnvironment };\n//# sourceMappingURL=index.js.map\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformSDKAuthErrorCode {\n EmptyAppAuthInstance = 'EmptyAppAuthInstance',\n EmptyAppDefinitionId = 'EmptyAppDefinitionId',\n}\n\nclass EditorPlatformSDKAuthError extends BaseError<EditorPlatformSDKAuthErrorCode> {\n state: Partial<{\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformSDKAuthErrorCode) {\n super(message, code, 'Auth Strategy Error');\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n}\n\nexport const createAuthStrategyShapeError = createErrorBuilder<\n EditorPlatformSDKAuthErrorCode,\n EditorPlatformSDKAuthError\n>(EditorPlatformSDKAuthError);\n\nexport const auth = () => {\n return {\n getAuthHeaders: async () => {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const bindings = context.getBindings();\n\n if (!bindings.appDefinitionId) {\n throw createAuthStrategyShapeError(\n EditorPlatformSDKAuthErrorCode.EmptyAppDefinitionId,\n );\n }\n\n const authInstance = await privateAPI.info.getAppInstance(\n bindings.appDefinitionId,\n );\n\n if (authInstance === undefined) {\n throw createAuthStrategyShapeError(\n EditorPlatformSDKAuthErrorCode.EmptyAppAuthInstance,\n ).withAppDefinitionId(bindings.appDefinitionId);\n }\n\n return {\n headers: {\n Authorization: authInstance,\n },\n };\n },\n };\n};\n","import { createHostModule } from '@wix/sdk-runtime/host-modules';\nimport { Host } from '@wix/sdk-types';\n\nexport class PlatformSDKShape<TShape extends Record<string, any>> {\n static create<TShape extends Record<string, any>>(\n namespace: string,\n shape: TShape,\n ) {\n return new PlatformSDKShape<TShape>(namespace, shape);\n }\n\n constructor(\n public namespace: string,\n private shape: TShape,\n ) {\n // Object.assign(this.shape, {\n // [Symbol(`platform-sdk-shape-namespace`)]: this.namespace,\n // });\n }\n\n build() {\n return createHostModule<Host, TShape>(\n Object.fromEntries(\n Object.entries(this.shape).map(([key, value]) => [key, () => value]),\n ) as { [K in keyof TShape]: () => TShape[K] },\n );\n }\n}\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nexport const application = {\n getPrivateAPI: async <TApplicationPrivateAPI = any>() => {\n const context = await ApplicationContext.getInstance();\n return context.getPrivateApplicationAPI() as TApplicationPrivateAPI;\n },\n getPublicAPI: async <TApplicationPrivateAPI = any>(\n appDefinitionId: string,\n ) => {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n\n return privateAPI.applicationManager.getPublicApplicationAPI(\n appDefinitionId,\n ) as TApplicationPrivateAPI;\n },\n getAppInstance: async () => {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const bindings = context.getBindings();\n\n return privateAPI.info.getAppInstance(bindings.appDefinitionId);\n },\n};\n\nexport default PlatformSDKShape.create('application', application).build();\n","import {\n ApplicationContext,\n IComponent,\n} from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nexport const components = {\n async getSelectedComponents(): Promise<IComponent[]> {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const refs = await privateAPI.components.getSelectedComponents();\n\n return Promise.all(\n refs.map((ref: any) => privateAPI.components.getComponent(ref)),\n );\n },\n};\n\nexport default PlatformSDKShape.create('components', components).build();\n","import {\n ApplicationContext,\n AppEventPayload,\n AllowedEvents,\n} from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nexport const events = {\n addEventListener: async (\n name: any,\n // TODO: fix types\n cb: (payload: AppEventPayload<AllowedEvents>) => void,\n ) => {\n const context = await ApplicationContext.getInstance();\n return context.getEvents().addEventListener(name, cb);\n },\n};\n\nexport default PlatformSDKShape.create('events', events).build();\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nexport const info = {\n async getViewMode() {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n return privateAPI.info.getViewMode();\n },\n\n async getLanguageCode() {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n return privateAPI.info.getLanguageCode();\n },\n};\n\nexport default PlatformSDKShape.create('info', info).build();\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum WidgetShapeErrorCode {\n UndefinedCompRef = 'UndefinedCompRef',\n}\n\nclass WidgetShapeError extends BaseError<WidgetShapeErrorCode> {\n constructor(message: string, code: WidgetShapeErrorCode) {\n super(message, code, 'Widget Error');\n }\n}\n\nexport const createWidgetShapeError = createErrorBuilder<\n WidgetShapeErrorCode,\n WidgetShapeError\n>(WidgetShapeError);\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport { components } from '../components';\nimport { createWidgetShapeError, WidgetShapeErrorCode } from './errors';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst getSelectedComponentRef = async () => {\n const selected = await components.getSelectedComponents();\n const compRef = selected[0]?.compRef;\n\n if (!compRef) {\n throw createWidgetShapeError(WidgetShapeErrorCode.UndefinedCompRef);\n }\n\n return compRef;\n};\n\nexport const widget = {\n // async getAttributes(): Promise<Record<string, string>> {\n // const context = await ApplicationContext.getInstance();\n // const privateAPI = context.getPrivateAPI();\n // const compRef = await getSelectedComponentRef();\n //\n // return privateAPI.customElement.getAttributes(compRef);\n // },\n async getProp(propName: string): Promise<string> {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const compRef = await getSelectedComponentRef();\n\n return privateAPI.customElement.getAttribute(compRef, propName);\n },\n async setProp(propName: string, value: string): Promise<void> {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const compRef = await getSelectedComponentRef();\n\n await privateAPI.customElement.setAttribute(compRef, propName, value);\n },\n};\n\nexport default PlatformSDKShape.create('widget', widget).build();\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\ninterface IColorValue {\n color: string;\n theme?: string;\n}\n\ninterface IFontValue {\n family?: string;\n style?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n };\n size?: number;\n theme?: string;\n}\n\ntype IFontValueInternal = IFontValue & {\n editorKey?: string;\n preset?: string;\n};\n\nconst fonts = {\n transformFontInternalValue: (value?: IFontValue): IFontValueInternal => {\n if (value) {\n const { theme, ...rest } = fonts.normalize(value);\n\n return {\n ...rest,\n editorKey: theme,\n };\n } else {\n return {\n editorKey: 'font_7',\n family: 'helvetica-w01-roman',\n size: 16,\n style: {},\n };\n }\n },\n\n transformFontPublicValue: (\n value?: IFontValue & IFontValueInternal,\n ): IFontValue | null => {\n if (!value) {\n return null;\n }\n\n return {\n ...fonts.normalize(value),\n theme: value.editorKey,\n };\n },\n\n normalize: ({\n theme,\n editorKey,\n preset,\n ...rest\n }: IFontValueInternal): IFontValue => {\n return {\n ...rest,\n theme: theme ?? editorKey,\n };\n },\n};\n\nexport const inputs = {\n async selectColor(\n value?: Partial<IColorValue>,\n onColorChange?: (value: IColorValue) => void,\n ): Promise<IColorValue | null> {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI() as any;\n\n let _value: IColorValue | null = value\n ? ({\n color: value.color,\n theme: value?.theme,\n } as IColorValue)\n : null;\n\n await privateAPI.inputs.openColorPicker(\n {\n color: value?.theme ? value.theme : value?.color,\n },\n ({\n color,\n theme,\n }: {\n color: string;\n theme: string;\n isHover: boolean;\n }) => {\n const _color = { color, theme };\n\n _value = _color;\n onColorChange?.(_color);\n },\n );\n\n return _value;\n },\n\n async selectFont(\n value?: IFontValue,\n options?: {\n title?: string;\n panelSectionsDefinition?: Partial<{\n theme: 'hidden' | 'enabled';\n font: 'hidden' | 'enabled';\n size: 'hidden' | 'enabled';\n style: 'hidden' | 'enabled';\n htmlTag: 'hidden' | 'enabled';\n }>;\n fontMaxSize?: number;\n fontMinSize?: number;\n },\n onFontChange?: (value: IFontValue) => void,\n ): Promise<IFontValue | null> {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI() as any;\n\n let _value = fonts.transformFontPublicValue(value) as IFontValue;\n\n const applyChanges = (...changes: (string | number)[]) => {\n if (!_value) {\n _value = fonts.transformFontPublicValue(\n fonts.transformFontInternalValue(value),\n ) as IFontValue;\n }\n\n switch (changes[0]) {\n case 'theme':\n Object.assign(_value, {\n theme: changes[1],\n });\n\n break;\n\n case 'size':\n Object.assign(_value, {\n size: changes[1],\n });\n\n break;\n\n case 'bold':\n Object.assign(_value, {\n style: {\n ..._value.style,\n bold: changes[1],\n },\n });\n\n break;\n\n case 'italic':\n Object.assign(_value, {\n style: {\n ..._value.style,\n italic: changes[1],\n },\n });\n\n break;\n\n case 'underline':\n Object.assign(_value, {\n style: {\n ..._value.style,\n underline: changes[1],\n },\n });\n\n break;\n\n case 'family':\n Object.assign(_value, {\n family: changes[1],\n });\n\n break;\n }\n };\n\n await privateAPI.inputs.openFontPicker(\n {\n ...options,\n componentStyle: fonts.transformFontInternalValue(value),\n },\n (...changes: (string | number)[]) => {\n applyChanges(...changes);\n onFontChange?.(_value!);\n },\n );\n\n return _value;\n },\n};\n\nexport default PlatformSDKShape.create('inputs', inputs).build();\n","import { IFrameConsumerChannel } from '@wix/editor-platform-transport';\nimport { PlatformFrameAPI } from '@wix/editor-application/platform-frame-api';\nimport type { WixSDKTypes } from '@wix/public-editor-platform-interfaces';\n\n/**\n * TODO: expose channel from the host so all platform related modules\n * might get rid from the global Application and Environment contexts\n */\nexport const editorPlatformFrameHost = (): WixSDKTypes.Host => {\n const channel = new IFrameConsumerChannel();\n channel.expose(new PlatformFrameAPI());\n\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return { disconnect() {} };\n },\n },\n };\n};\n","import { WorkerConsumerChannel } from '@wix/editor-platform-transport';\nimport { PlatformWorkerAPI } from '@wix/editor-application/platform-worker-api';\nimport type { WixSDKTypes } from '@wix/public-editor-platform-interfaces';\n\n/**\n * TODO: expose channel from the host so all platform related modules\n * might get rid from the global Application and Environment contexts\n */\nexport const editorPlatformWorkerHost = (): WixSDKTypes.Host => {\n const channel = new WorkerConsumerChannel();\n channel.expose(new PlatformWorkerAPI());\n\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return { disconnect() {} };\n },\n },\n };\n};\n","import { auth } from './auth';\n\nexport { default as application } from './application';\nexport { default as components } from './components';\nexport { default as events } from './events';\nexport { default as info } from './info';\nexport { default as widget } from './widget';\nexport { default as inputs } from './inputs';\n\nimport { editorPlatformFrameHost } from './editorPlatformFrameHost';\nimport { editorPlatformWorkerHost } from './editorPlatformWorkerHost';\n\nexport const editor = {\n host: () => {\n const isWorker = typeof importScripts === 'function';\n\n if (isWorker) {\n return editorPlatformWorkerHost();\n }\n\n return editorPlatformFrameHost();\n },\n auth,\n};\n"],"names":["BaseError","createErrorBuilder","PlatformAppEvent","createHostModule","WidgetShapeErrorCode","IFrameConsumerChannel","PlatformFrameAPI","WorkerConsumerChannel","PlatformWorkerAPI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../editor-platform-application-context/dist/esm/index.js","../../src/auth.ts","../../src/env.ts","../../src/PlatformSDKShape.ts","../../src/application/index.ts","../../src/components/index.ts","../../src/events/index.ts","../../src/info/index.ts","../../src/widget/errors.ts","../../src/widget/index.ts","../../src/inputs/index.ts","../../src/editorPlatformFrameHost.ts","../../src/editorPlatformWorkerHost.ts","../../src/index.ts"],"sourcesContent":["import { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';\nimport { PlatformAppEvent, PlatformAppEventEmitter } from '@wix/public-editor-platform-events';\n\nvar EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {\n EditorPlatformApplicationContextErrorCode2[\"IncorrectEnvironment\"] = \"IncorrectEnvironment\";\n EditorPlatformApplicationContextErrorCode2[\"ClientAuthError\"] = \"ClientAuthError\";\n return EditorPlatformApplicationContextErrorCode2;\n})(EditorPlatformApplicationContextErrorCode || {});\nclass EditorPlatformApplicationContextError extends BaseError {\n state = {};\n constructor(message, code) {\n super(message, code, \"Editor Platform Application Context Error\");\n }\n withUrl(url) {\n this.state = { ...this.state, url };\n return this;\n }\n withAppDefinitionId(appDefinitionId) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n}\nconst createEditorPlatformApplicationContextError = createErrorBuilder(EditorPlatformApplicationContextError);\n\nasync function transformEventPayload(eventPayload, privateAPI) {\n if (!eventPayload?.type) {\n return eventPayload;\n }\n switch (eventPayload.type) {\n case \"componentSelectionChanged\":\n const componentRefs = eventPayload.componentRefs || [];\n const components = await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n })\n );\n return {\n type: eventPayload.type,\n components\n };\n default:\n return eventPayload;\n }\n}\n\nclass ApplicationBoundEvents {\n constructor(appDefinitionId, events, privateAPI) {\n this.appDefinitionId = appDefinitionId;\n this.privateAPI = privateAPI;\n this.events = events;\n this.subscribe = events.subscribe.bind(events);\n this.commit = events.commit.bind(events);\n this.startTransaction = events.startTransaction.bind(events);\n this.silent = events.silent.bind(events);\n }\n events;\n subscribe;\n commit;\n startTransaction;\n silent;\n notify(event) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId\n }\n });\n }\n notifyCustomEvent(type, payload) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type\n }\n });\n }\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n addEventListener(eventType, fn) {\n return this.events.subscribe(async (event) => {\n const isAppMatch = event.meta?.appDefinitionId === this.appDefinitionId || event.meta?.appDefinitionId === null;\n const transformPayload = () => transformEventPayload(event.payload, this.privateAPI);\n if (eventType === \"*\") {\n fn(await transformPayload());\n } else if (event.type === PlatformAppEvent.CustomEvent) {\n if (eventType === event.payload?.type && !isAppMatch) {\n fn(await transformPayload());\n }\n } else if (event.type === PlatformAppEvent.HostEvent) {\n if (eventType === event.payload?.type && isAppMatch) {\n fn(await transformPayload());\n }\n }\n });\n }\n}\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\nclass ContextInjectionStatus {\n _resolveContextInjected = () => {\n };\n _isInjected = false;\n key;\n constructor(uuid) {\n this.key = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;\n if (!globalThis[this.key]) {\n globalThis[this.key] = new Promise((resolve) => {\n this._resolveContextInjected = () => {\n this._isInjected = true;\n resolve();\n };\n });\n }\n }\n isInjected() {\n return !!this._isInjected;\n }\n resolveInjected() {\n this._resolveContextInjected?.();\n }\n waitInjected() {\n return new Promise((resolve, reject) => {\n let injected = false;\n let timeoutId;\n let retryCount = 0;\n const timeout = () => {\n if (injected) {\n return;\n }\n timeoutId = setTimeout(() => {\n retryCount++;\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, still re-trying\"\n ).withMessage(`try number ${retryCount}`).message\n );\n }\n timeout();\n return;\n }\n if (!injected) {\n const error = createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, threw by timeout\"\n );\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n timeout();\n const _waitContextInjectedPromise = globalThis[this.key];\n _waitContextInjectedPromise.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n\nconst ENVIRONMENT_CONTEXT_KEY = \"__ENVIRONMENT_CONTEXT_KEY\";\nvar PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {\n PlatformEnvironment2[\"Worker\"] = \"Worker\";\n PlatformEnvironment2[\"Frame\"] = \"Frame\";\n PlatformEnvironment2[\"ComponentPanel\"] = \"ComponentPanel\";\n return PlatformEnvironment2;\n})(PlatformEnvironment || {});\nclass EnvironmentContext {\n constructor(environmentContext) {\n this.environmentContext = environmentContext;\n }\n static status = new ContextInjectionStatus(\"environment\");\n static async inject(context) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Environment context already exists and should not be overridden\"\n );\n }\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n static async getInstance() {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n getEvents() {\n return this.environmentContext.events;\n }\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n\nconst APPLICATION_CONTEXT_KEY = \"__APPLICATION_CONTEXT_KEY\";\nclass ApplicationContext {\n constructor(applicationContext, environment) {\n this.applicationContext = applicationContext;\n this.environment = environment;\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI()\n );\n }\n static status = new ContextInjectionStatus(\"application\");\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject(context) {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context can be injected only in frame environment\"\n );\n }\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context already exists and should not be overridden\"\n );\n }\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance()\n );\n this.status.resolveInjected();\n }\n static async getInstance() {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n await this.status.waitInjected();\n return globalThis[APPLICATION_CONTEXT_KEY];\n } else {\n return __APPLICATION_CONTEXT_KEY;\n }\n }\n events;\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n getBindings() {\n return this.applicationContext;\n }\n getEvents() {\n return this.events;\n }\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n if (!appDefinitionId) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"appDefinitionId is not available\"\n );\n }\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n\nconst createSDKHost = (props) => {\n const environmentContext = new EnvironmentContext({\n environment: props.environment,\n privateApi: props.privateAPI,\n events: props.events ?? new PlatformAppEventEmitter(),\n applicationAPIs: props.applicationPrivateAPI ? {\n [props.appDefinitionId]: props.applicationPrivateAPI\n } : {}\n });\n const applicationContext = new ApplicationContext(\n {\n appDefinitionId: props.appDefinitionId,\n appDefinitionName: \"\"\n },\n environmentContext\n );\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return {\n disconnect() {\n }\n };\n }\n },\n environmentContext,\n applicationContext\n };\n};\n\nconst auth = (appDefinitionId, privateAPI) => {\n return {\n getAuthHeaders: async () => {\n if (!appDefinitionId) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.ClientAuthError\n );\n }\n const authInstance = await privateAPI.info.getAppInstance(appDefinitionId);\n if (authInstance === void 0) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.ClientAuthError,\n \"empty auth instance\"\n ).withAppDefinitionId(appDefinitionId);\n }\n return {\n headers: {\n Authorization: authInstance\n }\n };\n }\n };\n};\n\nexport { APPLICATION_CONTEXT_KEY, ApplicationBoundEvents, ApplicationContext, ENVIRONMENT_CONTEXT_KEY, EnvironmentContext, PlatformEnvironment, auth, createSDKHost };\n//# sourceMappingURL=index.js.map\n","import { ApplicationContext } from '@wix/editor-application-context';\nimport {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformSDKAuthErrorCode {\n EmptyAppAuthInstance = 'EmptyAppAuthInstance',\n EmptyAppDefinitionId = 'EmptyAppDefinitionId',\n}\n\nclass EditorPlatformSDKAuthError extends BaseError<EditorPlatformSDKAuthErrorCode> {\n state: Partial<{\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformSDKAuthErrorCode) {\n super(message, code, 'Auth Strategy Error');\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n}\n\nexport const createAuthStrategyShapeError = createErrorBuilder<\n EditorPlatformSDKAuthErrorCode,\n EditorPlatformSDKAuthError\n>(EditorPlatformSDKAuthError);\n\nexport const auth = () => {\n return {\n getAuthHeaders: async () => {\n const context = await ApplicationContext.getInstance();\n const privateAPI = context.getPrivateAPI();\n const bindings = context.getBindings();\n\n if (!bindings.appDefinitionId) {\n throw createAuthStrategyShapeError(\n EditorPlatformSDKAuthErrorCode.EmptyAppDefinitionId,\n );\n }\n\n const authInstance = await privateAPI.info.getAppInstance(\n bindings.appDefinitionId,\n );\n\n if (authInstance === undefined) {\n throw createAuthStrategyShapeError(\n EditorPlatformSDKAuthErrorCode.EmptyAppAuthInstance,\n ).withAppDefinitionId(bindings.appDefinitionId);\n }\n\n return {\n headers: {\n Authorization: authInstance,\n },\n };\n },\n };\n};\n","import {\n IFrameConsumerChannel,\n WorkerConsumerChannel,\n} from '@wix/editor-platform-transport';\nimport { PlatformFrameAPI } from '@wix/editor-application/platform-frame-api';\nimport { PlatformWorkerAPI } from '@wix/editor-application/platform-worker-api';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var _EP_TRANSPORT_INIT_KEY: boolean;\n}\n\nconst INIT_KEY = '_EP_TRANSPORT_INIT_KEY';\n\n/**\n * small workaround to run init only for a one time\n */\nif (!globalThis[INIT_KEY]) {\n const isWorker = typeof importScripts === 'function';\n\n /**\n * TODO: probably we can try to split this code somehow\n * and load the only API according to the current env.\n */\n if (isWorker) {\n const channel = new WorkerConsumerChannel();\n channel.expose(new PlatformWorkerAPI());\n } else {\n const channel = new IFrameConsumerChannel();\n channel.expose(new PlatformFrameAPI());\n }\n\n globalThis[INIT_KEY] = true;\n}\n","import './env';\n\nimport { createHostModule, HostModule } from '@wix/sdk-runtime/host-modules';\nimport { Host } from '@wix/sdk-types';\nimport {\n ApplicationContext,\n EnvironmentContext,\n IAddonContext,\n IEditorApplicationContext,\n} from '@wix/editor-application-context';\n\ninterface IHostContexts {\n environmentContext: EnvironmentContext;\n applicationContext: ApplicationContext<\n IEditorApplicationContext | IAddonContext\n >;\n}\n\ntype UnwrapShape<T> = {\n [K in keyof T]: T[K] extends (contexts: IHostContexts) => infer R ? R : never;\n};\n\nexport class PlatformSDKShape<\n TShape extends Record<\n string,\n (contexts: IHostContexts) => (...args: any[]) => any\n >,\n> {\n constructor(\n public namespace: string,\n private shape: TShape,\n ) {\n // Object.assign(this.shape, {\n // [Symbol(`platform-sdk-shape-namespace`)]: this.namespace,\n // });\n }\n\n build() {\n return createHostModule<Host, TShape>(\n Object.fromEntries(\n Object.entries(this.shape).map(([key, value]) => [\n key,\n (host: IHostContexts) => {\n /**\n * this is case when shapes are used as a host modules,\n * meaning without calling the createClient, and use one from the context\n */\n if (host?.environmentContext && host?.applicationContext) {\n return value({\n environmentContext: host.environmentContext,\n applicationContext: host.applicationContext,\n });\n }\n\n /**\n * this is case when\n * createClient is created manually\n */\n return async (...args: any) => {\n const environmentContext = await EnvironmentContext.getInstance();\n const applicationContext = await ApplicationContext.getInstance();\n\n return value({\n environmentContext,\n applicationContext,\n })(...args);\n };\n },\n ]),\n ) as { [K in keyof TShape]: () => TShape[K] },\n ) as UnwrapShape<TShape> & HostModule<UnwrapShape<TShape>, Host>;\n }\n}\n","import { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst applicationShape = new PlatformSDKShape('application', {\n getPrivateAPI({ applicationContext }) {\n return async <TApplicationPrivateAPI = any>() => {\n return applicationContext.getPrivateApplicationAPI() as TApplicationPrivateAPI;\n };\n },\n\n getPublicAPI({ applicationContext }) {\n return async <TApplicationPrivateAPI>(appDefinitionId: string) => {\n const privateAPI = applicationContext.getPrivateAPI();\n\n return privateAPI.applicationManager.getPublicApplicationAPI(\n appDefinitionId,\n ) as TApplicationPrivateAPI;\n };\n },\n\n getAppInstance({ applicationContext }) {\n return async () => {\n const privateAPI = applicationContext.getPrivateAPI();\n const bindings = applicationContext.getBindings();\n\n return privateAPI.info.getAppInstance(bindings.appDefinitionId);\n };\n },\n});\n\nexport default applicationShape.build();\n","import { IComponent } from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst componentsShape = new PlatformSDKShape('components', {\n getSelectedComponents({ applicationContext }) {\n return async (): Promise<IComponent[]> => {\n const privateAPI = applicationContext.getPrivateAPI();\n const refs = await privateAPI.components.getSelectedComponents();\n\n return Promise.all(\n refs.map((ref: any) => privateAPI.components.getComponent(ref)),\n );\n };\n },\n});\n\nexport default componentsShape.build();\n","import {\n AppEventPayload,\n AllowedEvents,\n} from '@wix/editor-application-context';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst eventsShape = new PlatformSDKShape('events', {\n addEventListener({ applicationContext }) {\n return async (\n name: any,\n // TODO: fix types\n cb: (payload: AppEventPayload<AllowedEvents>) => void,\n ) => {\n return applicationContext.getEvents().addEventListener(name, cb);\n };\n },\n});\n\nexport default eventsShape.build();\n","import { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst infoShape = new PlatformSDKShape('info', {\n getViewMode({ applicationContext }) {\n return async () => {\n const privateAPI = applicationContext.getPrivateAPI();\n return privateAPI.info.getViewMode();\n };\n },\n\n getLanguageCode({ applicationContext }) {\n return async () => {\n const privateAPI = applicationContext.getPrivateAPI();\n return privateAPI.info.getLanguageCode();\n };\n },\n});\n\nexport default infoShape.build();\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum WidgetShapeErrorCode {\n UndefinedCompRef = 'UndefinedCompRef',\n}\n\nclass WidgetShapeError extends BaseError<WidgetShapeErrorCode> {\n constructor(message: string, code: WidgetShapeErrorCode) {\n super(message, code, 'Widget Error');\n }\n}\n\nexport const createWidgetShapeError = createErrorBuilder<\n WidgetShapeErrorCode,\n WidgetShapeError\n>(WidgetShapeError);\n","import components from '../components';\nimport { createWidgetShapeError, WidgetShapeErrorCode } from './errors';\nimport { PlatformSDKShape } from '../PlatformSDKShape';\n\nconst getSelectedComponentRef = async () => {\n const selected = await components.getSelectedComponents();\n const compRef = selected[0]?.compRef;\n\n if (!compRef) {\n throw createWidgetShapeError(WidgetShapeErrorCode.UndefinedCompRef);\n }\n\n return compRef;\n};\n\nconst widgetShape = new PlatformSDKShape('widget', {\n getProp({ applicationContext }) {\n return async (propName: string): Promise<string> => {\n const privateAPI = applicationContext.getPrivateAPI();\n const compRef = await getSelectedComponentRef();\n\n return privateAPI.customElement.getAttribute(compRef, propName);\n };\n },\n setProp({ applicationContext }) {\n return async (propName: string, value: string): Promise<void> => {\n const privateAPI = applicationContext.getPrivateAPI();\n const compRef = await getSelectedComponentRef();\n\n await privateAPI.customElement.setAttribute(compRef, propName, value);\n };\n },\n});\n\nexport default widgetShape.build();\n","import { PlatformSDKShape } from '../PlatformSDKShape';\n\ninterface IColorValue {\n color: string;\n theme?: string;\n}\n\ninterface IFontValue {\n family?: string;\n style?: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n };\n size?: number;\n theme?: string;\n}\n\ntype IFontValueInternal = IFontValue & {\n editorKey?: string;\n preset?: string;\n};\n\nconst fonts = {\n transformFontInternalValue: (value?: IFontValue): IFontValueInternal => {\n if (value) {\n const { theme, ...rest } = fonts.normalize(value);\n\n return {\n ...rest,\n editorKey: theme,\n };\n } else {\n return {\n editorKey: 'font_7',\n family: 'helvetica-w01-roman',\n size: 16,\n style: {},\n };\n }\n },\n\n transformFontPublicValue: (\n value?: IFontValue & IFontValueInternal,\n ): IFontValue | null => {\n if (!value) {\n return null;\n }\n\n return {\n ...fonts.normalize(value),\n theme: value.editorKey,\n };\n },\n\n normalize: ({\n theme,\n editorKey,\n preset,\n ...rest\n }: IFontValueInternal): IFontValue => {\n return {\n ...rest,\n theme: theme ?? editorKey,\n };\n },\n};\n\nconst inputsShape = new PlatformSDKShape('inputs', {\n selectColor({ applicationContext }) {\n return async (\n value?: Partial<IColorValue>,\n onColorChange?: (value: IColorValue) => void,\n ): Promise<IColorValue | null> => {\n const privateAPI = applicationContext.getPrivateAPI() as any;\n\n let _value: IColorValue | null = value\n ? ({\n color: value.color,\n theme: value?.theme,\n } as IColorValue)\n : null;\n\n await privateAPI.inputs.openColorPicker(\n {\n color: value?.theme ? value.theme : value?.color,\n },\n ({\n color,\n theme,\n }: {\n color: string;\n theme: string;\n isHover: boolean;\n }) => {\n const _color = { color, theme };\n\n _value = _color;\n onColorChange?.(_color);\n },\n );\n\n return _value;\n };\n },\n\n selectFont({ applicationContext }) {\n return async (\n value?: IFontValue,\n options?: {\n title?: string;\n panelSectionsDefinition?: Partial<{\n theme: 'hidden' | 'enabled';\n font: 'hidden' | 'enabled';\n size: 'hidden' | 'enabled';\n style: 'hidden' | 'enabled';\n htmlTag: 'hidden' | 'enabled';\n }>;\n fontMaxSize?: number;\n fontMinSize?: number;\n },\n onFontChange?: (value: IFontValue) => void,\n ): Promise<IFontValue | null> => {\n const privateAPI = applicationContext.getPrivateAPI() as any;\n\n let _value = fonts.transformFontPublicValue(value) as IFontValue;\n\n const applyChanges = (...changes: (string | number)[]) => {\n if (!_value) {\n _value = fonts.transformFontPublicValue(\n fonts.transformFontInternalValue(value),\n ) as IFontValue;\n }\n\n switch (changes[0]) {\n case 'theme':\n Object.assign(_value, {\n theme: changes[1],\n });\n\n break;\n\n case 'size':\n Object.assign(_value, {\n size: changes[1],\n });\n\n break;\n\n case 'bold':\n Object.assign(_value, {\n style: {\n ..._value.style,\n bold: changes[1],\n },\n });\n\n break;\n\n case 'italic':\n Object.assign(_value, {\n style: {\n ..._value.style,\n italic: changes[1],\n },\n });\n\n break;\n\n case 'underline':\n Object.assign(_value, {\n style: {\n ..._value.style,\n underline: changes[1],\n },\n });\n\n break;\n\n case 'family':\n Object.assign(_value, {\n family: changes[1],\n });\n\n break;\n }\n };\n\n await privateAPI.inputs.openFontPicker(\n {\n ...options,\n componentStyle: fonts.transformFontInternalValue(value),\n },\n (...changes: (string | number)[]) => {\n applyChanges(...changes);\n onFontChange?.(_value!);\n },\n );\n\n return _value;\n };\n },\n});\n\nexport default inputsShape.build();\n","import type { WixSDKTypes } from '@wix/public-editor-platform-interfaces';\n\nexport const editorPlatformFrameHost = (): WixSDKTypes.Host => {\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return { disconnect() {} };\n },\n },\n };\n};\n","import type { WixSDKTypes } from '@wix/public-editor-platform-interfaces';\n\nexport const editorPlatformWorkerHost = (): WixSDKTypes.Host => {\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return { disconnect() {} };\n },\n },\n };\n};\n","import { auth } from './auth';\n\nexport { default as application } from './application';\nexport { default as components } from './components';\nexport { default as events } from './events';\nexport { default as info } from './info';\nexport { default as widget } from './widget';\nexport { default as inputs } from './inputs';\n\nimport { editorPlatformFrameHost } from './editorPlatformFrameHost';\nimport { editorPlatformWorkerHost } from './editorPlatformWorkerHost';\n\nexport const editor = {\n host: () => {\n const isWorker = typeof importScripts === 'function';\n\n if (isWorker) {\n return editorPlatformWorkerHost();\n }\n\n return editorPlatformFrameHost();\n },\n auth,\n};\n"],"names":["BaseError","createErrorBuilder","PlatformAppEvent","WorkerConsumerChannel","PlatformWorkerAPI","IFrameConsumerChannel","PlatformFrameAPI","createHostModule","WidgetShapeErrorCode"],"mappings":"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"}
|