workwonders-sdk 0.0.13 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/changelog-module.d.ts +31 -0
- package/dist/changelog-module.d.ts.map +1 -0
- package/dist/changelog-module.js +208 -0
- package/dist/changelog-module.js.map +1 -0
- package/dist/feedback-module.d.ts +24 -0
- package/dist/feedback-module.d.ts.map +1 -0
- package/dist/feedback-module.js +86 -0
- package/dist/feedback-module.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/workwonders.d.ts +20 -0
- package/dist/workwonders.d.ts.map +1 -0
- package/dist/workwonders.js +124 -0
- package/dist/workwonders.js.map +1 -0
- package/package.json +1 -1
- package/dist/workwonders-sdk.d.ts +0 -39
- package/dist/workwonders-sdk.d.ts.map +0 -1
- package/dist/workwonders-sdk.js +0 -397
- package/dist/workwonders-sdk.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { KyInstance } from "ky";
|
|
2
|
+
import { OrganizationDto } from "./types/organizationDto";
|
|
3
|
+
interface ChangelogInitArgs {
|
|
4
|
+
ky: KyInstance;
|
|
5
|
+
widgetBaseUrl: string;
|
|
6
|
+
token?: string;
|
|
7
|
+
locale?: string;
|
|
8
|
+
organizationData: OrganizationDto;
|
|
9
|
+
}
|
|
10
|
+
export declare class ChangelogModule {
|
|
11
|
+
private $changelogContainer;
|
|
12
|
+
private $changelogIframe;
|
|
13
|
+
private $changelogMiniContainer;
|
|
14
|
+
private readonly args;
|
|
15
|
+
private contextBasedChangelogs;
|
|
16
|
+
constructor(args: ChangelogInitArgs);
|
|
17
|
+
cleanup(): void;
|
|
18
|
+
initChangelogWidget: () => Promise<void>;
|
|
19
|
+
showChangelogs: (changelogIdsToShow: number[]) => void;
|
|
20
|
+
initChangelogWidgetMini: () => void;
|
|
21
|
+
openChangelogWidget: (id?: string) => void;
|
|
22
|
+
openChangelogMiniWidget: () => void;
|
|
23
|
+
closeChangelogWidget: () => void;
|
|
24
|
+
closeChangelogMiniWidget: () => void;
|
|
25
|
+
notifyUrlChange: () => void;
|
|
26
|
+
checkShowContextBasedChangelogs({ clickedElement, }: {
|
|
27
|
+
clickedElement?: HTMLElement;
|
|
28
|
+
}): void;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=changelog-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog-module.d.ts","sourceRoot":"","sources":["../src/changelog-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAKhC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,UAAU,iBAAiB;IACzB,EAAE,EAAE,UAAU,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAuED,qBAAa,eAAe;IAC1B,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,uBAAuB,CAA+B;IAE9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC,OAAO,CAAC,sBAAsB,CAA6B;gBAE/C,IAAI,EAAE,iBAAiB;IAInC,OAAO;IAYP,mBAAmB,sBA8FjB;IAEF,cAAc,uBAAwB,MAAM,EAAE,UA8C5C;IAEF,uBAAuB,aA2CrB;IAEF,mBAAmB,QAAS,MAAM,UAkBhC;IAEF,uBAAuB,aAMrB;IAEF,oBAAoB,aAMlB;IAEF,wBAAwB,aAMtB;IAEF,eAAe,aAEb;IAEK,+BAA+B,CAAC,EACrC,cAAc,GACf,EAAE;QACD,cAAc,CAAC,EAAE,WAAW,CAAC;KAC9B;CA0BF"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
const processContextConditions = (conditions, currentUrl, userMetadata, clickedElement) => {
|
|
2
|
+
const andResult = conditions.AND?.every((condition) => processContextConditions(condition, currentUrl, userMetadata, clickedElement)) ?? true;
|
|
3
|
+
const orResult = conditions.OR?.some((condition) => processContextConditions(condition, currentUrl, userMetadata, clickedElement)) ?? true;
|
|
4
|
+
const notResult = conditions.NOT
|
|
5
|
+
? !processContextConditions(conditions.NOT, currentUrl, userMetadata, clickedElement)
|
|
6
|
+
: true;
|
|
7
|
+
const urlPathContainsResult = conditions.urlPathContains
|
|
8
|
+
? currentUrl.includes(conditions.urlPathContains)
|
|
9
|
+
: true;
|
|
10
|
+
const onClickCssSelectorResult = conditions.onClickCssSelector
|
|
11
|
+
? !!clickedElement?.closest(conditions.onClickCssSelector)
|
|
12
|
+
: true;
|
|
13
|
+
const userMetadataResult = conditions.userMetadataMatches
|
|
14
|
+
? userMetadata?.[conditions.userMetadataMatches.key] ==
|
|
15
|
+
conditions.userMetadataMatches.value
|
|
16
|
+
: true;
|
|
17
|
+
console.log({
|
|
18
|
+
currentUrl,
|
|
19
|
+
andResult,
|
|
20
|
+
orResult,
|
|
21
|
+
notResult,
|
|
22
|
+
urlPathContainsResult,
|
|
23
|
+
onClickCssSelectorResult,
|
|
24
|
+
conditions,
|
|
25
|
+
clickedElement,
|
|
26
|
+
cssSelector: conditions.onClickCssSelector,
|
|
27
|
+
userMetadata,
|
|
28
|
+
});
|
|
29
|
+
return (andResult &&
|
|
30
|
+
orResult &&
|
|
31
|
+
notResult &&
|
|
32
|
+
urlPathContainsResult &&
|
|
33
|
+
onClickCssSelectorResult &&
|
|
34
|
+
userMetadataResult);
|
|
35
|
+
};
|
|
36
|
+
export class ChangelogModule {
|
|
37
|
+
$changelogContainer = null;
|
|
38
|
+
$changelogIframe = null;
|
|
39
|
+
$changelogMiniContainer = null;
|
|
40
|
+
args;
|
|
41
|
+
contextBasedChangelogs = [];
|
|
42
|
+
constructor(args) {
|
|
43
|
+
this.args = args;
|
|
44
|
+
}
|
|
45
|
+
cleanup() {
|
|
46
|
+
if (this.$changelogContainer) {
|
|
47
|
+
this.$changelogContainer.remove();
|
|
48
|
+
this.$changelogContainer = null;
|
|
49
|
+
}
|
|
50
|
+
if (this.$changelogMiniContainer) {
|
|
51
|
+
this.$changelogMiniContainer.remove();
|
|
52
|
+
this.$changelogMiniContainer = null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
initChangelogWidget = async () => {
|
|
56
|
+
if (this.$changelogContainer) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!this.args.organizationData.enabledModules.includes("CHANGELOG")) {
|
|
60
|
+
console.warn("Changelog module is not enabled for this organization.");
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const $changelogContainer = document.createElement("div");
|
|
64
|
+
this.$changelogContainer = $changelogContainer;
|
|
65
|
+
const existingsChangelogs = await this.args.ky
|
|
66
|
+
.get(`organizations/${this.args.organizationData.slug}/changelogs/summary?language=${this.args.locale}`)
|
|
67
|
+
.then((res) => res.json())
|
|
68
|
+
.then((changelogs) => changelogs.sort((a, b) => new Date(b.publishedAt ?? 0).getTime() -
|
|
69
|
+
new Date(a.publishedAt ?? 0).getTime()));
|
|
70
|
+
const regularChangelogs = existingsChangelogs.filter((changelog) => changelog.showMode === "Regular");
|
|
71
|
+
this.contextBasedChangelogs = existingsChangelogs.filter((changelog) => changelog.showMode === "ContextBased");
|
|
72
|
+
$changelogContainer.id = "workwonders-changelog-container";
|
|
73
|
+
$changelogContainer.classList.add("workwonders-widget-container", "workwonders-widget-container--hidden");
|
|
74
|
+
const $changelogIframe = document.createElement("iframe");
|
|
75
|
+
this.$changelogIframe = $changelogIframe;
|
|
76
|
+
$changelogIframe.id = "workwonders-changelog-iframe";
|
|
77
|
+
$changelogIframe.classList.add("workwonders-widget-iframe", "workwonders-changelog-iframe");
|
|
78
|
+
const seenChangelogs = localStorage.getItem(`workwonders-seen-changelogs-${this.args.organizationData.slug}`);
|
|
79
|
+
const seenChangelogsArray = seenChangelogs
|
|
80
|
+
? JSON.parse(seenChangelogs)
|
|
81
|
+
: null;
|
|
82
|
+
const unseenChangelogs = regularChangelogs.filter((changelog) => !seenChangelogsArray?.includes(changelog.id));
|
|
83
|
+
const shouldShowChangelogOnStart = unseenChangelogs.length > 0 &&
|
|
84
|
+
(seenChangelogsArray ||
|
|
85
|
+
this.args.organizationData.changelogConfig
|
|
86
|
+
.showLatestChangelogOnFirstVisit);
|
|
87
|
+
if (shouldShowChangelogOnStart) {
|
|
88
|
+
const changelogIdsToShow = seenChangelogsArray === null
|
|
89
|
+
? [unseenChangelogs[0].id]
|
|
90
|
+
: unseenChangelogs.map((c) => c.id);
|
|
91
|
+
this.showChangelogs(changelogIdsToShow);
|
|
92
|
+
}
|
|
93
|
+
const newSeenChangelogs = [
|
|
94
|
+
...(seenChangelogsArray ?? []),
|
|
95
|
+
...unseenChangelogs.map((c) => c.id),
|
|
96
|
+
];
|
|
97
|
+
localStorage.setItem(`workwonders-seen-changelogs-${this.args?.organizationData.slug}`, JSON.stringify(newSeenChangelogs));
|
|
98
|
+
this.notifyUrlChange();
|
|
99
|
+
$changelogContainer.onclick = () => {
|
|
100
|
+
this.closeChangelogWidget();
|
|
101
|
+
};
|
|
102
|
+
$changelogContainer.appendChild($changelogIframe);
|
|
103
|
+
document.body.appendChild($changelogContainer);
|
|
104
|
+
};
|
|
105
|
+
showChangelogs = (changelogIdsToShow) => {
|
|
106
|
+
const $changelogIframe = this.$changelogIframe;
|
|
107
|
+
const $changelogContainer = this.$changelogContainer;
|
|
108
|
+
const args = this.args;
|
|
109
|
+
if (!$changelogIframe || !$changelogContainer || !args) {
|
|
110
|
+
console.log("No changelog iframe or container or args for showChangelogs");
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (changelogIdsToShow.length === 0) {
|
|
114
|
+
console.log("No changelogs to show");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const widgetUrl = new URL("changelog", `${this.args.widgetBaseUrl}`);
|
|
118
|
+
widgetUrl.searchParams.append("jwt", args.token || "");
|
|
119
|
+
widgetUrl.searchParams.append("lang", args.locale || "");
|
|
120
|
+
widgetUrl.searchParams.append("changelogIds", changelogIdsToShow.join(","));
|
|
121
|
+
$changelogIframe.onload = () => {
|
|
122
|
+
const currentSeenChangelogs = localStorage.getItem(`workwonders-seen-changelogs-${this.args?.organizationData.slug}`);
|
|
123
|
+
const currentSeenChangelogsArray = currentSeenChangelogs
|
|
124
|
+
? JSON.parse(currentSeenChangelogs)
|
|
125
|
+
: [];
|
|
126
|
+
const newSeenChangelogs = [
|
|
127
|
+
...currentSeenChangelogsArray,
|
|
128
|
+
...changelogIdsToShow,
|
|
129
|
+
];
|
|
130
|
+
localStorage.setItem(`workwonders-seen-changelogs-${this.args?.organizationData.slug}`, JSON.stringify(newSeenChangelogs));
|
|
131
|
+
$changelogContainer.classList.remove("workwonders-widget-container--hidden");
|
|
132
|
+
};
|
|
133
|
+
$changelogIframe.src = widgetUrl.toString();
|
|
134
|
+
};
|
|
135
|
+
initChangelogWidgetMini = () => {
|
|
136
|
+
if (this.$changelogMiniContainer) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const args = this.args;
|
|
140
|
+
const organizationData = this.args.organizationData;
|
|
141
|
+
if (!organizationData.enabledModules.includes("CHANGELOG")) {
|
|
142
|
+
console.warn("Changelog module is not enabled for this organization.");
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const $changelogMiniContainer = document.createElement("div");
|
|
146
|
+
this.$changelogMiniContainer = $changelogMiniContainer;
|
|
147
|
+
$changelogMiniContainer.id = "workwonders-changelog-mini-container";
|
|
148
|
+
$changelogMiniContainer.classList.add("workwonders-widget-container", "workwonders-changelog-mini-container", "workwonders-widget-container--hidden");
|
|
149
|
+
const $changelogMiniIframe = document.createElement("iframe");
|
|
150
|
+
$changelogMiniIframe.id = "workwonders-changelog-mini-iframe";
|
|
151
|
+
$changelogMiniIframe.classList.add("workwonders-widget-iframe", "workwonders-changelog-mini-iframe");
|
|
152
|
+
const widgetUrl = new URL("changelog/mini", `${this.args.widgetBaseUrl}`);
|
|
153
|
+
widgetUrl.searchParams.append("jwt", args.token || "");
|
|
154
|
+
widgetUrl.searchParams.append("lang", args.locale || "");
|
|
155
|
+
$changelogMiniIframe.src = widgetUrl.toString();
|
|
156
|
+
$changelogMiniContainer.appendChild($changelogMiniIframe);
|
|
157
|
+
$changelogMiniContainer.onclick = () => {
|
|
158
|
+
this.closeChangelogMiniWidget();
|
|
159
|
+
};
|
|
160
|
+
document.body.appendChild($changelogMiniContainer);
|
|
161
|
+
};
|
|
162
|
+
openChangelogWidget = (id) => {
|
|
163
|
+
if (this.$changelogContainer) {
|
|
164
|
+
if (id) {
|
|
165
|
+
const $iframe = document.getElementById("workwonders-changelog-iframe");
|
|
166
|
+
const widgetUrl = new URL("changelog", `${this.args.widgetBaseUrl}`);
|
|
167
|
+
widgetUrl.searchParams.append("jwt", this.args?.token || "");
|
|
168
|
+
widgetUrl.searchParams.append("lang", this.args?.locale || "");
|
|
169
|
+
widgetUrl.searchParams.append("changelogIds", id);
|
|
170
|
+
$iframe.src = widgetUrl.toString();
|
|
171
|
+
}
|
|
172
|
+
this.$changelogContainer.classList.remove("workwonders-widget-container--hidden");
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
openChangelogMiniWidget = () => {
|
|
176
|
+
if (this.$changelogMiniContainer) {
|
|
177
|
+
this.$changelogMiniContainer.classList.remove("workwonders-widget-container--hidden");
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
closeChangelogWidget = () => {
|
|
181
|
+
if (this.$changelogContainer) {
|
|
182
|
+
this.$changelogContainer.classList.add("workwonders-widget-container--hidden");
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
closeChangelogMiniWidget = () => {
|
|
186
|
+
if (this.$changelogMiniContainer) {
|
|
187
|
+
this.$changelogMiniContainer.classList.add("workwonders-widget-container--hidden");
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
notifyUrlChange = () => {
|
|
191
|
+
this.checkShowContextBasedChangelogs({});
|
|
192
|
+
};
|
|
193
|
+
checkShowContextBasedChangelogs({ clickedElement, }) {
|
|
194
|
+
const args = this.args;
|
|
195
|
+
const organizationData = this.args.organizationData;
|
|
196
|
+
if (!args?.locale || !organizationData) {
|
|
197
|
+
console.log("No args or organization data");
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const contextBasedChangelogsMatching = this.contextBasedChangelogs.filter((changelog) => {
|
|
201
|
+
return processContextConditions(changelog.contextConditions, window.location.href, organizationData.userMetadata, clickedElement);
|
|
202
|
+
});
|
|
203
|
+
if (contextBasedChangelogsMatching.length > 0) {
|
|
204
|
+
this.showChangelogs(contextBasedChangelogsMatching.map((changelog) => changelog.id));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=changelog-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog-module.js","sourceRoot":"","sources":["../src/changelog-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OrganizationDto } from "./types/organizationDto";
|
|
2
|
+
interface InitFeedabackArgs {
|
|
3
|
+
useCustomTrigger?: boolean;
|
|
4
|
+
}
|
|
5
|
+
interface FeedbackInitArgs {
|
|
6
|
+
widgetBaseUrl: string;
|
|
7
|
+
token?: string;
|
|
8
|
+
locale?: string;
|
|
9
|
+
organizationData: OrganizationDto;
|
|
10
|
+
}
|
|
11
|
+
export declare class FeedbackModule {
|
|
12
|
+
private $feedbackContainer;
|
|
13
|
+
private $feedbackIframe;
|
|
14
|
+
private $feedbackButton;
|
|
15
|
+
private readonly args;
|
|
16
|
+
constructor(args: FeedbackInitArgs);
|
|
17
|
+
cleanup(): void;
|
|
18
|
+
initFeedbackWidget: ({ useCustomTrigger }?: InitFeedabackArgs) => void;
|
|
19
|
+
private initFeedbackButton;
|
|
20
|
+
openFeedbackWidget: () => void;
|
|
21
|
+
closeFeedbackWidget: () => void;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=feedback-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-module.d.ts","sourceRoot":"","sources":["../src/feedback-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,UAAU,iBAAiB;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,UAAU,gBAAgB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,eAAe,CAAkC;IAEzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,IAAI,EAAE,gBAAgB;IAIlC,OAAO;IAYP,kBAAkB,0BAA0B,iBAAiB,UA4C3D;IAEF,OAAO,CAAC,kBAAkB;IAmC1B,kBAAkB,aAchB;IAEF,mBAAmB,aAMjB;CACH"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export class FeedbackModule {
|
|
2
|
+
$feedbackContainer = null;
|
|
3
|
+
$feedbackIframe = null;
|
|
4
|
+
$feedbackButton = null;
|
|
5
|
+
args;
|
|
6
|
+
constructor(args) {
|
|
7
|
+
this.args = args;
|
|
8
|
+
}
|
|
9
|
+
cleanup() {
|
|
10
|
+
if (this.$feedbackContainer) {
|
|
11
|
+
this.$feedbackContainer.remove();
|
|
12
|
+
this.$feedbackContainer = null;
|
|
13
|
+
}
|
|
14
|
+
if (this.$feedbackButton) {
|
|
15
|
+
this.$feedbackButton.remove();
|
|
16
|
+
this.$feedbackButton = null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
initFeedbackWidget = ({ useCustomTrigger } = {}) => {
|
|
20
|
+
if (this.$feedbackContainer) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (!this.args.organizationData.enabledModules.includes("FEEDBACK")) {
|
|
24
|
+
console.warn("Feedback module is not enabled for this organization.");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const $feedbackContainer = document.createElement("div");
|
|
28
|
+
this.$feedbackContainer = $feedbackContainer;
|
|
29
|
+
$feedbackContainer.id = "workwonders-feedback-container";
|
|
30
|
+
$feedbackContainer.classList.add("workwonders-widget-container", "workwonders-widget-container--hidden");
|
|
31
|
+
const $feedbackIframe = document.createElement("iframe");
|
|
32
|
+
this.$feedbackIframe = $feedbackIframe;
|
|
33
|
+
$feedbackIframe.id = "workwonders-feedback-iframe";
|
|
34
|
+
$feedbackIframe.classList.add("workwonders-widget-iframe", "workwonders-feedback-iframe");
|
|
35
|
+
const widgetUrl = new URL("feedback", `${this.args.widgetBaseUrl}`);
|
|
36
|
+
widgetUrl.searchParams.append("jwt", this.args.token || "");
|
|
37
|
+
widgetUrl.searchParams.append("lang", this.args.locale || "");
|
|
38
|
+
$feedbackIframe.src = widgetUrl.toString();
|
|
39
|
+
$feedbackContainer.onclick = () => {
|
|
40
|
+
this.closeFeedbackWidget();
|
|
41
|
+
};
|
|
42
|
+
$feedbackContainer.appendChild($feedbackIframe);
|
|
43
|
+
document.body.appendChild($feedbackContainer);
|
|
44
|
+
if (!useCustomTrigger) {
|
|
45
|
+
this.initFeedbackButton();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
initFeedbackButton() {
|
|
49
|
+
if (this.$feedbackButton) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const args = this.args;
|
|
53
|
+
const organizationData = this.args.organizationData;
|
|
54
|
+
if (!args?.locale || !organizationData) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const $feedbackButton = document.createElement("button");
|
|
58
|
+
this.$feedbackButton = $feedbackButton;
|
|
59
|
+
const buttonText = organizationData.feedbackPostConfig.copywriting[args.locale]
|
|
60
|
+
?.widgetButtonText ??
|
|
61
|
+
organizationData.feedbackPostConfig.copywriting[organizationData.defaultLanguage].widgetButtonText ??
|
|
62
|
+
"Feedback";
|
|
63
|
+
$feedbackButton.id = "workwonders-feedback-button";
|
|
64
|
+
$feedbackButton.textContent = buttonText;
|
|
65
|
+
$feedbackButton.classList.add("workwonders-feedback-button");
|
|
66
|
+
$feedbackButton.style.backgroundColor = organizationData.primaryColor;
|
|
67
|
+
$feedbackButton.onclick = () => {
|
|
68
|
+
this.openFeedbackWidget();
|
|
69
|
+
};
|
|
70
|
+
document.body.appendChild($feedbackButton);
|
|
71
|
+
}
|
|
72
|
+
openFeedbackWidget = () => {
|
|
73
|
+
if (!this.args.organizationData.enabledModules.includes("FEEDBACK")) {
|
|
74
|
+
console.warn("Feedback module is not enabled for this organization.");
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.$feedbackIframe?.contentWindow?.postMessage({ type: "set_origin", origin: window.location.href }, "*");
|
|
78
|
+
this.$feedbackContainer?.classList.remove("workwonders-widget-container--hidden");
|
|
79
|
+
};
|
|
80
|
+
closeFeedbackWidget = () => {
|
|
81
|
+
if (this.$feedbackContainer) {
|
|
82
|
+
this.$feedbackContainer.classList.add("workwonders-widget-container--hidden");
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=feedback-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-module.js","sourceRoot":"","sources":["../src/feedback-module.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { WorkWondersSdk } from "./workwonders
|
|
1
|
+
import { WorkWonders } from "./workwonders";
|
|
2
|
+
export { WorkWonders as WorkWondersSdk } from "./workwonders";
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
5
|
-
|
|
5
|
+
WorkWonders: typeof WorkWonders;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,WAAW,EAAE,OAAO,WAAW,CAAC;KACjC;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { WorkWondersSdk } from "./workwonders
|
|
1
|
+
import { WorkWonders } from "./workwonders";
|
|
2
|
+
export { WorkWonders as WorkWondersSdk } from "./workwonders";
|
|
3
3
|
function loadSdk() {
|
|
4
|
-
window.
|
|
4
|
+
window.WorkWonders = WorkWonders;
|
|
5
5
|
console.log("Work Wonders SDK ready to be used");
|
|
6
6
|
}
|
|
7
7
|
loadSdk();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ9D,SAAS,OAAO;IACd,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAED,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ChangelogModule } from "./changelog-module";
|
|
2
|
+
import { FeedbackModule } from "./feedback-module";
|
|
3
|
+
interface InitArgs {
|
|
4
|
+
organization: string;
|
|
5
|
+
token?: string;
|
|
6
|
+
locale?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class WorkWonders {
|
|
9
|
+
private readonly ky;
|
|
10
|
+
private $styleLink;
|
|
11
|
+
private widgetBaseUrl;
|
|
12
|
+
changelog: ChangelogModule;
|
|
13
|
+
feedback: FeedbackModule;
|
|
14
|
+
private readonly messageListener;
|
|
15
|
+
private readonly clickListener;
|
|
16
|
+
init: (args: InitArgs) => Promise<void>;
|
|
17
|
+
notifyUrlChange: () => void;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=workwonders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workwonders.d.ts","sourceRoot":"","sources":["../src/workwonders.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAEhB;IAEH,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,aAAa,CAAM;IAE3B,SAAS,EAAG,eAAe,CAAC;IAC5B,QAAQ,EAAG,cAAc,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAqB9B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAuC5B;IAEF,IAAI,SAAgB,QAAQ,mBAoF1B;IAEF,eAAe,aAEb;CACH"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import ky from "ky";
|
|
2
|
+
import { OrganizationDtoAccessLevel } from "./types/organizationDtoAccessLevel";
|
|
3
|
+
import { ChangelogModule } from "./changelog-module";
|
|
4
|
+
import { FeedbackModule } from "./feedback-module";
|
|
5
|
+
const workwondersUrl = new URL("https://workwonders.app");
|
|
6
|
+
const workwondersApiUrl = new URL("https://api.workwonders.app");
|
|
7
|
+
export class WorkWonders {
|
|
8
|
+
ky = ky.create({
|
|
9
|
+
prefixUrl: workwondersApiUrl,
|
|
10
|
+
});
|
|
11
|
+
$styleLink = null;
|
|
12
|
+
widgetBaseUrl = "";
|
|
13
|
+
changelog;
|
|
14
|
+
feedback;
|
|
15
|
+
messageListener = (message) => {
|
|
16
|
+
if (message.data.type === "changelog_widget_closed") {
|
|
17
|
+
this.changelog.closeChangelogWidget();
|
|
18
|
+
}
|
|
19
|
+
if (message.data.type === "changelog_mini_widget_closed") {
|
|
20
|
+
this.changelog.closeChangelogMiniWidget();
|
|
21
|
+
}
|
|
22
|
+
if (message.data.type === "changelog_mini_widget_item_clicked") {
|
|
23
|
+
this.changelog.openChangelogWidget(message.data.id);
|
|
24
|
+
this.changelog.closeChangelogMiniWidget();
|
|
25
|
+
}
|
|
26
|
+
if (message.data.type === "feedback_widget_closed") {
|
|
27
|
+
this.feedback.closeFeedbackWidget();
|
|
28
|
+
}
|
|
29
|
+
if (message.data.type === "feedback_post_created") {
|
|
30
|
+
// trigger callback events
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
clickListener = (event) => {
|
|
34
|
+
this.changelog.checkShowContextBasedChangelogs({
|
|
35
|
+
clickedElement: event.target,
|
|
36
|
+
});
|
|
37
|
+
const $triggerFeedbackTarget = event.target.closest("[data-open-workwonders-feedback]");
|
|
38
|
+
const $triggerChangelogTarget = event.target.closest("[data-open-workwonders-changelog]");
|
|
39
|
+
const $triggerChangelogMiniTarget = event.target.closest("[data-open-workwonders-changelog-mini]");
|
|
40
|
+
const $changelogMiniContainerTarget = event.target.closest("#workwonders-changelog-mini-container");
|
|
41
|
+
if (!$changelogMiniContainerTarget) {
|
|
42
|
+
this.changelog.closeChangelogMiniWidget();
|
|
43
|
+
}
|
|
44
|
+
if ($triggerFeedbackTarget) {
|
|
45
|
+
this.feedback.openFeedbackWidget();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if ($triggerChangelogTarget) {
|
|
49
|
+
this.changelog.openChangelogWidget();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if ($triggerChangelogMiniTarget) {
|
|
53
|
+
this.changelog.openChangelogMiniWidget();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
init = async (args) => {
|
|
58
|
+
if (!args.organization) {
|
|
59
|
+
console.error("Cannot init Work Wonders SDK. Organization is required.");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (this.changelog) {
|
|
63
|
+
this.changelog.cleanup();
|
|
64
|
+
}
|
|
65
|
+
if (this.feedback) {
|
|
66
|
+
this.feedback.cleanup();
|
|
67
|
+
}
|
|
68
|
+
const organizationData = await this.ky
|
|
69
|
+
.get(`organizations/${args.organization}`)
|
|
70
|
+
.then((res) => res.json());
|
|
71
|
+
if (organizationData.accessLevel === OrganizationDtoAccessLevel.Private &&
|
|
72
|
+
!args.token) {
|
|
73
|
+
console.error("Cannot init Work Wonders SDK. This organization is private, a token is required.");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (!organizationData.features.widgets) {
|
|
77
|
+
console.error("Cannot init Work Wonders SDK. This organization does not have widgets feature enabled.");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const language = organizationData.languages.find((lang) => lang === args.locale) ??
|
|
81
|
+
organizationData.defaultLanguage;
|
|
82
|
+
args.locale = language;
|
|
83
|
+
this.widgetBaseUrl = `https://${args.organization}.${workwondersUrl.host}/widget/`;
|
|
84
|
+
this.changelog = new ChangelogModule({
|
|
85
|
+
ky: this.ky,
|
|
86
|
+
widgetBaseUrl: this.widgetBaseUrl,
|
|
87
|
+
token: args.token,
|
|
88
|
+
locale: args.locale,
|
|
89
|
+
organizationData: organizationData,
|
|
90
|
+
});
|
|
91
|
+
this.feedback = new FeedbackModule({
|
|
92
|
+
widgetBaseUrl: this.widgetBaseUrl,
|
|
93
|
+
token: args.token,
|
|
94
|
+
locale: args.locale,
|
|
95
|
+
organizationData: organizationData,
|
|
96
|
+
});
|
|
97
|
+
window.removeEventListener("message", this.messageListener);
|
|
98
|
+
window.addEventListener("message", this.messageListener);
|
|
99
|
+
document.removeEventListener("click", this.clickListener);
|
|
100
|
+
document.addEventListener("click", this.clickListener);
|
|
101
|
+
if (!this.$styleLink) {
|
|
102
|
+
const linkElement = document.createElement("link");
|
|
103
|
+
this.$styleLink = linkElement;
|
|
104
|
+
this.$styleLink.rel = "stylesheet";
|
|
105
|
+
this.$styleLink.href = "https://sdk.workwonders.app/style.css";
|
|
106
|
+
document.head.appendChild(this.$styleLink);
|
|
107
|
+
await Promise.race([
|
|
108
|
+
new Promise((resolve) => {
|
|
109
|
+
linkElement.onload = resolve;
|
|
110
|
+
}),
|
|
111
|
+
new Promise((resolve) => {
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
resolve(null);
|
|
114
|
+
}, 3000);
|
|
115
|
+
}),
|
|
116
|
+
]);
|
|
117
|
+
}
|
|
118
|
+
console.log("Work Wonders SDK initialized");
|
|
119
|
+
};
|
|
120
|
+
notifyUrlChange = () => {
|
|
121
|
+
this.changelog.notifyUrlChange();
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=workwonders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workwonders.js","sourceRoot":"","sources":["../src/workwonders.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
interface InitArgs {
|
|
2
|
-
organization: string;
|
|
3
|
-
token?: string;
|
|
4
|
-
locale?: string;
|
|
5
|
-
}
|
|
6
|
-
interface InitFeedabackArgs {
|
|
7
|
-
useCustomTrigger?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare class WorkWondersSdk {
|
|
10
|
-
private readonly ky;
|
|
11
|
-
private $feedbackContainer;
|
|
12
|
-
private $changelogContainer;
|
|
13
|
-
private $changelogIframe;
|
|
14
|
-
private $changelogMiniContainer;
|
|
15
|
-
private $feedbackButton;
|
|
16
|
-
private $styleLink;
|
|
17
|
-
private widgetBaseUrl;
|
|
18
|
-
private args;
|
|
19
|
-
private organizationData;
|
|
20
|
-
private contextBasedChangelogs;
|
|
21
|
-
private readonly messageListener;
|
|
22
|
-
private readonly clickListener;
|
|
23
|
-
init: (args: InitArgs) => Promise<void>;
|
|
24
|
-
initFeedbackWidget: ({ useCustomTrigger }?: InitFeedabackArgs) => void;
|
|
25
|
-
notifyUrlChange: () => void;
|
|
26
|
-
private checkShowContextBasedChangelogs;
|
|
27
|
-
private initFeedbackButton;
|
|
28
|
-
initChangelogWidget: () => Promise<void>;
|
|
29
|
-
showChangelogs: (changelogIdsToShow: number[]) => void;
|
|
30
|
-
initChangelogWidgetMini: () => void;
|
|
31
|
-
openFeedbackWidget: () => void;
|
|
32
|
-
openChangelogWidget: (id?: string) => void;
|
|
33
|
-
openChangelogMiniWidget: () => void;
|
|
34
|
-
closeChangelogWidget: () => void;
|
|
35
|
-
closeFeedbackWidget: () => void;
|
|
36
|
-
closeChangelogMiniWidget: () => void;
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
39
|
-
//# sourceMappingURL=workwonders-sdk.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workwonders-sdk.d.ts","sourceRoot":"","sources":["../src/workwonders-sdk.ts"],"names":[],"mappings":"AASA,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA0ED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAEhB;IAEH,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,uBAAuB,CAA+B;IAC9D,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,gBAAgB,CAAgC;IAExD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAqB9B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAuC5B;IAEF,IAAI,SAAgB,QAAQ,mBAqF1B;IAEF,kBAAkB,0BAA0B,iBAAiB,UAiD3D;IAEF,eAAe,aAEb;IAEF,OAAO,CAAC,+BAA+B;IA+BvC,OAAO,CAAC,kBAAkB;IAmC1B,mBAAmB,sBAoGjB;IAEF,cAAc,uBAAwB,MAAM,EAAE,UA8C5C;IAEF,uBAAuB,aAmDrB;IAEF,kBAAkB,aAWhB;IAEF,mBAAmB,QAAS,MAAM,UAkBhC;IAEF,uBAAuB,aAMrB;IAEF,oBAAoB,aAMlB;IAEF,mBAAmB,aAMjB;IAEF,wBAAwB,aAMtB;CACH"}
|
package/dist/workwonders-sdk.js
DELETED
|
@@ -1,397 +0,0 @@
|
|
|
1
|
-
import ky from "ky";
|
|
2
|
-
import { OrganizationDtoAccessLevel } from "./types/organizationDtoAccessLevel";
|
|
3
|
-
const workwondersUrl = new URL("https://workwonders.app");
|
|
4
|
-
const workwondersApiUrl = new URL("https://api.workwonders.app");
|
|
5
|
-
const processContextConditions = (conditions, currentUrl, userMetadata, clickedElement) => {
|
|
6
|
-
const andResult = conditions.AND?.every((condition) => processContextConditions(condition, currentUrl, userMetadata, clickedElement)) ?? true;
|
|
7
|
-
const orResult = conditions.OR?.some((condition) => processContextConditions(condition, currentUrl, userMetadata, clickedElement)) ?? true;
|
|
8
|
-
const notResult = conditions.NOT
|
|
9
|
-
? !processContextConditions(conditions.NOT, currentUrl, userMetadata, clickedElement)
|
|
10
|
-
: true;
|
|
11
|
-
const urlPathContainsResult = conditions.urlPathContains
|
|
12
|
-
? currentUrl.includes(conditions.urlPathContains)
|
|
13
|
-
: true;
|
|
14
|
-
const onClickCssSelectorResult = conditions.onClickCssSelector
|
|
15
|
-
? !!clickedElement?.closest(conditions.onClickCssSelector)
|
|
16
|
-
: true;
|
|
17
|
-
const userMetadataResult = conditions.userMetadataMatches
|
|
18
|
-
? userMetadata?.[conditions.userMetadataMatches.key] ==
|
|
19
|
-
conditions.userMetadataMatches.value
|
|
20
|
-
: true;
|
|
21
|
-
console.log({
|
|
22
|
-
currentUrl,
|
|
23
|
-
andResult,
|
|
24
|
-
orResult,
|
|
25
|
-
notResult,
|
|
26
|
-
urlPathContainsResult,
|
|
27
|
-
onClickCssSelectorResult,
|
|
28
|
-
conditions,
|
|
29
|
-
clickedElement,
|
|
30
|
-
cssSelector: conditions.onClickCssSelector,
|
|
31
|
-
userMetadata,
|
|
32
|
-
});
|
|
33
|
-
return (andResult &&
|
|
34
|
-
orResult &&
|
|
35
|
-
notResult &&
|
|
36
|
-
urlPathContainsResult &&
|
|
37
|
-
onClickCssSelectorResult &&
|
|
38
|
-
userMetadataResult);
|
|
39
|
-
};
|
|
40
|
-
export class WorkWondersSdk {
|
|
41
|
-
ky = ky.create({
|
|
42
|
-
prefixUrl: workwondersApiUrl,
|
|
43
|
-
});
|
|
44
|
-
$feedbackContainer = null;
|
|
45
|
-
$changelogContainer = null;
|
|
46
|
-
$changelogIframe = null;
|
|
47
|
-
$changelogMiniContainer = null;
|
|
48
|
-
$feedbackButton = null;
|
|
49
|
-
$styleLink = null;
|
|
50
|
-
widgetBaseUrl = "";
|
|
51
|
-
args = null;
|
|
52
|
-
organizationData = null;
|
|
53
|
-
contextBasedChangelogs = [];
|
|
54
|
-
messageListener = (message) => {
|
|
55
|
-
if (message.data.type === "changelog_widget_closed") {
|
|
56
|
-
this.closeChangelogWidget();
|
|
57
|
-
}
|
|
58
|
-
if (message.data.type === "changelog_mini_widget_closed") {
|
|
59
|
-
this.closeChangelogMiniWidget();
|
|
60
|
-
}
|
|
61
|
-
if (message.data.type === "changelog_mini_widget_item_clicked") {
|
|
62
|
-
this.openChangelogWidget(message.data.id);
|
|
63
|
-
this.closeChangelogMiniWidget();
|
|
64
|
-
}
|
|
65
|
-
if (message.data.type === "feedback_widget_closed") {
|
|
66
|
-
this.closeFeedbackWidget();
|
|
67
|
-
}
|
|
68
|
-
if (message.data.type === "feedback_post_created") {
|
|
69
|
-
// trigger callback events
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
clickListener = (event) => {
|
|
73
|
-
this.checkShowContextBasedChangelogs({
|
|
74
|
-
clickedElement: event.target,
|
|
75
|
-
});
|
|
76
|
-
const $triggerFeedbackTarget = event.target.closest("[data-open-workwonders-feedback]");
|
|
77
|
-
const $triggerChangelogTarget = event.target.closest("[data-open-workwonders-changelog]");
|
|
78
|
-
const $triggerChangelogMiniTarget = event.target.closest("[data-open-workwonders-changelog-mini]");
|
|
79
|
-
const $changelogMiniContainerTarget = event.target.closest("#workwonders-changelog-mini-container");
|
|
80
|
-
if (!$changelogMiniContainerTarget) {
|
|
81
|
-
this.closeChangelogMiniWidget();
|
|
82
|
-
}
|
|
83
|
-
if ($triggerFeedbackTarget) {
|
|
84
|
-
this.openFeedbackWidget();
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if ($triggerChangelogTarget) {
|
|
88
|
-
this.openChangelogWidget();
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if ($triggerChangelogMiniTarget) {
|
|
92
|
-
this.openChangelogMiniWidget();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
init = async (args) => {
|
|
97
|
-
this.args = args;
|
|
98
|
-
if (this.$changelogContainer) {
|
|
99
|
-
this.$changelogContainer.remove();
|
|
100
|
-
this.$changelogContainer = null;
|
|
101
|
-
}
|
|
102
|
-
if (this.$feedbackContainer) {
|
|
103
|
-
this.$feedbackContainer.remove();
|
|
104
|
-
this.$feedbackContainer = null;
|
|
105
|
-
}
|
|
106
|
-
if (this.$changelogMiniContainer) {
|
|
107
|
-
this.$changelogMiniContainer.remove();
|
|
108
|
-
this.$changelogMiniContainer = null;
|
|
109
|
-
}
|
|
110
|
-
if (this.$feedbackButton) {
|
|
111
|
-
this.$feedbackButton.remove();
|
|
112
|
-
this.$feedbackButton = null;
|
|
113
|
-
}
|
|
114
|
-
if (!args.organization) {
|
|
115
|
-
console.error("Cannot init Work Wonders SDK. Organization is required.");
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
const organizationData = await this.ky
|
|
119
|
-
.get(`organizations/${args.organization}`)
|
|
120
|
-
.then((res) => res.json());
|
|
121
|
-
if (organizationData.accessLevel === OrganizationDtoAccessLevel.Private &&
|
|
122
|
-
!args.token) {
|
|
123
|
-
console.error("Cannot init Work Wonders SDK. This organization is private, a token is required.");
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
if (!organizationData.features.widgets) {
|
|
127
|
-
console.error("Cannot init Work Wonders SDK. This organization does not have widgets feature enabled.");
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
this.organizationData = organizationData;
|
|
131
|
-
const language = organizationData.languages.find((lang) => lang === args.locale) ??
|
|
132
|
-
organizationData.defaultLanguage;
|
|
133
|
-
args.locale = language;
|
|
134
|
-
this.widgetBaseUrl = `https://${args.organization}.${workwondersUrl.host}/widget/`;
|
|
135
|
-
window.removeEventListener("message", this.messageListener);
|
|
136
|
-
window.addEventListener("message", this.messageListener);
|
|
137
|
-
document.removeEventListener("click", this.clickListener);
|
|
138
|
-
document.addEventListener("click", this.clickListener);
|
|
139
|
-
if (!this.$styleLink) {
|
|
140
|
-
const linkElement = document.createElement("link");
|
|
141
|
-
this.$styleLink = linkElement;
|
|
142
|
-
this.$styleLink.rel = "stylesheet";
|
|
143
|
-
this.$styleLink.href = "https://sdk.workwonders.app/style.css";
|
|
144
|
-
document.head.appendChild(this.$styleLink);
|
|
145
|
-
await Promise.race([
|
|
146
|
-
new Promise((resolve) => {
|
|
147
|
-
linkElement.onload = resolve;
|
|
148
|
-
}),
|
|
149
|
-
new Promise((resolve) => {
|
|
150
|
-
setTimeout(() => {
|
|
151
|
-
resolve(null);
|
|
152
|
-
}, 3000);
|
|
153
|
-
}),
|
|
154
|
-
]);
|
|
155
|
-
}
|
|
156
|
-
console.log("Work Wonders SDK initialized");
|
|
157
|
-
};
|
|
158
|
-
initFeedbackWidget = ({ useCustomTrigger } = {}) => {
|
|
159
|
-
if (this.$feedbackContainer) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
const args = this.args;
|
|
163
|
-
const organizationData = this.organizationData;
|
|
164
|
-
if (!args) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if (!organizationData) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (!organizationData.enabledModules.includes("FEEDBACK")) {
|
|
171
|
-
console.warn("Feedback module is not enabled for this organization.");
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const $feedbackContainer = document.createElement("div");
|
|
175
|
-
this.$feedbackContainer = $feedbackContainer;
|
|
176
|
-
$feedbackContainer.id = "workwonders-feedback-container";
|
|
177
|
-
$feedbackContainer.classList.add("workwonders-widget-container");
|
|
178
|
-
$feedbackContainer.classList.add("workwonders-widget-container--hidden");
|
|
179
|
-
const $feedbackIframe = document.createElement("iframe");
|
|
180
|
-
$feedbackIframe.id = "workwonders-feedback-iframe";
|
|
181
|
-
$feedbackIframe.classList.add("workwonders-widget-iframe");
|
|
182
|
-
$feedbackIframe.classList.add("workwonders-feedback-iframe");
|
|
183
|
-
const widgetUrl = new URL("feedback", `${this.widgetBaseUrl}`);
|
|
184
|
-
widgetUrl.searchParams.append("jwt", args.token || "");
|
|
185
|
-
widgetUrl.searchParams.append("lang", args.locale || "");
|
|
186
|
-
$feedbackIframe.src = widgetUrl.toString();
|
|
187
|
-
$feedbackContainer.onclick = () => {
|
|
188
|
-
this.closeFeedbackWidget();
|
|
189
|
-
};
|
|
190
|
-
$feedbackContainer.appendChild($feedbackIframe);
|
|
191
|
-
document.body.appendChild($feedbackContainer);
|
|
192
|
-
if (!useCustomTrigger) {
|
|
193
|
-
this.initFeedbackButton();
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
notifyUrlChange = () => {
|
|
197
|
-
this.checkShowContextBasedChangelogs({});
|
|
198
|
-
};
|
|
199
|
-
checkShowContextBasedChangelogs({ clickedElement, }) {
|
|
200
|
-
const args = this.args;
|
|
201
|
-
const organizationData = this.organizationData;
|
|
202
|
-
if (!args?.locale || !organizationData) {
|
|
203
|
-
console.log("No args or organization data");
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const contextBasedChangelogsMatching = this.contextBasedChangelogs.filter((changelog) => {
|
|
207
|
-
return processContextConditions(changelog.contextConditions, window.location.href, organizationData.userMetadata, clickedElement);
|
|
208
|
-
});
|
|
209
|
-
if (contextBasedChangelogsMatching.length > 0) {
|
|
210
|
-
this.showChangelogs(contextBasedChangelogsMatching.map((changelog) => changelog.id));
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
initFeedbackButton() {
|
|
214
|
-
if (this.$feedbackButton) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
const args = this.args;
|
|
218
|
-
const organizationData = this.organizationData;
|
|
219
|
-
if (!args?.locale || !organizationData) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const $feedbackButton = document.createElement("button");
|
|
223
|
-
this.$feedbackButton = $feedbackButton;
|
|
224
|
-
const buttonText = organizationData.feedbackPostConfig.copywriting[args.locale]
|
|
225
|
-
?.widgetButtonText ??
|
|
226
|
-
organizationData.feedbackPostConfig.copywriting[organizationData.defaultLanguage].widgetButtonText ??
|
|
227
|
-
"Feedback";
|
|
228
|
-
$feedbackButton.id = "workwonders-feedback-button";
|
|
229
|
-
$feedbackButton.textContent = buttonText;
|
|
230
|
-
$feedbackButton.classList.add("workwonders-feedback-button");
|
|
231
|
-
$feedbackButton.style.backgroundColor = organizationData.primaryColor;
|
|
232
|
-
$feedbackButton.onclick = () => {
|
|
233
|
-
this.openFeedbackWidget();
|
|
234
|
-
};
|
|
235
|
-
document.body.appendChild($feedbackButton);
|
|
236
|
-
}
|
|
237
|
-
initChangelogWidget = async () => {
|
|
238
|
-
if (this.$changelogContainer) {
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
const args = this.args;
|
|
242
|
-
const organizationData = this.organizationData;
|
|
243
|
-
if (!args?.locale || !organizationData) {
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
if (!organizationData.enabledModules.includes("CHANGELOG")) {
|
|
247
|
-
console.warn("Changelog module is not enabled for this organization.");
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
const $changelogContainer = document.createElement("div");
|
|
251
|
-
this.$changelogContainer = $changelogContainer;
|
|
252
|
-
const existingsChangelogs = await this.ky
|
|
253
|
-
.get(`organizations/${args.organization}/changelogs/summary?language=${args.locale}`)
|
|
254
|
-
.then((res) => res.json())
|
|
255
|
-
.then((changelogs) => changelogs.sort((a, b) => new Date(b.publishedAt ?? 0).getTime() -
|
|
256
|
-
new Date(a.publishedAt ?? 0).getTime()));
|
|
257
|
-
const regularChangelogs = existingsChangelogs.filter((changelog) => changelog.showMode === "Regular");
|
|
258
|
-
this.contextBasedChangelogs = existingsChangelogs.filter((changelog) => changelog.showMode === "ContextBased");
|
|
259
|
-
$changelogContainer.id = "workwonders-changelog-container";
|
|
260
|
-
$changelogContainer.classList.add("workwonders-widget-container", "workwonders-widget-container--hidden");
|
|
261
|
-
const $changelogIframe = document.createElement("iframe");
|
|
262
|
-
this.$changelogIframe = $changelogIframe;
|
|
263
|
-
$changelogIframe.id = "workwonders-changelog-iframe";
|
|
264
|
-
$changelogIframe.classList.add("workwonders-widget-iframe", "workwonders-changelog-iframe");
|
|
265
|
-
const seenChangelogs = localStorage.getItem(`workwonders-seen-changelogs-${args.organization}`);
|
|
266
|
-
const seenChangelogsArray = seenChangelogs
|
|
267
|
-
? JSON.parse(seenChangelogs)
|
|
268
|
-
: null;
|
|
269
|
-
const unseenChangelogs = regularChangelogs.filter((changelog) => !seenChangelogsArray?.includes(changelog.id));
|
|
270
|
-
const shouldShowChangelogOnStart = unseenChangelogs.length > 0 &&
|
|
271
|
-
(seenChangelogsArray ||
|
|
272
|
-
organizationData.changelogConfig.showLatestChangelogOnFirstVisit);
|
|
273
|
-
if (shouldShowChangelogOnStart) {
|
|
274
|
-
const changelogIdsToShow = seenChangelogsArray === null
|
|
275
|
-
? [unseenChangelogs[0].id]
|
|
276
|
-
: unseenChangelogs.map((c) => c.id);
|
|
277
|
-
this.showChangelogs(changelogIdsToShow);
|
|
278
|
-
}
|
|
279
|
-
const newSeenChangelogs = [
|
|
280
|
-
...(seenChangelogsArray ?? []),
|
|
281
|
-
...unseenChangelogs.map((c) => c.id),
|
|
282
|
-
];
|
|
283
|
-
localStorage.setItem(`workwonders-seen-changelogs-${this.args?.organization}`, JSON.stringify(newSeenChangelogs));
|
|
284
|
-
this.notifyUrlChange();
|
|
285
|
-
$changelogContainer.onclick = () => {
|
|
286
|
-
this.closeChangelogWidget();
|
|
287
|
-
};
|
|
288
|
-
$changelogContainer.appendChild($changelogIframe);
|
|
289
|
-
document.body.appendChild($changelogContainer);
|
|
290
|
-
};
|
|
291
|
-
showChangelogs = (changelogIdsToShow) => {
|
|
292
|
-
const $changelogIframe = this.$changelogIframe;
|
|
293
|
-
const $changelogContainer = this.$changelogContainer;
|
|
294
|
-
const args = this.args;
|
|
295
|
-
if (!$changelogIframe || !$changelogContainer || !args) {
|
|
296
|
-
console.log("No changelog iframe or container or args for showChangelogs");
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
if (changelogIdsToShow.length === 0) {
|
|
300
|
-
console.log("No changelogs to show");
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
const widgetUrl = new URL("changelog", `${this.widgetBaseUrl}`);
|
|
304
|
-
widgetUrl.searchParams.append("jwt", args.token || "");
|
|
305
|
-
widgetUrl.searchParams.append("lang", args.locale || "");
|
|
306
|
-
widgetUrl.searchParams.append("changelogIds", changelogIdsToShow.join(","));
|
|
307
|
-
$changelogIframe.onload = () => {
|
|
308
|
-
const currentSeenChangelogs = localStorage.getItem(`workwonders-seen-changelogs-${this.args?.organization}`);
|
|
309
|
-
const currentSeenChangelogsArray = currentSeenChangelogs
|
|
310
|
-
? JSON.parse(currentSeenChangelogs)
|
|
311
|
-
: [];
|
|
312
|
-
const newSeenChangelogs = [
|
|
313
|
-
...currentSeenChangelogsArray,
|
|
314
|
-
...changelogIdsToShow,
|
|
315
|
-
];
|
|
316
|
-
localStorage.setItem(`workwonders-seen-changelogs-${this.args?.organization}`, JSON.stringify(newSeenChangelogs));
|
|
317
|
-
$changelogContainer.classList.remove("workwonders-widget-container--hidden");
|
|
318
|
-
};
|
|
319
|
-
$changelogIframe.src = widgetUrl.toString();
|
|
320
|
-
};
|
|
321
|
-
initChangelogWidgetMini = () => {
|
|
322
|
-
if (this.$changelogMiniContainer) {
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
const args = this.args;
|
|
326
|
-
const organizationData = this.organizationData;
|
|
327
|
-
if (!args) {
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
if (!organizationData) {
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
if (!organizationData.enabledModules.includes("CHANGELOG")) {
|
|
334
|
-
console.warn("Changelog module is not enabled for this organization.");
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
const $changelogMiniContainer = document.createElement("div");
|
|
338
|
-
this.$changelogMiniContainer = $changelogMiniContainer;
|
|
339
|
-
$changelogMiniContainer.id = "workwonders-changelog-mini-container";
|
|
340
|
-
$changelogMiniContainer.classList.add("workwonders-widget-container");
|
|
341
|
-
$changelogMiniContainer.classList.add("workwonders-changelog-mini-container");
|
|
342
|
-
$changelogMiniContainer.classList.add("workwonders-widget-container--hidden");
|
|
343
|
-
const $changelogMiniIframe = document.createElement("iframe");
|
|
344
|
-
$changelogMiniIframe.id = "workwonders-changelog-mini-iframe";
|
|
345
|
-
$changelogMiniIframe.classList.add("workwonders-widget-iframe");
|
|
346
|
-
$changelogMiniIframe.classList.add("workwonders-changelog-mini-iframe");
|
|
347
|
-
const widgetUrl = new URL("changelog/mini", `${this.widgetBaseUrl}`);
|
|
348
|
-
widgetUrl.searchParams.append("jwt", args.token || "");
|
|
349
|
-
widgetUrl.searchParams.append("lang", args.locale || "");
|
|
350
|
-
$changelogMiniIframe.src = widgetUrl.toString();
|
|
351
|
-
$changelogMiniContainer.appendChild($changelogMiniIframe);
|
|
352
|
-
$changelogMiniContainer.onclick = () => {
|
|
353
|
-
this.closeChangelogMiniWidget();
|
|
354
|
-
};
|
|
355
|
-
document.body.appendChild($changelogMiniContainer);
|
|
356
|
-
};
|
|
357
|
-
openFeedbackWidget = () => {
|
|
358
|
-
if (this.$feedbackContainer) {
|
|
359
|
-
window.parent.postMessage({ type: "set_origin", origin: window.location.href }, "*");
|
|
360
|
-
this.$feedbackContainer.classList.remove("workwonders-widget-container--hidden");
|
|
361
|
-
}
|
|
362
|
-
};
|
|
363
|
-
openChangelogWidget = (id) => {
|
|
364
|
-
if (this.$changelogContainer) {
|
|
365
|
-
if (id) {
|
|
366
|
-
const $iframe = document.getElementById("workwonders-changelog-iframe");
|
|
367
|
-
const widgetUrl = new URL("changelog", `${this.widgetBaseUrl}`);
|
|
368
|
-
widgetUrl.searchParams.append("jwt", this.args?.token || "");
|
|
369
|
-
widgetUrl.searchParams.append("lang", this.args?.locale || "");
|
|
370
|
-
widgetUrl.searchParams.append("changelogIds", id);
|
|
371
|
-
$iframe.src = widgetUrl.toString();
|
|
372
|
-
}
|
|
373
|
-
this.$changelogContainer.classList.remove("workwonders-widget-container--hidden");
|
|
374
|
-
}
|
|
375
|
-
};
|
|
376
|
-
openChangelogMiniWidget = () => {
|
|
377
|
-
if (this.$changelogMiniContainer) {
|
|
378
|
-
this.$changelogMiniContainer.classList.remove("workwonders-widget-container--hidden");
|
|
379
|
-
}
|
|
380
|
-
};
|
|
381
|
-
closeChangelogWidget = () => {
|
|
382
|
-
if (this.$changelogContainer) {
|
|
383
|
-
this.$changelogContainer.classList.add("workwonders-widget-container--hidden");
|
|
384
|
-
}
|
|
385
|
-
};
|
|
386
|
-
closeFeedbackWidget = () => {
|
|
387
|
-
if (this.$feedbackContainer) {
|
|
388
|
-
this.$feedbackContainer.classList.add("workwonders-widget-container--hidden");
|
|
389
|
-
}
|
|
390
|
-
};
|
|
391
|
-
closeChangelogMiniWidget = () => {
|
|
392
|
-
if (this.$changelogMiniContainer) {
|
|
393
|
-
this.$changelogMiniContainer.classList.add("workwonders-widget-container--hidden");
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
//# sourceMappingURL=workwonders-sdk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workwonders-sdk.js","sourceRoot":"","sources":["../src/workwonders-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAahF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAEjE,MAAM,wBAAwB,GAAG,CAC/B,UAAqC,EACrC,UAAkB,EAClB,YAAmD,EACnD,cAA4B,EACnB,EAAE;IACX,MAAM,SAAS,GACb,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAClC,wBAAwB,CACtB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,CACf,CACF,IAAI,IAAI,CAAC;IACZ,MAAM,QAAQ,GACZ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAChC,wBAAwB,CACtB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,CACf,CACF,IAAI,IAAI,CAAC;IACZ,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG;QAC9B,CAAC,CAAC,CAAC,wBAAwB,CACvB,UAAU,CAAC,GAAG,EACd,UAAU,EACV,YAAY,EACZ,cAAc,CACf;QACH,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,qBAAqB,GAAG,UAAU,CAAC,eAAe;QACtD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,wBAAwB,GAAG,UAAU,CAAC,kBAAkB;QAC5D,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,kBAAkB,GAAG,UAAU,CAAC,mBAAmB;QACvD,CAAC,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAClD,UAAU,CAAC,mBAAmB,CAAC,KAAK;QACtC,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CAAC,GAAG,CAAC;QACV,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,qBAAqB;QACrB,wBAAwB;QACxB,UAAU;QACV,cAAc;QACd,WAAW,EAAE,UAAU,CAAC,kBAAkB;QAC1C,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,CACL,SAAS;QACT,QAAQ;QACR,SAAS;QACT,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,cAAc;IACR,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;QAC9B,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEK,kBAAkB,GAA0B,IAAI,CAAC;IACjD,mBAAmB,GAA0B,IAAI,CAAC;IAClD,gBAAgB,GAA6B,IAAI,CAAC;IAClD,uBAAuB,GAA0B,IAAI,CAAC;IACtD,eAAe,GAA6B,IAAI,CAAC;IACjD,UAAU,GAA2B,IAAI,CAAC;IAE1C,aAAa,GAAG,EAAE,CAAC;IACnB,IAAI,GAAoB,IAAI,CAAC;IAC7B,gBAAgB,GAA2B,IAAI,CAAC;IAEhD,sBAAsB,GAA0B,EAAE,CAAC;IAE1C,eAAe,GAAG,CAAC,OAAqB,EAAE,EAAE;QAC3D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACpD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,8BAA8B,EAAE,CAAC;YACzD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,oCAAoC,EAAE,CAAC;YAC/D,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACnD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAClD,0BAA0B;QAC5B,CAAC;IACH,CAAC,CAAC;IAEe,aAAa,GAAG,CAAC,KAAiB,EAAE,EAAE;QACrD,IAAI,CAAC,+BAA+B,CAAC;YACnC,cAAc,EAAE,KAAK,CAAC,MAAqB;SAC5C,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAClE,kCAAkC,CACnC,CAAC;QAEF,MAAM,uBAAuB,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CACnE,mCAAmC,CACpC,CAAC;QAEF,MAAM,2BAA2B,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CACvE,wCAAwC,CACzC,CAAC;QAEF,MAAM,6BAA6B,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CACzE,uCAAuC,CACxC,CAAC;QAEF,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,sBAAsB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,uBAAuB,EAAE,CAAC;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,2BAA2B,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,EAAE;aACnC,GAAG,CAAkB,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;aAC1D,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7B,IACE,gBAAgB,CAAC,WAAW,KAAK,0BAA0B,CAAC,OAAO;YACnE,CAAC,IAAI,CAAC,KAAK,EACX,CAAC;YACD,OAAO,CAAC,KAAK,CACX,kFAAkF,CACnF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,MAAM,QAAQ,GACZ,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;YAC/D,gBAAgB,CAAC,eAAe,CAAC;QAEnC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAEvB,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC,IAAI,UAAU,CAAC;QAEnF,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,uCAAuC,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE3C,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC/B,CAAC,CAAC;gBACF,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,UAAU,CAAC,GAAG,EAAE;wBACd,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,kBAAkB,GAAG,CAAC,EAAE,gBAAgB,KAAwB,EAAE,EAAE,EAAE;QACpE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAE7C,kBAAkB,CAAC,EAAE,GAAG,gCAAgC,CAAC;QACzD,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACjE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAEzE,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,eAAe,CAAC,EAAE,GAAG,6BAA6B,CAAC;QACnD,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3D,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/D,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzD,eAAe,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE3C,kBAAkB,CAAC,OAAO,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC,CAAC;QAEF,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAEhD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAE9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEM,+BAA+B,CAAC,EACtC,cAAc,GAGf;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,8BAA8B,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACvE,CAAC,SAAS,EAAE,EAAE;YACZ,OAAO,wBAAwB,CAC7B,SAAS,CAAC,iBAAiB,EAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,EACpB,gBAAgB,CAAC,YAAY,EAC7B,cAAc,CACf,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,8BAA8B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CACjB,8BAA8B,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,MAAM,UAAU,GACd,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1D,EAAE,gBAAgB;YACpB,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAC7C,gBAAgB,CAAC,eAAe,CACjC,CAAC,gBAAgB;YAClB,UAAU,CAAC;QAEb,eAAe,CAAC,EAAE,GAAG,6BAA6B,CAAC;QACnD,eAAe,CAAC,WAAW,GAAG,UAAU,CAAC;QACzC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC7D,eAAe,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAEtE,eAAe,CAAC,OAAO,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAE/C,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,EAAE;aACtC,GAAG,CACF,iBAAiB,IAAI,CAAC,YAAY,gCAAgC,IAAI,CAAC,MAAM,EAAE,CAChF;aACA,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACnB,UAAU,CAAC,IAAI,CACb,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE,CACjD,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YACtC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CACzC,CACF,CAAC;QAEJ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAClD,CAAC,SAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CACrE,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CACtD,CAAC,SAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,cAAc,CAC1E,CAAC;QAEF,mBAAmB,CAAC,EAAE,GAAG,iCAAiC,CAAC;QAC3D,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAC/B,8BAA8B,EAC9B,sCAAsC,CACvC,CAAC;QAEF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,gBAAgB,CAAC,EAAE,GAAG,8BAA8B,CAAC;QACrD,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAC5B,2BAA2B,EAC3B,8BAA8B,CAC/B,CAAC;QAEF,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CACzC,+BAA+B,IAAI,CAAC,YAAY,EAAE,CACnD,CAAC;QACF,MAAM,mBAAmB,GAAG,cAAc;YACxC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAc;YAC1C,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAC/C,CAAC,SAAyB,EAAE,EAAE,CAC5B,CAAC,mBAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEF,MAAM,0BAA0B,GAC9B,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC3B,CAAC,mBAAmB;gBAClB,gBAAgB,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC;QAEtE,IAAI,0BAA0B,EAAE,CAAC;YAC/B,MAAM,kBAAkB,GACtB,mBAAmB,KAAK,IAAI;gBAC1B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;YAC9B,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;QAEF,YAAY,CAAC,OAAO,CAClB,+BAA+B,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EACxD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAClC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,mBAAmB,CAAC,OAAO,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC;QAEF,mBAAmB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,cAAc,GAAG,CAAC,kBAA4B,EAAE,EAAE;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,gBAAgB,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CACT,6DAA6D,CAC9D,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5E,gBAAgB,CAAC,MAAM,GAAG,GAAG,EAAE;YAC7B,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAChD,+BAA+B,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CACzD,CAAC;YACF,MAAM,0BAA0B,GAAG,qBAAqB;gBACtD,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAc;gBACjD,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,iBAAiB,GAAG;gBACxB,GAAG,0BAA0B;gBAC7B,GAAG,kBAAkB;aACtB,CAAC;YAEF,YAAY,CAAC,OAAO,CAClB,+BAA+B,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EACxD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAClC,CAAC;YAEF,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAClC,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC;QAEF,gBAAgB,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,uBAAuB,GAAG,GAAG,EAAE;QAC7B,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAEvD,uBAAuB,CAAC,EAAE,GAAG,sCAAsC,CAAC;QACpE,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACtE,uBAAuB,CAAC,SAAS,CAAC,GAAG,CACnC,sCAAsC,CACvC,CAAC;QACF,uBAAuB,CAAC,SAAS,CAAC,GAAG,CACnC,sCAAsC,CACvC,CAAC;QAEF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,oBAAoB,CAAC,EAAE,GAAG,mCAAmC,CAAC;QAC9D,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAChE,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAExE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEzD,oBAAoB,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAEhD,uBAAuB,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAE1D,uBAAuB,CAAC,OAAO,GAAG,GAAG,EAAE;YACrC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,kBAAkB,GAAG,GAAG,EAAE;QACxB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EACpD,GAAG,CACJ,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CACtC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,mBAAmB,GAAG,CAAC,EAAW,EAAE,EAAE;QACpC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CACrC,8BAA8B,CACV,CAAC;gBAEvB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC7D,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC/D,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CACvC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,uBAAuB,GAAG,GAAG,EAAE;QAC7B,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAC3C,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,oBAAoB,GAAG,GAAG,EAAE;QAC1B,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CACpC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,mBAAmB,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CACnC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,wBAAwB,GAAG,GAAG,EAAE;QAC9B,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG,CACxC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;CACH"}
|