@pixeasy/customizer 0.0.5-beta.0 → 0.0.7-beta.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/README.md +20 -9
- package/index.d.ts +39 -34
- package/package.json +3 -2
- package/pixeasy-customizer.min.js +235 -235
package/README.md
CHANGED
|
@@ -46,20 +46,31 @@ type PixeasyOpenOptions = {
|
|
|
46
46
|
|
|
47
47
|
### `PixeasyBuilder` events
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- `
|
|
54
|
-
- `
|
|
49
|
+
All events can be subscribed via `builder.on(name, handler)`.
|
|
50
|
+
|
|
51
|
+
| Event | When it fires | Payload |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| `manifest-loaded` | After the customizer manifest is loaded successfully for the current `productId`. | `ManifestLoadedEventDetail` |
|
|
54
|
+
| `sdk-ready` | After the customizer finishes its initial load and is ready for interaction. | `SdkReadyEventDetail` |
|
|
55
|
+
| `submission:success` | Fires when a submission request succeeds. | `SubmissionSuccessEventDetail` |
|
|
56
|
+
| `submission:failed` | Fires when a submission request fails (API error or network/exception). | `SubmissionFailedEventDetail` |
|
|
57
|
+
| `error` | When the runtime reports an error (invalid config, manifest load failure, asset load failure, or unexpected runtime error). | `ErrorEventDetail` |
|
|
58
|
+
| `closed` | When you call `builder.close()` (the element is removed and listeners are detached). | `undefined` |
|
|
59
|
+
|
|
60
|
+
Note: `manifest-loaded`, `sdk-ready`, `submission:success`, `submission:failed`, and `error` originate as DOM `CustomEvent`s from the `<pixeasy-customizer>` element; `closed` is emitted by `PixeasyBuilder`.
|
|
55
61
|
|
|
56
62
|
Usage:
|
|
57
63
|
|
|
58
64
|
```ts
|
|
65
|
+
import { SDK_EVENTS } from '@pixeasy/customizer';
|
|
66
|
+
|
|
59
67
|
builder
|
|
60
|
-
.on(
|
|
61
|
-
.on(
|
|
62
|
-
.on(
|
|
68
|
+
.on(SDK_EVENTS.MANIFEST_LOADED, (event) => console.log('manifest-loaded', event))
|
|
69
|
+
.on(SDK_EVENTS.SDK_READY, (event) => console.log(event.productId))
|
|
70
|
+
.on(SDK_EVENTS.SUBMISSION_SUCCESS, (event) => console.log(event.submissionNumber))
|
|
71
|
+
.on(SDK_EVENTS.SUBMISSION_FAILED, (event) => console.error(event.message))
|
|
72
|
+
.on(SDK_EVENTS.ERROR, (event) => console.error(event.code, event.message))
|
|
73
|
+
.on(SDK_EVENTS.CLOSED, () => console.log('closed'));
|
|
63
74
|
```
|
|
64
75
|
|
|
65
76
|
## Framework examples
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export interface SdkElementConfig {
|
|
2
2
|
apiKey: string;
|
|
3
3
|
productId: string;
|
|
4
|
+
predesignId?: string;
|
|
4
5
|
locale?: string;
|
|
5
6
|
theme?: string;
|
|
6
7
|
readonly?: boolean;
|
|
@@ -21,55 +22,59 @@ export interface SdkReadyEventDetail {
|
|
|
21
22
|
productId: string;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export interface DesignChangeEventDetail {
|
|
25
|
-
productId: string;
|
|
26
|
-
placements: unknown[];
|
|
27
|
-
overlays: unknown[];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
25
|
export interface ErrorEventDetail {
|
|
31
26
|
code: 'INVALID_CONFIG' | 'MANIFEST_LOAD_FAILED' | 'ASSET_LOAD_FAILED' | 'RUNTIME_ERROR';
|
|
32
27
|
message: string;
|
|
33
28
|
}
|
|
34
29
|
|
|
35
|
-
export interface
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
export interface SubmissionSuccessEventDetail {
|
|
31
|
+
productId?: string;
|
|
32
|
+
views?: string[];
|
|
33
|
+
submissionNumber: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface SubmissionFailedEventDetail {
|
|
37
|
+
productId?: string;
|
|
38
|
+
views?: string[];
|
|
39
|
+
message: string;
|
|
40
|
+
errors?: string[];
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
export const SDK_EVENTS: {
|
|
44
|
+
readonly MANIFEST_LOADED: 'manifest-loaded';
|
|
45
|
+
readonly SDK_READY: 'sdk-ready';
|
|
46
|
+
readonly SUBMISSION_SUCCESS: 'submission:success';
|
|
47
|
+
readonly SUBMISSION_FAILED: 'submission:failed';
|
|
48
|
+
readonly ERROR: 'error';
|
|
49
|
+
readonly CLOSED: 'closed';
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type BuilderEventName = (typeof SDK_EVENTS)[keyof typeof SDK_EVENTS];
|
|
53
|
+
export type UrlOrText = { type: 'url'; value: string } | { type: 'text'; value: string };
|
|
54
|
+
|
|
50
55
|
|
|
51
56
|
export class PixeasyBuilder {
|
|
52
57
|
open(options: PixeasyOpenOptions): this;
|
|
53
58
|
on<K extends BuilderEventName>(
|
|
54
59
|
name: K,
|
|
55
60
|
handler: (payload: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
[typeof SDK_EVENTS.MANIFEST_LOADED]: ManifestLoadedEventDetail;
|
|
62
|
+
[typeof SDK_EVENTS.SDK_READY]: SdkReadyEventDetail;
|
|
63
|
+
[typeof SDK_EVENTS.SUBMISSION_SUCCESS]: SubmissionSuccessEventDetail;
|
|
64
|
+
[typeof SDK_EVENTS.SUBMISSION_FAILED]: SubmissionFailedEventDetail;
|
|
65
|
+
[typeof SDK_EVENTS.ERROR]: ErrorEventDetail;
|
|
66
|
+
[typeof SDK_EVENTS.CLOSED]: undefined;
|
|
62
67
|
}[K]) => void,
|
|
63
68
|
): this;
|
|
64
69
|
off<K extends BuilderEventName>(
|
|
65
70
|
name: K,
|
|
66
71
|
handler: (payload: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
[typeof SDK_EVENTS.MANIFEST_LOADED]: ManifestLoadedEventDetail;
|
|
73
|
+
[typeof SDK_EVENTS.SDK_READY]: SdkReadyEventDetail;
|
|
74
|
+
[typeof SDK_EVENTS.SUBMISSION_SUCCESS]: SubmissionSuccessEventDetail;
|
|
75
|
+
[typeof SDK_EVENTS.SUBMISSION_FAILED]: SubmissionFailedEventDetail;
|
|
76
|
+
[typeof SDK_EVENTS.ERROR]: ErrorEventDetail;
|
|
77
|
+
[typeof SDK_EVENTS.CLOSED]: undefined;
|
|
73
78
|
}[K]) => void,
|
|
74
79
|
): this;
|
|
75
80
|
close(): this;
|
|
@@ -86,7 +91,7 @@ export interface GeneratedThumbnail {
|
|
|
86
91
|
}
|
|
87
92
|
|
|
88
93
|
export function generateThumbnails(
|
|
89
|
-
svgUrl:
|
|
90
|
-
objUrl:
|
|
91
|
-
mtlUrl
|
|
94
|
+
svgUrl: UrlOrText,
|
|
95
|
+
objUrl: UrlOrText,
|
|
96
|
+
mtlUrl?: UrlOrText,
|
|
92
97
|
): Promise<GeneratedThumbnail[]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixeasy/customizer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"import": "./pixeasy-customizer.min.js",
|
|
16
16
|
"default": "./pixeasy-customizer.min.js"
|
|
17
17
|
},
|
|
18
|
-
"./styles.css": "./pixeasy-customizer.css"
|
|
18
|
+
"./styles.css": "./pixeasy-customizer.css",
|
|
19
|
+
"./pixeasy-customizer.css": "./pixeasy-customizer.css"
|
|
19
20
|
},
|
|
20
21
|
"sideEffects": [
|
|
21
22
|
"./pixeasy-customizer.min.js",
|