zakeke-configurator-react 0.1.288-prod → 0.1.290-prod
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.
|
@@ -1,358 +1,358 @@
|
|
|
1
|
-
/// <reference path="../../../../../../../typescript_definitions/declarations/All.d.ts" />
|
|
2
|
-
import { FocusAttributesEventListener } from '@zakeke/zakeke-3d-core';
|
|
3
|
-
import { EventMessage, ExtensionFields, NftForm, NftSettings, OnBeforeSendDataToParent, TryOnMode, TryOnProvidersTypesMapping, VisibleEventMessage } from '.';
|
|
4
|
-
import { PlatformAttributeSelection } from './integrations/Integration';
|
|
5
|
-
import { BootParameters, Camera, Composition, FontFamily, Group, ImageMacroCategory, Item, Product, ProductQuantityRule, SellerSettings, Template, TemplateMacroCategory, Translations, TryOnGenericFineTuningSettings, TryOnProduct, TryOnSeller } from './models';
|
|
6
|
-
import { DAMViewerAnalyticsEventType, PrintingMethodsRestrictions, TextSanitationResult, UIConfig, ZakekeImage } from './models';
|
|
7
|
-
declare global {
|
|
8
|
-
interface Window {
|
|
9
|
-
token: string;
|
|
10
|
-
isOwin: boolean;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
interface RestrictionColor {
|
|
14
|
-
colorCode: string;
|
|
15
|
-
isDefault: boolean;
|
|
16
|
-
}
|
|
17
|
-
interface CustomPreviewSize {
|
|
18
|
-
customCartPreviewWidth: number;
|
|
19
|
-
customCartPreviewHeight: number;
|
|
20
|
-
}
|
|
21
|
-
interface ThemeCompositions {
|
|
22
|
-
name: string;
|
|
23
|
-
docID: string;
|
|
24
|
-
previewImageUrl: string;
|
|
25
|
-
tags: string[];
|
|
26
|
-
}
|
|
27
|
-
interface CurrentCompositionInfo {
|
|
28
|
-
compositionId: string | null;
|
|
29
|
-
compositionName: string | null;
|
|
30
|
-
compositionTags: string[] | null;
|
|
31
|
-
}
|
|
32
|
-
export declare class ZakekeEnvironment {
|
|
33
|
-
private booted;
|
|
34
|
-
private token;
|
|
35
|
-
private platformAttributesSelection;
|
|
36
|
-
private settings;
|
|
37
|
-
private platform;
|
|
38
|
-
private viewer;
|
|
39
|
-
private selection;
|
|
40
|
-
private integration;
|
|
41
|
-
private previewWidth;
|
|
42
|
-
private previewHeight;
|
|
43
|
-
private clientPreviewWidth;
|
|
44
|
-
private clientPreviewHeight;
|
|
45
|
-
private shareUrlPrefix;
|
|
46
|
-
private events;
|
|
47
|
-
private zkProduct;
|
|
48
|
-
private zkScene;
|
|
49
|
-
private zkCurrentTemplate;
|
|
50
|
-
private zkTemplates;
|
|
51
|
-
private internalIsFullscreen;
|
|
52
|
-
private highlightSettings;
|
|
53
|
-
private previousMeshesVisibleStates;
|
|
54
|
-
private lastCameraLocation;
|
|
55
|
-
private enableShareCompositionUrl;
|
|
56
|
-
private sharedCompositionDocId;
|
|
57
|
-
private templateId;
|
|
58
|
-
loadedComposition: {
|
|
59
|
-
templateName: string;
|
|
60
|
-
attributesOptions: Map<number, number>;
|
|
61
|
-
selectedCategoryID: number | null;
|
|
62
|
-
} | null;
|
|
63
|
-
private savedCompositions;
|
|
64
|
-
private isDraftEditor;
|
|
65
|
-
private isViewerMode;
|
|
66
|
-
private isDAMViewer;
|
|
67
|
-
private isTemplateEditor;
|
|
68
|
-
private debugMode;
|
|
69
|
-
private draftCompositionDocId;
|
|
70
|
-
private initialSelection;
|
|
71
|
-
private undoStack;
|
|
72
|
-
private redoStack;
|
|
73
|
-
private pricingCalculator;
|
|
74
|
-
currentAttributesSelection: Object | null;
|
|
75
|
-
currentCompositionInfo: CurrentCompositionInfo | null;
|
|
76
|
-
private copyrightMessageLocalStorageKey;
|
|
77
|
-
private isPupillaryDistanceMandatory;
|
|
78
|
-
isAIEnabled: boolean;
|
|
79
|
-
sellerSettings: SellerSettings | null;
|
|
80
|
-
get internalProduct(): MPlaza.Model | null;
|
|
81
|
-
get internalScene(): Zakeke.Scene | null;
|
|
82
|
-
get internalCurrentTemplate(): MPlaza.Design | null | undefined;
|
|
83
|
-
themeCompositions: ThemeCompositions[] | null;
|
|
84
|
-
currency: string;
|
|
85
|
-
groups: Group[];
|
|
86
|
-
fonts: FontFamily[];
|
|
87
|
-
disableTextColors: boolean;
|
|
88
|
-
textColors: RestrictionColor[];
|
|
89
|
-
/**
|
|
90
|
-
* Get the current text default color.
|
|
91
|
-
*/
|
|
92
|
-
defaultColor: string;
|
|
93
|
-
quantity: number;
|
|
94
|
-
quantityRule: ProductQuantityRule | null;
|
|
95
|
-
culture: string;
|
|
96
|
-
productCode: string;
|
|
97
|
-
productName: string;
|
|
98
|
-
price: number;
|
|
99
|
-
isOutOfStock: boolean;
|
|
100
|
-
composition: any;
|
|
101
|
-
compositionId: string | null;
|
|
102
|
-
templates: Template[];
|
|
103
|
-
currentTemplate: Template | null;
|
|
104
|
-
product: Product | null;
|
|
105
|
-
templateMacroCategories: TemplateMacroCategory[] | null;
|
|
106
|
-
selectedTemplateCategory: string | null;
|
|
107
|
-
cameras: Camera[];
|
|
108
|
-
isExplodedMode: boolean;
|
|
109
|
-
isAssetsLoading: boolean;
|
|
110
|
-
additionalCustomProperties: ExtensionFields[];
|
|
111
|
-
nftSettings: NftSettings | null;
|
|
112
|
-
eventMessages: EventMessage[] | null;
|
|
113
|
-
personalizedMessages: EventMessage[] | null;
|
|
114
|
-
visibleEventMessages: VisibleEventMessage[];
|
|
115
|
-
tryOnProvidersSettings: TryOnProvidersTypesMapping | null;
|
|
116
|
-
tryOnProductSettings: TryOnProduct | null;
|
|
117
|
-
tryOnSellerSettings: TryOnSeller | null;
|
|
118
|
-
pdSettings: number;
|
|
119
|
-
isInfoPointContentVisible: boolean;
|
|
120
|
-
private internalTranslations;
|
|
121
|
-
private integrationVersion;
|
|
122
|
-
translations: Translations | null;
|
|
123
|
-
useLegacyScreenshot: boolean;
|
|
124
|
-
get isFullscreenMode(): boolean;
|
|
125
|
-
get isViewerReady(): boolean;
|
|
126
|
-
get isShoppingPreview(): boolean;
|
|
127
|
-
uiConfig: UIConfig | null;
|
|
128
|
-
backgroundColor: string | null;
|
|
129
|
-
removeBackground: boolean;
|
|
130
|
-
constructor();
|
|
131
|
-
private parseParameters;
|
|
132
|
-
makeDAMAnalyticsView(type: DAMViewerAnalyticsEventType): Promise<import("axios").AxiosResponse<any, any>>;
|
|
133
|
-
private getProduct;
|
|
134
|
-
private getScene;
|
|
135
|
-
private getComposerModels;
|
|
136
|
-
private getFonts;
|
|
137
|
-
private getSettings;
|
|
138
|
-
private getSellerSetting;
|
|
139
|
-
createQuote: (formData: any) => Promise<any>;
|
|
140
|
-
private getPrice;
|
|
141
|
-
private getTranslations;
|
|
142
|
-
private loadLocalization;
|
|
143
|
-
getTemplateMacroCategories: () => Promise<TemplateMacroCategory[]>;
|
|
144
|
-
private loadScript;
|
|
145
|
-
validationNFTEmail: (email: string) => boolean;
|
|
146
|
-
validationNFTWalletAddress: (address: string) => boolean;
|
|
147
|
-
private saveCustomerWalletInfo;
|
|
148
|
-
setCopyrightMessageAccepted: (copyrightMandatoryCheckbox: boolean) => void;
|
|
149
|
-
getCopyrightMessageAccepted: () => boolean;
|
|
150
|
-
/**
|
|
151
|
-
* @private
|
|
152
|
-
*/
|
|
153
|
-
boot: (parameters: BootParameters | null) => Promise<void>;
|
|
154
|
-
loadSceneFromGlbUrl: (glbUrl: string, sceneConfig: Zakeke.SceneConfig) => Promise<void>;
|
|
155
|
-
appendViewer: (container: HTMLElement) => void;
|
|
156
|
-
setHighlightSettings: (settings: {
|
|
157
|
-
color: string;
|
|
158
|
-
size: number;
|
|
159
|
-
}) => void;
|
|
160
|
-
renderDesign: () => Promise<void>;
|
|
161
|
-
private debouncedChange;
|
|
162
|
-
restoreLastCameraLocation: () => void;
|
|
163
|
-
private buildRecapProps;
|
|
164
|
-
updateRecapAndExtensionField: () => void;
|
|
165
|
-
private getCurrentExtensionFields;
|
|
166
|
-
private handleSceneLoaded;
|
|
167
|
-
private getComposition;
|
|
168
|
-
private getDesign;
|
|
169
|
-
private internalLoadDesign;
|
|
170
|
-
private addHotjarScript;
|
|
171
|
-
private addGoogleTagManagerID;
|
|
172
|
-
loadComposition: (id: string | null) => Promise<void>;
|
|
173
|
-
private internalLoadComposition;
|
|
174
|
-
sync3DAndPlatformSelectionWithCurrentSelection: () => Promise<void>;
|
|
175
|
-
private cloneSelection;
|
|
176
|
-
undo: () => Promise<void>;
|
|
177
|
-
redo: () => Promise<void>;
|
|
178
|
-
/**
|
|
179
|
-
* Reset the platform attributes selection to the current selection
|
|
180
|
-
*/
|
|
181
|
-
private resetPlatformAttributesSelection;
|
|
182
|
-
reset: () => Promise<void>;
|
|
183
|
-
private handleAttributeSelectionChanged;
|
|
184
|
-
private handleAttributeEnabled;
|
|
185
|
-
private handleAttributeDisabled;
|
|
186
|
-
private handleAttributeOptionEnabled;
|
|
187
|
-
private handleAttributeOptionDisabled;
|
|
188
|
-
private setAttributeSelectionEnabled;
|
|
189
|
-
private setOptionSelectionEnabled;
|
|
190
|
-
private isOptionEnabled;
|
|
191
|
-
private updateComposition;
|
|
192
|
-
setQuantity(quantity: number): void;
|
|
193
|
-
private _updatePrice;
|
|
194
|
-
private updatePrice;
|
|
195
|
-
private buildStructure;
|
|
196
|
-
private createGroupFromSelection;
|
|
197
|
-
private createStep;
|
|
198
|
-
private createAttributeFromSelection;
|
|
199
|
-
private createOptionFromSelection;
|
|
200
|
-
private createTemplateGroupFromSelection;
|
|
201
|
-
private saveDesignBackbone;
|
|
202
|
-
private saveCompositionBackbone;
|
|
203
|
-
private trigger;
|
|
204
|
-
on: (event: string, callback: any) => void;
|
|
205
|
-
off: (event: string, callback: any) => void;
|
|
206
|
-
setTemplate: (templateId: number) => Promise<void>;
|
|
207
|
-
getTemplateUploadRestrictictions: (templateId: number, areaId: number) => {
|
|
208
|
-
isUserImageAllowed: boolean;
|
|
209
|
-
isJpgAllowed: boolean;
|
|
210
|
-
isPngAllowed: boolean;
|
|
211
|
-
isSvgAllowed: boolean;
|
|
212
|
-
isPdfAllowed: boolean;
|
|
213
|
-
isEpsAllowed: boolean;
|
|
214
|
-
isPdfWithRasterAllowed: boolean;
|
|
215
|
-
};
|
|
216
|
-
private getTemplates;
|
|
217
|
-
private saveProduct;
|
|
218
|
-
private getTemplate;
|
|
219
|
-
updateView: () => void;
|
|
220
|
-
selectOption: (optionId: number) => void;
|
|
221
|
-
selectOptionsbyPrompt(prompt: string): Promise<void>;
|
|
222
|
-
focusGroup: (groupId: number) => void;
|
|
223
|
-
focusAttribute: (attributeId: number) => Promise<void>;
|
|
224
|
-
setCamera(cameraLocationId: string, onlyAngleOfView?: boolean, animate?: boolean): void;
|
|
225
|
-
getCameraByName(name: string): Zakeke.SceneCameraLocation | undefined;
|
|
226
|
-
setCameraLocation(name: string, animate?: boolean): void;
|
|
227
|
-
private base64StringToFile;
|
|
228
|
-
saveTemplate: (templateName: string, selectedCategoryID: number | null, attributeOptions: Map<number, number>) => Promise<void>;
|
|
229
|
-
addToCart: (additionalProperties: Record<string, any>, onBeforeSendDataToParent?: ((data: OnBeforeSendDataToParent) => Promise<Record<string, any>>) | undefined, legacyScreenshot?: boolean, nftForm?: NftForm) => Promise<void>;
|
|
230
|
-
zoomIn: () => void;
|
|
231
|
-
zoomOut: () => void;
|
|
232
|
-
isFullscreenEnabled: () => boolean;
|
|
233
|
-
getDesignItemsInfo(): Item[];
|
|
234
|
-
switchFullscreen: () => void;
|
|
235
|
-
openSecondScreen: () => void;
|
|
236
|
-
private extendedUpdate;
|
|
237
|
-
exportSceneToUsdz: (hash: string) => Promise<import("@zakeke/zakeke-3d-core").Nullable<string> | undefined>;
|
|
238
|
-
exportSceneToGlb: () => Promise<string | Blob | null>;
|
|
239
|
-
setExplodedMode: (explodedMode: boolean) => Promise<void>;
|
|
240
|
-
hasExplodedMode: () => boolean;
|
|
241
|
-
setBackgroundColor: (color: string, alpha: number) => void;
|
|
242
|
-
getCurrentSelection: () => PlatformAttributeSelection[];
|
|
243
|
-
getScreenshot: (width?: number, height?: number, legacyScreenshot?: boolean, backgroundColor?: string | null, padding?: number, camera?: Zakeke.SceneCameraLocation | null) => Promise<string>;
|
|
244
|
-
private fireItemsChange;
|
|
245
|
-
isAreaVisible(areaId: number): boolean;
|
|
246
|
-
removeItem: (guid: string) => Promise<void>;
|
|
247
|
-
addItemText(settings: {
|
|
248
|
-
text: string;
|
|
249
|
-
fontFamily: string;
|
|
250
|
-
}, areaId: number): Promise<void>;
|
|
251
|
-
setItemText: (guid: string, text: string) => void;
|
|
252
|
-
setItemItalic: (guid: string, italic: boolean) => void;
|
|
253
|
-
setItemBold: (guid: string, bold: boolean) => void;
|
|
254
|
-
setItemColor: (guid: string, color: string) => void;
|
|
255
|
-
setItemFontFamily: (guid: string, fontFamily: string) => Promise<void>;
|
|
256
|
-
setItemTextOnPath: (guid: string, areaId: number, value: boolean) => void;
|
|
257
|
-
fullyLoadFont(font: string | FontFamily): Promise<FontFamily>;
|
|
258
|
-
sanitizeString: (family: FontFamily, text: string) => string;
|
|
259
|
-
getSanitationText: (family: FontFamily, text: string) => TextSanitationResult;
|
|
260
|
-
createImage: (file: File, progress?: ((percentage: number) => void) | undefined) => Promise<ZakekeImage>;
|
|
261
|
-
createImageFromUrl: (url: string) => Promise<ZakekeImage>;
|
|
262
|
-
addItemImage: (id: number, areaId: number) => Promise<void>;
|
|
263
|
-
setItemImageFromFile: (guid: string, file: File, progress?: ((percentage: number) => void) | undefined) => Promise<void>;
|
|
264
|
-
setItemImageFromBase64: (guid: string, base64: string) => Promise<void>;
|
|
265
|
-
setItemImage: (guid: string, id: number) => Promise<void>;
|
|
266
|
-
getMacroCategories: () => Promise<ImageMacroCategory[]>;
|
|
267
|
-
getImages: (categoryId: number) => Promise<ZakekeImage[]>;
|
|
268
|
-
setCameraPivot(meshID: string): void;
|
|
269
|
-
resetCameraPivot(): void;
|
|
270
|
-
setCameraZoomEnabled(enabled: boolean): void;
|
|
271
|
-
setCameraByName(name: string, onlyAngleOfView?: boolean, animate?: boolean): void;
|
|
272
|
-
findObjectByName(name: string): BABYLON.AbstractMesh | null | undefined;
|
|
273
|
-
getPDF: () => Promise<string>;
|
|
274
|
-
private rewriteShareUrl;
|
|
275
|
-
getShareCompositionUrl: () => Promise<string>;
|
|
276
|
-
saveCompositionCopy: (isSharing?: boolean) => Promise<any>;
|
|
277
|
-
getOnlineScreenshot: (width: number, height: number, legacyScreenshot?: boolean, backgroundColor?: string, padding?: number) => Promise<{
|
|
278
|
-
originalUrl: string;
|
|
279
|
-
rewrittenUrl: string;
|
|
280
|
-
}>;
|
|
281
|
-
isSceneArOnTheFly: () => boolean | undefined;
|
|
282
|
-
isArDeviceCompliant: () => boolean;
|
|
283
|
-
isAndroidOrIOS: () => boolean;
|
|
284
|
-
isAndroid: boolean;
|
|
285
|
-
isIOS: boolean;
|
|
286
|
-
private buildModelViewerUrl;
|
|
287
|
-
isSceneArEnabled: () => boolean;
|
|
288
|
-
private getPregeneratedARUrl;
|
|
289
|
-
getQrCodeArUrl: (device: 'iOS' | 'Android') => Promise<string>;
|
|
290
|
-
getMobileArUrl: (onFlyArUrl?: string) => Promise<string | null>;
|
|
291
|
-
getMobileLocalArUrl: (onFlyArUrl?: string) => Promise<string>;
|
|
292
|
-
openArMobile: (url: string) => void;
|
|
293
|
-
private registerView;
|
|
294
|
-
getMeshIDbyName: (name: string) => string | undefined;
|
|
295
|
-
hightlightGroup(groupId: number): void;
|
|
296
|
-
highlightAttribute(attributeId: number): void;
|
|
297
|
-
/**
|
|
298
|
-
* Hide a mesh and its children and save the state
|
|
299
|
-
* @param meshId The mesh and childs to hide
|
|
300
|
-
*/
|
|
301
|
-
hideMeshAndSaveState: (meshId: string) => void;
|
|
302
|
-
/**
|
|
303
|
-
* Restore a mesh visibility state from a previous saved one (see hideMeshAndSaveState)
|
|
304
|
-
* @param meshId The mesh and childs to show
|
|
305
|
-
*/
|
|
306
|
-
restoreMeshVisibility: (meshId: string) => void;
|
|
307
|
-
/**
|
|
308
|
-
* Change opacity for a specific mesh
|
|
309
|
-
* @param meshId The mesh to change the opacity
|
|
310
|
-
* @param opacity The opacity to set
|
|
311
|
-
*/
|
|
312
|
-
setMeshDesignVisibility: (meshId: string, visible: boolean) => void;
|
|
313
|
-
addFocusAttributesListener: (listenerFunction: FocusAttributesEventListener) => void;
|
|
314
|
-
clearListeners: () => void;
|
|
315
|
-
setCameraLocked: (isBlocked?: boolean) => void;
|
|
316
|
-
isSceneTryOnEnabled: () => boolean;
|
|
317
|
-
getTryOnUrl: (tryOnUrl?: string) => Promise<string>;
|
|
318
|
-
saveComposition: (customPreviewSize?: CustomPreviewSize, legacyScreenshot?: boolean, isSharing?: boolean) => Promise<void>;
|
|
319
|
-
private bootstrapComposition;
|
|
320
|
-
loadSavedComposition: (docID: string) => Promise<void>;
|
|
321
|
-
private updateSavedCompositions;
|
|
322
|
-
themeCompositionsFromSavedCompositions: (compositions: Composition[]) => {
|
|
323
|
-
name: string;
|
|
324
|
-
docID: string;
|
|
325
|
-
previewImageUrl: string;
|
|
326
|
-
tags: string[];
|
|
327
|
-
}[];
|
|
328
|
-
saveDraftsComposition: (name: string, tags: string[], isCopy?: boolean) => Promise<void>;
|
|
329
|
-
deleteSavedComposition: (docId: string) => Promise<void>;
|
|
330
|
-
applyTemplate: (templateGroupCompositionId: number) => Promise<void>;
|
|
331
|
-
configureByAI: (text: string) => Promise<void>;
|
|
332
|
-
getTryOnProvidersList: () => Promise<TryOnProvidersTypesMapping>;
|
|
333
|
-
getTryOnProductInfo: () => Promise<TryOnProduct | null>;
|
|
334
|
-
private getMessagesByProductCode;
|
|
335
|
-
getTryOnSellerInfo: (typeID: number, providerID: number) => Promise<TryOnSeller | null>;
|
|
336
|
-
get hasVTryOnEnabled(): boolean;
|
|
337
|
-
get canUseTryOn(): boolean;
|
|
338
|
-
get canUsePD(): boolean;
|
|
339
|
-
get isVisibleMeshShownForTryOn(): boolean;
|
|
340
|
-
get isMandatoryPD(): boolean;
|
|
341
|
-
get isTryOnMeshVisible(): boolean;
|
|
342
|
-
get tryOnMeshVisibleSettings(): TryOnGenericFineTuningSettings | undefined;
|
|
343
|
-
setPDDistance: (distance: number) => void;
|
|
344
|
-
pdDistance: () => number;
|
|
345
|
-
exportTryOnMeshToGlb: () => Promise<Blob | null>;
|
|
346
|
-
getTryOnSettings: () => Zakeke.TryOnSettings | undefined;
|
|
347
|
-
tryOnCountView: (sellerID: number, providerID: number, modeChosen: TryOnMode) => Promise<void>;
|
|
348
|
-
/**
|
|
349
|
-
* Ottiene le restrizioni sul printing method (che nel caso di un prodotto configuratore 3D c'è sempre ed è 1 solo).
|
|
350
|
-
* @remarks
|
|
351
|
-
* Se non ci sono restrizioni, ritorna quelle di default
|
|
352
|
-
* @returns
|
|
353
|
-
* Le restrizioni sul printing method o quelle di default
|
|
354
|
-
*/
|
|
355
|
-
getPrintingMethodsRestrictions: () => PrintingMethodsRestrictions;
|
|
356
|
-
setMouseWheelZoomEnabled: (enabled: boolean) => void;
|
|
357
|
-
}
|
|
358
|
-
export {};
|
|
1
|
+
/// <reference path="../../../../../../../typescript_definitions/declarations/All.d.ts" />
|
|
2
|
+
import { FocusAttributesEventListener } from '@zakeke/zakeke-3d-core';
|
|
3
|
+
import { EventMessage, ExtensionFields, NftForm, NftSettings, OnBeforeSendDataToParent, TryOnMode, TryOnProvidersTypesMapping, VisibleEventMessage } from '.';
|
|
4
|
+
import { PlatformAttributeSelection } from './integrations/Integration';
|
|
5
|
+
import { BootParameters, Camera, Composition, FontFamily, Group, ImageMacroCategory, Item, Product, ProductQuantityRule, SellerSettings, Template, TemplateMacroCategory, Translations, TryOnGenericFineTuningSettings, TryOnProduct, TryOnSeller } from './models';
|
|
6
|
+
import { DAMViewerAnalyticsEventType, PrintingMethodsRestrictions, TextSanitationResult, UIConfig, ZakekeImage } from './models';
|
|
7
|
+
declare global {
|
|
8
|
+
interface Window {
|
|
9
|
+
token: string;
|
|
10
|
+
isOwin: boolean;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
interface RestrictionColor {
|
|
14
|
+
colorCode: string;
|
|
15
|
+
isDefault: boolean;
|
|
16
|
+
}
|
|
17
|
+
interface CustomPreviewSize {
|
|
18
|
+
customCartPreviewWidth: number;
|
|
19
|
+
customCartPreviewHeight: number;
|
|
20
|
+
}
|
|
21
|
+
interface ThemeCompositions {
|
|
22
|
+
name: string;
|
|
23
|
+
docID: string;
|
|
24
|
+
previewImageUrl: string;
|
|
25
|
+
tags: string[];
|
|
26
|
+
}
|
|
27
|
+
interface CurrentCompositionInfo {
|
|
28
|
+
compositionId: string | null;
|
|
29
|
+
compositionName: string | null;
|
|
30
|
+
compositionTags: string[] | null;
|
|
31
|
+
}
|
|
32
|
+
export declare class ZakekeEnvironment {
|
|
33
|
+
private booted;
|
|
34
|
+
private token;
|
|
35
|
+
private platformAttributesSelection;
|
|
36
|
+
private settings;
|
|
37
|
+
private platform;
|
|
38
|
+
private viewer;
|
|
39
|
+
private selection;
|
|
40
|
+
private integration;
|
|
41
|
+
private previewWidth;
|
|
42
|
+
private previewHeight;
|
|
43
|
+
private clientPreviewWidth;
|
|
44
|
+
private clientPreviewHeight;
|
|
45
|
+
private shareUrlPrefix;
|
|
46
|
+
private events;
|
|
47
|
+
private zkProduct;
|
|
48
|
+
private zkScene;
|
|
49
|
+
private zkCurrentTemplate;
|
|
50
|
+
private zkTemplates;
|
|
51
|
+
private internalIsFullscreen;
|
|
52
|
+
private highlightSettings;
|
|
53
|
+
private previousMeshesVisibleStates;
|
|
54
|
+
private lastCameraLocation;
|
|
55
|
+
private enableShareCompositionUrl;
|
|
56
|
+
private sharedCompositionDocId;
|
|
57
|
+
private templateId;
|
|
58
|
+
loadedComposition: {
|
|
59
|
+
templateName: string;
|
|
60
|
+
attributesOptions: Map<number, number>;
|
|
61
|
+
selectedCategoryID: number | null;
|
|
62
|
+
} | null;
|
|
63
|
+
private savedCompositions;
|
|
64
|
+
private isDraftEditor;
|
|
65
|
+
private isViewerMode;
|
|
66
|
+
private isDAMViewer;
|
|
67
|
+
private isTemplateEditor;
|
|
68
|
+
private debugMode;
|
|
69
|
+
private draftCompositionDocId;
|
|
70
|
+
private initialSelection;
|
|
71
|
+
private undoStack;
|
|
72
|
+
private redoStack;
|
|
73
|
+
private pricingCalculator;
|
|
74
|
+
currentAttributesSelection: Object | null;
|
|
75
|
+
currentCompositionInfo: CurrentCompositionInfo | null;
|
|
76
|
+
private copyrightMessageLocalStorageKey;
|
|
77
|
+
private isPupillaryDistanceMandatory;
|
|
78
|
+
isAIEnabled: boolean;
|
|
79
|
+
sellerSettings: SellerSettings | null;
|
|
80
|
+
get internalProduct(): MPlaza.Model | null;
|
|
81
|
+
get internalScene(): Zakeke.Scene | null;
|
|
82
|
+
get internalCurrentTemplate(): MPlaza.Design | null | undefined;
|
|
83
|
+
themeCompositions: ThemeCompositions[] | null;
|
|
84
|
+
currency: string;
|
|
85
|
+
groups: Group[];
|
|
86
|
+
fonts: FontFamily[];
|
|
87
|
+
disableTextColors: boolean;
|
|
88
|
+
textColors: RestrictionColor[];
|
|
89
|
+
/**
|
|
90
|
+
* Get the current text default color.
|
|
91
|
+
*/
|
|
92
|
+
defaultColor: string;
|
|
93
|
+
quantity: number;
|
|
94
|
+
quantityRule: ProductQuantityRule | null;
|
|
95
|
+
culture: string;
|
|
96
|
+
productCode: string;
|
|
97
|
+
productName: string;
|
|
98
|
+
price: number;
|
|
99
|
+
isOutOfStock: boolean;
|
|
100
|
+
composition: any;
|
|
101
|
+
compositionId: string | null;
|
|
102
|
+
templates: Template[];
|
|
103
|
+
currentTemplate: Template | null;
|
|
104
|
+
product: Product | null;
|
|
105
|
+
templateMacroCategories: TemplateMacroCategory[] | null;
|
|
106
|
+
selectedTemplateCategory: string | null;
|
|
107
|
+
cameras: Camera[];
|
|
108
|
+
isExplodedMode: boolean;
|
|
109
|
+
isAssetsLoading: boolean;
|
|
110
|
+
additionalCustomProperties: ExtensionFields[];
|
|
111
|
+
nftSettings: NftSettings | null;
|
|
112
|
+
eventMessages: EventMessage[] | null;
|
|
113
|
+
personalizedMessages: EventMessage[] | null;
|
|
114
|
+
visibleEventMessages: VisibleEventMessage[];
|
|
115
|
+
tryOnProvidersSettings: TryOnProvidersTypesMapping | null;
|
|
116
|
+
tryOnProductSettings: TryOnProduct | null;
|
|
117
|
+
tryOnSellerSettings: TryOnSeller | null;
|
|
118
|
+
pdSettings: number;
|
|
119
|
+
isInfoPointContentVisible: boolean;
|
|
120
|
+
private internalTranslations;
|
|
121
|
+
private integrationVersion;
|
|
122
|
+
translations: Translations | null;
|
|
123
|
+
useLegacyScreenshot: boolean;
|
|
124
|
+
get isFullscreenMode(): boolean;
|
|
125
|
+
get isViewerReady(): boolean;
|
|
126
|
+
get isShoppingPreview(): boolean;
|
|
127
|
+
uiConfig: UIConfig | null;
|
|
128
|
+
backgroundColor: string | null;
|
|
129
|
+
removeBackground: boolean;
|
|
130
|
+
constructor();
|
|
131
|
+
private parseParameters;
|
|
132
|
+
makeDAMAnalyticsView(type: DAMViewerAnalyticsEventType): Promise<import("axios").AxiosResponse<any, any>>;
|
|
133
|
+
private getProduct;
|
|
134
|
+
private getScene;
|
|
135
|
+
private getComposerModels;
|
|
136
|
+
private getFonts;
|
|
137
|
+
private getSettings;
|
|
138
|
+
private getSellerSetting;
|
|
139
|
+
createQuote: (formData: any) => Promise<any>;
|
|
140
|
+
private getPrice;
|
|
141
|
+
private getTranslations;
|
|
142
|
+
private loadLocalization;
|
|
143
|
+
getTemplateMacroCategories: () => Promise<TemplateMacroCategory[]>;
|
|
144
|
+
private loadScript;
|
|
145
|
+
validationNFTEmail: (email: string) => boolean;
|
|
146
|
+
validationNFTWalletAddress: (address: string) => boolean;
|
|
147
|
+
private saveCustomerWalletInfo;
|
|
148
|
+
setCopyrightMessageAccepted: (copyrightMandatoryCheckbox: boolean) => void;
|
|
149
|
+
getCopyrightMessageAccepted: () => boolean;
|
|
150
|
+
/**
|
|
151
|
+
* @private
|
|
152
|
+
*/
|
|
153
|
+
boot: (parameters: BootParameters | null) => Promise<void>;
|
|
154
|
+
loadSceneFromGlbUrl: (glbUrl: string, sceneConfig: Zakeke.SceneConfig) => Promise<void>;
|
|
155
|
+
appendViewer: (container: HTMLElement) => void;
|
|
156
|
+
setHighlightSettings: (settings: {
|
|
157
|
+
color: string;
|
|
158
|
+
size: number;
|
|
159
|
+
}) => void;
|
|
160
|
+
renderDesign: () => Promise<void>;
|
|
161
|
+
private debouncedChange;
|
|
162
|
+
restoreLastCameraLocation: () => void;
|
|
163
|
+
private buildRecapProps;
|
|
164
|
+
updateRecapAndExtensionField: () => void;
|
|
165
|
+
private getCurrentExtensionFields;
|
|
166
|
+
private handleSceneLoaded;
|
|
167
|
+
private getComposition;
|
|
168
|
+
private getDesign;
|
|
169
|
+
private internalLoadDesign;
|
|
170
|
+
private addHotjarScript;
|
|
171
|
+
private addGoogleTagManagerID;
|
|
172
|
+
loadComposition: (id: string | null) => Promise<void>;
|
|
173
|
+
private internalLoadComposition;
|
|
174
|
+
sync3DAndPlatformSelectionWithCurrentSelection: () => Promise<void>;
|
|
175
|
+
private cloneSelection;
|
|
176
|
+
undo: () => Promise<void>;
|
|
177
|
+
redo: () => Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Reset the platform attributes selection to the current selection
|
|
180
|
+
*/
|
|
181
|
+
private resetPlatformAttributesSelection;
|
|
182
|
+
reset: () => Promise<void>;
|
|
183
|
+
private handleAttributeSelectionChanged;
|
|
184
|
+
private handleAttributeEnabled;
|
|
185
|
+
private handleAttributeDisabled;
|
|
186
|
+
private handleAttributeOptionEnabled;
|
|
187
|
+
private handleAttributeOptionDisabled;
|
|
188
|
+
private setAttributeSelectionEnabled;
|
|
189
|
+
private setOptionSelectionEnabled;
|
|
190
|
+
private isOptionEnabled;
|
|
191
|
+
private updateComposition;
|
|
192
|
+
setQuantity(quantity: number): void;
|
|
193
|
+
private _updatePrice;
|
|
194
|
+
private updatePrice;
|
|
195
|
+
private buildStructure;
|
|
196
|
+
private createGroupFromSelection;
|
|
197
|
+
private createStep;
|
|
198
|
+
private createAttributeFromSelection;
|
|
199
|
+
private createOptionFromSelection;
|
|
200
|
+
private createTemplateGroupFromSelection;
|
|
201
|
+
private saveDesignBackbone;
|
|
202
|
+
private saveCompositionBackbone;
|
|
203
|
+
private trigger;
|
|
204
|
+
on: (event: string, callback: any) => void;
|
|
205
|
+
off: (event: string, callback: any) => void;
|
|
206
|
+
setTemplate: (templateId: number) => Promise<void>;
|
|
207
|
+
getTemplateUploadRestrictictions: (templateId: number, areaId: number) => {
|
|
208
|
+
isUserImageAllowed: boolean;
|
|
209
|
+
isJpgAllowed: boolean;
|
|
210
|
+
isPngAllowed: boolean;
|
|
211
|
+
isSvgAllowed: boolean;
|
|
212
|
+
isPdfAllowed: boolean;
|
|
213
|
+
isEpsAllowed: boolean;
|
|
214
|
+
isPdfWithRasterAllowed: boolean;
|
|
215
|
+
};
|
|
216
|
+
private getTemplates;
|
|
217
|
+
private saveProduct;
|
|
218
|
+
private getTemplate;
|
|
219
|
+
updateView: () => void;
|
|
220
|
+
selectOption: (optionId: number) => void;
|
|
221
|
+
selectOptionsbyPrompt(prompt: string): Promise<void>;
|
|
222
|
+
focusGroup: (groupId: number) => void;
|
|
223
|
+
focusAttribute: (attributeId: number) => Promise<void>;
|
|
224
|
+
setCamera(cameraLocationId: string, onlyAngleOfView?: boolean, animate?: boolean): void;
|
|
225
|
+
getCameraByName(name: string): Zakeke.SceneCameraLocation | undefined;
|
|
226
|
+
setCameraLocation(name: string, animate?: boolean): void;
|
|
227
|
+
private base64StringToFile;
|
|
228
|
+
saveTemplate: (templateName: string, selectedCategoryID: number | null, attributeOptions: Map<number, number>) => Promise<void>;
|
|
229
|
+
addToCart: (additionalProperties: Record<string, any>, onBeforeSendDataToParent?: ((data: OnBeforeSendDataToParent) => Promise<Record<string, any>>) | undefined, legacyScreenshot?: boolean, nftForm?: NftForm) => Promise<void>;
|
|
230
|
+
zoomIn: () => void;
|
|
231
|
+
zoomOut: () => void;
|
|
232
|
+
isFullscreenEnabled: () => boolean;
|
|
233
|
+
getDesignItemsInfo(): Item[];
|
|
234
|
+
switchFullscreen: () => void;
|
|
235
|
+
openSecondScreen: () => void;
|
|
236
|
+
private extendedUpdate;
|
|
237
|
+
exportSceneToUsdz: (hash: string) => Promise<import("@zakeke/zakeke-3d-core").Nullable<string> | undefined>;
|
|
238
|
+
exportSceneToGlb: () => Promise<string | Blob | null>;
|
|
239
|
+
setExplodedMode: (explodedMode: boolean) => Promise<void>;
|
|
240
|
+
hasExplodedMode: () => boolean;
|
|
241
|
+
setBackgroundColor: (color: string, alpha: number) => void;
|
|
242
|
+
getCurrentSelection: () => PlatformAttributeSelection[];
|
|
243
|
+
getScreenshot: (width?: number, height?: number, legacyScreenshot?: boolean, backgroundColor?: string | null, padding?: number, camera?: Zakeke.SceneCameraLocation | null) => Promise<string>;
|
|
244
|
+
private fireItemsChange;
|
|
245
|
+
isAreaVisible(areaId: number): boolean;
|
|
246
|
+
removeItem: (guid: string) => Promise<void>;
|
|
247
|
+
addItemText(settings: {
|
|
248
|
+
text: string;
|
|
249
|
+
fontFamily: string;
|
|
250
|
+
}, areaId: number): Promise<void>;
|
|
251
|
+
setItemText: (guid: string, text: string) => void;
|
|
252
|
+
setItemItalic: (guid: string, italic: boolean) => void;
|
|
253
|
+
setItemBold: (guid: string, bold: boolean) => void;
|
|
254
|
+
setItemColor: (guid: string, color: string) => void;
|
|
255
|
+
setItemFontFamily: (guid: string, fontFamily: string) => Promise<void>;
|
|
256
|
+
setItemTextOnPath: (guid: string, areaId: number, value: boolean) => void;
|
|
257
|
+
fullyLoadFont(font: string | FontFamily): Promise<FontFamily>;
|
|
258
|
+
sanitizeString: (family: FontFamily, text: string) => string;
|
|
259
|
+
getSanitationText: (family: FontFamily, text: string) => TextSanitationResult;
|
|
260
|
+
createImage: (file: File, progress?: ((percentage: number) => void) | undefined) => Promise<ZakekeImage>;
|
|
261
|
+
createImageFromUrl: (url: string) => Promise<ZakekeImage>;
|
|
262
|
+
addItemImage: (id: number, areaId: number) => Promise<void>;
|
|
263
|
+
setItemImageFromFile: (guid: string, file: File, progress?: ((percentage: number) => void) | undefined) => Promise<void>;
|
|
264
|
+
setItemImageFromBase64: (guid: string, base64: string) => Promise<void>;
|
|
265
|
+
setItemImage: (guid: string, id: number) => Promise<void>;
|
|
266
|
+
getMacroCategories: () => Promise<ImageMacroCategory[]>;
|
|
267
|
+
getImages: (categoryId: number) => Promise<ZakekeImage[]>;
|
|
268
|
+
setCameraPivot(meshID: string): void;
|
|
269
|
+
resetCameraPivot(): void;
|
|
270
|
+
setCameraZoomEnabled(enabled: boolean): void;
|
|
271
|
+
setCameraByName(name: string, onlyAngleOfView?: boolean, animate?: boolean): void;
|
|
272
|
+
findObjectByName(name: string): BABYLON.AbstractMesh | null | undefined;
|
|
273
|
+
getPDF: () => Promise<string>;
|
|
274
|
+
private rewriteShareUrl;
|
|
275
|
+
getShareCompositionUrl: () => Promise<string>;
|
|
276
|
+
saveCompositionCopy: (isSharing?: boolean) => Promise<any>;
|
|
277
|
+
getOnlineScreenshot: (width: number, height: number, legacyScreenshot?: boolean, backgroundColor?: string, padding?: number) => Promise<{
|
|
278
|
+
originalUrl: string;
|
|
279
|
+
rewrittenUrl: string;
|
|
280
|
+
}>;
|
|
281
|
+
isSceneArOnTheFly: () => boolean | undefined;
|
|
282
|
+
isArDeviceCompliant: () => boolean;
|
|
283
|
+
isAndroidOrIOS: () => boolean;
|
|
284
|
+
isAndroid: boolean;
|
|
285
|
+
isIOS: boolean;
|
|
286
|
+
private buildModelViewerUrl;
|
|
287
|
+
isSceneArEnabled: () => boolean;
|
|
288
|
+
private getPregeneratedARUrl;
|
|
289
|
+
getQrCodeArUrl: (device: 'iOS' | 'Android') => Promise<string>;
|
|
290
|
+
getMobileArUrl: (onFlyArUrl?: string) => Promise<string | null>;
|
|
291
|
+
getMobileLocalArUrl: (onFlyArUrl?: string) => Promise<string>;
|
|
292
|
+
openArMobile: (url: string) => void;
|
|
293
|
+
private registerView;
|
|
294
|
+
getMeshIDbyName: (name: string) => string | undefined;
|
|
295
|
+
hightlightGroup(groupId: number): void;
|
|
296
|
+
highlightAttribute(attributeId: number): void;
|
|
297
|
+
/**
|
|
298
|
+
* Hide a mesh and its children and save the state
|
|
299
|
+
* @param meshId The mesh and childs to hide
|
|
300
|
+
*/
|
|
301
|
+
hideMeshAndSaveState: (meshId: string) => void;
|
|
302
|
+
/**
|
|
303
|
+
* Restore a mesh visibility state from a previous saved one (see hideMeshAndSaveState)
|
|
304
|
+
* @param meshId The mesh and childs to show
|
|
305
|
+
*/
|
|
306
|
+
restoreMeshVisibility: (meshId: string) => void;
|
|
307
|
+
/**
|
|
308
|
+
* Change opacity for a specific mesh
|
|
309
|
+
* @param meshId The mesh to change the opacity
|
|
310
|
+
* @param opacity The opacity to set
|
|
311
|
+
*/
|
|
312
|
+
setMeshDesignVisibility: (meshId: string, visible: boolean) => void;
|
|
313
|
+
addFocusAttributesListener: (listenerFunction: FocusAttributesEventListener) => void;
|
|
314
|
+
clearListeners: () => void;
|
|
315
|
+
setCameraLocked: (isBlocked?: boolean) => void;
|
|
316
|
+
isSceneTryOnEnabled: () => boolean;
|
|
317
|
+
getTryOnUrl: (tryOnUrl?: string) => Promise<string>;
|
|
318
|
+
saveComposition: (customPreviewSize?: CustomPreviewSize, legacyScreenshot?: boolean, isSharing?: boolean) => Promise<void>;
|
|
319
|
+
private bootstrapComposition;
|
|
320
|
+
loadSavedComposition: (docID: string) => Promise<void>;
|
|
321
|
+
private updateSavedCompositions;
|
|
322
|
+
themeCompositionsFromSavedCompositions: (compositions: Composition[]) => {
|
|
323
|
+
name: string;
|
|
324
|
+
docID: string;
|
|
325
|
+
previewImageUrl: string;
|
|
326
|
+
tags: string[];
|
|
327
|
+
}[];
|
|
328
|
+
saveDraftsComposition: (name: string, tags: string[], isCopy?: boolean) => Promise<void>;
|
|
329
|
+
deleteSavedComposition: (docId: string) => Promise<void>;
|
|
330
|
+
applyTemplate: (templateGroupCompositionId: number) => Promise<void>;
|
|
331
|
+
configureByAI: (text: string) => Promise<void>;
|
|
332
|
+
getTryOnProvidersList: () => Promise<TryOnProvidersTypesMapping>;
|
|
333
|
+
getTryOnProductInfo: () => Promise<TryOnProduct | null>;
|
|
334
|
+
private getMessagesByProductCode;
|
|
335
|
+
getTryOnSellerInfo: (typeID: number, providerID: number) => Promise<TryOnSeller | null>;
|
|
336
|
+
get hasVTryOnEnabled(): boolean;
|
|
337
|
+
get canUseTryOn(): boolean;
|
|
338
|
+
get canUsePD(): boolean;
|
|
339
|
+
get isVisibleMeshShownForTryOn(): boolean;
|
|
340
|
+
get isMandatoryPD(): boolean;
|
|
341
|
+
get isTryOnMeshVisible(): boolean;
|
|
342
|
+
get tryOnMeshVisibleSettings(): TryOnGenericFineTuningSettings | undefined;
|
|
343
|
+
setPDDistance: (distance: number) => void;
|
|
344
|
+
pdDistance: () => number;
|
|
345
|
+
exportTryOnMeshToGlb: () => Promise<Blob | null>;
|
|
346
|
+
getTryOnSettings: () => Zakeke.TryOnSettings | undefined;
|
|
347
|
+
tryOnCountView: (sellerID: number, providerID: number, modeChosen: TryOnMode) => Promise<void>;
|
|
348
|
+
/**
|
|
349
|
+
* Ottiene le restrizioni sul printing method (che nel caso di un prodotto configuratore 3D c'è sempre ed è 1 solo).
|
|
350
|
+
* @remarks
|
|
351
|
+
* Se non ci sono restrizioni, ritorna quelle di default
|
|
352
|
+
* @returns
|
|
353
|
+
* Le restrizioni sul printing method o quelle di default
|
|
354
|
+
*/
|
|
355
|
+
getPrintingMethodsRestrictions: () => PrintingMethodsRestrictions;
|
|
356
|
+
setMouseWheelZoomEnabled: (enabled: boolean) => void;
|
|
357
|
+
}
|
|
358
|
+
export {};
|
|
@@ -1,214 +1,214 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Zakeke
|
|
3
|
-
*/
|
|
4
|
-
import { FocusAttributesEventListener } from '@zakeke/zakeke-3d-core';
|
|
5
|
-
import { EventMessage, FontFamily, Group, Item, NftForm, NftSettings, OnBeforeSendDataToParent, PrintingMethodsRestrictions, Product, Template, TemplateMacroCategory, TextSanitationResult, Translations, UIConfig, VisibleEventMessage } from '..';
|
|
6
|
-
import { Camera, ImageMacroCategory, ProductQuantityRule, SellerSettings, TemplateUploadRestrictictions, ZakekeImage } from '../models';
|
|
7
|
-
interface RestrictionColor {
|
|
8
|
-
colorCode: string;
|
|
9
|
-
isDefault: boolean;
|
|
10
|
-
}
|
|
11
|
-
interface CustomPreviewSize {
|
|
12
|
-
customCartPreviewWidth: number;
|
|
13
|
-
customCartPreviewHeight: number;
|
|
14
|
-
}
|
|
15
|
-
interface ThemeCompositions {
|
|
16
|
-
name: string;
|
|
17
|
-
docID: string;
|
|
18
|
-
previewImageUrl: string;
|
|
19
|
-
tags: string[];
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Contains all the data and methods to control a Zakeke configuration
|
|
23
|
-
*/
|
|
24
|
-
export interface Zakeke {
|
|
25
|
-
/**
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
internalProduct: MPlaza.Model | null;
|
|
29
|
-
/**
|
|
30
|
-
* @internal
|
|
31
|
-
*/
|
|
32
|
-
internalScene: Zakeke.Scene | null;
|
|
33
|
-
/**
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
internalCurrentTemplate: MPlaza.Design | null | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* The current price of the configuration plus the product price
|
|
39
|
-
*/
|
|
40
|
-
price: number;
|
|
41
|
-
isOutOfStock: boolean;
|
|
42
|
-
culture: string;
|
|
43
|
-
currency: string;
|
|
44
|
-
isSceneLoading: boolean;
|
|
45
|
-
isAddToCartLoading: boolean;
|
|
46
|
-
isInfoPointContentVisible: boolean;
|
|
47
|
-
isViewerReady: boolean;
|
|
48
|
-
fonts: FontFamily[];
|
|
49
|
-
disableTextColors: boolean;
|
|
50
|
-
defaultColor: string;
|
|
51
|
-
textColors: RestrictionColor[];
|
|
52
|
-
groups: Group[];
|
|
53
|
-
templates: Template[];
|
|
54
|
-
loadedComposition: {
|
|
55
|
-
templateName: string;
|
|
56
|
-
attributesOptions: Map<number, number>;
|
|
57
|
-
selectedCategoryID: number | null;
|
|
58
|
-
} | null;
|
|
59
|
-
currentTemplate: Template | null;
|
|
60
|
-
items: Item[];
|
|
61
|
-
productName: string;
|
|
62
|
-
productCode: string;
|
|
63
|
-
product: Product | null;
|
|
64
|
-
cameras: Camera[];
|
|
65
|
-
sellerSettings: SellerSettings | null;
|
|
66
|
-
quantityRule: ProductQuantityRule | null;
|
|
67
|
-
eventMessages: EventMessage[] | null;
|
|
68
|
-
personalizedMessages: EventMessage[] | null;
|
|
69
|
-
visibleEventMessages: VisibleEventMessage[];
|
|
70
|
-
isAssetsLoading: boolean;
|
|
71
|
-
draftCompositions: ThemeCompositions[] | null;
|
|
72
|
-
additionalCustomProperties: {
|
|
73
|
-
name: string;
|
|
74
|
-
value: number;
|
|
75
|
-
label: string;
|
|
76
|
-
formatString: string;
|
|
77
|
-
}[] | null;
|
|
78
|
-
currentAttributesSelection: object | null;
|
|
79
|
-
currentCompositionInfo: {
|
|
80
|
-
compositionId: string | null;
|
|
81
|
-
compositionName: string | null;
|
|
82
|
-
compositionTags: string[] | null;
|
|
83
|
-
} | null;
|
|
84
|
-
translations: Translations | null;
|
|
85
|
-
nftSettings: NftSettings | null;
|
|
86
|
-
useLegacyScreenshot: boolean;
|
|
87
|
-
isAIEnabled: boolean;
|
|
88
|
-
uiConfig: UIConfig | null;
|
|
89
|
-
backgroundColor: string;
|
|
90
|
-
removeBackground: boolean;
|
|
91
|
-
setMouseWheelZoomEnabled: (enabled: boolean) => void;
|
|
92
|
-
selectOption: (optionId: number) => void;
|
|
93
|
-
/**
|
|
94
|
-
* @internal
|
|
95
|
-
*/
|
|
96
|
-
internalAppendViewer: (container: HTMLElement) => void;
|
|
97
|
-
getPrintingMethodsRestrictions: () => PrintingMethodsRestrictions;
|
|
98
|
-
designUpdate: () => void;
|
|
99
|
-
createQuote: (formData: any) => Promise<any>;
|
|
100
|
-
setTemplate: (templateId: number) => Promise<void>;
|
|
101
|
-
isAreaVisible: (areaId: number) => boolean;
|
|
102
|
-
quantity: number;
|
|
103
|
-
saveTemplate: (templateName: string, selectedCategoryID: number | null, attributesOptions: Map<number, number>) => Promise<void>;
|
|
104
|
-
addToCart: (additionalProperties: Record<string, any>, OnBeforeSendDataToParent?: (data: OnBeforeSendDataToParent) => Promise<Record<string, any>>, legacyScreenshot?: boolean, nftForm?: NftForm) => Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Create a PDF of the current configuration
|
|
107
|
-
* @returns The URL of the PDF
|
|
108
|
-
*/
|
|
109
|
-
getPDF: () => Promise<string>;
|
|
110
|
-
getOnlineScreenshot: (width: number, height: number, legacyScreenshot?: boolean, backgroundColor?: string, padding?: number) => Promise<{
|
|
111
|
-
originalUrl: string;
|
|
112
|
-
rewrittenUrl: string;
|
|
113
|
-
}>;
|
|
114
|
-
setCamera: (id: string, onlyAngleOfView?: boolean, animate?: boolean) => void;
|
|
115
|
-
setCameraByName: (name: string, onlyAngleOfView?: boolean, animate?: boolean) => void;
|
|
116
|
-
setCameraZoomEnabled: (enabled: boolean) => void;
|
|
117
|
-
resetCameraPivot: () => void;
|
|
118
|
-
setCameraPivot: (meshId: string) => void;
|
|
119
|
-
fullyLoadFont: (fontFamily: string | FontFamily) => Promise<FontFamily>;
|
|
120
|
-
sanitizeString: (family: FontFamily, text: string) => string;
|
|
121
|
-
getSanitationText: (family: FontFamily, text: string) => TextSanitationResult;
|
|
122
|
-
getImages: (categoryId: number) => Promise<ZakekeImage[]>;
|
|
123
|
-
getMacroCategories: () => Promise<ImageMacroCategory[]>;
|
|
124
|
-
previewOnly__setItemImageFromBase64: (guid: string, base64: string) => void;
|
|
125
|
-
setItemImageFromFile: (guid: string, file: File) => Promise<void>;
|
|
126
|
-
addItemImage: (id: number, areaId: number) => Promise<void>;
|
|
127
|
-
/**
|
|
128
|
-
* Upload an image and get the uploaded image
|
|
129
|
-
* @param file The file to upload
|
|
130
|
-
* @param progress A callback to get the upload progress
|
|
131
|
-
* @returns The uploaded image
|
|
132
|
-
*/
|
|
133
|
-
createImage: (file: File, progress?: (percentage: number) => void) => Promise<ZakekeImage>;
|
|
134
|
-
createImageFromUrl: (url: string) => Promise<ZakekeImage>;
|
|
135
|
-
setItemImage: (guid: string, imageId: number) => Promise<void>;
|
|
136
|
-
setItemFontFamily: (guid: string, fontFamily: string) => void;
|
|
137
|
-
setItemColor: (guid: string, color: string) => void;
|
|
138
|
-
setItemBold: (guid: string, bold: boolean) => void;
|
|
139
|
-
setItemItalic: (guid: string, italic: boolean) => void;
|
|
140
|
-
setItemTextOnPath: (guid: string, areaId: number, value: boolean) => void;
|
|
141
|
-
setItemText: (guid: string, text: string) => void;
|
|
142
|
-
addItemText: (settings: {
|
|
143
|
-
text: string;
|
|
144
|
-
fontFamily: string;
|
|
145
|
-
}, areaId: number) => Promise<void>;
|
|
146
|
-
/**
|
|
147
|
-
* Remove an item from the customization
|
|
148
|
-
* @param guid The guid of the item to remove
|
|
149
|
-
*/
|
|
150
|
-
removeItem: (guid: string) => Promise<void>;
|
|
151
|
-
setQuantity: (quantity: number) => void;
|
|
152
|
-
getShareCompositionUrl: () => Promise<string>;
|
|
153
|
-
saveComposition: (customPreviewSize?: CustomPreviewSize) => Promise<void>;
|
|
154
|
-
loadComposition: (id: string) => Promise<void>;
|
|
155
|
-
switchFullscreen: () => void;
|
|
156
|
-
openSecondScreen: () => void;
|
|
157
|
-
isFullscreenMode: boolean;
|
|
158
|
-
zoomIn: () => void;
|
|
159
|
-
zoomOut: () => void;
|
|
160
|
-
updateView: (adjustCamera?: boolean) => void;
|
|
161
|
-
setHighlightSettings: (settings: {
|
|
162
|
-
color: string;
|
|
163
|
-
size: number;
|
|
164
|
-
}) => void;
|
|
165
|
-
hasExplodedMode: () => boolean;
|
|
166
|
-
isExplodedMode: boolean;
|
|
167
|
-
setExplodedMode: (exploded: boolean) => void;
|
|
168
|
-
getMeshIDbyName: (name: string) => string | undefined | null;
|
|
169
|
-
hideMeshAndSaveState: (meshId: string) => void;
|
|
170
|
-
restoreMeshVisibility: (meshId: string) => void;
|
|
171
|
-
setMeshDesignVisibility: (meshId: string, visible: boolean) => void;
|
|
172
|
-
clearListeners: () => void;
|
|
173
|
-
addFocusAttributesListener: (listenerFunction: FocusAttributesEventListener) => void;
|
|
174
|
-
focusAttribute: (attributeId: number) => void;
|
|
175
|
-
highlightGroup: (groupId: number) => void;
|
|
176
|
-
highlightAttribute: (attributeId: number) => void;
|
|
177
|
-
getQrCodeArUrl: (device: 'iOS' | 'Android') => Promise<string>;
|
|
178
|
-
getMobileArUrl: (onFlyArUrl?: string) => Promise<Blob | string | null>;
|
|
179
|
-
openArMobile: (url: string) => void;
|
|
180
|
-
isSceneArEnabled: () => boolean;
|
|
181
|
-
isArDeviceCompliant: () => boolean;
|
|
182
|
-
IS_ANDROID: boolean;
|
|
183
|
-
IS_IOS: boolean;
|
|
184
|
-
setBackgroundColor: (color: string, alpha: number) => void;
|
|
185
|
-
getTryOnUrl: (tryOnUrl?: string) => Promise<string>;
|
|
186
|
-
isSceneTryOnEnabled: () => boolean;
|
|
187
|
-
setCameraLocked: (isBlocked: boolean) => void;
|
|
188
|
-
getTemplateUploadRestrictictions: (templateId: number, areaId: number) => TemplateUploadRestrictictions;
|
|
189
|
-
saveDraftsComposition: (name: string, tags: string[], isCopy?: boolean) => Promise<void>;
|
|
190
|
-
loadSavedComposition: (docID: string) => Promise<void>;
|
|
191
|
-
deleteSavedComposition: (docId: string) => Promise<void>;
|
|
192
|
-
exportSceneToGlb: () => Promise<string | Blob | null>;
|
|
193
|
-
reset: () => Promise<void>;
|
|
194
|
-
undo: () => Promise<void>;
|
|
195
|
-
redo: () => Promise<void>;
|
|
196
|
-
getCopyrightMessageAccepted: () => boolean;
|
|
197
|
-
setCopyrightMessageAccepted: (copyrightMandatoryCheckbox: boolean) => void;
|
|
198
|
-
validationNFTEmail: (email: string) => boolean;
|
|
199
|
-
validationNFTWalletAddress: (walletAddress: string) => boolean;
|
|
200
|
-
templateMacroCategories: TemplateMacroCategory[] | null;
|
|
201
|
-
applyTemplate: (templateGroupCompositionId: number) => Promise<void>;
|
|
202
|
-
configureByAI: (text: string) => Promise<void>;
|
|
203
|
-
hasVTryOnEnabled: boolean;
|
|
204
|
-
canUseTryOn: boolean;
|
|
205
|
-
canUsePD: boolean;
|
|
206
|
-
getTryOnSettings: () => Zakeke.TryOnSettings | undefined;
|
|
207
|
-
isTryOnMeshVisible: boolean;
|
|
208
|
-
isMandatoryPD: boolean;
|
|
209
|
-
isVisibleMeshShownForTryOn: boolean;
|
|
210
|
-
setPDDistance: (distance: number) => void;
|
|
211
|
-
pdDistance: () => number;
|
|
212
|
-
exportTryOnMeshToGlb: () => Promise<string | Blob | null>;
|
|
213
|
-
}
|
|
214
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* @module Zakeke
|
|
3
|
+
*/
|
|
4
|
+
import { FocusAttributesEventListener } from '@zakeke/zakeke-3d-core';
|
|
5
|
+
import { EventMessage, FontFamily, Group, Item, NftForm, NftSettings, OnBeforeSendDataToParent, PrintingMethodsRestrictions, Product, Template, TemplateMacroCategory, TextSanitationResult, Translations, UIConfig, VisibleEventMessage } from '..';
|
|
6
|
+
import { Camera, ImageMacroCategory, ProductQuantityRule, SellerSettings, TemplateUploadRestrictictions, ZakekeImage } from '../models';
|
|
7
|
+
interface RestrictionColor {
|
|
8
|
+
colorCode: string;
|
|
9
|
+
isDefault: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface CustomPreviewSize {
|
|
12
|
+
customCartPreviewWidth: number;
|
|
13
|
+
customCartPreviewHeight: number;
|
|
14
|
+
}
|
|
15
|
+
interface ThemeCompositions {
|
|
16
|
+
name: string;
|
|
17
|
+
docID: string;
|
|
18
|
+
previewImageUrl: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Contains all the data and methods to control a Zakeke configuration
|
|
23
|
+
*/
|
|
24
|
+
export interface Zakeke {
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
internalProduct: MPlaza.Model | null;
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
internalScene: Zakeke.Scene | null;
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
internalCurrentTemplate: MPlaza.Design | null | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* The current price of the configuration plus the product price
|
|
39
|
+
*/
|
|
40
|
+
price: number;
|
|
41
|
+
isOutOfStock: boolean;
|
|
42
|
+
culture: string;
|
|
43
|
+
currency: string;
|
|
44
|
+
isSceneLoading: boolean;
|
|
45
|
+
isAddToCartLoading: boolean;
|
|
46
|
+
isInfoPointContentVisible: boolean;
|
|
47
|
+
isViewerReady: boolean;
|
|
48
|
+
fonts: FontFamily[];
|
|
49
|
+
disableTextColors: boolean;
|
|
50
|
+
defaultColor: string;
|
|
51
|
+
textColors: RestrictionColor[];
|
|
52
|
+
groups: Group[];
|
|
53
|
+
templates: Template[];
|
|
54
|
+
loadedComposition: {
|
|
55
|
+
templateName: string;
|
|
56
|
+
attributesOptions: Map<number, number>;
|
|
57
|
+
selectedCategoryID: number | null;
|
|
58
|
+
} | null;
|
|
59
|
+
currentTemplate: Template | null;
|
|
60
|
+
items: Item[];
|
|
61
|
+
productName: string;
|
|
62
|
+
productCode: string;
|
|
63
|
+
product: Product | null;
|
|
64
|
+
cameras: Camera[];
|
|
65
|
+
sellerSettings: SellerSettings | null;
|
|
66
|
+
quantityRule: ProductQuantityRule | null;
|
|
67
|
+
eventMessages: EventMessage[] | null;
|
|
68
|
+
personalizedMessages: EventMessage[] | null;
|
|
69
|
+
visibleEventMessages: VisibleEventMessage[];
|
|
70
|
+
isAssetsLoading: boolean;
|
|
71
|
+
draftCompositions: ThemeCompositions[] | null;
|
|
72
|
+
additionalCustomProperties: {
|
|
73
|
+
name: string;
|
|
74
|
+
value: number;
|
|
75
|
+
label: string;
|
|
76
|
+
formatString: string;
|
|
77
|
+
}[] | null;
|
|
78
|
+
currentAttributesSelection: object | null;
|
|
79
|
+
currentCompositionInfo: {
|
|
80
|
+
compositionId: string | null;
|
|
81
|
+
compositionName: string | null;
|
|
82
|
+
compositionTags: string[] | null;
|
|
83
|
+
} | null;
|
|
84
|
+
translations: Translations | null;
|
|
85
|
+
nftSettings: NftSettings | null;
|
|
86
|
+
useLegacyScreenshot: boolean;
|
|
87
|
+
isAIEnabled: boolean;
|
|
88
|
+
uiConfig: UIConfig | null;
|
|
89
|
+
backgroundColor: string;
|
|
90
|
+
removeBackground: boolean;
|
|
91
|
+
setMouseWheelZoomEnabled: (enabled: boolean) => void;
|
|
92
|
+
selectOption: (optionId: number) => void;
|
|
93
|
+
/**
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
internalAppendViewer: (container: HTMLElement) => void;
|
|
97
|
+
getPrintingMethodsRestrictions: () => PrintingMethodsRestrictions;
|
|
98
|
+
designUpdate: () => void;
|
|
99
|
+
createQuote: (formData: any) => Promise<any>;
|
|
100
|
+
setTemplate: (templateId: number) => Promise<void>;
|
|
101
|
+
isAreaVisible: (areaId: number) => boolean;
|
|
102
|
+
quantity: number;
|
|
103
|
+
saveTemplate: (templateName: string, selectedCategoryID: number | null, attributesOptions: Map<number, number>) => Promise<void>;
|
|
104
|
+
addToCart: (additionalProperties: Record<string, any>, OnBeforeSendDataToParent?: (data: OnBeforeSendDataToParent) => Promise<Record<string, any>>, legacyScreenshot?: boolean, nftForm?: NftForm) => Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Create a PDF of the current configuration
|
|
107
|
+
* @returns The URL of the PDF
|
|
108
|
+
*/
|
|
109
|
+
getPDF: () => Promise<string>;
|
|
110
|
+
getOnlineScreenshot: (width: number, height: number, legacyScreenshot?: boolean, backgroundColor?: string, padding?: number) => Promise<{
|
|
111
|
+
originalUrl: string;
|
|
112
|
+
rewrittenUrl: string;
|
|
113
|
+
}>;
|
|
114
|
+
setCamera: (id: string, onlyAngleOfView?: boolean, animate?: boolean) => void;
|
|
115
|
+
setCameraByName: (name: string, onlyAngleOfView?: boolean, animate?: boolean) => void;
|
|
116
|
+
setCameraZoomEnabled: (enabled: boolean) => void;
|
|
117
|
+
resetCameraPivot: () => void;
|
|
118
|
+
setCameraPivot: (meshId: string) => void;
|
|
119
|
+
fullyLoadFont: (fontFamily: string | FontFamily) => Promise<FontFamily>;
|
|
120
|
+
sanitizeString: (family: FontFamily, text: string) => string;
|
|
121
|
+
getSanitationText: (family: FontFamily, text: string) => TextSanitationResult;
|
|
122
|
+
getImages: (categoryId: number) => Promise<ZakekeImage[]>;
|
|
123
|
+
getMacroCategories: () => Promise<ImageMacroCategory[]>;
|
|
124
|
+
previewOnly__setItemImageFromBase64: (guid: string, base64: string) => void;
|
|
125
|
+
setItemImageFromFile: (guid: string, file: File) => Promise<void>;
|
|
126
|
+
addItemImage: (id: number, areaId: number) => Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Upload an image and get the uploaded image
|
|
129
|
+
* @param file The file to upload
|
|
130
|
+
* @param progress A callback to get the upload progress
|
|
131
|
+
* @returns The uploaded image
|
|
132
|
+
*/
|
|
133
|
+
createImage: (file: File, progress?: (percentage: number) => void) => Promise<ZakekeImage>;
|
|
134
|
+
createImageFromUrl: (url: string) => Promise<ZakekeImage>;
|
|
135
|
+
setItemImage: (guid: string, imageId: number) => Promise<void>;
|
|
136
|
+
setItemFontFamily: (guid: string, fontFamily: string) => void;
|
|
137
|
+
setItemColor: (guid: string, color: string) => void;
|
|
138
|
+
setItemBold: (guid: string, bold: boolean) => void;
|
|
139
|
+
setItemItalic: (guid: string, italic: boolean) => void;
|
|
140
|
+
setItemTextOnPath: (guid: string, areaId: number, value: boolean) => void;
|
|
141
|
+
setItemText: (guid: string, text: string) => void;
|
|
142
|
+
addItemText: (settings: {
|
|
143
|
+
text: string;
|
|
144
|
+
fontFamily: string;
|
|
145
|
+
}, areaId: number) => Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Remove an item from the customization
|
|
148
|
+
* @param guid The guid of the item to remove
|
|
149
|
+
*/
|
|
150
|
+
removeItem: (guid: string) => Promise<void>;
|
|
151
|
+
setQuantity: (quantity: number) => void;
|
|
152
|
+
getShareCompositionUrl: () => Promise<string>;
|
|
153
|
+
saveComposition: (customPreviewSize?: CustomPreviewSize) => Promise<void>;
|
|
154
|
+
loadComposition: (id: string) => Promise<void>;
|
|
155
|
+
switchFullscreen: () => void;
|
|
156
|
+
openSecondScreen: () => void;
|
|
157
|
+
isFullscreenMode: boolean;
|
|
158
|
+
zoomIn: () => void;
|
|
159
|
+
zoomOut: () => void;
|
|
160
|
+
updateView: (adjustCamera?: boolean) => void;
|
|
161
|
+
setHighlightSettings: (settings: {
|
|
162
|
+
color: string;
|
|
163
|
+
size: number;
|
|
164
|
+
}) => void;
|
|
165
|
+
hasExplodedMode: () => boolean;
|
|
166
|
+
isExplodedMode: boolean;
|
|
167
|
+
setExplodedMode: (exploded: boolean) => void;
|
|
168
|
+
getMeshIDbyName: (name: string) => string | undefined | null;
|
|
169
|
+
hideMeshAndSaveState: (meshId: string) => void;
|
|
170
|
+
restoreMeshVisibility: (meshId: string) => void;
|
|
171
|
+
setMeshDesignVisibility: (meshId: string, visible: boolean) => void;
|
|
172
|
+
clearListeners: () => void;
|
|
173
|
+
addFocusAttributesListener: (listenerFunction: FocusAttributesEventListener) => void;
|
|
174
|
+
focusAttribute: (attributeId: number) => void;
|
|
175
|
+
highlightGroup: (groupId: number) => void;
|
|
176
|
+
highlightAttribute: (attributeId: number) => void;
|
|
177
|
+
getQrCodeArUrl: (device: 'iOS' | 'Android') => Promise<string>;
|
|
178
|
+
getMobileArUrl: (onFlyArUrl?: string) => Promise<Blob | string | null>;
|
|
179
|
+
openArMobile: (url: string) => void;
|
|
180
|
+
isSceneArEnabled: () => boolean;
|
|
181
|
+
isArDeviceCompliant: () => boolean;
|
|
182
|
+
IS_ANDROID: boolean;
|
|
183
|
+
IS_IOS: boolean;
|
|
184
|
+
setBackgroundColor: (color: string, alpha: number) => void;
|
|
185
|
+
getTryOnUrl: (tryOnUrl?: string) => Promise<string>;
|
|
186
|
+
isSceneTryOnEnabled: () => boolean;
|
|
187
|
+
setCameraLocked: (isBlocked: boolean) => void;
|
|
188
|
+
getTemplateUploadRestrictictions: (templateId: number, areaId: number) => TemplateUploadRestrictictions;
|
|
189
|
+
saveDraftsComposition: (name: string, tags: string[], isCopy?: boolean) => Promise<void>;
|
|
190
|
+
loadSavedComposition: (docID: string) => Promise<void>;
|
|
191
|
+
deleteSavedComposition: (docId: string) => Promise<void>;
|
|
192
|
+
exportSceneToGlb: () => Promise<string | Blob | null>;
|
|
193
|
+
reset: () => Promise<void>;
|
|
194
|
+
undo: () => Promise<void>;
|
|
195
|
+
redo: () => Promise<void>;
|
|
196
|
+
getCopyrightMessageAccepted: () => boolean;
|
|
197
|
+
setCopyrightMessageAccepted: (copyrightMandatoryCheckbox: boolean) => void;
|
|
198
|
+
validationNFTEmail: (email: string) => boolean;
|
|
199
|
+
validationNFTWalletAddress: (walletAddress: string) => boolean;
|
|
200
|
+
templateMacroCategories: TemplateMacroCategory[] | null;
|
|
201
|
+
applyTemplate: (templateGroupCompositionId: number) => Promise<void>;
|
|
202
|
+
configureByAI: (text: string) => Promise<void>;
|
|
203
|
+
hasVTryOnEnabled: boolean;
|
|
204
|
+
canUseTryOn: boolean;
|
|
205
|
+
canUsePD: boolean;
|
|
206
|
+
getTryOnSettings: () => Zakeke.TryOnSettings | undefined;
|
|
207
|
+
isTryOnMeshVisible: boolean;
|
|
208
|
+
isMandatoryPD: boolean;
|
|
209
|
+
isVisibleMeshShownForTryOn: boolean;
|
|
210
|
+
setPDDistance: (distance: number) => void;
|
|
211
|
+
pdDistance: () => number;
|
|
212
|
+
exportTryOnMeshToGlb: () => Promise<string | Blob | null>;
|
|
213
|
+
}
|
|
214
|
+
export {};
|
package/dist/index.js
CHANGED
|
@@ -24004,9 +24004,9 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.fre
|
|
|
24004
24004
|
|
|
24005
24005
|
|
|
24006
24006
|
|
|
24007
|
-
var QRCodeAndTitleContainer = styled_components__WEBPACK_IMPORTED_MODULE_2___default().div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: left;\n\tjustify-content: center;\n\tpadding: 20px;\n\ttext-align: center;\n\tspan {\n\t\tmargin-top: 20px;\n\t}\n"])));
|
|
24008
|
-
var QRCodeTitle = styled_components__WEBPACK_IMPORTED_MODULE_2___default().span(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\tfont-size: 24px;\n\tcolor: black;\n\tfont-weight: bold;\n\tmargin: 0 0 20px 0;\n"])));
|
|
24009
|
-
var QRCodeContainer = styled_components__WEBPACK_IMPORTED_MODULE_2___default().div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n"])));
|
|
24007
|
+
var QRCodeAndTitleContainer = styled_components__WEBPACK_IMPORTED_MODULE_2___default().div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: left;\n\tjustify-content: center;\n\tpadding: 20px;\n\ttext-align: center;\n\tspan {\n\t\tmargin-top: 20px;\n\t}\n\t@media (max-height: 400px) {\n\t\tpadding: 10px;\n\t\talign-items: center;\n\t\tspan {\n\t\t\tmargin-top: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n"])));
|
|
24008
|
+
var QRCodeTitle = styled_components__WEBPACK_IMPORTED_MODULE_2___default().span(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\tfont-size: 24px;\n\tcolor: black;\n\tfont-weight: bold;\n\tmargin: 0 0 20px 0;\n\t@media (max-height: 400px) {\n\t\tfont-size: 16px;\n\t}\n"])));
|
|
24009
|
+
var QRCodeContainer = styled_components__WEBPACK_IMPORTED_MODULE_2___default().div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\t@media (max-height: 400px) {\n\t\tmax-height: 250px;\n\t\tmax-width: 250px;\n\t}\n"])));
|
|
24010
24010
|
var DeepARQrCodeContentContainer = function DeepARQrCodeContentContainer(_ref) {
|
|
24011
24011
|
var url = _ref.url;
|
|
24012
24012
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(QRCodeAndTitleContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(QRCodeTitle, null, "Scan the QR code to virtually ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), " try your shoes"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(QRCodeContainer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_qr_code__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
@@ -24406,7 +24406,7 @@ var DeepARTryOnResponseMessage = _objectSpread(_objectSpread({}, _tryOnModels__W
|
|
|
24406
24406
|
// `;
|
|
24407
24407
|
|
|
24408
24408
|
var DeepARTryOnComponentContainer = styled_components__WEBPACK_IMPORTED_MODULE_1___default().div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\tposition: fixed;\n\tbackground-color: rgba(0, 0, 0, 0.7);\n\tleft: 0px;\n\ttop: 0px;\n\twidth: 100%;\n\theight: 100dvh;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\toverflow: auto;\n\tz-index: 12;\n\tborder-radius: 10px;\n"])));
|
|
24409
|
-
var DeepARContainer = styled_components__WEBPACK_IMPORTED_MODULE_1___default().div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tposition: relative;\n\twidth: 550px;\n\tbackground-color: white;\n\tborder-radius: 10px;\n\toverflow: hidden;\n"])));
|
|
24409
|
+
var DeepARContainer = styled_components__WEBPACK_IMPORTED_MODULE_1___default().div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tposition: relative;\n\twidth: 550px;\n\tbackground-color: white;\n\tborder-radius: 10px;\n\toverflow: hidden;\n\t@media (max-height: 400px) {\n\t\tmax-height: 350px;\n\t\tmax-width: 400px;\n\t}\n"])));
|
|
24410
24410
|
var DeepARMobileContainer = styled_components__WEBPACK_IMPORTED_MODULE_1___default().div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\tposition: fixed;\n\tbackground-color: rgba(0, 0, 0, 0.7);\n\tleft: 0px;\n\ttop: 0px;\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\talign-items: center;\n\toverflow: auto;\n\tz-index: 12;\n\tborder-radius: 10px;\n"])));
|
|
24411
24411
|
var CloseButton = styled_components__WEBPACK_IMPORTED_MODULE_1___default().button(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n\tposition: absolute;\n\ttop: 10px;\n\tright: 10px;\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: black;\n\tfont-size: 20px;\n\tcursor: pointer;\n"])));
|
|
24412
24412
|
var DeepARTryOn = function DeepARTryOn(props) {
|
|
@@ -24433,6 +24433,9 @@ var DeepARTryOn = function DeepARTryOn(props) {
|
|
|
24433
24433
|
deepARIframeUrl = _React$useState2[0],
|
|
24434
24434
|
setDeepARIframeUrl = _React$useState2[1];
|
|
24435
24435
|
var isMobile = _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID || _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS;
|
|
24436
|
+
console.log('isMobile', isMobile);
|
|
24437
|
+
console.log('isAndroid', _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID);
|
|
24438
|
+
console.log('isIos', _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS);
|
|
24436
24439
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
24437
24440
|
setTryon(_objectSpread(_objectSpread({}, tryon), {}, {
|
|
24438
24441
|
closeFrame: function closeFrame() {
|
|
@@ -30986,7 +30989,7 @@ function matchCodes(code1, code2) {
|
|
|
30986
30989
|
function getPlatformSettings() {
|
|
30987
30990
|
return CURRENT_REDUX_STORE.getState().platformSettings;
|
|
30988
30991
|
}
|
|
30989
|
-
var IS_ANDROID =
|
|
30992
|
+
var IS_ANDROID = navigator.platform.toLowerCase().includes('android');
|
|
30990
30993
|
var IS_IOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
|
|
30991
30994
|
var IS_AR_DEVICE_COMPLIANT = function () {
|
|
30992
30995
|
var tempAnchor = document.createElement('a');
|