@foxy.io/elements 1.25.0-beta.1 → 1.25.0-beta.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/dist/cdn/foxy-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/translations/native-integration-form/en.json +14 -13
- package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js +9 -25
- package/dist/elements/public/NativeIntegrationCard/NativeIntegrationCard.js.map +1 -1
- package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.d.ts +24 -24
- package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js +99 -105
- package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
- package/dist/elements/public/NativeIntegrationForm/defaults.d.ts +19 -19
- package/dist/elements/public/NativeIntegrationForm/defaults.js +19 -19
- package/dist/elements/public/NativeIntegrationForm/defaults.js.map +1 -1
- package/dist/elements/public/NativeIntegrationForm/types.d.ts +22 -22
- package/dist/elements/public/NativeIntegrationForm/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -69,28 +69,28 @@ const Base = TranslatableMixin(InternalForm, NS);
|
|
|
69
69
|
* @slot webhook-legacy-xml-title:after
|
|
70
70
|
* @slot webhook-legacy-xml-url:before
|
|
71
71
|
* @slot webhook-legacy-xml-url:after
|
|
72
|
-
* @slot
|
|
73
|
-
* @slot
|
|
74
|
-
* @slot
|
|
75
|
-
* @slot
|
|
76
|
-
* @slot
|
|
77
|
-
* @slot
|
|
78
|
-
* @slot
|
|
79
|
-
* @slot
|
|
80
|
-
* @slot
|
|
81
|
-
* @slot
|
|
82
|
-
* @slot
|
|
83
|
-
* @slot
|
|
84
|
-
* @slot
|
|
85
|
-
* @slot
|
|
86
|
-
* @slot
|
|
87
|
-
* @slot
|
|
88
|
-
* @slot
|
|
89
|
-
* @slot
|
|
90
|
-
* @slot
|
|
91
|
-
* @slot
|
|
92
|
-
* @slot
|
|
93
|
-
* @slot
|
|
72
|
+
* @slot webflow-site-id:before
|
|
73
|
+
* @slot webflow-site-id:after
|
|
74
|
+
* @slot webflow-site-name:before
|
|
75
|
+
* @slot webflow-site-name:after
|
|
76
|
+
* @slot webflow-collection-id:before
|
|
77
|
+
* @slot webflow-collection-id:after
|
|
78
|
+
* @slot webflow-collection-name:before
|
|
79
|
+
* @slot webflow-collection-name:after
|
|
80
|
+
* @slot webflow-sku-field-id:before
|
|
81
|
+
* @slot webflow-sku-field-id:after
|
|
82
|
+
* @slot webflow-sku-field-name:before
|
|
83
|
+
* @slot webflow-sku-field-name:after
|
|
84
|
+
* @slot webflow-inventory-field-id:before
|
|
85
|
+
* @slot webflow-inventory-field-id:after
|
|
86
|
+
* @slot webflow-inventory-field-name:before
|
|
87
|
+
* @slot webflow-inventory-field-name:after
|
|
88
|
+
* @slot webflow-auth:before
|
|
89
|
+
* @slot webflow-auth:after
|
|
90
|
+
* @slot zapier-event:before
|
|
91
|
+
* @slot zapier-event:after
|
|
92
|
+
* @slot zapier-url:before
|
|
93
|
+
* @slot zapier-url:after
|
|
94
94
|
*
|
|
95
95
|
* @element foxy-native-integration-form
|
|
96
96
|
* @since 1.25.0
|
|
@@ -192,7 +192,7 @@ export class NativeIntegrationForm extends Base {
|
|
|
192
192
|
this.__onesourceProductOrderPriorityGetValue = () => {
|
|
193
193
|
var _a, _b;
|
|
194
194
|
const value = (_b = (_a = this.__config) === null || _a === void 0 ? void 0 : _a.product_order_priority.split(',')) !== null && _b !== void 0 ? _b : [];
|
|
195
|
-
return value.map((
|
|
195
|
+
return value.filter((v) => !!v).map((v) => ({ value: v }));
|
|
196
196
|
};
|
|
197
197
|
this.__onesourceProductOrderPrioritySetValue = (value) => {
|
|
198
198
|
this.__config = { product_order_priority: value.map(i => i.value).join(',') };
|
|
@@ -236,6 +236,13 @@ export class NativeIntegrationForm extends Base {
|
|
|
236
236
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
237
237
|
return p !== 'avalara' || !!parse(c).company_code || 'avalara-company-code:v8n_required';
|
|
238
238
|
},
|
|
239
|
+
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
240
|
+
if (p !== 'avalara')
|
|
241
|
+
return true;
|
|
242
|
+
const mappings = parse(c).category_to_product_tax_code_mappings;
|
|
243
|
+
const err = 'avalara-category-to-product-tax-code-mappings:v8n_required';
|
|
244
|
+
return (mappings && Object.entries(mappings).length > 0) || err;
|
|
245
|
+
},
|
|
239
246
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
240
247
|
return p !== 'taxjar' || !!parse(c).api_token || 'taxjar-api-token:v8n_required';
|
|
241
248
|
},
|
|
@@ -285,60 +292,47 @@ export class NativeIntegrationForm extends Base {
|
|
|
285
292
|
return p === 'webhook' && s === 'legacy_xml' && err ? `${prefix}:${err}` : true;
|
|
286
293
|
},
|
|
287
294
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
288
|
-
|
|
289
|
-
const err = 'webhook-webflow-site-id:v8n_required';
|
|
290
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
295
|
+
return p !== 'webflow' || !!parse(c).site_id || 'webflow-site-id:v8n_required';
|
|
291
296
|
},
|
|
292
297
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
293
|
-
|
|
294
|
-
const err = 'webhook-webflow-site-name:v8n_required';
|
|
295
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
298
|
+
return p !== 'webflow' || !!parse(c).site_name || 'webflow-site-name:v8n_required';
|
|
296
299
|
},
|
|
297
300
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
298
|
-
|
|
299
|
-
const err = 'webhook-webflow-collection-id:v8n_required';
|
|
300
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
301
|
+
return p !== 'webflow' || !!parse(c).collection_id || 'webflow-collection-id:v8n_required';
|
|
301
302
|
},
|
|
302
303
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
304
|
+
const err = 'webflow-collection-name:v8n_required';
|
|
305
|
+
return p !== 'webflow' || !!parse(c).collection_name || err;
|
|
306
306
|
},
|
|
307
307
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
308
|
-
|
|
309
|
-
const err = 'webhook-webflow-sku-field-id:v8n_required';
|
|
310
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
308
|
+
return p !== 'webflow' || !!parse(c).sku_field_id || 'webflow-sku-field-id:v8n_required';
|
|
311
309
|
},
|
|
312
310
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
311
|
+
const err = 'webflow-sku-field-name:v8n_required';
|
|
312
|
+
return p !== 'webflow' || !!parse(c).sku_field_name || err;
|
|
316
313
|
},
|
|
317
314
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
318
|
-
const
|
|
319
|
-
|
|
320
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
315
|
+
const err = 'webflow-inventory-field-id:v8n_required';
|
|
316
|
+
return p !== 'webflow' || !!parse(c).inventory_field_id || err;
|
|
321
317
|
},
|
|
322
318
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
323
|
-
const
|
|
324
|
-
|
|
325
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
319
|
+
const err = 'webflow-inventory-field-name:v8n_required';
|
|
320
|
+
return p !== 'webflow' || !!parse(c).inventory_field_name || err;
|
|
326
321
|
},
|
|
327
322
|
({ provider: p = 'avalara', config: c = '{}' }) => {
|
|
328
|
-
|
|
329
|
-
const err = 'webhook-webflow-auth:v8n_required';
|
|
330
|
-
return p !== 'webhook' || s !== 'webflow' || !!v || err;
|
|
323
|
+
return p !== 'webflow' || !!parse(c).auth || 'webflow-auth:v8n_required';
|
|
331
324
|
},
|
|
332
325
|
];
|
|
333
326
|
}
|
|
334
327
|
get readonlySelector() {
|
|
335
328
|
const match = [super.readonlySelector.toString()];
|
|
336
329
|
if (this.href)
|
|
337
|
-
match.push('provider', '
|
|
330
|
+
match.push('provider', 'zapier-event', 'zapier-url');
|
|
338
331
|
return new BooleanSelector(match.join(' ').trim());
|
|
339
332
|
}
|
|
340
333
|
renderBody() {
|
|
341
|
-
|
|
334
|
+
var _a;
|
|
335
|
+
const provider = (_a = this.form.provider) !== null && _a !== void 0 ? _a : 'avalara';
|
|
342
336
|
return html `
|
|
343
337
|
${this.href
|
|
344
338
|
? provider === 'webhook'
|
|
@@ -360,9 +354,13 @@ export class NativeIntegrationForm extends Base {
|
|
|
360
354
|
? this.__renderTaxJarConfig()
|
|
361
355
|
: provider === 'onesource'
|
|
362
356
|
? this.__renderOneSourceConfig()
|
|
363
|
-
: provider === '
|
|
364
|
-
? this.
|
|
365
|
-
: ''
|
|
357
|
+
: provider === 'webflow'
|
|
358
|
+
? this.__renderWebflowConfig()
|
|
359
|
+
: provider === 'zapier'
|
|
360
|
+
? this.__renderZapierConfig()
|
|
361
|
+
: provider === 'webhook'
|
|
362
|
+
? this.__renderWebhookConfig()
|
|
363
|
+
: ''}
|
|
366
364
|
${super.renderBody()}
|
|
367
365
|
`;
|
|
368
366
|
}
|
|
@@ -395,25 +393,28 @@ export class NativeIntegrationForm extends Base {
|
|
|
395
393
|
}
|
|
396
394
|
}
|
|
397
395
|
set __config(value) {
|
|
396
|
+
var _a;
|
|
398
397
|
const config = this.__config;
|
|
399
|
-
const provider = this.form.provider;
|
|
398
|
+
const provider = (_a = this.form.provider) !== null && _a !== void 0 ? _a : 'avalara';
|
|
400
399
|
const defaultConfig = (() => {
|
|
400
|
+
if (provider === 'avalara')
|
|
401
|
+
return defaults.avalara;
|
|
401
402
|
if (provider === 'taxjar')
|
|
402
403
|
return defaults.taxjar;
|
|
403
404
|
if (provider === 'onesource')
|
|
404
405
|
return defaults.onesource;
|
|
406
|
+
if (provider === 'webflow')
|
|
407
|
+
return defaults.webflow;
|
|
408
|
+
if (provider === 'zapier')
|
|
409
|
+
return defaults.zapier;
|
|
405
410
|
if (provider === 'webhook') {
|
|
406
411
|
if ((config === null || config === void 0 ? void 0 : config.service) === 'legacy_xml')
|
|
407
412
|
return defaults.webhookLegacyXml;
|
|
408
|
-
if ((config === null || config === void 0 ? void 0 : config.service) === 'webflow')
|
|
409
|
-
return defaults.webhookWebflow;
|
|
410
|
-
if ((config === null || config === void 0 ? void 0 : config.service) === 'zapier')
|
|
411
|
-
return defaults.webhookZapier;
|
|
412
413
|
return defaults.webhookJson;
|
|
413
414
|
}
|
|
414
|
-
return defaults.avalara;
|
|
415
415
|
})();
|
|
416
|
-
|
|
416
|
+
const newConfig = JSON.stringify({ ...defaultConfig, ...config, ...value });
|
|
417
|
+
this.edit({ provider, config: newConfig });
|
|
417
418
|
}
|
|
418
419
|
__renderAvalaraConfig() {
|
|
419
420
|
var _a;
|
|
@@ -567,38 +568,31 @@ export class NativeIntegrationForm extends Base {
|
|
|
567
568
|
`;
|
|
568
569
|
}
|
|
569
570
|
__renderWebhookConfig() {
|
|
570
|
-
var _a, _b
|
|
571
|
+
var _a, _b;
|
|
571
572
|
return html `
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
`
|
|
592
|
-
: ''}
|
|
593
|
-
${((_c = this.__config) === null || _c === void 0 ? void 0 : _c.service) === 'json'
|
|
573
|
+
<p
|
|
574
|
+
style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
575
|
+
class="rounded bg-error-10 text-error font-medium"
|
|
576
|
+
>
|
|
577
|
+
<foxy-i18n infer="webhook-warning" key="warning_text"></foxy-i18n>
|
|
578
|
+
<br />
|
|
579
|
+
<br />
|
|
580
|
+
<a
|
|
581
|
+
target="_blank"
|
|
582
|
+
class="text-body rounded hover-underline hover-cursor-pointer focus-outline-none focus-ring-2 focus-ring-error-50"
|
|
583
|
+
lang="en"
|
|
584
|
+
rel="noopener"
|
|
585
|
+
href="https://www.foxy.io/blog/new-feature-json-webhook/"
|
|
586
|
+
>
|
|
587
|
+
<foxy-i18n infer="webhook-warning" key="link_text"></foxy-i18n>
|
|
588
|
+
</a>
|
|
589
|
+
</p>
|
|
590
|
+
|
|
591
|
+
${((_a = this.__config) === null || _a === void 0 ? void 0 : _a.service) === 'json'
|
|
594
592
|
? this.__renderWebhookJsonConfig()
|
|
595
|
-
: ((
|
|
593
|
+
: ((_b = this.__config) === null || _b === void 0 ? void 0 : _b.service) === 'legacy_xml'
|
|
596
594
|
? this.__renderWebhookLegacyXmlConfig()
|
|
597
|
-
:
|
|
598
|
-
? this.__renderWebhookWebflowConfig()
|
|
599
|
-
: ((_f = this.__config) === null || _f === void 0 ? void 0 : _f.service) === 'zapier'
|
|
600
|
-
? this.__renderWebhookZapierConfig()
|
|
601
|
-
: ''}
|
|
595
|
+
: ''}
|
|
602
596
|
`;
|
|
603
597
|
}
|
|
604
598
|
__renderWebhookJsonConfig() {
|
|
@@ -666,60 +660,60 @@ export class NativeIntegrationForm extends Base {
|
|
|
666
660
|
</foxy-internal-radio-group-control>
|
|
667
661
|
`;
|
|
668
662
|
}
|
|
669
|
-
|
|
663
|
+
__renderWebflowConfig() {
|
|
670
664
|
return html `
|
|
671
665
|
<div class="grid grid-cols-2 gap-m">
|
|
672
666
|
<foxy-internal-text-control
|
|
673
|
-
infer="
|
|
667
|
+
infer="webflow-site-id"
|
|
674
668
|
.getValue=${this.__createConfigGetterFor('site_id')}
|
|
675
669
|
.setValue=${this.__createConfigSetterFor('site_id')}
|
|
676
670
|
>
|
|
677
671
|
</foxy-internal-text-control>
|
|
678
672
|
|
|
679
673
|
<foxy-internal-text-control
|
|
680
|
-
infer="
|
|
674
|
+
infer="webflow-site-name"
|
|
681
675
|
.getValue=${this.__createConfigGetterFor('site_name')}
|
|
682
676
|
.setValue=${this.__createConfigSetterFor('site_name')}
|
|
683
677
|
>
|
|
684
678
|
</foxy-internal-text-control>
|
|
685
679
|
|
|
686
680
|
<foxy-internal-text-control
|
|
687
|
-
infer="
|
|
681
|
+
infer="webflow-collection-id"
|
|
688
682
|
.getValue=${this.__createConfigGetterFor('collection_id')}
|
|
689
683
|
.setValue=${this.__createConfigSetterFor('collection_id')}
|
|
690
684
|
>
|
|
691
685
|
</foxy-internal-text-control>
|
|
692
686
|
|
|
693
687
|
<foxy-internal-text-control
|
|
694
|
-
infer="
|
|
688
|
+
infer="webflow-collection-name"
|
|
695
689
|
.getValue=${this.__createConfigGetterFor('collection_name')}
|
|
696
690
|
.setValue=${this.__createConfigSetterFor('collection_name')}
|
|
697
691
|
>
|
|
698
692
|
</foxy-internal-text-control>
|
|
699
693
|
|
|
700
694
|
<foxy-internal-text-control
|
|
701
|
-
infer="
|
|
695
|
+
infer="webflow-sku-field-id"
|
|
702
696
|
.getValue=${this.__createConfigGetterFor('sku_field_id')}
|
|
703
697
|
.setValue=${this.__createConfigSetterFor('sku_field_id')}
|
|
704
698
|
>
|
|
705
699
|
</foxy-internal-text-control>
|
|
706
700
|
|
|
707
701
|
<foxy-internal-text-control
|
|
708
|
-
infer="
|
|
702
|
+
infer="webflow-sku-field-name"
|
|
709
703
|
.getValue=${this.__createConfigGetterFor('sku_field_name')}
|
|
710
704
|
.setValue=${this.__createConfigSetterFor('sku_field_name')}
|
|
711
705
|
>
|
|
712
706
|
</foxy-internal-text-control>
|
|
713
707
|
|
|
714
708
|
<foxy-internal-text-control
|
|
715
|
-
infer="
|
|
709
|
+
infer="webflow-inventory-field-id"
|
|
716
710
|
.getValue=${this.__createConfigGetterFor('inventory_field_id')}
|
|
717
711
|
.setValue=${this.__createConfigSetterFor('inventory_field_id')}
|
|
718
712
|
>
|
|
719
713
|
</foxy-internal-text-control>
|
|
720
714
|
|
|
721
715
|
<foxy-internal-text-control
|
|
722
|
-
infer="
|
|
716
|
+
infer="webflow-inventory-field-name"
|
|
723
717
|
.getValue=${this.__createConfigGetterFor('inventory_field_name')}
|
|
724
718
|
.setValue=${this.__createConfigSetterFor('inventory_field_name')}
|
|
725
719
|
>
|
|
@@ -727,31 +721,31 @@ export class NativeIntegrationForm extends Base {
|
|
|
727
721
|
</div>
|
|
728
722
|
|
|
729
723
|
<foxy-internal-password-control
|
|
730
|
-
infer="
|
|
724
|
+
infer="webflow-auth"
|
|
731
725
|
.getValue=${this.__createConfigGetterFor('auth')}
|
|
732
726
|
.setValue=${this.__createConfigSetterFor('auth')}
|
|
733
727
|
>
|
|
734
728
|
</foxy-internal-password-control>
|
|
735
729
|
`;
|
|
736
730
|
}
|
|
737
|
-
|
|
731
|
+
__renderZapierConfig() {
|
|
738
732
|
return html `
|
|
739
733
|
<foxy-internal-text-control
|
|
740
|
-
infer="
|
|
734
|
+
infer="zapier-event"
|
|
741
735
|
.getValue=${this.__createConfigGetterFor('event')}
|
|
742
736
|
.setValue=${this.__createConfigSetterFor('event')}
|
|
743
737
|
>
|
|
744
738
|
</foxy-internal-text-control>
|
|
745
739
|
|
|
746
740
|
<foxy-internal-text-area-control
|
|
747
|
-
infer="
|
|
741
|
+
infer="zapier-url"
|
|
748
742
|
.getValue=${this.__createConfigGetterFor('url')}
|
|
749
743
|
.setValue=${this.__createConfigSetterFor('url')}
|
|
750
744
|
>
|
|
751
745
|
</foxy-internal-text-area-control>
|
|
752
746
|
|
|
753
747
|
<p class="text-xs text-secondary leading-xs">
|
|
754
|
-
<foxy-i18n infer="
|
|
748
|
+
<foxy-i18n infer="zapier-warning" key="warning_text"></foxy-i18n>
|
|
755
749
|
</p>
|
|
756
750
|
`;
|
|
757
751
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeIntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/NativeIntegrationForm/NativeIntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data, Templates } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalRadioGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nimport * as defaults from './defaults';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'native-integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for configuring native integrations (`fx:native_integration`).\n *\n * @slot timestamps:before\n * @slot timestamps:after\n * @slot delete:before\n * @slot delete:after\n * @slot create:before\n * @slot create:after\n * @slot provider:before\n * @slot provider:after\n * @slot avalara-service-url:before\n * @slot avalara-service-url:after\n * @slot avalara-id:before\n * @slot avalara-id:after\n * @slot avalara-key:before\n * @slot avalara-key:after\n * @slot avalara-company-code:before\n * @slot avalara-company-code:after\n * @slot avalara-options:before\n * @slot avalara-options:after\n * @slot avalara-address-validation-countries:before\n * @slot avalara-address-validation-countries:after\n * @slot avalara-category-to-product-tax-code-mappings:before\n * @slot avalara-category-to-product-tax-code-mappings:after\n * @slot taxjar-api-token:before\n * @slot taxjar-api-token:after\n * @slot taxjar-category-to-product-tax-code-mappings:before\n * @slot taxjar-category-to-product-tax-code-mappings:after\n * @slot taxjar-options:before\n * @slot taxjar-options:after\n * @slot onesource-service-url:before\n * @slot onesource-service-url:after\n * @slot onesource-external-company-id:before\n * @slot onesource-external-company-id:after\n * @slot onesource-calling-system-number:before\n * @slot onesource-calling-system-number:after\n * @slot onesource-from-city:before\n * @slot onesource-from-city:after\n * @slot onesource-host-system:before\n * @slot onesource-host-system:after\n * @slot onesource-company-role:before\n * @slot onesource-company-role:after\n * @slot onesource-part-number-product-option:before\n * @slot onesource-part-number-product-option:after\n * @slot onesource-product-order-priority:before\n * @slot onesource-product-order-priority:after\n * @slot onesource-audit-settings:before\n * @slot onesource-audit-settings:after\n * @slot webhook-service:before\n * @slot webhook-service:after\n * @slot webhook-json-title:before\n * @slot webhook-json-title:after\n * @slot webhook-json-encryption-key:before\n * @slot webhook-json-encryption-key:after\n * @slot webhook-json-url:before\n * @slot webhook-json-url:after\n * @slot webhook-json-events:before\n * @slot webhook-json-events:after\n * @slot webhook-legacy-xml-title:before\n * @slot webhook-legacy-xml-title:after\n * @slot webhook-legacy-xml-url:before\n * @slot webhook-legacy-xml-url:after\n * @slot webhook-webflow-site-id:before\n * @slot webhook-webflow-site-id:after\n * @slot webhook-webflow-site-name:before\n * @slot webhook-webflow-site-name:after\n * @slot webhook-webflow-collection-id:before\n * @slot webhook-webflow-collection-id:after\n * @slot webhook-webflow-collection-name:before\n * @slot webhook-webflow-collection-name:after\n * @slot webhook-webflow-sku-field-id:before\n * @slot webhook-webflow-sku-field-id:after\n * @slot webhook-webflow-sku-field-name:before\n * @slot webhook-webflow-sku-field-name:after\n * @slot webhook-webflow-inventory-field-id:before\n * @slot webhook-webflow-inventory-field-id:after\n * @slot webhook-webflow-inventory-field-name:before\n * @slot webhook-webflow-inventory-field-name:after\n * @slot webhook-webflow-auth:before\n * @slot webhook-webflow-auth:after\n * @slot webhook-zapier-event:before\n * @slot webhook-zapier-event:after\n * @slot webhook-zapier-url:before\n * @slot webhook-zapier-url:after\n *\n * @element foxy-native-integration-form\n * @since 1.25.0\n */\nexport class NativeIntegrationForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n const parse = memoize(JSON.parse);\n const isURL = memoize((value: string) => {\n try {\n return Boolean(new URL(value));\n } catch {\n return false;\n }\n });\n\n return [\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isURL(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'avalara' && err ? `avalara-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).id || 'avalara-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).key || 'avalara-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).company_code || 'avalara-company-code:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'taxjar' || !!parse(c).api_token || 'taxjar-api-token:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isURL(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'onesource' && err ? `onesource-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-external-company-id';\n return p !== 'onesource' || !!parse(c).external_company_id || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-calling-system-number';\n return p !== 'onesource' || !!parse(c).calling_system_number || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-from-city';\n return p !== 'onesource' || !!parse(c).from_city || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-host-system';\n return p !== 'onesource' || !!parse(c).host_system || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!t || 'webhook-json-title:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, encryption_key: e } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!e || 'webhook-json-encryption-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isURL(u) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'webhook' && s === 'json' && err ? `webhook-json-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n const err = 'webhook-legacy-xml-title:v8n_required';\n return p !== 'webhook' || s !== 'legacy_xml' || !!t || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isURL(u) ? null : 'v8n_invalid') : 'v8n_required';\n const prefix = 'webhook-legacy-xml-url';\n return p === 'webhook' && s === 'legacy_xml' && err ? `${prefix}:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, site_id: v } = parse(c);\n const err = 'webhook-webflow-site-id:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, site_name: v } = parse(c);\n const err = 'webhook-webflow-site-name:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, collection_id: v } = parse(c);\n const err = 'webhook-webflow-collection-id:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, collection_name: v } = parse(c);\n const err = 'webhook-webflow-collection-name:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, sku_field_id: v } = parse(c);\n const err = 'webhook-webflow-sku-field-id:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, sku_field_name: v } = parse(c);\n const err = 'webhook-webflow-sku-field-name:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, inventory_field_id: v } = parse(c);\n const err = 'webhook-webflow-inventory-field-id:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, inventory_field_name: v } = parse(c);\n const err = 'webhook-webflow-inventory-field-name:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, auth: v } = parse(c);\n const err = 'webhook-webflow-auth:v8n_required';\n return p !== 'webhook' || s !== 'webflow' || !!v || err;\n },\n ];\n }\n\n templates: Templates = {};\n\n private readonly __createConfigGetterFor = memoize((key: string) => {\n return () => this.__config?.[key];\n });\n\n private readonly __createConfigSetterFor = memoize((key: string) => {\n return (value: unknown) => (this.__config = { [key]: value });\n });\n\n private readonly __providerGetValue = () => {\n return this.form.provider ?? 'avalara';\n };\n\n private readonly __providerSetValue = (value: string) => {\n this.edit({ provider: value, config: '{}' });\n this.__config = {};\n };\n\n private readonly __templateProviderOptions: Option[] = [\n { value: 'avalara', label: 'option_avalara' },\n { value: 'onesource', label: 'option_onesource' },\n { value: 'taxjar', label: 'option_taxjar' },\n { value: 'webflow', label: 'option_webflow' },\n ];\n\n private readonly __avalaraConfigOptions: Option[] = [\n {\n value: 'use_ava_tax',\n label: 'option_use_ava_tax',\n },\n {\n value: 'enable_colorado_delivery_fee',\n label: 'option_enable_colorado_delivery_fee',\n },\n {\n value: 'create_invoice',\n label: 'option_create_invoice',\n },\n {\n value: 'use_address_validation',\n label: 'option_use_address_validation',\n },\n ];\n\n private readonly __taxjarConfigOptions: Option[] = [\n {\n value: 'create_invoice',\n label: 'option_create_invoice',\n },\n ];\n\n private readonly __configOptionsGetValue = () => {\n const config = this.__config;\n const value: string[] = [];\n\n if (config?.enable_colorado_delivery_fee) value.push('enable_colorado_delivery_fee');\n if (config?.use_address_validation) value.push('use_address_validation');\n if (config?.create_invoice) value.push('create_invoice');\n if (config?.use_ava_tax) value.push('use_ava_tax');\n\n return value;\n };\n\n private readonly __configOptionsSetValue = (value: string[]) => {\n this.__config = {\n enable_colorado_delivery_fee: value.includes('enable_colorado_delivery_fee'),\n use_address_validation: value.includes('use_address_validation'),\n create_invoice: value.includes('create_invoice'),\n use_ava_tax: value.includes('use_ava_tax'),\n };\n };\n\n private readonly __avalaraAddressValidationCountriesOptions = [\n { value: 'US', label: 'option_US' },\n { value: 'CA', label: 'option_CA' },\n ];\n\n private readonly __codeMappingsGetValue = () => {\n const mappings = this.__config?.category_to_product_tax_code_mappings ?? {};\n return Object.entries(mappings).map(([foxyCategory, vndTaxCode]) => {\n return { value: `${foxyCategory}:${vndTaxCode}` };\n });\n };\n\n private readonly __codeMappingsSetValue = (value: Item[]) => {\n const mappings: Record<string, string> = {};\n\n for (const { value: mapping } of value) {\n const [foxyCategory, vndTaxCode] = mapping.split(':');\n if (foxyCategory && vndTaxCode) mappings[foxyCategory] = vndTaxCode;\n }\n\n this.__config = { category_to_product_tax_code_mappings: mappings };\n };\n\n private readonly __onesourceCompanyRoleOptions = [\n { value: 'B', label: 'option_buyer' },\n { value: 'M', label: 'option_middleman' },\n { value: 'S', label: 'option_seller' },\n ];\n\n private readonly __onesourceProductOrderPriorityGetValue = () => {\n const value = this.__config?.product_order_priority.split(',') ?? [];\n return value.map((code: string) => ({ value: code }));\n };\n\n private readonly __onesourceProductOrderPrioritySetValue = (value: Item[]) => {\n this.__config = { product_order_priority: value.map(i => i.value).join(',') };\n };\n\n private readonly __onesourceAuditSettingsOptions = [\n { value: 'capture_only', label: 'option_capture_only' },\n { value: 'auth_and_capture', label: 'option_auth_and_capture' },\n { value: 'never', label: 'option_never' },\n ];\n\n private readonly __webhookServiceOptions = [\n { value: 'json', label: 'option_json' },\n { value: 'legacy_xml', label: 'option_legacy_xml' },\n ];\n\n private readonly __webhookJsonEventsOptions = [\n { value: 'transaction/created', label: 'option_transaction_created' },\n { value: 'subscription/cancelled', label: 'option_subscription_cancelled' },\n ];\n\n get readonlySelector() {\n const match = [super.readonlySelector.toString()];\n if (this.href) match.push('provider', 'webhook-zapier-event', 'webhook-zapier-url');\n return new BooleanSelector(match.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n const provider = this.__providerGetValue();\n\n return html`\n ${this.href\n ? provider === 'webhook'\n ? ''\n : html`<foxy-internal-text-control infer=\"provider\"></foxy-internal-text-control>`\n : html`\n <foxy-internal-radio-group-control\n infer=\"provider\"\n theme=\"vertical\"\n .getValue=${this.__providerGetValue}\n .setValue=${this.__providerSetValue}\n .options=${this.__templateProviderOptions}\n >\n </foxy-internal-radio-group-control>\n `}\n ${provider === 'avalara'\n ? this.__renderAvalaraConfig()\n : provider === 'taxjar'\n ? this.__renderTaxJarConfig()\n : provider === 'onesource'\n ? this.__renderOneSourceConfig()\n : provider === 'webhook'\n ? this.__renderWebhookConfig()\n : ''}\n ${super.renderBody()}\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('has already been configured')) {\n throw ['error:already_configured'];\n } else {\n throw err;\n }\n }\n }\n\n private get __config() {\n try {\n return JSON.parse(this.form.config as string);\n } catch {\n return null;\n }\n }\n\n private set __config(value: any) {\n const config = this.__config;\n const provider = this.form.provider;\n const defaultConfig = (() => {\n if (provider === 'taxjar') return defaults.taxjar;\n if (provider === 'onesource') return defaults.onesource;\n if (provider === 'webhook') {\n if (config?.service === 'legacy_xml') return defaults.webhookLegacyXml;\n if (config?.service === 'webflow') return defaults.webhookWebflow;\n if (config?.service === 'zapier') return defaults.webhookZapier;\n\n return defaults.webhookJson;\n }\n\n return defaults.avalara;\n })();\n\n this.edit({ config: JSON.stringify({ ...defaultConfig, ...config, ...value }) });\n }\n\n private __renderAvalaraConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"avalara-service-url\"\n .getValue=${this.__createConfigGetterFor('service_url')}\n .setValue=${this.__createConfigSetterFor('service_url')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"avalara-id\"\n .getValue=${this.__createConfigGetterFor('id')}\n .setValue=${this.__createConfigSetterFor('id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n infer=\"avalara-key\"\n .getValue=${this.__createConfigGetterFor('key')}\n .setValue=${this.__createConfigSetterFor('key')}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n infer=\"avalara-company-code\"\n .getValue=${this.__createConfigGetterFor('company_code')}\n .setValue=${this.__createConfigSetterFor('company_code')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"avalara-category-to-product-tax-code-mappings\"\n .getValue=${this.__codeMappingsGetValue}\n .setValue=${this.__codeMappingsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"avalara-options\"\n .getValue=${this.__configOptionsGetValue}\n .setValue=${this.__configOptionsSetValue}\n .options=${this.__avalaraConfigOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${this.__config?.use_address_validation\n ? html`\n <foxy-internal-checkbox-group-control\n infer=\"avalara-address-validation-countries\"\n .getValue=${this.__createConfigGetterFor('address_validation_countries')}\n .setValue=${this.__createConfigSetterFor('address_validation_countries')}\n .options=${this.__avalaraAddressValidationCountriesOptions}\n >\n </foxy-internal-checkbox-group-control>\n `\n : ''}\n `;\n }\n\n private __renderTaxJarConfig() {\n return html`\n <foxy-internal-password-control\n infer=\"taxjar-api-token\"\n .getValue=${this.__createConfigGetterFor('api_token')}\n .setValue=${this.__createConfigSetterFor('api_token')}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-editable-list-control\n infer=\"taxjar-category-to-product-tax-code-mappings\"\n .getValue=${this.__codeMappingsGetValue}\n .setValue=${this.__codeMappingsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"taxjar-options\"\n .getValue=${this.__configOptionsGetValue}\n .setValue=${this.__configOptionsSetValue}\n .options=${this.__taxjarConfigOptions}\n >\n </foxy-internal-checkbox-group-control>\n `;\n }\n\n private __renderOneSourceConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"onesource-service-url\"\n .getValue=${this.__createConfigGetterFor('service_url')}\n .setValue=${this.__createConfigSetterFor('service_url')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-external-company-id\"\n .getValue=${this.__createConfigGetterFor('external_company_id')}\n .setValue=${this.__createConfigSetterFor('external_company_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-calling-system-number\"\n .getValue=${this.__createConfigGetterFor('calling_system_number')}\n .setValue=${this.__createConfigSetterFor('calling_system_number')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-from-city\"\n .getValue=${this.__createConfigGetterFor('from_city')}\n .setValue=${this.__createConfigSetterFor('from_city')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-host-system\"\n .getValue=${this.__createConfigGetterFor('host_system')}\n .setValue=${this.__createConfigSetterFor('host_system')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-radio-group-control\n infer=\"onesource-company-role\"\n .getValue=${this.__createConfigGetterFor('company_role')}\n .setValue=${this.__createConfigSetterFor('company_role')}\n .options=${this.__onesourceCompanyRoleOptions}\n >\n </foxy-internal-radio-group-control>\n\n <foxy-internal-text-control\n infer=\"onesource-part-number-product-option\"\n .getValue=${this.__createConfigGetterFor('part_number_product_option')}\n .setValue=${this.__createConfigSetterFor('part_number_product_option')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"onesource-product-order-priority\"\n .getValue=${this.__onesourceProductOrderPriorityGetValue}\n .setValue=${this.__onesourceProductOrderPrioritySetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-radio-group-control\n infer=\"onesource-audit-settings\"\n .getValue=${this.__createConfigGetterFor('audit_settings')}\n .setValue=${this.__createConfigSetterFor('audit_settings')}\n .options=${this.__onesourceAuditSettingsOptions}\n >\n </foxy-internal-radio-group-control>\n `;\n }\n\n private __renderWebhookConfig() {\n return html`\n ${this.__config?.service === 'json' || this.__config?.service === 'legacy_xml'\n ? html`\n <p\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n class=\"rounded bg-error-10 text-error font-medium\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"warning_text\"></foxy-i18n>\n <br />\n <br />\n <a\n target=\"_blank\"\n class=\"text-body rounded hover-underline hover-cursor-pointer focus-outline-none focus-ring-2 focus-ring-error-50\"\n lang=\"en\"\n rel=\"noopener\"\n href=\"https://www.foxy.io/blog/new-feature-json-webhook/\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n `\n : ''}\n ${this.__config?.service === 'json'\n ? this.__renderWebhookJsonConfig()\n : this.__config?.service === 'legacy_xml'\n ? this.__renderWebhookLegacyXmlConfig()\n : this.__config?.service === 'webflow'\n ? this.__renderWebhookWebflowConfig()\n : this.__config?.service === 'zapier'\n ? this.__renderWebhookZapierConfig()\n : ''}\n `;\n }\n\n private __renderWebhookJsonConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"webhook-json-title\"\n .getValue=${this.__createConfigGetterFor('title')}\n .setValue=${this.__createConfigSetterFor('title')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"webhook-json-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <foxy-internal-radio-group-control\n infer=\"webhook-service\"\n .getValue=${this.__createConfigGetterFor('service')}\n .setValue=${this.__createConfigSetterFor('service')}\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-radio-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"webhook-json-events\"\n .getValue=${this.__createConfigGetterFor('events')}\n .setValue=${this.__createConfigSetterFor('events')}\n .options=${this.__webhookJsonEventsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-password-control\n infer=\"webhook-json-encryption-key\"\n .getValue=${this.__createConfigGetterFor('encryption_key')}\n .setValue=${this.__createConfigSetterFor('encryption_key')}\n >\n </foxy-internal-password-control>\n `;\n }\n\n private __renderWebhookLegacyXmlConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"webhook-legacy-xml-title\"\n .getValue=${this.__createConfigGetterFor('title')}\n .setValue=${this.__createConfigSetterFor('title')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"webhook-legacy-xml-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <foxy-internal-radio-group-control\n infer=\"webhook-service\"\n .getValue=${this.__createConfigGetterFor('service')}\n .setValue=${this.__createConfigSetterFor('service')}\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-radio-group-control>\n `;\n }\n\n private __renderWebhookWebflowConfig() {\n return html`\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control\n infer=\"webhook-webflow-site-id\"\n .getValue=${this.__createConfigGetterFor('site_id')}\n .setValue=${this.__createConfigSetterFor('site_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-site-name\"\n .getValue=${this.__createConfigGetterFor('site_name')}\n .setValue=${this.__createConfigSetterFor('site_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-collection-id\"\n .getValue=${this.__createConfigGetterFor('collection_id')}\n .setValue=${this.__createConfigSetterFor('collection_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-collection-name\"\n .getValue=${this.__createConfigGetterFor('collection_name')}\n .setValue=${this.__createConfigSetterFor('collection_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-sku-field-id\"\n .getValue=${this.__createConfigGetterFor('sku_field_id')}\n .setValue=${this.__createConfigSetterFor('sku_field_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-sku-field-name\"\n .getValue=${this.__createConfigGetterFor('sku_field_name')}\n .setValue=${this.__createConfigSetterFor('sku_field_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-inventory-field-id\"\n .getValue=${this.__createConfigGetterFor('inventory_field_id')}\n .setValue=${this.__createConfigSetterFor('inventory_field_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-webflow-inventory-field-name\"\n .getValue=${this.__createConfigGetterFor('inventory_field_name')}\n .setValue=${this.__createConfigSetterFor('inventory_field_name')}\n >\n </foxy-internal-text-control>\n </div>\n\n <foxy-internal-password-control\n infer=\"webhook-webflow-auth\"\n .getValue=${this.__createConfigGetterFor('auth')}\n .setValue=${this.__createConfigSetterFor('auth')}\n >\n </foxy-internal-password-control>\n `;\n }\n\n private __renderWebhookZapierConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"webhook-zapier-event\"\n .getValue=${this.__createConfigGetterFor('event')}\n .setValue=${this.__createConfigSetterFor('event')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"webhook-zapier-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <p class=\"text-xs text-secondary leading-xs\">\n <foxy-i18n infer=\"webhook-zapier-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NativeIntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/NativeIntegrationForm/NativeIntegrationForm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,QAAQ,sBAAmB;AACvC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,MAAM,EAAE,GAAG,yBAAyB,CAAC;AACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAU;IAArD;;QAkHE,cAAS,GAAc,EAAE,CAAC;QAET,4BAAuB,GAAG,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YACjE,OAAO,GAAG,EAAE,wBAAC,IAAI,CAAC,QAAQ,0CAAG,GAAG,IAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEc,4BAAuB,GAAG,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YACjE,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEc,uBAAkB,GAAG,GAAG,EAAE;;YACzC,aAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;QACzC,CAAC,CAAC;QAEe,uBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC,CAAC;QAEe,8BAAyB,GAAa;YACrD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE;YAC7C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;YAC3C,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE;SAC9C,CAAC;QAEe,2BAAsB,GAAa;YAClD;gBACE,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,oBAAoB;aAC5B;YACD;gBACE,KAAK,EAAE,8BAA8B;gBACrC,KAAK,EAAE,qCAAqC;aAC7C;YACD;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,uBAAuB;aAC/B;YACD;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,KAAK,EAAE,+BAA+B;aACvC;SACF,CAAC;QAEe,0BAAqB,GAAa;YACjD;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,uBAAuB;aAC/B;SACF,CAAC;QAEe,4BAAuB,GAAG,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,4BAA4B;gBAAE,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACrF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,sBAAsB;gBAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACzE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc;gBAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEe,4BAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;YAC7D,IAAI,CAAC,QAAQ,GAAG;gBACd,4BAA4B,EAAE,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBAC5E,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBAChE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAChD,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;aAC3C,CAAC;QACJ,CAAC,CAAC;QAEe,+CAA0C,GAAG;YAC5D,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;YACnC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;SACpC,CAAC;QAEe,2BAAsB,GAAG,GAAG,EAAE;;YAC7C,MAAM,QAAQ,eAAG,IAAI,CAAC,QAAQ,0CAAE,qCAAqC,mCAAI,EAAE,CAAC;YAC5E,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE;gBACjE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,IAAI,UAAU,EAAE,EAAE,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEe,2BAAsB,GAAG,CAAC,KAAa,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAE5C,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE;gBACtC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtD,IAAI,YAAY,IAAI,UAAU;oBAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;aACrE;YAED,IAAI,CAAC,QAAQ,GAAG,EAAE,qCAAqC,EAAE,QAAQ,EAAE,CAAC;QACtE,CAAC,CAAC;QAEe,kCAA6B,GAAG;YAC/C,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE;YACrC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACzC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE;SACvC,CAAC;QAEe,4CAAuC,GAAG,GAAG,EAAE;;YAC9D,MAAM,KAAK,eAAG,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,oCAAK,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEe,4CAAuC,GAAG,CAAC,KAAa,EAAE,EAAE;YAC3E,IAAI,CAAC,QAAQ,GAAG,EAAE,sBAAsB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,CAAC,CAAC;QAEe,oCAA+B,GAAG;YACjD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACvD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,yBAAyB,EAAE;YAC/D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;SAC1C,CAAC;QAEe,4BAAuB,GAAG;YACzC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;YACvC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE;SACpD,CAAC;QAEe,+BAA0B,GAAG;YAC5C,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,4BAA4B,EAAE;YACrE,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,+BAA+B,EAAE;SAC5E,CAAC;IA6aJ,CAAC;IA3pBC,MAAM,KAAK,GAAG;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YACtC,IAAI;gBACF,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aAChC;YAAC,WAAM;gBACN,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACjC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACvE,OAAO,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,yBAAyB,CAAC;YACvE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,0BAA0B,CAAC;YACzE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,mCAAmC,CAAC;YAC3F,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,IAAI,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;gBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC;gBAChE,MAAM,GAAG,GAAG,4DAA4D,CAAC;gBACzE,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;YAClE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,+BAA+B,CAAC;YACnF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACjC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACvE,OAAO,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC/C,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,GAAG,MAAM,eAAe,CAAC;YACzF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,iCAAiC,CAAC;gBACjD,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,IAAI,GAAG,MAAM,eAAe,CAAC;YAC3F,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,qBAAqB,CAAC;gBACrC,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,MAAM,eAAe,CAAC;YAC/E,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,uBAAuB,CAAC;gBACvC,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,MAAM,eAAe,CAAC;YACjF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAAC;YACrF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,0CAA0C,CAAC;YAC9F,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACnE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,uCAAuC,CAAC;gBACpD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAC7D,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBACnE,MAAM,MAAM,GAAG,wBAAwB,CAAC;gBACxC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAClF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,8BAA8B,CAAC;YACjF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,gCAAgC,CAAC;YACrF,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,oCAAoC,CAAC;YAC7F,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,sCAAsC,CAAC;gBACnD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC;YAC9D,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,mCAAmC,CAAC;YAC3F,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,qCAAqC,CAAC;gBAClD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC;YAC7D,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,yCAAyC,CAAC;gBACtD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,GAAG,CAAC;YACjE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,2CAA2C,CAAC;gBACxD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,IAAI,GAAG,CAAC;YACnE,CAAC;YACD,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,2BAA2B,CAAC;YAC3E,CAAC;SACF,CAAC;IACJ,CAAC;IAiID,IAAI,gBAAgB;QAClB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACpE,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;;QACR,MAAM,QAAQ,SAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;QAEjD,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,IAAI;YACT,CAAC,CAAC,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAA,4EAA4E;YACpF,CAAC,CAAC,IAAI,CAAA;;;;0BAIY,IAAI,CAAC,kBAAkB;0BACvB,IAAI,CAAC,kBAAkB;yBACxB,IAAI,CAAC,yBAAyB;;;WAG5C;QACH,QAAQ,KAAK,SAAS;YACtB,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC9B,CAAC,CAAC,QAAQ,KAAK,QAAQ;gBACvB,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,CAAC,CAAC,QAAQ,KAAK,WAAW;oBAC1B,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAChC,CAAC,CAAC,QAAQ,KAAK,SAAS;wBACxB,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE;wBAC9B,CAAC,CAAC,QAAQ,KAAK,QAAQ;4BACvB,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE;4BAC7B,CAAC,CAAC,QAAQ,KAAK,SAAS;gCACxB,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE;gCAC9B,CAAC,CAAC,EAAE;QACJ,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,MAAM,CAAiB,GAAG,IAAiC;QACzE,IAAI;YACF,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,OAAO,CAAC;YAEZ,IAAI;gBACF,OAAO,GAAG,CAAC,MAAO,GAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC9E;YAAC,WAAM;gBACN,MAAM,GAAG,CAAC;aACX;YAED,IAAI,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE;gBACnD,MAAM,CAAC,0BAA0B,CAAC,CAAC;aACpC;iBAAM;gBACL,MAAM,GAAG,CAAC;aACX;SACF;IACH,CAAC;IAED,IAAY,QAAQ;QAClB,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;SAC/C;QAAC,WAAM;YACN,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,IAAY,QAAQ,CAAC,KAAU;;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,MAAM,QAAQ,SAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;QACjD,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;YAC1B,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;YACpD,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;YAClD,IAAI,QAAQ,KAAK,WAAW;gBAAE,OAAO,QAAQ,CAAC,SAAS,CAAC;YACxD,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;YACpD,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;YAClD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,MAAK,YAAY;oBAAE,OAAO,QAAQ,CAAC,gBAAgB,CAAC;gBACvE,OAAO,QAAQ,CAAC,WAAW,CAAC;aAC7B;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,qBAAqB;;QAC3B,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;oBAC3C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;;;;;;oBAM3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;oBAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;;;;;;oBAMlC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;;;;;;oBAMnC,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;oBAC5C,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;;;;;;oBAM5C,IAAI,CAAC,sBAAsB;oBAC3B,IAAI,CAAC,sBAAsB;;;;;;oBAM3B,IAAI,CAAC,uBAAuB;oBAC5B,IAAI,CAAC,uBAAuB;mBAC7B,IAAI,CAAC,sBAAsB;;;;QAItC,OAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,EACrC,CAAC,CAAC,IAAI,CAAA;;;0BAGY,IAAI,CAAC,uBAAuB,CAAC,8BAA8B,CAAC;0BAC5D,IAAI,CAAC,uBAAuB,CAAC,8BAA8B,CAAC;yBAC7D,IAAI,CAAC,0CAA0C;;;WAG7D;YACH,CAAC,CAAC,EAAE;KACP,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;oBACzC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;;;;;;oBAMzC,IAAI,CAAC,sBAAsB;oBAC3B,IAAI,CAAC,sBAAsB;;;;;;oBAM3B,IAAI,CAAC,uBAAuB;oBAC5B,IAAI,CAAC,uBAAuB;mBAC7B,IAAI,CAAC,qBAAqB;;;KAGxC,CAAC;IACJ,CAAC;IAEO,uBAAuB;QAC7B,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;oBAC3C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;;;;;;oBAM3C,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;oBACnD,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;;;;;;oBAMnD,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;oBACrD,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;;;;;;oBAMrD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;oBACzC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;;;;;;oBAMzC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;oBAC3C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;;;;;;oBAM3C,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;oBAC5C,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;mBAC7C,IAAI,CAAC,6BAA6B;;;;;;oBAMjC,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC;oBAC1D,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC;;;;;;oBAM1D,IAAI,CAAC,uCAAuC;oBAC5C,IAAI,CAAC,uCAAuC;;;;;;oBAM5C,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;oBAC9C,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;mBAC/C,IAAI,CAAC,+BAA+B;;;KAGlD,CAAC;IACJ,CAAC;IAEO,qBAAqB;;QAC3B,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;QAmBP,OAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,MAAK,MAAM;YACjC,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAClC,CAAC,CAAC,OAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,MAAK,YAAY;gBACzC,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBACvC,CAAC,CAAC,EAAE;KACP,CAAC;IACJ,CAAC;IAEO,yBAAyB;QAC/B,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;oBACrC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;;;;;;oBAMrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;;;;;;oBAMnC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBACvC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;mBACxC,IAAI,CAAC,uBAAuB;;;;;;oBAM3B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;oBACtC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;mBACvC,IAAI,CAAC,0BAA0B;;;;;;oBAM9B,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;oBAC9C,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;;;KAG7D,CAAC;IACJ,CAAC;IAEO,8BAA8B;QACpC,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;oBACrC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;;;;;;oBAMrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;;;;;;oBAMnC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBACvC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;mBACxC,IAAI,CAAC,uBAAuB;;;KAG1C,CAAC;IACJ,CAAC;IAEO,qBAAqB;QAC3B,OAAO,IAAI,CAAA;;;;sBAIO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;sBACvC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;;;;;;sBAMvC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;sBACzC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;;;;;;sBAMzC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC;sBAC7C,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC;;;;;;sBAM7C,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;sBAC/C,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;;;;;;sBAM/C,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;sBAC5C,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC;;;;;;sBAM5C,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;sBAC9C,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;;;;;;sBAM9C,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;sBAClD,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;;;;;;sBAMlD,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC;sBACpD,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC;;;;;;;oBAOtD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;oBACpC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;;;KAGnD,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAA;;;oBAGK,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;oBACrC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;;;;;;oBAMrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;;;;;;;KAOlD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { Data, Templates } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalRadioGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nimport * as defaults from './defaults';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'native-integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for configuring native integrations (`fx:native_integration`).\n *\n * @slot timestamps:before\n * @slot timestamps:after\n * @slot delete:before\n * @slot delete:after\n * @slot create:before\n * @slot create:after\n * @slot provider:before\n * @slot provider:after\n * @slot avalara-service-url:before\n * @slot avalara-service-url:after\n * @slot avalara-id:before\n * @slot avalara-id:after\n * @slot avalara-key:before\n * @slot avalara-key:after\n * @slot avalara-company-code:before\n * @slot avalara-company-code:after\n * @slot avalara-options:before\n * @slot avalara-options:after\n * @slot avalara-address-validation-countries:before\n * @slot avalara-address-validation-countries:after\n * @slot avalara-category-to-product-tax-code-mappings:before\n * @slot avalara-category-to-product-tax-code-mappings:after\n * @slot taxjar-api-token:before\n * @slot taxjar-api-token:after\n * @slot taxjar-category-to-product-tax-code-mappings:before\n * @slot taxjar-category-to-product-tax-code-mappings:after\n * @slot taxjar-options:before\n * @slot taxjar-options:after\n * @slot onesource-service-url:before\n * @slot onesource-service-url:after\n * @slot onesource-external-company-id:before\n * @slot onesource-external-company-id:after\n * @slot onesource-calling-system-number:before\n * @slot onesource-calling-system-number:after\n * @slot onesource-from-city:before\n * @slot onesource-from-city:after\n * @slot onesource-host-system:before\n * @slot onesource-host-system:after\n * @slot onesource-company-role:before\n * @slot onesource-company-role:after\n * @slot onesource-part-number-product-option:before\n * @slot onesource-part-number-product-option:after\n * @slot onesource-product-order-priority:before\n * @slot onesource-product-order-priority:after\n * @slot onesource-audit-settings:before\n * @slot onesource-audit-settings:after\n * @slot webhook-service:before\n * @slot webhook-service:after\n * @slot webhook-json-title:before\n * @slot webhook-json-title:after\n * @slot webhook-json-encryption-key:before\n * @slot webhook-json-encryption-key:after\n * @slot webhook-json-url:before\n * @slot webhook-json-url:after\n * @slot webhook-json-events:before\n * @slot webhook-json-events:after\n * @slot webhook-legacy-xml-title:before\n * @slot webhook-legacy-xml-title:after\n * @slot webhook-legacy-xml-url:before\n * @slot webhook-legacy-xml-url:after\n * @slot webflow-site-id:before\n * @slot webflow-site-id:after\n * @slot webflow-site-name:before\n * @slot webflow-site-name:after\n * @slot webflow-collection-id:before\n * @slot webflow-collection-id:after\n * @slot webflow-collection-name:before\n * @slot webflow-collection-name:after\n * @slot webflow-sku-field-id:before\n * @slot webflow-sku-field-id:after\n * @slot webflow-sku-field-name:before\n * @slot webflow-sku-field-name:after\n * @slot webflow-inventory-field-id:before\n * @slot webflow-inventory-field-id:after\n * @slot webflow-inventory-field-name:before\n * @slot webflow-inventory-field-name:after\n * @slot webflow-auth:before\n * @slot webflow-auth:after\n * @slot zapier-event:before\n * @slot zapier-event:after\n * @slot zapier-url:before\n * @slot zapier-url:after\n *\n * @element foxy-native-integration-form\n * @since 1.25.0\n */\nexport class NativeIntegrationForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n const parse = memoize(JSON.parse);\n const isURL = memoize((value: string) => {\n try {\n return Boolean(new URL(value));\n } catch {\n return false;\n }\n });\n\n return [\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isURL(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'avalara' && err ? `avalara-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).id || 'avalara-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).key || 'avalara-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).company_code || 'avalara-company-code:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n if (p !== 'avalara') return true;\n const mappings = parse(c).category_to_product_tax_code_mappings;\n const err = 'avalara-category-to-product-tax-code-mappings:v8n_required';\n return (mappings && Object.entries(mappings).length > 0) || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'taxjar' || !!parse(c).api_token || 'taxjar-api-token:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isURL(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'onesource' && err ? `onesource-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-external-company-id';\n return p !== 'onesource' || !!parse(c).external_company_id || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-calling-system-number';\n return p !== 'onesource' || !!parse(c).calling_system_number || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-from-city';\n return p !== 'onesource' || !!parse(c).from_city || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-host-system';\n return p !== 'onesource' || !!parse(c).host_system || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!t || 'webhook-json-title:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, encryption_key: e } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!e || 'webhook-json-encryption-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isURL(u) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'webhook' && s === 'json' && err ? `webhook-json-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n const err = 'webhook-legacy-xml-title:v8n_required';\n return p !== 'webhook' || s !== 'legacy_xml' || !!t || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isURL(u) ? null : 'v8n_invalid') : 'v8n_required';\n const prefix = 'webhook-legacy-xml-url';\n return p === 'webhook' && s === 'legacy_xml' && err ? `${prefix}:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_id || 'webflow-site-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_name || 'webflow-site-name:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).collection_id || 'webflow-collection-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-collection-name:v8n_required';\n return p !== 'webflow' || !!parse(c).collection_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).sku_field_id || 'webflow-sku-field-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-sku-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).sku_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-id:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_id || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).auth || 'webflow-auth:v8n_required';\n },\n ];\n }\n\n templates: Templates = {};\n\n private readonly __createConfigGetterFor = memoize((key: string) => {\n return () => this.__config?.[key];\n });\n\n private readonly __createConfigSetterFor = memoize((key: string) => {\n return (value: unknown) => (this.__config = { [key]: value });\n });\n\n private readonly __providerGetValue = () => {\n return this.form.provider ?? 'avalara';\n };\n\n private readonly __providerSetValue = (value: string) => {\n this.edit({ provider: value, config: '{}' });\n this.__config = {};\n };\n\n private readonly __templateProviderOptions: Option[] = [\n { value: 'avalara', label: 'option_avalara' },\n { value: 'onesource', label: 'option_onesource' },\n { value: 'taxjar', label: 'option_taxjar' },\n { value: 'webflow', label: 'option_webflow' },\n ];\n\n private readonly __avalaraConfigOptions: Option[] = [\n {\n value: 'use_ava_tax',\n label: 'option_use_ava_tax',\n },\n {\n value: 'enable_colorado_delivery_fee',\n label: 'option_enable_colorado_delivery_fee',\n },\n {\n value: 'create_invoice',\n label: 'option_create_invoice',\n },\n {\n value: 'use_address_validation',\n label: 'option_use_address_validation',\n },\n ];\n\n private readonly __taxjarConfigOptions: Option[] = [\n {\n value: 'create_invoice',\n label: 'option_create_invoice',\n },\n ];\n\n private readonly __configOptionsGetValue = () => {\n const config = this.__config;\n const value: string[] = [];\n\n if (config?.enable_colorado_delivery_fee) value.push('enable_colorado_delivery_fee');\n if (config?.use_address_validation) value.push('use_address_validation');\n if (config?.create_invoice) value.push('create_invoice');\n if (config?.use_ava_tax) value.push('use_ava_tax');\n\n return value;\n };\n\n private readonly __configOptionsSetValue = (value: string[]) => {\n this.__config = {\n enable_colorado_delivery_fee: value.includes('enable_colorado_delivery_fee'),\n use_address_validation: value.includes('use_address_validation'),\n create_invoice: value.includes('create_invoice'),\n use_ava_tax: value.includes('use_ava_tax'),\n };\n };\n\n private readonly __avalaraAddressValidationCountriesOptions = [\n { value: 'US', label: 'option_US' },\n { value: 'CA', label: 'option_CA' },\n ];\n\n private readonly __codeMappingsGetValue = () => {\n const mappings = this.__config?.category_to_product_tax_code_mappings ?? {};\n return Object.entries(mappings).map(([foxyCategory, vndTaxCode]) => {\n return { value: `${foxyCategory}:${vndTaxCode}` };\n });\n };\n\n private readonly __codeMappingsSetValue = (value: Item[]) => {\n const mappings: Record<string, string> = {};\n\n for (const { value: mapping } of value) {\n const [foxyCategory, vndTaxCode] = mapping.split(':');\n if (foxyCategory && vndTaxCode) mappings[foxyCategory] = vndTaxCode;\n }\n\n this.__config = { category_to_product_tax_code_mappings: mappings };\n };\n\n private readonly __onesourceCompanyRoleOptions = [\n { value: 'B', label: 'option_buyer' },\n { value: 'M', label: 'option_middleman' },\n { value: 'S', label: 'option_seller' },\n ];\n\n private readonly __onesourceProductOrderPriorityGetValue = () => {\n const value = this.__config?.product_order_priority.split(',') ?? [];\n return value.filter((v: string) => !!v).map((v: string) => ({ value: v }));\n };\n\n private readonly __onesourceProductOrderPrioritySetValue = (value: Item[]) => {\n this.__config = { product_order_priority: value.map(i => i.value).join(',') };\n };\n\n private readonly __onesourceAuditSettingsOptions = [\n { value: 'capture_only', label: 'option_capture_only' },\n { value: 'auth_and_capture', label: 'option_auth_and_capture' },\n { value: 'never', label: 'option_never' },\n ];\n\n private readonly __webhookServiceOptions = [\n { value: 'json', label: 'option_json' },\n { value: 'legacy_xml', label: 'option_legacy_xml' },\n ];\n\n private readonly __webhookJsonEventsOptions = [\n { value: 'transaction/created', label: 'option_transaction_created' },\n { value: 'subscription/cancelled', label: 'option_subscription_cancelled' },\n ];\n\n get readonlySelector() {\n const match = [super.readonlySelector.toString()];\n if (this.href) match.push('provider', 'zapier-event', 'zapier-url');\n return new BooleanSelector(match.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n const provider = this.form.provider ?? 'avalara';\n\n return html`\n ${this.href\n ? provider === 'webhook'\n ? ''\n : html`<foxy-internal-text-control infer=\"provider\"></foxy-internal-text-control>`\n : html`\n <foxy-internal-radio-group-control\n infer=\"provider\"\n theme=\"vertical\"\n .getValue=${this.__providerGetValue}\n .setValue=${this.__providerSetValue}\n .options=${this.__templateProviderOptions}\n >\n </foxy-internal-radio-group-control>\n `}\n ${provider === 'avalara'\n ? this.__renderAvalaraConfig()\n : provider === 'taxjar'\n ? this.__renderTaxJarConfig()\n : provider === 'onesource'\n ? this.__renderOneSourceConfig()\n : provider === 'webflow'\n ? this.__renderWebflowConfig()\n : provider === 'zapier'\n ? this.__renderZapierConfig()\n : provider === 'webhook'\n ? this.__renderWebhookConfig()\n : ''}\n ${super.renderBody()}\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('has already been configured')) {\n throw ['error:already_configured'];\n } else {\n throw err;\n }\n }\n }\n\n private get __config() {\n try {\n return JSON.parse(this.form.config as string);\n } catch {\n return null;\n }\n }\n\n private set __config(value: any) {\n const config = this.__config;\n const provider = this.form.provider ?? 'avalara';\n const defaultConfig = (() => {\n if (provider === 'avalara') return defaults.avalara;\n if (provider === 'taxjar') return defaults.taxjar;\n if (provider === 'onesource') return defaults.onesource;\n if (provider === 'webflow') return defaults.webflow;\n if (provider === 'zapier') return defaults.zapier;\n if (provider === 'webhook') {\n if (config?.service === 'legacy_xml') return defaults.webhookLegacyXml;\n return defaults.webhookJson;\n }\n })();\n\n const newConfig = JSON.stringify({ ...defaultConfig, ...config, ...value });\n this.edit({ provider, config: newConfig });\n }\n\n private __renderAvalaraConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"avalara-service-url\"\n .getValue=${this.__createConfigGetterFor('service_url')}\n .setValue=${this.__createConfigSetterFor('service_url')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"avalara-id\"\n .getValue=${this.__createConfigGetterFor('id')}\n .setValue=${this.__createConfigSetterFor('id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n infer=\"avalara-key\"\n .getValue=${this.__createConfigGetterFor('key')}\n .setValue=${this.__createConfigSetterFor('key')}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n infer=\"avalara-company-code\"\n .getValue=${this.__createConfigGetterFor('company_code')}\n .setValue=${this.__createConfigSetterFor('company_code')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"avalara-category-to-product-tax-code-mappings\"\n .getValue=${this.__codeMappingsGetValue}\n .setValue=${this.__codeMappingsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"avalara-options\"\n .getValue=${this.__configOptionsGetValue}\n .setValue=${this.__configOptionsSetValue}\n .options=${this.__avalaraConfigOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${this.__config?.use_address_validation\n ? html`\n <foxy-internal-checkbox-group-control\n infer=\"avalara-address-validation-countries\"\n .getValue=${this.__createConfigGetterFor('address_validation_countries')}\n .setValue=${this.__createConfigSetterFor('address_validation_countries')}\n .options=${this.__avalaraAddressValidationCountriesOptions}\n >\n </foxy-internal-checkbox-group-control>\n `\n : ''}\n `;\n }\n\n private __renderTaxJarConfig() {\n return html`\n <foxy-internal-password-control\n infer=\"taxjar-api-token\"\n .getValue=${this.__createConfigGetterFor('api_token')}\n .setValue=${this.__createConfigSetterFor('api_token')}\n >\n </foxy-internal-password-control>\n\n <foxy-internal-editable-list-control\n infer=\"taxjar-category-to-product-tax-code-mappings\"\n .getValue=${this.__codeMappingsGetValue}\n .setValue=${this.__codeMappingsSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"taxjar-options\"\n .getValue=${this.__configOptionsGetValue}\n .setValue=${this.__configOptionsSetValue}\n .options=${this.__taxjarConfigOptions}\n >\n </foxy-internal-checkbox-group-control>\n `;\n }\n\n private __renderOneSourceConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"onesource-service-url\"\n .getValue=${this.__createConfigGetterFor('service_url')}\n .setValue=${this.__createConfigSetterFor('service_url')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-external-company-id\"\n .getValue=${this.__createConfigGetterFor('external_company_id')}\n .setValue=${this.__createConfigSetterFor('external_company_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-calling-system-number\"\n .getValue=${this.__createConfigGetterFor('calling_system_number')}\n .setValue=${this.__createConfigSetterFor('calling_system_number')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-from-city\"\n .getValue=${this.__createConfigGetterFor('from_city')}\n .setValue=${this.__createConfigSetterFor('from_city')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"onesource-host-system\"\n .getValue=${this.__createConfigGetterFor('host_system')}\n .setValue=${this.__createConfigSetterFor('host_system')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-radio-group-control\n infer=\"onesource-company-role\"\n .getValue=${this.__createConfigGetterFor('company_role')}\n .setValue=${this.__createConfigSetterFor('company_role')}\n .options=${this.__onesourceCompanyRoleOptions}\n >\n </foxy-internal-radio-group-control>\n\n <foxy-internal-text-control\n infer=\"onesource-part-number-product-option\"\n .getValue=${this.__createConfigGetterFor('part_number_product_option')}\n .setValue=${this.__createConfigSetterFor('part_number_product_option')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"onesource-product-order-priority\"\n .getValue=${this.__onesourceProductOrderPriorityGetValue}\n .setValue=${this.__onesourceProductOrderPrioritySetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-radio-group-control\n infer=\"onesource-audit-settings\"\n .getValue=${this.__createConfigGetterFor('audit_settings')}\n .setValue=${this.__createConfigSetterFor('audit_settings')}\n .options=${this.__onesourceAuditSettingsOptions}\n >\n </foxy-internal-radio-group-control>\n `;\n }\n\n private __renderWebhookConfig() {\n return html`\n <p\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n class=\"rounded bg-error-10 text-error font-medium\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"warning_text\"></foxy-i18n>\n <br />\n <br />\n <a\n target=\"_blank\"\n class=\"text-body rounded hover-underline hover-cursor-pointer focus-outline-none focus-ring-2 focus-ring-error-50\"\n lang=\"en\"\n rel=\"noopener\"\n href=\"https://www.foxy.io/blog/new-feature-json-webhook/\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n\n ${this.__config?.service === 'json'\n ? this.__renderWebhookJsonConfig()\n : this.__config?.service === 'legacy_xml'\n ? this.__renderWebhookLegacyXmlConfig()\n : ''}\n `;\n }\n\n private __renderWebhookJsonConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"webhook-json-title\"\n .getValue=${this.__createConfigGetterFor('title')}\n .setValue=${this.__createConfigSetterFor('title')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"webhook-json-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <foxy-internal-radio-group-control\n infer=\"webhook-service\"\n .getValue=${this.__createConfigGetterFor('service')}\n .setValue=${this.__createConfigSetterFor('service')}\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-radio-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"webhook-json-events\"\n .getValue=${this.__createConfigGetterFor('events')}\n .setValue=${this.__createConfigSetterFor('events')}\n .options=${this.__webhookJsonEventsOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-password-control\n infer=\"webhook-json-encryption-key\"\n .getValue=${this.__createConfigGetterFor('encryption_key')}\n .setValue=${this.__createConfigSetterFor('encryption_key')}\n >\n </foxy-internal-password-control>\n `;\n }\n\n private __renderWebhookLegacyXmlConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"webhook-legacy-xml-title\"\n .getValue=${this.__createConfigGetterFor('title')}\n .setValue=${this.__createConfigSetterFor('title')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"webhook-legacy-xml-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <foxy-internal-radio-group-control\n infer=\"webhook-service\"\n .getValue=${this.__createConfigGetterFor('service')}\n .setValue=${this.__createConfigSetterFor('service')}\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-radio-group-control>\n `;\n }\n\n private __renderWebflowConfig() {\n return html`\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control\n infer=\"webflow-site-id\"\n .getValue=${this.__createConfigGetterFor('site_id')}\n .setValue=${this.__createConfigSetterFor('site_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-site-name\"\n .getValue=${this.__createConfigGetterFor('site_name')}\n .setValue=${this.__createConfigSetterFor('site_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-collection-id\"\n .getValue=${this.__createConfigGetterFor('collection_id')}\n .setValue=${this.__createConfigSetterFor('collection_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-collection-name\"\n .getValue=${this.__createConfigGetterFor('collection_name')}\n .setValue=${this.__createConfigSetterFor('collection_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-sku-field-id\"\n .getValue=${this.__createConfigGetterFor('sku_field_id')}\n .setValue=${this.__createConfigSetterFor('sku_field_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-sku-field-name\"\n .getValue=${this.__createConfigGetterFor('sku_field_name')}\n .setValue=${this.__createConfigSetterFor('sku_field_name')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-inventory-field-id\"\n .getValue=${this.__createConfigGetterFor('inventory_field_id')}\n .setValue=${this.__createConfigSetterFor('inventory_field_id')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webflow-inventory-field-name\"\n .getValue=${this.__createConfigGetterFor('inventory_field_name')}\n .setValue=${this.__createConfigSetterFor('inventory_field_name')}\n >\n </foxy-internal-text-control>\n </div>\n\n <foxy-internal-password-control\n infer=\"webflow-auth\"\n .getValue=${this.__createConfigGetterFor('auth')}\n .setValue=${this.__createConfigSetterFor('auth')}\n >\n </foxy-internal-password-control>\n `;\n }\n\n private __renderZapierConfig() {\n return html`\n <foxy-internal-text-control\n infer=\"zapier-event\"\n .getValue=${this.__createConfigGetterFor('event')}\n .setValue=${this.__createConfigSetterFor('event')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-area-control\n infer=\"zapier-url\"\n .getValue=${this.__createConfigGetterFor('url')}\n .setValue=${this.__createConfigSetterFor('url')}\n >\n </foxy-internal-text-area-control>\n\n <p class=\"text-xs text-secondary leading-xs\">\n <foxy-i18n infer=\"zapier-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n `;\n }\n}\n"]}
|