sfdx-browserforce-plugin 5.1.2 → 5.2.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -16
- package/lib/browserforce-command.js +2 -2
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.d.ts +5 -5
- package/lib/browserforce.js +56 -54
- package/lib/browserforce.js.map +1 -1
- package/lib/pages/login.d.ts +1 -2
- package/lib/pages/login.js +6 -20
- package/lib/pages/login.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +10 -10
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.js +22 -20
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +5 -5
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +6 -7
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/index.e2e-spec.js +6 -13
- package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +66 -35
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/density-settings/index.d.ts +1 -8
- package/lib/plugins/density-settings/index.js +42 -29
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +8 -10
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.d.ts +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +9 -11
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.e2e-spec.js +5 -0
- package/lib/plugins/history-tracking/index.e2e-spec.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +32 -20
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +18 -11
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.d.ts +2 -3
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +8 -0
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +48 -60
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.d.ts +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +17 -12
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js +4 -0
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +9 -14
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.js +4 -4
- package/lib/plugins/opportunity-splits/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.js +2 -4
- package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.js +6 -11
- package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.js +2 -4
- package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js +16 -5
- package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/index.js +2 -2
- package/lib/plugins/permission-sets/index.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +35 -24
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +2 -2
- package/lib/plugins/picklists/field-dependencies/pages.js +19 -18
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/index.e2e-spec.js +38 -32
- package/lib/plugins/picklists/index.e2e-spec.js.map +1 -1
- package/lib/plugins/picklists/pages.d.ts +5 -4
- package/lib/plugins/picklists/pages.js +59 -66
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/record-types/index.d.ts +1 -0
- package/lib/plugins/record-types/index.e2e-spec.js +4 -0
- package/lib/plugins/record-types/index.e2e-spec.js.map +1 -1
- package/lib/plugins/record-types/index.js +7 -5
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/record-types/pages.d.ts +2 -3
- package/lib/plugins/record-types/pages.js +17 -28
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +1 -0
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +33 -44
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +16 -13
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/formConfig.js +12 -12
- package/lib/plugins/salesforce-cpq-config/formConfig.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +77 -68
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +1 -0
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.js +8 -16
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js +3 -11
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +14 -13
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js +23 -6
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +26 -28
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +66 -38
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +11 -0
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/service-channels/index.js +2 -2
- package/lib/plugins/service-channels/index.js.map +1 -1
- package/lib/plugins/slack/index.js +12 -18
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/index.e2e-spec.js +4 -2
- package/lib/plugins/user-access-policies/index.e2e-spec.js.map +1 -1
- package/lib/plugins/user-access-policies/index.js +4 -2
- package/lib/plugins/user-access-policies/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.d.ts +2 -2
- package/lib/plugins/user-access-policies/page.js +34 -54
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/oclif.manifest.json +1 -11
- package/package.json +2 -2
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
1
2
|
export class PicklistPage {
|
|
2
3
|
page;
|
|
3
4
|
constructor(page) {
|
|
4
5
|
this.page = page;
|
|
5
6
|
}
|
|
6
7
|
async getPicklistValues() {
|
|
7
|
-
// wait for New button
|
|
8
|
-
await this.page
|
|
8
|
+
// wait for New button for picklist values specifically
|
|
9
|
+
await this.page
|
|
10
|
+
.locator('input[name="new"][onclick*="picklist_masteredit"]')
|
|
11
|
+
.waitFor();
|
|
9
12
|
const resolvePicklistValueNames = async (xpath) => {
|
|
10
|
-
const
|
|
11
|
-
const fullNames = await Promise.all(
|
|
13
|
+
const elements = await this.page.locator(`xpath=${xpath}`).all();
|
|
14
|
+
const fullNames = await Promise.all(elements.map((el) => el.innerText()));
|
|
12
15
|
return fullNames;
|
|
13
16
|
};
|
|
14
17
|
const active = await resolvePicklistValueNames(`//tr[td[1]//a[contains(@href, "/setup/ui/picklist_masteredit")]]//td[2]`);
|
|
@@ -24,19 +27,18 @@ export class PicklistPage {
|
|
|
24
27
|
}
|
|
25
28
|
async clickNewActionButton() {
|
|
26
29
|
const NEW_ACTION_BUTTON_XPATH = '//tr[td[2]]//input[contains(@onclick, "/setup/ui/picklist_masteredit")][@value=" New "]';
|
|
27
|
-
await this.page.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
this.page
|
|
31
|
-
this.page.evaluate((e) => e.click(), newActionButton),
|
|
30
|
+
await this.page.locator(`xpath=${NEW_ACTION_BUTTON_XPATH}`).first().click();
|
|
31
|
+
await Promise.race([
|
|
32
|
+
this.page.waitForURL((url) => url.pathname === '/setup/ui/picklist_masteredit.jsp'),
|
|
33
|
+
waitForPageErrors(this.page),
|
|
32
34
|
]);
|
|
33
35
|
}
|
|
34
36
|
async clickReplaceActionButton() {
|
|
35
|
-
const REPLACE_ACTION_BUTTON = 'input[name="replace"]';
|
|
36
|
-
await this.page.
|
|
37
|
-
await Promise.
|
|
38
|
-
this.page.
|
|
39
|
-
this.page
|
|
37
|
+
const REPLACE_ACTION_BUTTON = 'input[name="replace"][type="button"]';
|
|
38
|
+
await this.page.locator(REPLACE_ACTION_BUTTON).click();
|
|
39
|
+
await Promise.race([
|
|
40
|
+
this.page.waitForURL((url) => url.pathname === '/setup/ui/replacePickList.jsp'),
|
|
41
|
+
waitForPageErrors(this.page),
|
|
40
42
|
]);
|
|
41
43
|
return new PicklistReplacePage(this.page);
|
|
42
44
|
}
|
|
@@ -44,16 +46,14 @@ export class PicklistPage {
|
|
|
44
46
|
// deactivate: deleteType=1
|
|
45
47
|
// delete: deleteType=0 or no deleteType=1
|
|
46
48
|
const xpath = `//tr[td[2][text() = "${picklistValueApiName}"]]//td[1]//a[contains(@href, "/setup/ui/picklist_masterdelete.jsp") and not(contains(@href, "deleteType=1"))]`;
|
|
47
|
-
await this.page.waitForSelector(`::-p-xpath(${xpath})`);
|
|
48
|
-
const deleteLink = (await this.page.$$(`xpath/.${xpath}`))[0];
|
|
49
49
|
this.page.on('dialog', async (dialog) => {
|
|
50
50
|
await dialog.accept();
|
|
51
51
|
});
|
|
52
|
-
await
|
|
53
|
-
|
|
54
|
-
this.page.
|
|
52
|
+
await this.page.locator(`xpath=${xpath}`).first().click();
|
|
53
|
+
await Promise.race([
|
|
54
|
+
this.page.waitForURL((url) => url.pathname === '/setup/ui/picklist_masterdelete.jsp'),
|
|
55
|
+
waitForPageErrors(this.page),
|
|
55
56
|
]);
|
|
56
|
-
await throwPageErrors(this.page);
|
|
57
57
|
return new PicklistReplaceAndDeletePage(this.page);
|
|
58
58
|
}
|
|
59
59
|
async clickActivateDeactivateActionForValue(picklistValueApiName, active) {
|
|
@@ -66,16 +66,14 @@ export class PicklistPage {
|
|
|
66
66
|
// delete: deleteType=0 or no deleteType=1
|
|
67
67
|
xpath = `//tr[td[2][text() = "${picklistValueApiName}"]]//td[1]//a[contains(@href, "/setup/ui/picklist_masterdelete.jsp") and contains(@href, "deleteType=1")]`;
|
|
68
68
|
}
|
|
69
|
-
await this.page.waitForSelector(`::-p-xpath(${xpath})`);
|
|
70
|
-
const actionLink = (await this.page.$$(`xpath/.${xpath}`))[0];
|
|
71
69
|
this.page.on('dialog', async (dialog) => {
|
|
72
70
|
await dialog.accept();
|
|
73
71
|
});
|
|
74
|
-
await
|
|
75
|
-
|
|
76
|
-
this.page.
|
|
72
|
+
await this.page.locator(`xpath=${xpath}`).first().click();
|
|
73
|
+
await Promise.race([
|
|
74
|
+
this.page.waitForURL((url) => /\/00N.*/.test(url.pathname)), // Salesforce record id
|
|
75
|
+
waitForPageErrors(this.page),
|
|
77
76
|
]);
|
|
78
|
-
await throwPageErrors(this.page);
|
|
79
77
|
return new PicklistPage(this.page);
|
|
80
78
|
}
|
|
81
79
|
}
|
|
@@ -88,18 +86,17 @@ export class DefaultPicklistAddPage {
|
|
|
88
86
|
async add(newValue) {
|
|
89
87
|
const TEXT_AREA = 'textarea';
|
|
90
88
|
if (newValue !== undefined && newValue !== null) {
|
|
91
|
-
await this.page.
|
|
92
|
-
await this.page.type(TEXT_AREA, newValue);
|
|
89
|
+
await this.page.locator(TEXT_AREA).fill(newValue);
|
|
93
90
|
}
|
|
94
91
|
await this.save();
|
|
95
92
|
}
|
|
96
93
|
async save() {
|
|
97
|
-
|
|
98
|
-
await
|
|
99
|
-
|
|
100
|
-
this.page.
|
|
94
|
+
const urlBefore = this.page.url();
|
|
95
|
+
await this.page.locator(this.saveButton).click();
|
|
96
|
+
await Promise.race([
|
|
97
|
+
this.page.waitForURL((url) => url.href !== urlBefore),
|
|
98
|
+
waitForPageErrors(this.page),
|
|
101
99
|
]);
|
|
102
|
-
await throwPageErrors(this.page);
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
export class StatusPicklistAddPage {
|
|
@@ -113,20 +110,20 @@ export class StatusPicklistAddPage {
|
|
|
113
110
|
const API_NAME_INPUT = 'input#p3';
|
|
114
111
|
const STATUS_CATEGORY_SELECTOR = 'select#p5';
|
|
115
112
|
if (newValue !== undefined && newValue !== null) {
|
|
116
|
-
await this.page.
|
|
117
|
-
await this.page.
|
|
118
|
-
await this.page
|
|
119
|
-
|
|
113
|
+
await this.page.locator(LABEL_INPUT).fill(newValue);
|
|
114
|
+
await this.page.locator(API_NAME_INPUT).fill(newValue);
|
|
115
|
+
await this.page
|
|
116
|
+
.locator(STATUS_CATEGORY_SELECTOR)
|
|
117
|
+
.pressSequentially(statusCategory);
|
|
120
118
|
}
|
|
121
119
|
await this.save();
|
|
122
120
|
}
|
|
123
121
|
async save() {
|
|
124
|
-
await this.page.
|
|
125
|
-
await Promise.
|
|
126
|
-
this.page.
|
|
127
|
-
this.page
|
|
122
|
+
await this.page.locator(this.saveButton).click();
|
|
123
|
+
await Promise.race([
|
|
124
|
+
this.page.waitForURL((url) => url.pathname === '/_ui/common/config/field/StandardFieldAttributes/d'),
|
|
125
|
+
waitForPageErrors(this.page),
|
|
128
126
|
]);
|
|
129
|
-
await throwPageErrors(this.page);
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
129
|
export class PicklistReplacePage {
|
|
@@ -140,26 +137,22 @@ export class PicklistReplacePage {
|
|
|
140
137
|
const NEW_VALUE_SELECTOR = 'select#nv';
|
|
141
138
|
const REPLACE_ALL_BLANK_VALUES_CHECKBOX = 'input#fnv';
|
|
142
139
|
if (value !== undefined && value !== null) {
|
|
143
|
-
await this.page.
|
|
144
|
-
await this.page.type(OLD_VALUE_SELECTOR, value);
|
|
140
|
+
await this.page.locator(OLD_VALUE_SELECTOR).fill(value);
|
|
145
141
|
}
|
|
146
142
|
if (replaceAllBlankValues) {
|
|
147
|
-
await this.page.
|
|
148
|
-
await this.page.click(REPLACE_ALL_BLANK_VALUES_CHECKBOX);
|
|
143
|
+
await this.page.locator(REPLACE_ALL_BLANK_VALUES_CHECKBOX).check();
|
|
149
144
|
}
|
|
150
145
|
if (newValue !== undefined && newValue !== null) {
|
|
151
|
-
await this.page.
|
|
152
|
-
await this.page.type(NEW_VALUE_SELECTOR, newValue);
|
|
146
|
+
await this.page.locator(NEW_VALUE_SELECTOR).pressSequentially(newValue);
|
|
153
147
|
}
|
|
154
148
|
await this.save();
|
|
155
149
|
}
|
|
156
150
|
async save() {
|
|
157
|
-
await this.page.
|
|
158
|
-
await Promise.
|
|
159
|
-
this.page.
|
|
160
|
-
this.page
|
|
151
|
+
await this.page.locator(this.saveButton).click();
|
|
152
|
+
await Promise.race([
|
|
153
|
+
this.page.waitForURL((url) => url.searchParams.has('msg')),
|
|
154
|
+
waitForPageErrors(this.page),
|
|
161
155
|
]);
|
|
162
|
-
await throwPageErrors(this.page);
|
|
163
156
|
}
|
|
164
157
|
}
|
|
165
158
|
export class PicklistReplaceAndDeletePage extends PicklistReplacePage {
|
|
@@ -172,23 +165,23 @@ export class PicklistReplaceAndDeletePage extends PicklistReplacePage {
|
|
|
172
165
|
const REPLACE_WITH_BLANK_VALUE_RADIO_INPUT = 'input#ReplaceValueWithNullValue';
|
|
173
166
|
// select option value
|
|
174
167
|
if (newValue !== undefined && newValue !== null) {
|
|
175
|
-
await this.page.
|
|
176
|
-
await this.page.type(NEW_VALUE_SELECTOR, newValue);
|
|
168
|
+
await this.page.locator(NEW_VALUE_SELECTOR).pressSequentially(newValue);
|
|
177
169
|
}
|
|
178
170
|
else {
|
|
179
|
-
await this.page.
|
|
180
|
-
await this.page.click(REPLACE_WITH_BLANK_VALUE_RADIO_INPUT);
|
|
171
|
+
await this.page.locator(REPLACE_WITH_BLANK_VALUE_RADIO_INPUT).check();
|
|
181
172
|
}
|
|
182
173
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
174
|
+
async save() {
|
|
175
|
+
await this.page.locator(this.saveButton).click({ timeout: 180000 });
|
|
176
|
+
// TODO: this might take really long
|
|
177
|
+
// await this.page.locator(this.saveButton).click({ noWaitAfter: true });
|
|
178
|
+
// /setup/ui/picklist_masterdelete.jsp?id=01JPw00000S7y4B&tid=a02&...
|
|
179
|
+
// ->
|
|
180
|
+
// /setup/ui/picklist_masterdelete.jsp
|
|
181
|
+
await Promise.race([
|
|
182
|
+
this.page.waitForURL((url) => !url.searchParams.has('id')),
|
|
183
|
+
waitForPageErrors(this.page),
|
|
184
|
+
]);
|
|
192
185
|
}
|
|
193
186
|
}
|
|
194
187
|
//# sourceMappingURL=pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/picklists/pages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/picklists/pages.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ type RecordTypeConfig = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare class RecordTypes extends BrowserforcePlugin {
|
|
10
10
|
retrieve(definition: Config): Promise<Config>;
|
|
11
|
+
diff(source: Config, target: Config): Partial<Config> | undefined;
|
|
11
12
|
apply(config: Config): Promise<void>;
|
|
12
13
|
}
|
|
13
14
|
export {};
|
|
@@ -69,5 +69,9 @@ describe(RecordTypes.name, function () {
|
|
|
69
69
|
const res = await plugin.run(configDeleteAndReplace);
|
|
70
70
|
assert.deepStrictEqual(res, { message: 'no action necessary' });
|
|
71
71
|
});
|
|
72
|
+
it('should remove the CustomObject', async () => {
|
|
73
|
+
const conn = global.bf.org.getConnection();
|
|
74
|
+
await conn.metadata.delete('CustomObject', ['Vehicle__c']);
|
|
75
|
+
});
|
|
72
76
|
});
|
|
73
77
|
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/record-types/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/record-types/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,16 +20,18 @@ export class RecordTypes extends BrowserforcePlugin {
|
|
|
20
20
|
throw new Error(`Could not find replacement RecordType: ${deletion.replacement}`);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
response.deletions.push({
|
|
24
|
-
...deletion,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
23
|
response.deletions.push(deletion);
|
|
29
24
|
}
|
|
30
25
|
}
|
|
31
26
|
return response;
|
|
32
27
|
}
|
|
28
|
+
diff(source, target) {
|
|
29
|
+
const changes = {};
|
|
30
|
+
if (target.deletions?.length && source.deletions?.length) {
|
|
31
|
+
changes.deletions = source.deletions;
|
|
32
|
+
}
|
|
33
|
+
return Object.keys(changes).length ? changes : undefined;
|
|
34
|
+
}
|
|
33
35
|
async apply(config) {
|
|
34
36
|
const conn = this.org.getConnection();
|
|
35
37
|
const recordTypeFileProperties = await listRecordTypes(conn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/record-types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAW5C,MAAM,OAAO,WAAY,SAAQ,kBAAkB;IAC1C,KAAK,CAAC,QAAQ,CAAC,UAAkB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAW;YACvB,SAAS,EAAE,EAAE;SACd,CAAC;QACF,MAAM,wBAAwB,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,aAAa,CAC9B,QAAQ,CAAC,QAAQ,EACjB,wBAAwB,EACxB,WAAW,CACZ,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CACb,oCAAoC,QAAQ,CAAC,QAAQ,EAAE,CACxD,CAAC;gBACJ,CAAC;gBACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACzB,MAAM,qBAAqB,GAAG,aAAa,CACzC,QAAQ,CAAC,WAAW,EACpB,wBAAwB,EACxB,WAAW,CACZ,CAAC;oBACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,CAAC,WAAW,EAAE,CACjE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/record-types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Page } from '
|
|
1
|
+
import type { Page } from 'playwright';
|
|
2
2
|
export declare class RecordTypePage {
|
|
3
3
|
private page;
|
|
4
4
|
constructor(page: Page);
|
|
5
5
|
clickDeleteAction(recordTypeId: string): Promise<RecordTypeDeletePage>;
|
|
6
6
|
}
|
|
7
7
|
export declare class RecordTypeDeletePage {
|
|
8
|
-
protected page:
|
|
8
|
+
protected page: Page;
|
|
9
9
|
protected saveButton: string;
|
|
10
10
|
constructor(page: Page);
|
|
11
11
|
replace(newRecordTypeId?: string): Promise<void>;
|
|
12
12
|
save(): Promise<void>;
|
|
13
13
|
throwOnMissingSaveButton(): Promise<void>;
|
|
14
|
-
throwPageErrors(): Promise<void>;
|
|
15
14
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
1
2
|
export class RecordTypePage {
|
|
2
3
|
page;
|
|
3
4
|
constructor(page) {
|
|
@@ -5,11 +6,10 @@ export class RecordTypePage {
|
|
|
5
6
|
}
|
|
6
7
|
async clickDeleteAction(recordTypeId) {
|
|
7
8
|
const xpath = `//a[contains(@href, "setup/ui/recordtypedelete.jsp?id=${recordTypeId.slice(0, 15)}")]`;
|
|
8
|
-
await this.page.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.page
|
|
12
|
-
this.page.evaluate((e) => e.click(), deleteLink),
|
|
9
|
+
await this.page.locator(`xpath=${xpath}`).first().click();
|
|
10
|
+
await Promise.race([
|
|
11
|
+
this.page.waitForURL((url) => url.pathname === '/setup/ui/recordtypedelete.jsp'),
|
|
12
|
+
waitForPageErrors(this.page),
|
|
13
13
|
]);
|
|
14
14
|
return new RecordTypeDeletePage(this.page);
|
|
15
15
|
}
|
|
@@ -24,41 +24,30 @@ export class RecordTypeDeletePage {
|
|
|
24
24
|
await this.throwOnMissingSaveButton();
|
|
25
25
|
const NEW_VALUE_SELECTOR = 'select#p2';
|
|
26
26
|
if (newRecordTypeId) {
|
|
27
|
-
await this.page
|
|
28
|
-
|
|
27
|
+
await this.page
|
|
28
|
+
.locator(NEW_VALUE_SELECTOR)
|
|
29
|
+
.selectOption(newRecordTypeId.slice(0, 15));
|
|
29
30
|
}
|
|
30
31
|
await this.save();
|
|
31
32
|
}
|
|
32
33
|
async save() {
|
|
33
|
-
await this.page.
|
|
34
|
-
await Promise.
|
|
35
|
-
this.page.
|
|
36
|
-
this.page
|
|
34
|
+
await this.page.locator(this.saveButton).click();
|
|
35
|
+
await Promise.race([
|
|
36
|
+
this.page.waitForURL((url) => url.pathname === '/ui/setup/rectype/RecordTypes'),
|
|
37
|
+
waitForPageErrors(this.page),
|
|
37
38
|
]);
|
|
38
|
-
await this.throwPageErrors();
|
|
39
39
|
}
|
|
40
40
|
async throwOnMissingSaveButton() {
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
const errorMsg = await
|
|
46
|
-
await bodyHandle.dispose();
|
|
41
|
+
const saveButtonCount = await this.page.locator(this.saveButton).count();
|
|
42
|
+
if (saveButtonCount === 0) {
|
|
43
|
+
const bodyElement = this.page.locator('div.pbBody');
|
|
44
|
+
if ((await bodyElement.count()) > 0) {
|
|
45
|
+
const errorMsg = await bodyElement.textContent();
|
|
47
46
|
if (errorMsg?.trim()) {
|
|
48
47
|
throw new Error(errorMsg.trim());
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
|
-
async throwPageErrors() {
|
|
54
|
-
const errorHandle = await this.page.$('div#validationError div.messageText');
|
|
55
|
-
if (errorHandle) {
|
|
56
|
-
const errorMsg = await this.page.evaluate((div) => div.innerText, errorHandle);
|
|
57
|
-
await errorHandle.dispose();
|
|
58
|
-
if (errorMsg?.trim()) {
|
|
59
|
-
throw new Error(errorMsg.trim());
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
52
|
}
|
|
64
53
|
//# sourceMappingURL=pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/record-types/pages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/record-types/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,cAAc;IACjB,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAAoB;QAEpB,MAAM,KAAK,GAAG,yDAAyD,YAAY,CAAC,KAAK,CACvF,CAAC,EACD,EAAE,CACH,KAAK,CAAC;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAClB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,gCAAgC,CAC3D;YACD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,oBAAoB;IACrB,IAAI,CAAO;IACX,UAAU,GAAG,oBAAoB,CAAC;IAE5C,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,eAAwB;QACpC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACtC,MAAM,kBAAkB,GAAG,WAAW,CAAC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,IAAI;iBACZ,OAAO,CAAC,kBAAkB,CAAC;iBAC3B,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAClB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,+BAA+B,CAC1D;YACD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QACzE,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import assert from 'assert';
|
|
2
2
|
import { RelateContactToMultipleAccounts } from './index.js';
|
|
3
3
|
describe(RelateContactToMultipleAccounts.name, function () {
|
|
4
|
+
this.timeout('10m');
|
|
4
5
|
let plugin;
|
|
5
6
|
before(() => {
|
|
6
7
|
plugin = new RelateContactToMultipleAccounts(global.bf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAE7D,QAAQ,CAAC,+BAA+B,CAAC,IAAI,EAAE;IAC7C,IAAI,MAAuC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,+BAA+B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAE7D,QAAQ,CAAC,+BAA+B,CAAC,IAAI,EAAE;IAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAuC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,+BAA+B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import { retry
|
|
1
|
+
import { retry } from '../../browserforce.js';
|
|
2
2
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
3
3
|
const BASE_PATH = 'accounts/accountSetup.apexp';
|
|
4
|
-
const ENABLED_SELECTOR = 'input[id$=":sharedContactsCheckBox"]';
|
|
5
|
-
const EDIT_BUTTON_SELECTOR = 'input[id$=":edit"]';
|
|
6
|
-
const SAVE_BUTTON_SELECTOR = 'input[id$=":save"]';
|
|
7
|
-
const DISABLE_CONFIRM_CHECKBOX_SELECTOR = 'input#disable_confirm';
|
|
8
|
-
const DISABLE_CONFIRM_BUTTON_SELECTOR = 'input#sharedContactsDisableConfirmButton';
|
|
9
|
-
const ENABLING_IN_PROGRESS_SELECTOR = '#enablingInProgress';
|
|
10
|
-
const DISABLING_IN_PROGRESS_SELECTOR = '#disablingInProgress';
|
|
11
4
|
export class RelateContactToMultipleAccounts extends BrowserforcePlugin {
|
|
12
5
|
async retrieve(definition) {
|
|
13
6
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
14
|
-
await page.waitForSelector(ENABLED_SELECTOR, { visible: true });
|
|
15
7
|
const response = {
|
|
16
|
-
enabled: await page
|
|
8
|
+
enabled: await page
|
|
9
|
+
.getByRole('checkbox', { name: 'Allow users to relate a' })
|
|
10
|
+
.isChecked(),
|
|
17
11
|
};
|
|
18
12
|
await page.close();
|
|
19
13
|
return response;
|
|
@@ -22,48 +16,43 @@ export class RelateContactToMultipleAccounts extends BrowserforcePlugin {
|
|
|
22
16
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
23
17
|
await this.waitForProcessFinished(page);
|
|
24
18
|
// First we have to click the 'Edit' button, to make the checkbox editable
|
|
25
|
-
await page.
|
|
26
|
-
await Promise.all([
|
|
27
|
-
page.waitForNavigation(),
|
|
28
|
-
page.click(EDIT_BUTTON_SELECTOR),
|
|
29
|
-
]);
|
|
19
|
+
await page.getByRole('button', { name: 'edit' }).first().click();
|
|
30
20
|
// Change the value of the checkbox
|
|
31
|
-
await page
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
21
|
+
await page
|
|
22
|
+
.getByRole('checkbox', { name: 'Allow users to relate a' })
|
|
23
|
+
.click();
|
|
24
|
+
await page
|
|
25
|
+
.getByRole('button', { name: 'save' })
|
|
26
|
+
.first()
|
|
27
|
+
.click({ timeout: 90_000 });
|
|
28
|
+
if (await page
|
|
29
|
+
.getByRole('heading', { name: 'Disable Contacts to Multiple' })
|
|
30
|
+
.isVisible()) {
|
|
31
|
+
await page
|
|
32
|
+
.getByRole('checkbox', { name: 'Yes, I understand that this' })
|
|
33
|
+
.click();
|
|
34
|
+
await page.getByRole('button', { name: 'Disable' }).click();
|
|
40
35
|
}
|
|
41
|
-
else {
|
|
42
|
-
await page.waitForSelector(SAVE_BUTTON_SELECTOR);
|
|
43
|
-
await page.click(SAVE_BUTTON_SELECTOR);
|
|
44
|
-
await page.waitForSelector(DISABLE_CONFIRM_CHECKBOX_SELECTOR, {
|
|
45
|
-
visible: true,
|
|
46
|
-
});
|
|
47
|
-
await page.click(DISABLE_CONFIRM_CHECKBOX_SELECTOR);
|
|
48
|
-
await page.waitForSelector(DISABLE_CONFIRM_BUTTON_SELECTOR);
|
|
49
|
-
await Promise.all([
|
|
50
|
-
page.waitForNavigation(),
|
|
51
|
-
page.click(DISABLE_CONFIRM_BUTTON_SELECTOR),
|
|
52
|
-
]);
|
|
53
|
-
}
|
|
54
|
-
await throwPageErrors(page);
|
|
55
36
|
await page.close();
|
|
56
37
|
}
|
|
57
38
|
async waitForProcessFinished(page) {
|
|
58
39
|
await retry(async () => {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
40
|
+
const enablingCount = await page
|
|
41
|
+
.getByText("In progress: We're enabling")
|
|
42
|
+
.count();
|
|
43
|
+
if (enablingCount > 0) {
|
|
44
|
+
const message = await page
|
|
45
|
+
.getByText("In progress: We're enabling")
|
|
46
|
+
.innerText();
|
|
62
47
|
throw new Error(message);
|
|
63
48
|
}
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
49
|
+
const disablingCount = await page
|
|
50
|
+
.getByText("In progress: We're disabling")
|
|
51
|
+
.count();
|
|
52
|
+
if (disablingCount > 0) {
|
|
53
|
+
const message = await page
|
|
54
|
+
.getByText("In progress: We're disabling")
|
|
55
|
+
.innerText();
|
|
67
56
|
throw new Error(message);
|
|
68
57
|
}
|
|
69
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAMhD,MAAM,OAAO,+BAAgC,SAAQ,kBAAkB;IAC9D,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,MAAM,IAAI;iBAChB,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;iBAC1D,SAAS,EAAE;SACf,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACxC,0EAA0E;QAC1E,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QACjE,mCAAmC;QACnC,MAAM,IAAI;aACP,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;aAC1D,KAAK,EAAE,CAAC;QACX,MAAM,IAAI;aACP,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aACrC,KAAK,EAAE;aACP,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9B,IACE,MAAM,IAAI;aACP,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;aAC9D,SAAS,EAAE,EACd,CAAC;YACD,MAAM,IAAI;iBACP,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;iBAC9D,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAU;QACrC,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,aAAa,GAAG,MAAM,IAAI;iBAC7B,SAAS,CAAC,6BAA6B,CAAC;iBACxC,KAAK,EAAE,CAAC;YACX,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,IAAI;qBACvB,SAAS,CAAC,6BAA6B,CAAC;qBACxC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,IAAI;iBAC9B,SAAS,CAAC,8BAA8B,CAAC;iBACzC,KAAK,EAAE,CAAC;YACX,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,MAAM,IAAI;qBACvB,SAAS,CAAC,8BAA8B,CAAC;qBACzC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|