@foxy.io/elements 1.18.0-beta.22 → 1.18.0-beta.23
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-address-card.js +85 -3
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/shared-4979dca4.js +1 -0
- package/dist/cdn/translations/store-shipping-method-form/en.json +10 -10
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.d.ts +84 -1
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +88 -15
- package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js +1 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js.map +1 -1
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js +2 -2
- package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js.map +1 -1
- package/dist/elements/public/ItemCategoryForm/types.d.ts +53 -1
- package/dist/elements/public/ItemCategoryForm/types.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +46 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +85 -29
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/index.d.ts +1 -3
- package/dist/elements/public/StoreShippingMethodForm/index.js +1 -3
- package/dist/elements/public/StoreShippingMethodForm/index.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.d.ts +1 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js +3 -3
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.d.ts +4 -4
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js +6 -6
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.d.ts +4 -4
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js +3 -3
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.d.ts +4 -4
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js +3 -3
- package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/types.d.ts +33 -1
- package/dist/elements/public/StoreShippingMethodForm/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-5b177708.js +0 -82
|
@@ -1,3 +1,55 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ItemCategoryForm } from './ItemCategoryForm';
|
|
2
|
+
import type { Renderer } from '../../../mixins/configurable';
|
|
2
3
|
import type { Resource } from '@foxy.io/sdk/core';
|
|
4
|
+
import type { Rels } from '@foxy.io/sdk/backend';
|
|
3
5
|
export declare type Data = Resource<Rels.ItemCategory>;
|
|
6
|
+
export declare type Templates = {
|
|
7
|
+
'name:before'?: Renderer<ItemCategoryForm>;
|
|
8
|
+
'name:after'?: Renderer<ItemCategoryForm>;
|
|
9
|
+
'code:before'?: Renderer<ItemCategoryForm>;
|
|
10
|
+
'code:after'?: Renderer<ItemCategoryForm>;
|
|
11
|
+
'handling-fee-type:before'?: Renderer<ItemCategoryForm>;
|
|
12
|
+
'handling-fee-type:after'?: Renderer<ItemCategoryForm>;
|
|
13
|
+
'handling-fee:before'?: Renderer<ItemCategoryForm>;
|
|
14
|
+
'handling-fee:after'?: Renderer<ItemCategoryForm>;
|
|
15
|
+
'handling-fee-percentage:before'?: Renderer<ItemCategoryForm>;
|
|
16
|
+
'handling-fee-percentage:after'?: Renderer<ItemCategoryForm>;
|
|
17
|
+
'handling-fee-minimum:before'?: Renderer<ItemCategoryForm>;
|
|
18
|
+
'handling-fee-minimum:after'?: Renderer<ItemCategoryForm>;
|
|
19
|
+
'item-delivery-type:before'?: Renderer<ItemCategoryForm>;
|
|
20
|
+
'item-delivery-type:after'?: Renderer<ItemCategoryForm>;
|
|
21
|
+
'max-downloads-per-customer:before'?: Renderer<ItemCategoryForm>;
|
|
22
|
+
'max-downloads-per-customer:after'?: Renderer<ItemCategoryForm>;
|
|
23
|
+
'max-downloads-time-period:before'?: Renderer<ItemCategoryForm>;
|
|
24
|
+
'max-downloads-time-period:after'?: Renderer<ItemCategoryForm>;
|
|
25
|
+
'shipping-flat-rate:before'?: Renderer<ItemCategoryForm>;
|
|
26
|
+
'shipping-flat-rate:after'?: Renderer<ItemCategoryForm>;
|
|
27
|
+
'shipping-flat-rate-type:before'?: Renderer<ItemCategoryForm>;
|
|
28
|
+
'shipping-flat-rate-type:after'?: Renderer<ItemCategoryForm>;
|
|
29
|
+
'default-weight:before'?: Renderer<ItemCategoryForm>;
|
|
30
|
+
'default-weight:after'?: Renderer<ItemCategoryForm>;
|
|
31
|
+
'default-weight-unit:before'?: Renderer<ItemCategoryForm>;
|
|
32
|
+
'default-weight-unit:after'?: Renderer<ItemCategoryForm>;
|
|
33
|
+
'default-length-unit:before'?: Renderer<ItemCategoryForm>;
|
|
34
|
+
'default-length-unit:after'?: Renderer<ItemCategoryForm>;
|
|
35
|
+
'customs-value:before'?: Renderer<ItemCategoryForm>;
|
|
36
|
+
'customs-value:after'?: Renderer<ItemCategoryForm>;
|
|
37
|
+
'discount-name:before'?: Renderer<ItemCategoryForm>;
|
|
38
|
+
'discount-name:after'?: Renderer<ItemCategoryForm>;
|
|
39
|
+
'discount-builder:before'?: Renderer<ItemCategoryForm>;
|
|
40
|
+
'discount-builder:after'?: Renderer<ItemCategoryForm>;
|
|
41
|
+
'admin-email-template-uri:before'?: Renderer<ItemCategoryForm>;
|
|
42
|
+
'admin-email-template-uri:after'?: Renderer<ItemCategoryForm>;
|
|
43
|
+
'customer-email-template-uri:before'?: Renderer<ItemCategoryForm>;
|
|
44
|
+
'customer-email-template-uri:after'?: Renderer<ItemCategoryForm>;
|
|
45
|
+
'gift-recipient-email-template-uri:before'?: Renderer<ItemCategoryForm>;
|
|
46
|
+
'gift-recipient-email-template-uri:after'?: Renderer<ItemCategoryForm>;
|
|
47
|
+
'taxes:before'?: Renderer<ItemCategoryForm>;
|
|
48
|
+
'taxes:after'?: Renderer<ItemCategoryForm>;
|
|
49
|
+
'timestamps:before'?: Renderer<ItemCategoryForm>;
|
|
50
|
+
'timestamps:after'?: Renderer<ItemCategoryForm>;
|
|
51
|
+
'create:before'?: Renderer<ItemCategoryForm>;
|
|
52
|
+
'create:after'?: Renderer<ItemCategoryForm>;
|
|
53
|
+
'delete:before'?: Renderer<ItemCategoryForm>;
|
|
54
|
+
'delete:after'?: Renderer<ItemCategoryForm>;
|
|
55
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ItemCategoryForm } from './ItemCategoryForm';\nimport type { Renderer } from '../../../mixins/configurable';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.ItemCategory>;\nexport type Templates = {\n 'name:before'?: Renderer<ItemCategoryForm>;\n 'name:after'?: Renderer<ItemCategoryForm>;\n 'code:before'?: Renderer<ItemCategoryForm>;\n 'code:after'?: Renderer<ItemCategoryForm>;\n 'handling-fee-type:before'?: Renderer<ItemCategoryForm>;\n 'handling-fee-type:after'?: Renderer<ItemCategoryForm>;\n 'handling-fee:before'?: Renderer<ItemCategoryForm>;\n 'handling-fee:after'?: Renderer<ItemCategoryForm>;\n 'handling-fee-percentage:before'?: Renderer<ItemCategoryForm>;\n 'handling-fee-percentage:after'?: Renderer<ItemCategoryForm>;\n 'handling-fee-minimum:before'?: Renderer<ItemCategoryForm>;\n 'handling-fee-minimum:after'?: Renderer<ItemCategoryForm>;\n 'item-delivery-type:before'?: Renderer<ItemCategoryForm>;\n 'item-delivery-type:after'?: Renderer<ItemCategoryForm>;\n 'max-downloads-per-customer:before'?: Renderer<ItemCategoryForm>;\n 'max-downloads-per-customer:after'?: Renderer<ItemCategoryForm>;\n 'max-downloads-time-period:before'?: Renderer<ItemCategoryForm>;\n 'max-downloads-time-period:after'?: Renderer<ItemCategoryForm>;\n 'shipping-flat-rate:before'?: Renderer<ItemCategoryForm>;\n 'shipping-flat-rate:after'?: Renderer<ItemCategoryForm>;\n 'shipping-flat-rate-type:before'?: Renderer<ItemCategoryForm>;\n 'shipping-flat-rate-type:after'?: Renderer<ItemCategoryForm>;\n 'default-weight:before'?: Renderer<ItemCategoryForm>;\n 'default-weight:after'?: Renderer<ItemCategoryForm>;\n 'default-weight-unit:before'?: Renderer<ItemCategoryForm>;\n 'default-weight-unit:after'?: Renderer<ItemCategoryForm>;\n 'default-length-unit:before'?: Renderer<ItemCategoryForm>;\n 'default-length-unit:after'?: Renderer<ItemCategoryForm>;\n 'customs-value:before'?: Renderer<ItemCategoryForm>;\n 'customs-value:after'?: Renderer<ItemCategoryForm>;\n 'discount-name:before'?: Renderer<ItemCategoryForm>;\n 'discount-name:after'?: Renderer<ItemCategoryForm>;\n 'discount-builder:before'?: Renderer<ItemCategoryForm>;\n 'discount-builder:after'?: Renderer<ItemCategoryForm>;\n 'admin-email-template-uri:before'?: Renderer<ItemCategoryForm>;\n 'admin-email-template-uri:after'?: Renderer<ItemCategoryForm>;\n 'customer-email-template-uri:before'?: Renderer<ItemCategoryForm>;\n 'customer-email-template-uri:after'?: Renderer<ItemCategoryForm>;\n 'gift-recipient-email-template-uri:before'?: Renderer<ItemCategoryForm>;\n 'gift-recipient-email-template-uri:after'?: Renderer<ItemCategoryForm>;\n 'taxes:before'?: Renderer<ItemCategoryForm>;\n 'taxes:after'?: Renderer<ItemCategoryForm>;\n 'timestamps:before'?: Renderer<ItemCategoryForm>;\n 'timestamps:after'?: Renderer<ItemCategoryForm>;\n 'create:before'?: Renderer<ItemCategoryForm>;\n 'create:after'?: Renderer<ItemCategoryForm>;\n 'delete:before'?: Renderer<ItemCategoryForm>;\n 'delete:after'?: Renderer<ItemCategoryForm>;\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { Templates, Data } from './types';
|
|
1
2
|
import type { TemplateResult } from 'lit-html';
|
|
2
3
|
import type { NucleonV8N } from '../NucleonElement/types';
|
|
3
|
-
import type { Data } from './types';
|
|
4
4
|
import { BooleanSelector } from '@foxy.io/sdk/core';
|
|
5
5
|
import { InternalForm } from '../../internal/InternalForm/InternalForm';
|
|
6
6
|
declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
@@ -9,13 +9,58 @@ declare const Base: typeof InternalForm & import("lit-element").Constructor<impo
|
|
|
9
9
|
/**
|
|
10
10
|
* Form element for creating and editing store shipping methods (`fx:store_shipping_method`).
|
|
11
11
|
*
|
|
12
|
+
* @slot shipping-method-uri:before
|
|
13
|
+
* @slot shipping-method-uri:after
|
|
14
|
+
*
|
|
15
|
+
* @slot shipping-container-uri:before
|
|
16
|
+
* @slot shipping-container-uri:after
|
|
17
|
+
*
|
|
18
|
+
* @slot shipping-drop-type-uri:before
|
|
19
|
+
* @slot shipping-drop-type-uri:after
|
|
20
|
+
*
|
|
21
|
+
* @slot destinations:before
|
|
22
|
+
* @slot destinations:after
|
|
23
|
+
*
|
|
24
|
+
* @slot authentication-key:before
|
|
25
|
+
* @slot authentication-key:after
|
|
26
|
+
*
|
|
27
|
+
* @slot meter-number:before
|
|
28
|
+
* @slot meter-number:after
|
|
29
|
+
*
|
|
30
|
+
* @slot endpoint:before
|
|
31
|
+
* @slot endpoint:after
|
|
32
|
+
*
|
|
33
|
+
* @slot accountid:before
|
|
34
|
+
* @slot accountid:after
|
|
35
|
+
*
|
|
36
|
+
* @slot password:before
|
|
37
|
+
* @slot password:after
|
|
38
|
+
*
|
|
39
|
+
* @slot custom-code:before
|
|
40
|
+
* @slot custom-code:after
|
|
41
|
+
*
|
|
42
|
+
* @slot services:before
|
|
43
|
+
* @slot services:after
|
|
44
|
+
*
|
|
45
|
+
* @slot timestamps:before
|
|
46
|
+
* @slot timestamps:after
|
|
47
|
+
*
|
|
48
|
+
* @slot create:before
|
|
49
|
+
* @slot create:after
|
|
50
|
+
*
|
|
51
|
+
* @slot delete:before
|
|
52
|
+
* @slot delete:after
|
|
53
|
+
*
|
|
12
54
|
* @element foxy-store-shipping-method-form
|
|
13
55
|
* @since 1.21.0
|
|
14
56
|
*/
|
|
15
57
|
export declare class StoreShippingMethodForm extends Base<Data> {
|
|
16
58
|
static get properties(): typeof Base['properties'];
|
|
17
59
|
static get v8n(): NucleonV8N<Data>;
|
|
60
|
+
/** URL of the `fx:shipping_methods` property helper. */
|
|
18
61
|
shippingMethods: string | null;
|
|
62
|
+
/** Template render functions mapped to their name. */
|
|
63
|
+
templates: Templates;
|
|
19
64
|
private __destinations;
|
|
20
65
|
private __getDestinations;
|
|
21
66
|
private __setDestinations;
|
|
@@ -18,13 +18,58 @@ const isURL = (value) => {
|
|
|
18
18
|
/**
|
|
19
19
|
* Form element for creating and editing store shipping methods (`fx:store_shipping_method`).
|
|
20
20
|
*
|
|
21
|
+
* @slot shipping-method-uri:before
|
|
22
|
+
* @slot shipping-method-uri:after
|
|
23
|
+
*
|
|
24
|
+
* @slot shipping-container-uri:before
|
|
25
|
+
* @slot shipping-container-uri:after
|
|
26
|
+
*
|
|
27
|
+
* @slot shipping-drop-type-uri:before
|
|
28
|
+
* @slot shipping-drop-type-uri:after
|
|
29
|
+
*
|
|
30
|
+
* @slot destinations:before
|
|
31
|
+
* @slot destinations:after
|
|
32
|
+
*
|
|
33
|
+
* @slot authentication-key:before
|
|
34
|
+
* @slot authentication-key:after
|
|
35
|
+
*
|
|
36
|
+
* @slot meter-number:before
|
|
37
|
+
* @slot meter-number:after
|
|
38
|
+
*
|
|
39
|
+
* @slot endpoint:before
|
|
40
|
+
* @slot endpoint:after
|
|
41
|
+
*
|
|
42
|
+
* @slot accountid:before
|
|
43
|
+
* @slot accountid:after
|
|
44
|
+
*
|
|
45
|
+
* @slot password:before
|
|
46
|
+
* @slot password:after
|
|
47
|
+
*
|
|
48
|
+
* @slot custom-code:before
|
|
49
|
+
* @slot custom-code:after
|
|
50
|
+
*
|
|
51
|
+
* @slot services:before
|
|
52
|
+
* @slot services:after
|
|
53
|
+
*
|
|
54
|
+
* @slot timestamps:before
|
|
55
|
+
* @slot timestamps:after
|
|
56
|
+
*
|
|
57
|
+
* @slot create:before
|
|
58
|
+
* @slot create:after
|
|
59
|
+
*
|
|
60
|
+
* @slot delete:before
|
|
61
|
+
* @slot delete:after
|
|
62
|
+
*
|
|
21
63
|
* @element foxy-store-shipping-method-form
|
|
22
64
|
* @since 1.21.0
|
|
23
65
|
*/
|
|
24
66
|
export class StoreShippingMethodForm extends Base {
|
|
25
67
|
constructor() {
|
|
26
68
|
super(...arguments);
|
|
69
|
+
/** URL of the `fx:shipping_methods` property helper. */
|
|
27
70
|
this.shippingMethods = null;
|
|
71
|
+
/** Template render functions mapped to their name. */
|
|
72
|
+
this.templates = {};
|
|
28
73
|
this.__destinations = [
|
|
29
74
|
{ value: 'domestic', label: 'domestic' },
|
|
30
75
|
{ value: 'international', label: 'international' },
|
|
@@ -47,45 +92,45 @@ export class StoreShippingMethodForm extends Base {
|
|
|
47
92
|
static get properties() {
|
|
48
93
|
return {
|
|
49
94
|
...super.properties,
|
|
50
|
-
shippingMethods: {
|
|
95
|
+
shippingMethods: { attribute: 'shipping-methods' },
|
|
51
96
|
};
|
|
52
97
|
}
|
|
53
98
|
static get v8n() {
|
|
54
99
|
return [
|
|
55
|
-
({ shipping_method_uri: v }) => (v && isURL(v)) || 'shipping-method-uri:
|
|
56
|
-
({ accountid: v }) => !v || v.length <= 50 || 'accountid:
|
|
57
|
-
({ password: v }) => !v || v.length <= 50 || 'password:
|
|
58
|
-
({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:
|
|
59
|
-
({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:
|
|
60
|
-
({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:
|
|
100
|
+
({ shipping_method_uri: v }) => (v && isURL(v)) || 'shipping-method-uri:v8n_required',
|
|
101
|
+
({ accountid: v }) => !v || v.length <= 50 || 'accountid:v8n_too_long',
|
|
102
|
+
({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',
|
|
103
|
+
({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:v8n_too_long',
|
|
104
|
+
({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:v8n_too_long',
|
|
105
|
+
({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:v8n_too_long',
|
|
61
106
|
form => {
|
|
62
|
-
var _a;
|
|
63
|
-
if (((_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method'].code) === 'CUSTOM-ENDPOINT-POST') {
|
|
64
|
-
return (form.accountid && isURL(form.accountid)) || 'endpoint:
|
|
107
|
+
var _a, _b;
|
|
108
|
+
if (((_b = (_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method']) === null || _b === void 0 ? void 0 : _b.code) === 'CUSTOM-ENDPOINT-POST') {
|
|
109
|
+
return (form.accountid && isURL(form.accountid)) || 'endpoint:v8n_required';
|
|
65
110
|
}
|
|
66
111
|
else {
|
|
67
112
|
return true;
|
|
68
113
|
}
|
|
69
114
|
},
|
|
70
115
|
form => {
|
|
71
|
-
var _a;
|
|
116
|
+
var _a, _b;
|
|
72
117
|
const url = form.shipping_container_uri;
|
|
73
|
-
const code = (_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method'].code;
|
|
118
|
+
const code = (_b = (_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method']) === null || _b === void 0 ? void 0 : _b.code;
|
|
74
119
|
const codes = ['USPS', 'FedEx', 'UPS'];
|
|
75
120
|
if (code && codes.includes(code)) {
|
|
76
|
-
return (url && isURL(url)) || 'shipping-container-uri:
|
|
121
|
+
return (url && isURL(url)) || 'shipping-container-uri:v8n_required';
|
|
77
122
|
}
|
|
78
123
|
else {
|
|
79
124
|
return true;
|
|
80
125
|
}
|
|
81
126
|
},
|
|
82
127
|
form => {
|
|
83
|
-
var _a;
|
|
128
|
+
var _a, _b;
|
|
84
129
|
const url = form.shipping_drop_type_uri;
|
|
85
|
-
const code = (_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method'].code;
|
|
130
|
+
const code = (_b = (_a = form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method']) === null || _b === void 0 ? void 0 : _b.code;
|
|
86
131
|
const codes = ['FedEx', 'UPS'];
|
|
87
132
|
if (code && codes.includes(code)) {
|
|
88
|
-
return (url && isURL(url)) || 'shipping-drop-type-uri:
|
|
133
|
+
return (url && isURL(url)) || 'shipping-drop-type-uri:v8n_required';
|
|
89
134
|
}
|
|
90
135
|
else {
|
|
91
136
|
return true;
|
|
@@ -118,7 +163,7 @@ export class StoreShippingMethodForm extends Base {
|
|
|
118
163
|
}
|
|
119
164
|
}
|
|
120
165
|
renderBody() {
|
|
121
|
-
var _a, _b, _c, _d, _e, _f;
|
|
166
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
122
167
|
const method = (_a = this.form._embedded) === null || _a === void 0 ? void 0 : _a['fx:shipping_method'];
|
|
123
168
|
return html `
|
|
124
169
|
${['method', 'container', 'drop_type'].map(tgt => {
|
|
@@ -150,14 +195,16 @@ export class StoreShippingMethodForm extends Base {
|
|
|
150
195
|
item-label-path="name"
|
|
151
196
|
first=${ifDefined((_b = this.shippingMethods) !== null && _b !== void 0 ? _b : (_c = this.form._links) === null || _c === void 0 ? void 0 : _c['fx:shipping_methods'].href)}
|
|
152
197
|
infer="shipping-method-uri"
|
|
153
|
-
.selectedItem=${(_d = this.form._embedded) === null || _d === void 0 ? void 0 : _d['fx:shipping_method']}
|
|
198
|
+
.selectedItem=${(_e = (_d = this.form._embedded) === null || _d === void 0 ? void 0 : _d['fx:shipping_method']) !== null && _e !== void 0 ? _e : null}
|
|
154
199
|
@selected-item-changed=${(evt) => {
|
|
200
|
+
var _a, _b;
|
|
155
201
|
const { selectedItem } = evt.currentTarget;
|
|
156
202
|
const newEmbeds = { 'fx:shipping_method': selectedItem };
|
|
157
203
|
this.edit({
|
|
158
204
|
_embedded: newEmbeds,
|
|
159
205
|
shipping_container_uri: '',
|
|
160
206
|
shipping_drop_type_uri: '',
|
|
207
|
+
shipping_method_uri: (_b = (_a = selectedItem) === null || _a === void 0 ? void 0 : _a._links.self.href) !== null && _b !== void 0 ? _b : '',
|
|
161
208
|
});
|
|
162
209
|
}}
|
|
163
210
|
>
|
|
@@ -168,11 +215,15 @@ export class StoreShippingMethodForm extends Base {
|
|
|
168
215
|
item-label-path="name"
|
|
169
216
|
first=${ifDefined(method === null || method === void 0 ? void 0 : method._links['fx:shipping_containers'].href)}
|
|
170
217
|
infer="shipping-container-uri"
|
|
171
|
-
.selectedItem=${(
|
|
218
|
+
.selectedItem=${(_g = (_f = this.form._embedded) === null || _f === void 0 ? void 0 : _f['fx:shipping_container']) !== null && _g !== void 0 ? _g : null}
|
|
172
219
|
@selected-item-changed=${(evt) => {
|
|
220
|
+
var _a, _b;
|
|
173
221
|
const { selectedItem } = evt.currentTarget;
|
|
174
222
|
const newEmbeds = { ...this.form._embedded, 'fx:shipping_container': selectedItem };
|
|
175
|
-
this.edit({
|
|
223
|
+
this.edit({
|
|
224
|
+
shipping_container_uri: (_b = (_a = selectedItem) === null || _a === void 0 ? void 0 : _a._links.self.href) !== null && _b !== void 0 ? _b : '',
|
|
225
|
+
_embedded: newEmbeds,
|
|
226
|
+
});
|
|
176
227
|
}}
|
|
177
228
|
>
|
|
178
229
|
</foxy-internal-async-combo-box-control>
|
|
@@ -182,11 +233,15 @@ export class StoreShippingMethodForm extends Base {
|
|
|
182
233
|
item-label-path="name"
|
|
183
234
|
first=${ifDefined(method === null || method === void 0 ? void 0 : method._links['fx:shipping_drop_types'].href)}
|
|
184
235
|
infer="shipping-drop-type-uri"
|
|
185
|
-
.selectedItem=${(
|
|
236
|
+
.selectedItem=${(_j = (_h = this.form._embedded) === null || _h === void 0 ? void 0 : _h['fx:shipping_drop_type']) !== null && _j !== void 0 ? _j : null}
|
|
186
237
|
@selected-item-changed=${(evt) => {
|
|
238
|
+
var _a, _b;
|
|
187
239
|
const { selectedItem } = evt.currentTarget;
|
|
188
240
|
const newEmbeds = { ...this.form._embedded, 'fx:shipping_drop_type': selectedItem };
|
|
189
|
-
this.edit({
|
|
241
|
+
this.edit({
|
|
242
|
+
shipping_drop_type_uri: (_b = (_a = selectedItem) === null || _a === void 0 ? void 0 : _a._links.self.href) !== null && _b !== void 0 ? _b : '',
|
|
243
|
+
_embedded: newEmbeds,
|
|
244
|
+
});
|
|
190
245
|
}}
|
|
191
246
|
>
|
|
192
247
|
</foxy-internal-async-combo-box-control>
|
|
@@ -199,16 +254,17 @@ export class StoreShippingMethodForm extends Base {
|
|
|
199
254
|
>
|
|
200
255
|
</foxy-internal-checkbox-group-control>
|
|
201
256
|
|
|
202
|
-
<foxy-internal-text-control infer="authentication-key"
|
|
257
|
+
<foxy-internal-text-control infer="authentication-key"></foxy-internal-text-control>
|
|
203
258
|
<foxy-internal-text-control infer="meter-number"></foxy-internal-text-control>
|
|
204
259
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
260
|
+
${(method === null || method === void 0 ? void 0 : method.code) === 'CUSTOM-ENDPOINT-POST'
|
|
261
|
+
? html `
|
|
262
|
+
<foxy-internal-text-control infer="endpoint" property="accountid">
|
|
263
|
+
</foxy-internal-text-control>
|
|
264
|
+
`
|
|
265
|
+
: html `<foxy-internal-text-control infer="accountid"></foxy-internal-text-control>`}
|
|
210
266
|
|
|
211
|
-
<foxy-internal-
|
|
267
|
+
<foxy-internal-password-control infer="password"></foxy-internal-password-control>
|
|
212
268
|
<foxy-internal-text-area-control infer="custom-code"></foxy-internal-text-area-control>
|
|
213
269
|
|
|
214
270
|
<foxy-internal-store-shipping-method-form-services-control infer="services">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreShippingMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InternalAsyncComboBoxControl } from '../../internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'store-shipping-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\nconst getKbSize = (value: string) => new Blob([value]).size / 1024;\nconst isURL = (value: string) => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Form element for creating and editing store shipping methods (`fx:store_shipping_method`).\n *\n * @element foxy-store-shipping-method-form\n * @since 1.21.0\n */\nexport class StoreShippingMethodForm extends Base<Data> {\n static get properties(): typeof Base['properties'] {\n return {\n ...super.properties,\n shippingMethods: { type: String, attribute: 'shipping-methods' },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ shipping_method_uri: v }) => (v && isURL(v)) || 'shipping-method-uri:required',\n ({ accountid: v }) => !v || v.length <= 50 || 'accountid:too_long',\n ({ password: v }) => !v || v.length <= 50 || 'password:too_long',\n ({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:too_long',\n ({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:too_long',\n ({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:too_long',\n\n form => {\n if (form._embedded?.['fx:shipping_method'].code === 'CUSTOM-ENDPOINT-POST') {\n return (form.accountid && isURL(form.accountid)) || 'endpoint:required';\n } else {\n return true;\n }\n },\n\n form => {\n const url = form.shipping_container_uri;\n const code = form._embedded?.['fx:shipping_method'].code;\n const codes = ['USPS', 'FedEx', 'UPS'];\n\n if (code && codes.includes(code)) {\n return (url && isURL(url)) || 'shipping-container-uri:required';\n } else {\n return true;\n }\n },\n\n form => {\n const url = form.shipping_drop_type_uri;\n const code = form._embedded?.['fx:shipping_method'].code;\n const codes = ['FedEx', 'UPS'];\n\n if (code && codes.includes(code)) {\n return (url && isURL(url)) || 'shipping-drop-type-uri:required';\n } else {\n return true;\n }\n },\n ];\n }\n\n shippingMethods: string | null = null;\n\n private __destinations = [\n { value: 'domestic', label: 'domestic' },\n { value: 'international', label: 'international' },\n ];\n\n private __getDestinations = () => {\n const value: string[] = [];\n if (this.form.use_for_domestic) value.push('domestic');\n if (this.form.use_for_international) value.push('international');\n return value;\n };\n\n private __setDestinations = (newValue: string[]) => {\n this.edit({\n use_for_domestic: newValue.includes('domestic'),\n use_for_international: newValue.includes('international'),\n });\n };\n\n get hiddenSelector(): BooleanSelector {\n const code = this.form._embedded?.['fx:shipping_method'].code;\n if (!code) return new BooleanSelector('not=shipping-method-uri,timestamps,create,delete');\n\n const orgControls = ['shipping-container-uri', 'shipping-drop-type-uri', 'destinations'];\n const authControls = ['authentication-key', 'meter-number', 'accountid', 'password'];\n const codeToControls: Record<string, string[]> = {\n 'CUSTOM-ENDPOINT-POST': ['endpoint'],\n 'CUSTOM-CODE': ['custom-code'],\n 'CUSTOM': ['destinations', 'services'],\n 'FedEx': [...orgControls, ...authControls, 'services'],\n 'USPS': [...orgControls, 'services'],\n 'UPS': [...orgControls, ...authControls, 'services'],\n };\n\n if (codeToControls[code]) {\n const controls = codeToControls[code];\n const set = ['shipping-method-uri', ...controls, 'timestamps', 'delete', 'create'];\n return new BooleanSelector(`not=${set.join()} ${super.hiddenSelector}`);\n } else {\n return super.hiddenSelector;\n }\n }\n\n renderBody(): TemplateResult {\n const method = this.form._embedded?.['fx:shipping_method'];\n\n return html`\n ${['method', 'container', 'drop_type'].map(tgt => {\n const curie = `fx:shipping_${tgt}` as keyof Data['_embedded'];\n const prop = `shipping_${tgt}_uri` as keyof Data;\n\n if (this.form._embedded?.[curie] || !this.form[prop]) return;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${this.form[prop]}\n @update=${(evt: CustomEvent) => {\n const loader = evt.currentTarget as NucleonElement<any>;\n const data = loader.data;\n\n if (data) {\n const newEmbeds = { ...this.form._embedded, [curie]: data };\n this.edit({ _embedded: newEmbeds as Data['_embedded'] });\n }\n }}\n >\n </foxy-nucleon>\n `;\n })}\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n infer=\"shipping-method-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_method']}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { 'fx:shipping_method': selectedItem };\n\n this.edit({\n _embedded: newEmbeds as Data['_embedded'],\n shipping_container_uri: '',\n shipping_drop_type_uri: '',\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(method?._links['fx:shipping_containers'].href)}\n infer=\"shipping-container-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_container']}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { ...this.form._embedded, 'fx:shipping_container': selectedItem };\n this.edit({ _embedded: newEmbeds as Data['_embedded'] });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(method?._links['fx:shipping_drop_types'].href)}\n infer=\"shipping-drop-type-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_drop_type']}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { ...this.form._embedded, 'fx:shipping_drop_type': selectedItem };\n this.edit({ _embedded: newEmbeds as Data['_embedded'] });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"destinations\"\n .getValue=${this.__getDestinations}\n .setValue=${this.__setDestinations}\n .options=${this.__destinations}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-text-control infer=\"authentication-key\"> </foxy-internal-text-control>\n <foxy-internal-text-control infer=\"meter-number\"></foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=${method?.code === 'CUSTOM-ENDPOINT-POST' ? 'endpoint' : 'accountid'}\n property=\"accountid\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"password\"></foxy-internal-text-control>\n <foxy-internal-text-area-control infer=\"custom-code\"></foxy-internal-text-area-control>\n\n <foxy-internal-store-shipping-method-form-services-control infer=\"services\">\n </foxy-internal-store-shipping-method-form-services-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoreShippingMethodForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InternalAsyncComboBoxControl } from '../../internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl';\nimport type { Templates, Data } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'store-shipping-method-form';\nconst Base = TranslatableMixin(InternalForm, NS);\nconst getKbSize = (value: string) => new Blob([value]).size / 1024;\nconst isURL = (value: string) => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Form element for creating and editing store shipping methods (`fx:store_shipping_method`).\n *\n * @slot shipping-method-uri:before\n * @slot shipping-method-uri:after\n *\n * @slot shipping-container-uri:before\n * @slot shipping-container-uri:after\n *\n * @slot shipping-drop-type-uri:before\n * @slot shipping-drop-type-uri:after\n *\n * @slot destinations:before\n * @slot destinations:after\n *\n * @slot authentication-key:before\n * @slot authentication-key:after\n *\n * @slot meter-number:before\n * @slot meter-number:after\n *\n * @slot endpoint:before\n * @slot endpoint:after\n *\n * @slot accountid:before\n * @slot accountid:after\n *\n * @slot password:before\n * @slot password:after\n *\n * @slot custom-code:before\n * @slot custom-code:after\n *\n * @slot services:before\n * @slot services:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @element foxy-store-shipping-method-form\n * @since 1.21.0\n */\nexport class StoreShippingMethodForm extends Base<Data> {\n static get properties(): typeof Base['properties'] {\n return {\n ...super.properties,\n shippingMethods: { attribute: 'shipping-methods' },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ shipping_method_uri: v }) => (v && isURL(v)) || 'shipping-method-uri:v8n_required',\n ({ accountid: v }) => !v || v.length <= 50 || 'accountid:v8n_too_long',\n ({ password: v }) => !v || v.length <= 50 || 'password:v8n_too_long',\n ({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:v8n_too_long',\n ({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:v8n_too_long',\n ({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:v8n_too_long',\n\n form => {\n if (form._embedded?.['fx:shipping_method']?.code === 'CUSTOM-ENDPOINT-POST') {\n return (form.accountid && isURL(form.accountid)) || 'endpoint:v8n_required';\n } else {\n return true;\n }\n },\n\n form => {\n const url = form.shipping_container_uri;\n const code = form._embedded?.['fx:shipping_method']?.code;\n const codes = ['USPS', 'FedEx', 'UPS'];\n\n if (code && codes.includes(code)) {\n return (url && isURL(url)) || 'shipping-container-uri:v8n_required';\n } else {\n return true;\n }\n },\n\n form => {\n const url = form.shipping_drop_type_uri;\n const code = form._embedded?.['fx:shipping_method']?.code;\n const codes = ['FedEx', 'UPS'];\n\n if (code && codes.includes(code)) {\n return (url && isURL(url)) || 'shipping-drop-type-uri:v8n_required';\n } else {\n return true;\n }\n },\n ];\n }\n\n /** URL of the `fx:shipping_methods` property helper. */\n shippingMethods: string | null = null;\n\n /** Template render functions mapped to their name. */\n templates: Templates = {};\n\n private __destinations = [\n { value: 'domestic', label: 'domestic' },\n { value: 'international', label: 'international' },\n ];\n\n private __getDestinations = () => {\n const value: string[] = [];\n if (this.form.use_for_domestic) value.push('domestic');\n if (this.form.use_for_international) value.push('international');\n return value;\n };\n\n private __setDestinations = (newValue: string[]) => {\n this.edit({\n use_for_domestic: newValue.includes('domestic'),\n use_for_international: newValue.includes('international'),\n });\n };\n\n get hiddenSelector(): BooleanSelector {\n const code = this.form._embedded?.['fx:shipping_method'].code;\n if (!code) return new BooleanSelector('not=shipping-method-uri,timestamps,create,delete');\n\n const orgControls = ['shipping-container-uri', 'shipping-drop-type-uri', 'destinations'];\n const authControls = ['authentication-key', 'meter-number', 'accountid', 'password'];\n const codeToControls: Record<string, string[]> = {\n 'CUSTOM-ENDPOINT-POST': ['endpoint'],\n 'CUSTOM-CODE': ['custom-code'],\n 'CUSTOM': ['destinations', 'services'],\n 'FedEx': [...orgControls, ...authControls, 'services'],\n 'USPS': [...orgControls, 'services'],\n 'UPS': [...orgControls, ...authControls, 'services'],\n };\n\n if (codeToControls[code]) {\n const controls = codeToControls[code];\n const set = ['shipping-method-uri', ...controls, 'timestamps', 'delete', 'create'];\n return new BooleanSelector(`not=${set.join()} ${super.hiddenSelector}`);\n } else {\n return super.hiddenSelector;\n }\n }\n\n renderBody(): TemplateResult {\n const method = this.form._embedded?.['fx:shipping_method'];\n\n return html`\n ${['method', 'container', 'drop_type'].map(tgt => {\n const curie = `fx:shipping_${tgt}` as keyof Data['_embedded'];\n const prop = `shipping_${tgt}_uri` as keyof Data;\n\n if (this.form._embedded?.[curie] || !this.form[prop]) return;\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${this.form[prop]}\n @update=${(evt: CustomEvent) => {\n const loader = evt.currentTarget as NucleonElement<any>;\n const data = loader.data;\n\n if (data) {\n const newEmbeds = { ...this.form._embedded, [curie]: data };\n this.edit({ _embedded: newEmbeds as Data['_embedded'] });\n }\n }}\n >\n </foxy-nucleon>\n `;\n })}\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n infer=\"shipping-method-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_method'] ?? null}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { 'fx:shipping_method': selectedItem };\n type ShippingMethod = Data['_embedded']['fx:shipping_method'];\n\n this.edit({\n _embedded: newEmbeds as Data['_embedded'],\n shipping_container_uri: '',\n shipping_drop_type_uri: '',\n shipping_method_uri: (selectedItem as ShippingMethod)?._links.self.href ?? '',\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(method?._links['fx:shipping_containers'].href)}\n infer=\"shipping-container-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_container'] ?? null}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { ...this.form._embedded, 'fx:shipping_container': selectedItem };\n type ShippingContainer = Data['_embedded']['fx:shipping_container'];\n\n this.edit({\n shipping_container_uri: (selectedItem as ShippingContainer)?._links.self.href ?? '',\n _embedded: newEmbeds as Data['_embedded'],\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-value-path=\"_links.self.href\"\n item-label-path=\"name\"\n first=${ifDefined(method?._links['fx:shipping_drop_types'].href)}\n infer=\"shipping-drop-type-uri\"\n .selectedItem=${this.form._embedded?.['fx:shipping_drop_type'] ?? null}\n @selected-item-changed=${(evt: CustomEvent) => {\n const { selectedItem } = evt.currentTarget as InternalAsyncComboBoxControl;\n const newEmbeds = { ...this.form._embedded, 'fx:shipping_drop_type': selectedItem };\n type DropType = Data['_embedded']['fx:shipping_drop_type'];\n\n this.edit({\n shipping_drop_type_uri: (selectedItem as DropType)?._links.self.href ?? '',\n _embedded: newEmbeds as Data['_embedded'],\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"destinations\"\n .getValue=${this.__getDestinations}\n .setValue=${this.__setDestinations}\n .options=${this.__destinations}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-text-control infer=\"authentication-key\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"meter-number\"></foxy-internal-text-control>\n\n ${method?.code === 'CUSTOM-ENDPOINT-POST'\n ? html`\n <foxy-internal-text-control infer=\"endpoint\" property=\"accountid\">\n </foxy-internal-text-control>\n `\n : html`<foxy-internal-text-control infer=\"accountid\"></foxy-internal-text-control>`}\n\n <foxy-internal-password-control infer=\"password\"></foxy-internal-password-control>\n <foxy-internal-text-area-control infer=\"custom-code\"></foxy-internal-text-area-control>\n\n <foxy-internal-store-shipping-method-form-services-control infer=\"services\">\n </foxy-internal-store-shipping-method-form-services-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import '@polymer/iron-icons/maps-icons';
|
|
2
|
-
import '@polymer/iron-icon';
|
|
3
1
|
import '../../internal/InternalAsyncComboBoxControl/index';
|
|
4
2
|
import '../../internal/InternalCheckboxGroupControl/index';
|
|
5
3
|
import '../../internal/InternalTextAreaControl/index';
|
|
4
|
+
import '../../internal/InternalPasswordControl/index';
|
|
6
5
|
import '../../internal/InternalTextControl/index';
|
|
7
6
|
import '../../internal/InternalForm/index';
|
|
8
7
|
import '../NucleonElement/index';
|
|
9
|
-
import '../I18n/index';
|
|
10
8
|
import './internal/InternalStoreShippingMethodFormServicesControl/index';
|
|
11
9
|
import { StoreShippingMethodForm } from './StoreShippingMethodForm';
|
|
12
10
|
export { StoreShippingMethodForm };
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import '@polymer/iron-icons/maps-icons';
|
|
2
|
-
import '@polymer/iron-icon';
|
|
3
1
|
import "../../internal/InternalAsyncComboBoxControl/index.js";
|
|
4
2
|
import "../../internal/InternalCheckboxGroupControl/index.js";
|
|
5
3
|
import "../../internal/InternalTextAreaControl/index.js";
|
|
4
|
+
import "../../internal/InternalPasswordControl/index.js";
|
|
6
5
|
import "../../internal/InternalTextControl/index.js";
|
|
7
6
|
import "../../internal/InternalForm/index.js";
|
|
8
7
|
import "../NucleonElement/index.js";
|
|
9
|
-
import "../I18n/index.js";
|
|
10
8
|
import "./internal/InternalStoreShippingMethodFormServicesControl/index.js";
|
|
11
9
|
import { StoreShippingMethodForm } from "./StoreShippingMethodForm.js";
|
|
12
10
|
customElements.define('foxy-store-shipping-method-form', StoreShippingMethodForm);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/index.ts"],"names":[],"mappings":"AAAA,8DAA2D;AAC3D,8DAA2D;AAC3D,yDAAsD;AACtD,yDAAsD;AACtD,qDAAkD;AAClD,8CAA2C;AAE3C,oCAAiC;AAEjC,4EAAyE;AAEzE,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,cAAc,CAAC,MAAM,CAAC,iCAAiC,EAAE,uBAAuB,CAAC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncComboBoxControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalTextAreaControl/index';\nimport '../../internal/InternalPasswordControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../NucleonElement/index';\n\nimport './internal/InternalStoreShippingMethodFormServicesControl/index';\n\nimport { StoreShippingMethodForm } from './StoreShippingMethodForm';\n\ncustomElements.define('foxy-store-shipping-method-form', StoreShippingMethodForm);\n\nexport { StoreShippingMethodForm };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit-html';
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
2
|
import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
|
|
3
3
|
export declare class InternalStoreShippingMethodFormServicesControl extends InternalControl {
|
|
4
4
|
renderControl(): TemplateResult;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
1
|
import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
|
|
2
|
+
import { html } from 'lit-html';
|
|
3
3
|
export class InternalStoreShippingMethodFormServicesControl extends InternalControl {
|
|
4
4
|
renderControl() {
|
|
5
5
|
var _a, _b;
|
|
@@ -14,14 +14,14 @@ export class InternalStoreShippingMethodFormServicesControl extends InternalCont
|
|
|
14
14
|
<foxy-i18n
|
|
15
15
|
class="block text-s font-medium text-secondary leading-none mb-s"
|
|
16
16
|
infer=""
|
|
17
|
-
key="
|
|
17
|
+
key="label"
|
|
18
18
|
>
|
|
19
19
|
</foxy-i18n>
|
|
20
20
|
|
|
21
21
|
<foxy-internal-store-shipping-method-form-services-page
|
|
22
22
|
store-shipping-services-uri=${data._links['fx:store_shipping_services'].href}
|
|
23
23
|
shipping-method-uri=${data._links['fx:shipping_method'].href}
|
|
24
|
-
class="border border-contrast-10 rounded
|
|
24
|
+
class="border border-contrast-10 rounded mb-s"
|
|
25
25
|
infer=""
|
|
26
26
|
?international-allowed=${!!form.use_for_international}
|
|
27
27
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalStoreShippingMethodFormServicesControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InternalStoreShippingMethodFormServicesControl.js","sourceRoot":"","sources":["../../../../../../src/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,8CAA+C,SAAQ,eAAe;IACjF,aAAa;;QACX,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAY,CAAC;QACxC,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAqB,CAAC;QAEjD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAA;+BACgB,QAAQ,CAAC,QAAQ,EAAE;;;;;;;;;wCASV,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI;gCACtD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI;;;mCAGnC,CAAC,CAAC,IAAI,CAAC,qBAAqB;;;;KAI1D,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from '../../types';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { html } from 'lit-html';\n\nexport class InternalStoreShippingMethodFormServicesControl extends InternalControl {\n renderControl(): TemplateResult {\n const data = this.nucleon?.data as Data;\n const form = this.nucleon?.form as Partial<Data>;\n\n if (!data) return html``;\n\n const firstURL = new URL(data._links['fx:shipping_services'].href);\n firstURL.searchParams.set('limit', '10');\n\n return html`\n <foxy-pagination first=${firstURL.toString()} infer=\"\">\n <foxy-i18n\n class=\"block text-s font-medium text-secondary leading-none mb-s\"\n infer=\"\"\n key=\"label\"\n >\n </foxy-i18n>\n\n <foxy-internal-store-shipping-method-form-services-page\n store-shipping-services-uri=${data._links['fx:store_shipping_services'].href}\n shipping-method-uri=${data._links['fx:shipping_method'].href}\n class=\"border border-contrast-10 rounded mb-s\"\n infer=\"\"\n ?international-allowed=${!!form.use_for_international}\n >\n </foxy-internal-store-shipping-method-form-services-page>\n </foxy-pagination>\n `;\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import type { Resource } from '@foxy.io/sdk/core';
|
|
4
|
+
import type { Rels } from '@foxy.io/sdk/backend';
|
|
2
5
|
import { NucleonElement } from '../../../NucleonElement/NucleonElement';
|
|
3
|
-
import { PropertyDeclarations } from 'lit-element';
|
|
4
|
-
import { Rels } from '@foxy.io/sdk/backend';
|
|
5
|
-
import { Resource } from '@foxy.io/sdk/core';
|
|
6
6
|
declare type Data = Resource<Rels.ShippingServices>;
|
|
7
7
|
declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../../../mixins/translatable").TranslatableMixinHost> & {
|
|
8
8
|
defaultNS: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
1
|
import { ConfigurableMixin } from "../../../../../mixins/configurable.js";
|
|
3
|
-
import { NucleonElement } from "../../../NucleonElement/NucleonElement.js";
|
|
4
|
-
import { ThemeableMixin } from "../../../../../mixins/themeable.js";
|
|
5
2
|
import { TranslatableMixin } from "../../../../../mixins/translatable.js";
|
|
6
|
-
import {
|
|
3
|
+
import { ThemeableMixin } from "../../../../../mixins/themeable.js";
|
|
4
|
+
import { NucleonElement } from "../../../NucleonElement/NucleonElement.js";
|
|
7
5
|
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
6
|
+
import { classMap } from "../../../../../utils/class-map.js";
|
|
7
|
+
import { html } from 'lit-html';
|
|
8
8
|
const Base = ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement)));
|
|
9
9
|
export class InternalStoreShippingMethodFormServicesPage extends Base {
|
|
10
10
|
constructor() {
|
|
@@ -16,9 +16,9 @@ export class InternalStoreShippingMethodFormServicesPage extends Base {
|
|
|
16
16
|
static get properties() {
|
|
17
17
|
return {
|
|
18
18
|
...super.properties,
|
|
19
|
-
storeShippingServicesUri: {
|
|
19
|
+
storeShippingServicesUri: { attribute: 'store-shipping-services-uri' },
|
|
20
20
|
internationalAllowed: { type: Boolean, attribute: 'international-allowed' },
|
|
21
|
-
shippingMethodUri: {
|
|
21
|
+
shippingMethodUri: { attribute: 'shipping-method-uri' },
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalStoreShippingMethodFormServicesPage.js","sourceRoot":"","sources":["../../../../../../src/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InternalStoreShippingMethodFormServicesPage.js","sourceRoot":"","sources":["../../../../../../src/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { ConfigurableMixin } from '../../../../../mixins/configurable';\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { ThemeableMixin } from '../../../../../mixins/themeable';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../../../utils/class-map';\nimport { html } from 'lit-html';\n\ntype Data = Resource<Rels.ShippingServices>;\nconst Base = ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement)));\n\nexport class InternalStoreShippingMethodFormServicesPage extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n storeShippingServicesUri: { attribute: 'store-shipping-services-uri' },\n internationalAllowed: { type: Boolean, attribute: 'international-allowed' },\n shippingMethodUri: { attribute: 'shipping-method-uri' },\n };\n }\n\n storeShippingServicesUri: string | null = null;\n\n internationalAllowed = false;\n\n shippingMethodUri: string | null = null;\n\n render(): TemplateResult {\n const services = this.data?._embedded['fx:shipping_services'] ?? [];\n let limit = 20;\n\n try {\n const limitFromHref = parseInt(new URL(this.href).searchParams.get('limit') ?? '');\n if (!isNaN(limitFromHref)) limit = limitFromHref;\n } catch {\n // invalid URL, use the default\n }\n\n return html`\n <div class=\"relative\">\n <div class=\"relative divide-y divide-contrast-10 ml-m\">\n ${new Array(limit).fill(0).map((_, index) => {\n const service = services[index];\n let href: string | undefined = undefined;\n\n if (service) {\n try {\n const storeShippingServiceURL = new URL(this.storeShippingServicesUri ?? '');\n const shippingServiceURL = new URL(service._links.self.href);\n const shippingServiceID = shippingServiceURL.pathname.split('/').pop() as string;\n\n storeShippingServiceURL.searchParams.set('shipping_service_id', shippingServiceID);\n storeShippingServiceURL.searchParams.set('limit', '1');\n\n href = storeShippingServiceURL.toString();\n } catch {\n // invalid URL, ignore\n }\n }\n\n if (!href) return html`<div class=\"h-l\"></div>`;\n\n return html`\n <foxy-internal-store-shipping-method-form-services-page-item\n shipping-service-uri=${service._links.self.href}\n shipping-method-uri=${ifDefined(this.shippingMethodUri ?? void 0)}\n data-testclass=\"item\"\n class=\"h-l truncate\"\n infer=\"\"\n href=${href}\n ?international-allowed=${this.internationalAllowed}\n >\n ${service?.name}\n ${service.is_international\n ? html`<foxy-i18n infer=\"\" slot=\"suffix\" key=\"international_only\"></foxy-i18n>`\n : ''}\n </foxy-internal-store-shipping-method-form-services-page-item>\n `;\n })}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto p-m bg-base rounded-t-l rounded-b-l shadow-xs\"\n infer=\"\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PropertyDeclarations } from 'lit-element';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import type { Resource } from '@foxy.io/sdk/core';
|
|
4
|
+
import type { Rels } from '@foxy.io/sdk/backend';
|
|
2
5
|
import { NucleonElement } from '../../../NucleonElement/NucleonElement';
|
|
3
|
-
import { PropertyDeclarations } from 'lit-element';
|
|
4
|
-
import { Rels } from '@foxy.io/sdk/backend';
|
|
5
|
-
import { Resource } from '@foxy.io/sdk/core';
|
|
6
6
|
declare type Data = Resource<Rels.StoreShippingServices>;
|
|
7
7
|
declare const Base: typeof NucleonElement & {
|
|
8
8
|
styles: import("lit-element").CSSResultArray;
|