@pexip-engage-public/plugin 1.0.0-canary-20231031112431
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/CHANGELOG.md +11 -0
- package/dist/configuration/PluginConfiguration.current.d.ts +52 -0
- package/dist/configuration/PluginConfiguration.current.d.ts.map +1 -0
- package/dist/configuration/PluginConfiguration.current.js +1 -0
- package/dist/configuration/PluginConfiguration.schema.d.ts +489 -0
- package/dist/configuration/PluginConfiguration.schema.d.ts.map +1 -0
- package/dist/configuration/PluginConfiguration.schema.js +121 -0
- package/dist/configuration/PluginConfiguration.v0.d.ts +51 -0
- package/dist/configuration/PluginConfiguration.v0.d.ts.map +1 -0
- package/dist/configuration/PluginConfiguration.v0.js +1 -0
- package/dist/configuration/PluginConfiguration.v1.d.ts +51 -0
- package/dist/configuration/PluginConfiguration.v1.d.ts.map +1 -0
- package/dist/configuration/PluginConfiguration.v1.js +1 -0
- package/dist/configuration/index.d.ts +2 -0
- package/dist/configuration/index.d.ts.map +1 -0
- package/dist/configuration/index.js +1 -0
- package/dist/configuration/migration.d.ts +6 -0
- package/dist/configuration/migration.d.ts.map +1 -0
- package/dist/configuration/migration.js +84 -0
- package/dist/configuration-parser/LegacyParser.d.ts +196 -0
- package/dist/configuration-parser/LegacyParser.d.ts.map +1 -0
- package/dist/configuration-parser/LegacyParser.js +165 -0
- package/dist/configuration-parser/LegacyParser.utils.d.ts +88 -0
- package/dist/configuration-parser/LegacyParser.utils.d.ts.map +1 -0
- package/dist/configuration-parser/LegacyParser.utils.js +255 -0
- package/dist/configuration-parser/ModernParser.d.ts +99 -0
- package/dist/configuration-parser/ModernParser.d.ts.map +1 -0
- package/dist/configuration-parser/ModernParser.js +48 -0
- package/dist/configuration-parser/ModernParser.utils.d.ts +6 -0
- package/dist/configuration-parser/ModernParser.utils.d.ts.map +1 -0
- package/dist/configuration-parser/ModernParser.utils.js +28 -0
- package/dist/configuration-parser/Parser.d.ts +28 -0
- package/dist/configuration-parser/Parser.d.ts.map +1 -0
- package/dist/configuration-parser/Parser.js +33 -0
- package/dist/configuration-parser/hash-parser.d.ts +7 -0
- package/dist/configuration-parser/hash-parser.d.ts.map +1 -0
- package/dist/configuration-parser/hash-parser.js +13 -0
- package/dist/configuration-parser/html-parser.d.ts +13 -0
- package/dist/configuration-parser/html-parser.d.ts.map +1 -0
- package/dist/configuration-parser/html-parser.js +23 -0
- package/dist/configuration-parser/index.d.ts +48 -0
- package/dist/configuration-parser/index.d.ts.map +1 -0
- package/dist/configuration-parser/index.js +86 -0
- package/dist/configuration-parser/js-parser.d.ts +84 -0
- package/dist/configuration-parser/js-parser.d.ts.map +1 -0
- package/dist/configuration-parser/js-parser.js +56 -0
- package/dist/configuration-parser/tests/LegacyDomParser.test.d.ts +2 -0
- package/dist/configuration-parser/tests/LegacyDomParser.test.d.ts.map +1 -0
- package/dist/configuration-parser/tests/LegacyDomParser.test.js +151 -0
- package/dist/configuration-parser/tests/LegacyLocationHashParser.test.d.ts +2 -0
- package/dist/configuration-parser/tests/LegacyLocationHashParser.test.d.ts.map +1 -0
- package/dist/configuration-parser/tests/LegacyLocationHashParser.test.js +86 -0
- package/dist/configuration-parser/tests/LegacyParser.test.d.ts +2 -0
- package/dist/configuration-parser/tests/LegacyParser.test.d.ts.map +1 -0
- package/dist/configuration-parser/tests/LegacyParser.test.js +104 -0
- package/dist/configuration-parser/tests/test-utils.d.ts +4 -0
- package/dist/configuration-parser/tests/test-utils.d.ts.map +1 -0
- package/dist/configuration-parser/tests/test-utils.js +10 -0
- package/dist/configuration-parser/utils.d.ts +18 -0
- package/dist/configuration-parser/utils.d.ts.map +1 -0
- package/dist/configuration-parser/utils.js +44 -0
- package/dist/configuration-parser-legacy/LegacyParser.d.ts +196 -0
- package/dist/configuration-parser-legacy/LegacyParser.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/LegacyParser.js +162 -0
- package/dist/configuration-parser-legacy/LegacyParser.utils.d.ts +8 -0
- package/dist/configuration-parser-legacy/LegacyParser.utils.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/LegacyParser.utils.js +88 -0
- package/dist/configuration-parser-legacy/ModernParser.d.ts +97 -0
- package/dist/configuration-parser-legacy/ModernParser.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/ModernParser.js +96 -0
- package/dist/configuration-parser-legacy/Parser.d.ts +20 -0
- package/dist/configuration-parser-legacy/Parser.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/Parser.js +20 -0
- package/dist/configuration-parser-legacy/tests/LegacyDomParser.test.d.ts +2 -0
- package/dist/configuration-parser-legacy/tests/LegacyDomParser.test.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/tests/LegacyDomParser.test.js +151 -0
- package/dist/configuration-parser-legacy/tests/LegacyLocationHashParser.test.d.ts +2 -0
- package/dist/configuration-parser-legacy/tests/LegacyLocationHashParser.test.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/tests/LegacyLocationHashParser.test.js +86 -0
- package/dist/configuration-parser-legacy/tests/LegacyParser.test.d.ts +2 -0
- package/dist/configuration-parser-legacy/tests/LegacyParser.test.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/tests/LegacyParser.test.js +104 -0
- package/dist/configuration-parser-legacy/tests/test-utils.d.ts +4 -0
- package/dist/configuration-parser-legacy/tests/test-utils.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/tests/test-utils.js +10 -0
- package/dist/configuration-parser-legacy/utils.d.ts +14 -0
- package/dist/configuration-parser-legacy/utils.d.ts.map +1 -0
- package/dist/configuration-parser-legacy/utils.js +24 -0
- package/dist/constants.d.ts +22 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +50 -0
- package/dist/encoding.d.ts +8 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +33 -0
- package/dist/events/conversion-analytics.d.ts +120 -0
- package/dist/events/conversion-analytics.d.ts.map +1 -0
- package/dist/events/conversion-analytics.js +10 -0
- package/dist/events/event-types.d.ts +152 -0
- package/dist/events/event-types.d.ts.map +1 -0
- package/dist/events/event-types.js +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +1 -0
- package/dist/events/utils.d.ts +2 -0
- package/dist/events/utils.d.ts.map +1 -0
- package/dist/events/utils.js +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/instance/PexipEngagePluginFrame.d.ts +8 -0
- package/dist/instance/PexipEngagePluginFrame.d.ts.map +1 -0
- package/dist/instance/PexipEngagePluginFrame.js +39 -0
- package/dist/instance/PluginInstance.d.ts +138 -0
- package/dist/instance/PluginInstance.d.ts.map +1 -0
- package/dist/instance/PluginInstance.js +328 -0
- package/dist/instance/dispatchEvent.d.ts +24 -0
- package/dist/instance/dispatchEvent.d.ts.map +1 -0
- package/dist/instance/dispatchEvent.js +5 -0
- package/dist/instance/hooks.d.ts +17 -0
- package/dist/instance/hooks.d.ts.map +1 -0
- package/dist/instance/hooks.js +1 -0
- package/dist/instance/index.d.ts +19 -0
- package/dist/instance/index.d.ts.map +1 -0
- package/dist/instance/index.js +30 -0
- package/dist/logger.d.ts +10 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +24 -0
- package/dist/state/PluginState.schema.d.ts +943 -0
- package/dist/state/PluginState.schema.d.ts.map +1 -0
- package/dist/state/PluginState.schema.js +52 -0
- package/dist/state/index.d.ts +4 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +2 -0
- package/dist/state/schemas.d.ts +169 -0
- package/dist/state/schemas.d.ts.map +1 -0
- package/dist/state/schemas.js +85 -0
- package/dist/state/utils.d.ts +7 -0
- package/dist/state/utils.d.ts.map +1 -0
- package/dist/state/utils.js +22 -0
- package/package.json +66 -0
- package/src/@types/iframe-resizer.iframeResizer.d.ts +211 -0
- package/src/@types/reset.d.ts +1 -0
- package/src/configuration/PluginConfiguration.current.ts +51 -0
- package/src/configuration/PluginConfiguration.schema.ts +133 -0
- package/src/configuration/PluginConfiguration.v0.ts +50 -0
- package/src/configuration/index.ts +1 -0
- package/src/configuration/migration.ts +95 -0
- package/src/configuration-parser/hash-parser.ts +18 -0
- package/src/configuration-parser/html-parser.ts +35 -0
- package/src/configuration-parser/index.ts +134 -0
- package/src/configuration-parser/js-parser.ts +153 -0
- package/src/configuration-parser-legacy/LegacyParser.ts +376 -0
- package/src/configuration-parser-legacy/LegacyParser.utils.ts +104 -0
- package/src/configuration-parser-legacy/ModernParser.ts +213 -0
- package/src/configuration-parser-legacy/Parser.ts +44 -0
- package/src/configuration-parser-legacy/tests/LegacyDomParser.test.ts +168 -0
- package/src/configuration-parser-legacy/tests/LegacyLocationHashParser.test.ts +96 -0
- package/src/configuration-parser-legacy/tests/LegacyParser.test.ts +117 -0
- package/src/configuration-parser-legacy/tests/test-utils.ts +16 -0
- package/src/configuration-parser-legacy/utils.ts +30 -0
- package/src/constants.ts +61 -0
- package/src/encoding.ts +42 -0
- package/src/events/event-types.ts +126 -0
- package/src/events/index.ts +1 -0
- package/src/instance/PexipEngagePluginFrame.ts +48 -0
- package/src/instance/PluginInstance.ts +429 -0
- package/src/instance/dispatchEvent.ts +34 -0
- package/src/instance/hooks.ts +17 -0
- package/src/instance/index.ts +54 -0
- package/src/logger.ts +25 -0
- package/src/state/PluginState.schema.ts +67 -0
- package/src/state/index.ts +11 -0
- package/src/state/schemas.ts +97 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { parse as legacyParse } from "../LegacyParser.js";
|
|
3
|
+
import { insertMeetingTypeStepInFlow } from "../LegacyParser.utils.js";
|
|
4
|
+
import { createFakeElement, createFakeHash } from "./test-utils.js";
|
|
5
|
+
describe("LegacyConfigurationParser", () => {
|
|
6
|
+
it("Should correctly cascade config options", () => {
|
|
7
|
+
const config = legacyParse({
|
|
8
|
+
element: createFakeElement({
|
|
9
|
+
"skedify:searchCountry": "EN",
|
|
10
|
+
"skedify:appointment.subject_id": "1",
|
|
11
|
+
"skedify:appointment.office_id": "2000",
|
|
12
|
+
}),
|
|
13
|
+
hash: createFakeHash({
|
|
14
|
+
sco: "DE,NB",
|
|
15
|
+
sub: "2",
|
|
16
|
+
lis: "3000",
|
|
17
|
+
}),
|
|
18
|
+
options: {
|
|
19
|
+
searchCountry: "BE,NL",
|
|
20
|
+
lead_segment_code: "CODE_123",
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
expect(config).toMatchInlineSnapshot(`
|
|
24
|
+
{
|
|
25
|
+
"domConfig": {
|
|
26
|
+
"office-ids": "2000",
|
|
27
|
+
"office-type": "id",
|
|
28
|
+
"search_countries": "EN",
|
|
29
|
+
"subject-ids": "1",
|
|
30
|
+
"subject-type": "id",
|
|
31
|
+
},
|
|
32
|
+
"hashConfig": {
|
|
33
|
+
"listing-id": "3000",
|
|
34
|
+
"listing-type": "id",
|
|
35
|
+
"search_countries": "DE,NB",
|
|
36
|
+
"subject-ids": "2",
|
|
37
|
+
"subject-type": "id",
|
|
38
|
+
},
|
|
39
|
+
"jsConfig": {
|
|
40
|
+
"lead_segment-id": "CODE_123",
|
|
41
|
+
"lead_segment-type": "code",
|
|
42
|
+
"search_countries": "BE,NL",
|
|
43
|
+
},
|
|
44
|
+
}
|
|
45
|
+
`);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe("parseLegacyHashConfig", () => {
|
|
49
|
+
it("Should correctly parse legacy configuration", () => {
|
|
50
|
+
const legacyConfig = legacyParse({
|
|
51
|
+
hash: "#skedifyeyJmbG8iOiJTI09UUUMiLCJvZmYiOiI2In0f",
|
|
52
|
+
});
|
|
53
|
+
expect(legacyConfig).toMatchInlineSnapshot(`
|
|
54
|
+
{
|
|
55
|
+
"domConfig": {},
|
|
56
|
+
"hashConfig": {
|
|
57
|
+
"flow": "SM*OTQC",
|
|
58
|
+
"office-ids": "6",
|
|
59
|
+
"office-type": "id",
|
|
60
|
+
},
|
|
61
|
+
"jsConfig": {},
|
|
62
|
+
}
|
|
63
|
+
`);
|
|
64
|
+
});
|
|
65
|
+
it("Should correctly parse legacy special encoded character configuration", () => {
|
|
66
|
+
const legacyConfig = legacyParse({
|
|
67
|
+
hash: "#skedifyeyJjZW0iOiJjaGFybG90dGVzY2hyb+tAaG90bWFpbC5jb20iLCJjZm4iOiJDaGFybG90dGUiLCJjbG4iOiJTY2hyb+siLCJjcG4iOiIwNDk3IDk5IDk5IDk5IiwiZWxpIjoiRTEzRkRGNzEtNkUwRi1FIEUxMS04RjZELTAwMEQzQUJBM0Q5QyJ9e",
|
|
68
|
+
});
|
|
69
|
+
expect(legacyConfig).toMatchInlineSnapshot(`
|
|
70
|
+
{
|
|
71
|
+
"domConfig": {},
|
|
72
|
+
"hashConfig": {
|
|
73
|
+
"customer-email": "charlotteschroë@hotmail.com",
|
|
74
|
+
"customer-first_name": "Charlotte",
|
|
75
|
+
"customer-last_name": "Schroë",
|
|
76
|
+
"customer-phone_number": "0497 99 99 99",
|
|
77
|
+
"listing-id": "E13FDF71-6E0F-E E11-8F6D-000D3ABA3D9C",
|
|
78
|
+
"listing-type": "externalId",
|
|
79
|
+
},
|
|
80
|
+
"jsConfig": {},
|
|
81
|
+
}
|
|
82
|
+
`);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe("insertMeetingTypeStepInFlow", () => {
|
|
86
|
+
it("should correctly handle empty flow", () => {
|
|
87
|
+
expect(insertMeetingTypeStepInFlow()).toBeUndefined();
|
|
88
|
+
});
|
|
89
|
+
it("should correctly stop when M is already present", () => {
|
|
90
|
+
expect(insertMeetingTypeStepInFlow("#S#M#O#ETQC")).toBe("#S#M#O#ETQC");
|
|
91
|
+
});
|
|
92
|
+
it("should correctly insert M when O is locked", () => {
|
|
93
|
+
expect(insertMeetingTypeStepInFlow("S#OTQC")).toBe("SM#OTQC");
|
|
94
|
+
});
|
|
95
|
+
it("should correctly insert M when S is locked", () => {
|
|
96
|
+
expect(insertMeetingTypeStepInFlow("#SOTQC")).toBe("#SMOTQC");
|
|
97
|
+
});
|
|
98
|
+
it("should correctly insert M when S & O is locked", () => {
|
|
99
|
+
expect(insertMeetingTypeStepInFlow("#S#OETQC")).toBe("#SM#OETQC");
|
|
100
|
+
});
|
|
101
|
+
it("should correctly insert M when S & O & E is locked", () => {
|
|
102
|
+
expect(insertMeetingTypeStepInFlow("#S#O#ETQC")).toBe("#SM#O#ETQC");
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LegacyPluginHashConfiguration } from "../LegacyParser.js";
|
|
2
|
+
export declare function createFakeHash(obj?: LegacyPluginHashConfiguration): string;
|
|
3
|
+
export declare function createFakeElement(attributes: Record<string, string>): HTMLDivElement;
|
|
4
|
+
//# sourceMappingURL=test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/configuration-parser-legacy/tests/test-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAExE,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,6BAA6B,UAIjE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAKnE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { encodeURIParameters } from "skedify-uri-encoding";
|
|
2
|
+
export function createFakeHash(obj) {
|
|
3
|
+
const values = encodeURIParameters(obj ?? {});
|
|
4
|
+
return `#skedify${values}`;
|
|
5
|
+
}
|
|
6
|
+
export function createFakeElement(attributes) {
|
|
7
|
+
const element = global.window.document.createElement("div");
|
|
8
|
+
Object.entries(attributes).forEach(([key, value]) => element.setAttribute(key, value));
|
|
9
|
+
return element;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes all falsy and empty objects from a passed object
|
|
3
|
+
* @param obj Object
|
|
4
|
+
* @returns Object
|
|
5
|
+
*/
|
|
6
|
+
export declare function sanitize<
|
|
7
|
+
T extends {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
},
|
|
10
|
+
>(obj: {
|
|
11
|
+
[K in keyof Required<T>]: T[K];
|
|
12
|
+
}): T;
|
|
13
|
+
export declare function isValidConfiguration(configuration: unknown): configuration is object;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/configuration-parser-legacy/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,GAAG,EAAE;KAC7D,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,GAAG,CAAC,CAkBJ;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,IAAI,MAAM,CAEpF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes all falsy and empty objects from a passed object
|
|
3
|
+
* @param obj Object
|
|
4
|
+
* @returns Object
|
|
5
|
+
*/
|
|
6
|
+
export function sanitize(obj) {
|
|
7
|
+
for (const key in obj) {
|
|
8
|
+
if (!obj[key]) {
|
|
9
|
+
delete obj[key];
|
|
10
|
+
}
|
|
11
|
+
if (typeof obj[key] !== "object") {
|
|
12
|
+
continue; // If not an object, skip to the next iteration
|
|
13
|
+
}
|
|
14
|
+
// The property is an object
|
|
15
|
+
sanitize(obj[key]); // <-- Make a recursive call on the nested object
|
|
16
|
+
if (Object.keys(obj[key]).length === 0) {
|
|
17
|
+
delete obj[key]; // The object had no properties, so delete that property
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
22
|
+
export function isValidConfiguration(configuration) {
|
|
23
|
+
return typeof configuration === "object" && configuration !== null;
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Language } from "@pexip-engage/graphql";
|
|
2
|
+
export declare const DEPRECATED_TOKEN: {
|
|
3
|
+
readonly LOCK: "#";
|
|
4
|
+
readonly OFFICE: "L";
|
|
5
|
+
readonly START: "'";
|
|
6
|
+
};
|
|
7
|
+
export declare const TOKEN: {
|
|
8
|
+
readonly EMPLOYEE: "E";
|
|
9
|
+
readonly CUSTOMER: "C";
|
|
10
|
+
readonly LOCK: "*";
|
|
11
|
+
readonly MEETING_TYPE: "M";
|
|
12
|
+
readonly OFFICE: "O";
|
|
13
|
+
readonly QUESTION: "Q";
|
|
14
|
+
readonly SUBJECT: "S";
|
|
15
|
+
readonly TIMETABLE: "T";
|
|
16
|
+
};
|
|
17
|
+
export declare const DEFAULT_FLOW: string;
|
|
18
|
+
export type SupportedLngs = Language | "en-US" | "en-GB";
|
|
19
|
+
export declare const SUPPORTED_LNGS: readonly ["da", "de", "el", "en", "en-GB", "en-US", "es", "fr", "ja", "no", "nl", "pl"];
|
|
20
|
+
export declare const FALLBACK_LNG: SupportedLngs;
|
|
21
|
+
export declare function getSupportedLng(value?: string): "cimode" | SupportedLngs | undefined;
|
|
22
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;CASR,CAAC;AAEX,eAAO,MAAM,YAAY,QAOf,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AACzD,eAAO,MAAM,cAAc,yFAasB,CAAC;AAClD,eAAO,MAAM,YAAY,EAAE,aAAoB,CAAC;AAMhD,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,wCAW7C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const DEPRECATED_TOKEN = {
|
|
2
|
+
LOCK: "#",
|
|
3
|
+
OFFICE: "L",
|
|
4
|
+
START: "'",
|
|
5
|
+
};
|
|
6
|
+
export const TOKEN = {
|
|
7
|
+
EMPLOYEE: "E",
|
|
8
|
+
CUSTOMER: "C",
|
|
9
|
+
LOCK: "*",
|
|
10
|
+
MEETING_TYPE: "M",
|
|
11
|
+
OFFICE: "O",
|
|
12
|
+
QUESTION: "Q",
|
|
13
|
+
SUBJECT: "S",
|
|
14
|
+
TIMETABLE: "T",
|
|
15
|
+
};
|
|
16
|
+
export const DEFAULT_FLOW = [
|
|
17
|
+
TOKEN.SUBJECT,
|
|
18
|
+
TOKEN.MEETING_TYPE,
|
|
19
|
+
TOKEN.OFFICE,
|
|
20
|
+
TOKEN.TIMETABLE,
|
|
21
|
+
TOKEN.QUESTION,
|
|
22
|
+
TOKEN.CUSTOMER,
|
|
23
|
+
].join("");
|
|
24
|
+
export const SUPPORTED_LNGS = [
|
|
25
|
+
"da",
|
|
26
|
+
"de",
|
|
27
|
+
"el",
|
|
28
|
+
"en",
|
|
29
|
+
"en-GB",
|
|
30
|
+
"en-US",
|
|
31
|
+
"es",
|
|
32
|
+
"fr",
|
|
33
|
+
"ja",
|
|
34
|
+
"no",
|
|
35
|
+
"nl",
|
|
36
|
+
"pl",
|
|
37
|
+
];
|
|
38
|
+
export const FALLBACK_LNG = "en";
|
|
39
|
+
function isSupportedLng(value) {
|
|
40
|
+
return Boolean(value && SUPPORTED_LNGS.includes(value));
|
|
41
|
+
}
|
|
42
|
+
export function getSupportedLng(value) {
|
|
43
|
+
if (value === "cimode") {
|
|
44
|
+
return "cimode";
|
|
45
|
+
}
|
|
46
|
+
if (isSupportedLng(value)) return value;
|
|
47
|
+
const locale = value?.split("-")[0];
|
|
48
|
+
if (isSupportedLng(locale)) return locale;
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PluginConfiguration } from "./configuration/PluginConfiguration.current.js";
|
|
2
|
+
export declare function encodeURIParameters<T>(obj: T): string;
|
|
3
|
+
export declare function decodeURIParameters<T>(str: string): T;
|
|
4
|
+
export declare const pluginParams: {
|
|
5
|
+
encode(config: PluginConfiguration): URLSearchParams;
|
|
6
|
+
decode(searchParams: URLSearchParams): PluginConfiguration | null;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAYrD;AAID,eAAO,MAAM,YAAY;mBACR,mBAAmB,GAAG,eAAe;yBAM/B,eAAe;CAMrC,CAAC"}
|
package/dist/encoding.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export function encodeURIParameters(obj) {
|
|
2
|
+
const str = JSON.stringify(obj);
|
|
3
|
+
return btoa(
|
|
4
|
+
encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (_, p1) {
|
|
5
|
+
return String.fromCharCode(parseInt(p1, 16));
|
|
6
|
+
}),
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
export function decodeURIParameters(str) {
|
|
10
|
+
const result = JSON.parse(
|
|
11
|
+
decodeURIComponent(
|
|
12
|
+
Array.prototype.map
|
|
13
|
+
.call(atob(str), function (c) {
|
|
14
|
+
return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
|
|
15
|
+
})
|
|
16
|
+
.join(""),
|
|
17
|
+
),
|
|
18
|
+
);
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
const CONFIGURATION_SEARCH_PARAM_KEY = "configuration.pexip";
|
|
22
|
+
export const pluginParams = {
|
|
23
|
+
encode(config) {
|
|
24
|
+
const searchParams = new URLSearchParams();
|
|
25
|
+
searchParams.set(CONFIGURATION_SEARCH_PARAM_KEY, encodeURIParameters(config));
|
|
26
|
+
return searchParams;
|
|
27
|
+
},
|
|
28
|
+
decode(searchParams) {
|
|
29
|
+
const config = searchParams.get(CONFIGURATION_SEARCH_PARAM_KEY);
|
|
30
|
+
if (!config) return null;
|
|
31
|
+
return decodeURIParameters(config);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { Geolocation } from "@pexip-engage/graphql";
|
|
2
|
+
import type { PluginStateInput } from "../state/index.js";
|
|
3
|
+
type ValueOf<T> = T[keyof T];
|
|
4
|
+
export interface CAMeta {
|
|
5
|
+
enterprise: string;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
application: {
|
|
8
|
+
name: string;
|
|
9
|
+
version: string;
|
|
10
|
+
};
|
|
11
|
+
timestamp: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const CAEventType: {
|
|
14
|
+
readonly SESSION_CONFIG: "session-config";
|
|
15
|
+
readonly SESSION_DATA: "session-data";
|
|
16
|
+
readonly STEP_SHOWN: "step-shown";
|
|
17
|
+
readonly DATA_SHOWN: "data-shown";
|
|
18
|
+
readonly STEP_SUBMITTED: "data-selected";
|
|
19
|
+
readonly APPOINTMENT_REQUESTED: "appointment-requested";
|
|
20
|
+
readonly APPOINTMENT_CONFIRMED: "appointment-confirmed";
|
|
21
|
+
readonly TIMETABLE_NAVIGATION: "timetable-navigation";
|
|
22
|
+
};
|
|
23
|
+
export type CAEventType = ValueOf<typeof CAEventType>;
|
|
24
|
+
type CAEvent<T extends CAEventType, P> = {
|
|
25
|
+
type: T;
|
|
26
|
+
payload: P;
|
|
27
|
+
};
|
|
28
|
+
export type ConversionAnalyticsEvents = CAEvent<"session-config", {
|
|
29
|
+
userAgent: string;
|
|
30
|
+
configuration: PluginStateInput["config"];
|
|
31
|
+
}> | CAEvent<"session-data", {
|
|
32
|
+
appointmentId: string;
|
|
33
|
+
}> | CAEvent<"step-shown", {
|
|
34
|
+
view: "employee" | "customer" | "meeting-type" | "office" | "questions" | "subject" | "timetable";
|
|
35
|
+
}> | CAEvent<"data-shown", CADataShownPayload> | CAEvent<"data-selected", CADataSelectedPayload> | CAEvent<"timetable-navigation", {
|
|
36
|
+
type: "next" | "previous" | "date-selection";
|
|
37
|
+
timeZone: string | null;
|
|
38
|
+
/** YYYY-MM-DD */
|
|
39
|
+
startDay: string;
|
|
40
|
+
/** YYYY-MM-DD */
|
|
41
|
+
endDay: string;
|
|
42
|
+
}> | CAEvent<"appointment-confirmed", {
|
|
43
|
+
appointmentId: string;
|
|
44
|
+
}>;
|
|
45
|
+
type CADataShownPayload = {
|
|
46
|
+
subtype: "timetable";
|
|
47
|
+
slots: {
|
|
48
|
+
/** 2022-11-03T14:35:58+00:00 */
|
|
49
|
+
start: string;
|
|
50
|
+
/** 2022-11-03T14:35:58+00:00 */
|
|
51
|
+
end: string;
|
|
52
|
+
}[];
|
|
53
|
+
/** YYYY-MM-DD */
|
|
54
|
+
startDay: string;
|
|
55
|
+
/** YYYY-MM-DD */
|
|
56
|
+
endDay: string;
|
|
57
|
+
timeZone: string;
|
|
58
|
+
} | {
|
|
59
|
+
subtype: "office";
|
|
60
|
+
officeIds: string[];
|
|
61
|
+
} | {
|
|
62
|
+
subtype: "subject-category";
|
|
63
|
+
categoryIds: string[];
|
|
64
|
+
} | {
|
|
65
|
+
subtype: "subject";
|
|
66
|
+
subjectIds: string[];
|
|
67
|
+
} | {
|
|
68
|
+
subtype: "meeting-type";
|
|
69
|
+
meetingTypes: Array<"OFFICE" | "PHONE" | "VIDEO" | "ON_LOCATION">;
|
|
70
|
+
} | {
|
|
71
|
+
subtype: "questions";
|
|
72
|
+
questionIds: string[];
|
|
73
|
+
} | {
|
|
74
|
+
subtype: "employee";
|
|
75
|
+
employeeIds: string[];
|
|
76
|
+
};
|
|
77
|
+
type CADataSelectedPayload = {
|
|
78
|
+
subtype: "employee";
|
|
79
|
+
employeeId: number;
|
|
80
|
+
} | {
|
|
81
|
+
subtype: "customer";
|
|
82
|
+
customer: {
|
|
83
|
+
timezone?: string;
|
|
84
|
+
};
|
|
85
|
+
} | {
|
|
86
|
+
subtype: "office";
|
|
87
|
+
officeId: number;
|
|
88
|
+
} | {
|
|
89
|
+
subtype: "questions";
|
|
90
|
+
questions: {
|
|
91
|
+
questionId: number;
|
|
92
|
+
value: string | number | string[];
|
|
93
|
+
}[];
|
|
94
|
+
} | {
|
|
95
|
+
subtype: "subject";
|
|
96
|
+
subjectId: number;
|
|
97
|
+
} | {
|
|
98
|
+
subtype: "timetable";
|
|
99
|
+
possibility: {
|
|
100
|
+
/** 2022-11-03T14:35:58+00:00 */
|
|
101
|
+
start: string;
|
|
102
|
+
/** 2022-11-03T14:35:58+00:00 */
|
|
103
|
+
end: string;
|
|
104
|
+
timeZone: string;
|
|
105
|
+
employeeIds: number[];
|
|
106
|
+
};
|
|
107
|
+
} | {
|
|
108
|
+
subtype: "subject-category";
|
|
109
|
+
categoryId: number;
|
|
110
|
+
} | {
|
|
111
|
+
subtype: "location";
|
|
112
|
+
location: {
|
|
113
|
+
geolocation: Geolocation;
|
|
114
|
+
};
|
|
115
|
+
} | {
|
|
116
|
+
subtype: "meeting-type";
|
|
117
|
+
meetingType: "OFFICE" | "PHONE" | "VIDEO" | "ON_LOCATION";
|
|
118
|
+
};
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=conversion-analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion-analytics.d.ts","sourceRoot":"","sources":["../../src/events/conversion-analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const CAEventType = {
|
|
2
|
+
SESSION_CONFIG: "session-config",
|
|
3
|
+
SESSION_DATA: "session-data",
|
|
4
|
+
STEP_SHOWN: "step-shown",
|
|
5
|
+
DATA_SHOWN: "data-shown",
|
|
6
|
+
STEP_SUBMITTED: "data-selected",
|
|
7
|
+
APPOINTMENT_REQUESTED: "appointment-requested",
|
|
8
|
+
APPOINTMENT_CONFIRMED: "appointment-confirmed",
|
|
9
|
+
TIMETABLE_NAVIGATION: "timetable-navigation",
|
|
10
|
+
};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type { PluginState } from "../state/index.js";
|
|
2
|
+
import type { InputType } from "@pexip-engage/graphql";
|
|
3
|
+
export type IFrameMessage = PublicIFrameMessage | PrivateIFrameMessage;
|
|
4
|
+
export type PublicIFrameMessage = PluginEventMessage | StepShownMessage;
|
|
5
|
+
export type PrivateIFrameMessage =
|
|
6
|
+
| StateUpdateMessage
|
|
7
|
+
| RequestPreAppointmentMessage
|
|
8
|
+
| RequestMessage;
|
|
9
|
+
export interface StateUpdateMessage {
|
|
10
|
+
type: "STATE_UPDATE";
|
|
11
|
+
payload: PluginState & {
|
|
12
|
+
subjectCategoryId?: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface StepShownMessage {
|
|
16
|
+
type: "STEP_SHOWN";
|
|
17
|
+
payload: {
|
|
18
|
+
step:
|
|
19
|
+
| "office"
|
|
20
|
+
| "timetable"
|
|
21
|
+
| "customer"
|
|
22
|
+
| "questions"
|
|
23
|
+
| "subject"
|
|
24
|
+
| "employee"
|
|
25
|
+
| "meeting-type";
|
|
26
|
+
subject?: {
|
|
27
|
+
id: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
};
|
|
30
|
+
office?: {
|
|
31
|
+
id: string;
|
|
32
|
+
title?: string;
|
|
33
|
+
};
|
|
34
|
+
meetingType?:
|
|
35
|
+
| "video"
|
|
36
|
+
| "phone"
|
|
37
|
+
| "on_location"
|
|
38
|
+
| "office"
|
|
39
|
+
| "VIDEO"
|
|
40
|
+
| "PHONE"
|
|
41
|
+
| "ON_LOCATION"
|
|
42
|
+
| "OFFICE";
|
|
43
|
+
employee?: {
|
|
44
|
+
id: string;
|
|
45
|
+
firstName?: string | null;
|
|
46
|
+
lastName?: string | null;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface PluginEventMessage {
|
|
51
|
+
type:
|
|
52
|
+
| "ERROR"
|
|
53
|
+
| "MISCONFIGURED"
|
|
54
|
+
| "APPOINTMENT_CREATED"
|
|
55
|
+
| "APPOINTMENT_EDITED"
|
|
56
|
+
| "INVITE_ACCEPTED"
|
|
57
|
+
| "APPOINTMENT_CANCELLED"
|
|
58
|
+
| "APPOINTMENT_COMPLETED";
|
|
59
|
+
}
|
|
60
|
+
export type IFrameObjectMessage =
|
|
61
|
+
| RequestPreAppointmentResponseMessage
|
|
62
|
+
| GeolocationResponseMessage
|
|
63
|
+
| CssVarUpdateResponseMessage
|
|
64
|
+
| OriginResponseMessage
|
|
65
|
+
| CustomCssUpdateResponseMessage;
|
|
66
|
+
export interface IFrameResponseMap {
|
|
67
|
+
["PRE_APPOINTMENT_REQUEST"]: RequestPreAppointmentResponseMessage["payload"];
|
|
68
|
+
["REQUEST_GEOLOCATION"]: GeolocationResponseMessage["payload"];
|
|
69
|
+
["REQUEST_ORIGIN_URL"]: OriginResponseMessage["payload"];
|
|
70
|
+
["CSS_VAR_UPDATE"]: CssVarUpdateResponseMessage["payload"];
|
|
71
|
+
["CUSTOM_CSS_UPDATE"]: CustomCssUpdateResponseMessage["payload"];
|
|
72
|
+
}
|
|
73
|
+
export type RequestEvent = RequestMessage | RequestPreAppointmentMessage;
|
|
74
|
+
export interface RequestMessage {
|
|
75
|
+
type: "REQUEST_GEOLOCATION" | "REQUEST_ORIGIN_URL";
|
|
76
|
+
}
|
|
77
|
+
export interface GeolocationResponseMessage {
|
|
78
|
+
type: "REQUEST_GEOLOCATION";
|
|
79
|
+
payload:
|
|
80
|
+
| GeolocationPosition
|
|
81
|
+
| {
|
|
82
|
+
error: string;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export interface CssVarUpdateResponseMessage {
|
|
86
|
+
type: "CSS_VAR_UPDATE";
|
|
87
|
+
payload: {
|
|
88
|
+
name: string;
|
|
89
|
+
value: string;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export interface CustomCssUpdateResponseMessage {
|
|
93
|
+
type: "CUSTOM_CSS_UPDATE";
|
|
94
|
+
payload: {
|
|
95
|
+
css: string;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export interface OriginResponseMessage {
|
|
99
|
+
type: "REQUEST_ORIGIN_URL";
|
|
100
|
+
payload: {
|
|
101
|
+
href: string;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export interface RequestPreAppointmentResponseMessage {
|
|
105
|
+
type: "PRE_APPOINTMENT_REQUEST";
|
|
106
|
+
payload: {
|
|
107
|
+
meta: Record<string, unknown>;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export interface RequestPreAppointmentMessage {
|
|
111
|
+
type: "PRE_APPOINTMENT_REQUEST";
|
|
112
|
+
payload: PreAppointmentRequestPayload;
|
|
113
|
+
}
|
|
114
|
+
export interface PreAppointmentRequestPayload {
|
|
115
|
+
employee?: {
|
|
116
|
+
externalId?: string;
|
|
117
|
+
firstName?: string;
|
|
118
|
+
lastName?: string;
|
|
119
|
+
};
|
|
120
|
+
meetingType: "OFFICE" | "PHONE" | "VIDEO" | "ON_LOCATION";
|
|
121
|
+
office: {
|
|
122
|
+
externalId?: string;
|
|
123
|
+
title: string;
|
|
124
|
+
};
|
|
125
|
+
subject: {
|
|
126
|
+
externalId?: string;
|
|
127
|
+
title: string;
|
|
128
|
+
};
|
|
129
|
+
customer: {
|
|
130
|
+
externalId?: string;
|
|
131
|
+
firstName?: string;
|
|
132
|
+
lastName?: string;
|
|
133
|
+
};
|
|
134
|
+
questions: ReadonlyArray<{
|
|
135
|
+
label: string;
|
|
136
|
+
externalId?: string;
|
|
137
|
+
answer:
|
|
138
|
+
| {
|
|
139
|
+
type: Exclude<InputType, "SELECT" | "MULTI_SELECT">;
|
|
140
|
+
value?: string;
|
|
141
|
+
}
|
|
142
|
+
| {
|
|
143
|
+
type: Extract<InputType, "SELECT" | "MULTI_SELECT">;
|
|
144
|
+
selectedAnswerOptions: ReadonlyArray<{
|
|
145
|
+
externalId?: string;
|
|
146
|
+
value?: string;
|
|
147
|
+
label: string;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
150
|
+
}>;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=event-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/events/event-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./event-types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/events/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./configuration/index.js";
|
|
2
|
+
export * from "./configuration-parser/index.js";
|
|
3
|
+
export * from "./events/index.js";
|
|
4
|
+
export * from "./instance/index.js";
|
|
5
|
+
export * from "./state/index.js";
|
|
6
|
+
export * from "./constants.js";
|
|
7
|
+
export * from "./logger.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./configuration/index.js";
|
|
2
|
+
export * from "./configuration-parser/index.js";
|
|
3
|
+
export * from "./events/index.js";
|
|
4
|
+
export * from "./instance/index.js";
|
|
5
|
+
export * from "./state/index.js";
|
|
6
|
+
export * from "./constants.js";
|
|
7
|
+
export * from "./logger.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare class PexipEngagePluginFrame extends HTMLElement {
|
|
2
|
+
#private;
|
|
3
|
+
constructor();
|
|
4
|
+
createPexipPlugin(src: string): HTMLIFrameElement;
|
|
5
|
+
}
|
|
6
|
+
export declare function getPexipEngagePluginFrame(): typeof PexipEngagePluginFrame;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=PexipEngagePluginFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PexipEngagePluginFrame.d.ts","sourceRoot":"","sources":["../../src/instance/PexipEngagePluginFrame.ts"],"names":[],"mappings":"AAQA,cAAM,sBAAuB,SAAQ,WAAW;;;IAQ9C,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;CAsBlD;AAGD,wBAAgB,yBAAyB,kCAMxC"}
|