@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.
Files changed (41) hide show
  1. package/dist/cdn/foxy-address-card.js +85 -3
  2. package/dist/cdn/foxy-customer-portal.js +1 -1
  3. package/dist/cdn/foxy-customer.js +1 -1
  4. package/dist/cdn/foxy-item-category-form.js +1 -1
  5. package/dist/cdn/foxy-shipment-card.js +1 -1
  6. package/dist/cdn/foxy-store-form.js +1 -1
  7. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  8. package/dist/cdn/foxy-transaction.js +1 -1
  9. package/dist/cdn/shared-4979dca4.js +1 -0
  10. package/dist/cdn/translations/store-shipping-method-form/en.json +10 -10
  11. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.d.ts +84 -1
  12. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +88 -15
  13. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  14. package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js +1 -1
  15. package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControl/InternalItemCategoryFormTaxesControl.js.map +1 -1
  16. package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js +2 -2
  17. package/dist/elements/public/ItemCategoryForm/internal/InternalItemCategoryFormTaxesControlItem/InternalItemCategoryFormTaxesControlItem.js.map +1 -1
  18. package/dist/elements/public/ItemCategoryForm/types.d.ts +53 -1
  19. package/dist/elements/public/ItemCategoryForm/types.js.map +1 -1
  20. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +46 -1
  21. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +85 -29
  22. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
  23. package/dist/elements/public/StoreShippingMethodForm/index.d.ts +1 -3
  24. package/dist/elements/public/StoreShippingMethodForm/index.js +1 -3
  25. package/dist/elements/public/StoreShippingMethodForm/index.js.map +1 -1
  26. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.d.ts +1 -1
  27. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js +3 -3
  28. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesControl/InternalStoreShippingMethodFormServicesControl.js.map +1 -1
  29. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.d.ts +4 -4
  30. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js +6 -6
  31. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPage/InternalStoreShippingMethodFormServicesPage.js.map +1 -1
  32. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.d.ts +4 -4
  33. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js +3 -3
  34. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItem/InternalStoreShippingMethodFormServicesPageItem.js.map +1 -1
  35. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.d.ts +4 -4
  36. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js +3 -3
  37. package/dist/elements/public/StoreShippingMethodForm/internal/InternalStoreShippingMethodFormServicesPageItemContent/InternalStoreShippingMethodFormServicesPageItemContent.js.map +1 -1
  38. package/dist/elements/public/StoreShippingMethodForm/types.d.ts +33 -1
  39. package/dist/elements/public/StoreShippingMethodForm/types.js.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/cdn/shared-5b177708.js +0 -82
@@ -1,3 +1,55 @@
1
- import type { Rels } from '@foxy.io/sdk/backend';
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 { Rels } from '@foxy.io/sdk/backend';\nimport type { Resource } from '@foxy.io/sdk/core';\n\nexport type Data = Resource<Rels.ItemCategory>;\n"]}
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: { type: String, attribute: 'shipping-methods' },
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:required',
56
- ({ accountid: v }) => !v || v.length <= 50 || 'accountid:too_long',
57
- ({ password: v }) => !v || v.length <= 50 || 'password:too_long',
58
- ({ meter_number: v }) => !v || v.length <= 50 || 'meter-number:too_long',
59
- ({ authentication_key: v }) => !v || v.length <= 50 || 'authentication-key:too_long',
60
- ({ custom_code: v }) => !v || getKbSize(v) <= 64 || 'custom-code:too_long',
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:required';
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:required';
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:required';
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=${(_e = this.form._embedded) === null || _e === void 0 ? void 0 : _e['fx:shipping_container']}
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({ _embedded: newEmbeds });
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=${(_f = this.form._embedded) === null || _f === void 0 ? void 0 : _f['fx:shipping_drop_type']}
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({ _embedded: newEmbeds });
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"> </foxy-internal-text-control>
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
- <foxy-internal-text-control
206
- infer=${(method === null || method === void 0 ? void 0 : method.code) === 'CUSTOM-ENDPOINT-POST' ? 'endpoint' : 'accountid'}
207
- property="accountid"
208
- >
209
- </foxy-internal-text-control>
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-text-control infer="password"></foxy-internal-text-control>
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":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,4BAA4B,CAAC;AACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACjD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACnE,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE;IAC9B,IAAI;QACF,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;KACb;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAU;IAAvD;;QAmDE,wDAAwD;QACxD,oBAAe,GAAkB,IAAI,CAAC;QAEtC,sDAAsD;QACtD,cAAS,GAAc,EAAE,CAAC;QAElB,mBAAc,GAAG;YACvB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;SACnD,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC;gBACR,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC/C,qBAAqB,EAAE,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC,CAAC;IA6IJ,CAAC;IAtNC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,eAAe,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,kCAAkC;YACrF,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,wBAAwB;YACtE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,uBAAuB;YACpE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,2BAA2B;YAC5E,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,iCAAiC;YACxF,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,0BAA0B;YAE9E,IAAI,CAAC,EAAE;;gBACL,IAAI,aAAA,IAAI,CAAC,SAAS,0CAAG,oBAAoB,2CAAG,IAAI,MAAK,sBAAsB,EAAE;oBAC3E,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,uBAAuB,CAAC;iBAC7E;qBAAM;oBACL,OAAO,IAAI,CAAC;iBACb;YACH,CAAC;YAED,IAAI,CAAC,EAAE;;gBACL,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC;gBACxC,MAAM,IAAI,eAAG,IAAI,CAAC,SAAS,0CAAG,oBAAoB,2CAAG,IAAI,CAAC;gBAC1D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAEvC,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAChC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,qCAAqC,CAAC;iBACrE;qBAAM;oBACL,OAAO,IAAI,CAAC;iBACb;YACH,CAAC;YAED,IAAI,CAAC,EAAE;;gBACL,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC;gBACxC,MAAM,IAAI,eAAG,IAAI,CAAC,SAAS,0CAAG,oBAAoB,2CAAG,IAAI,CAAC;gBAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAE/B,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAChC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,qCAAqC,CAAC;iBACrE;qBAAM;oBACL,OAAO,IAAI,CAAC;iBACb;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IA2BD,IAAI,cAAc;;QAChB,MAAM,IAAI,SAAG,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,oBAAoB,EAAE,IAAI,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,eAAe,CAAC,kDAAkD,CAAC,CAAC;QAE1F,MAAM,WAAW,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,cAAc,CAAC,CAAC;QACzF,MAAM,YAAY,GAAG,CAAC,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACrF,MAAM,cAAc,GAA6B;YAC/C,sBAAsB,EAAE,CAAC,UAAU,CAAC;YACpC,aAAa,EAAE,CAAC,aAAa,CAAC;YAC9B,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;YACtC,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,UAAU,CAAC;YACtD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC;YACpC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,UAAU,CAAC;SACrD,CAAC;QAEF,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,CAAC,qBAAqB,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnF,OAAO,IAAI,eAAe,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;SACzE;aAAM;YACL,OAAO,KAAK,CAAC,cAAc,CAAC;SAC7B;IACH,CAAC;IAED,UAAU;;QACR,MAAM,MAAM,SAAG,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,oBAAoB,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAA;QACP,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;YAC/C,MAAM,KAAK,GAAG,eAAe,GAAG,EAA6B,CAAC;YAC9D,MAAM,IAAI,GAAG,YAAY,GAAG,MAAoB,CAAC;YAEjD,IAAI,OAAA,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,KAAK,MAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YAE7D,OAAO,IAAI,CAAA;;;;mBAIA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;sBACZ,CAAC,GAAgB,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,aAAoC,CAAC;gBACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEzB,IAAI,IAAI,EAAE;oBACR,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAA8B,EAAE,CAAC,CAAC;iBAC1D;YACH,CAAC;;;SAGJ,CAAC;QACJ,CAAC,CAAC;;;;;gBAKQ,SAAS,OAAC,IAAI,CAAC,eAAe,yCAAI,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAG,qBAAqB,EAAE,IAAI,CAAC;;wBAEzE,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,oBAAoB,oCAAK,IAAI;iCAC1C,CAAC,GAAgB,EAAE,EAAE;;YAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,aAA6C,CAAC;YAC3E,MAAM,SAAS,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;YAGzD,IAAI,CAAC,IAAI,CAAC;gBACR,SAAS,EAAE,SAA8B;gBACzC,sBAAsB,EAAE,EAAE;gBAC1B,sBAAsB,EAAE,EAAE;gBAC1B,mBAAmB,cAAG,YAA+B,0CAAE,MAAM,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE;aAC9E,CAAC,CAAC;QACL,CAAC;;;;;;;gBAOO,SAAS,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC;;wBAEhD,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,uBAAuB,oCAAK,IAAI;iCAC7C,CAAC,GAAgB,EAAE,EAAE;;YAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,aAA6C,CAAC;YAC3E,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC;YAGpF,IAAI,CAAC,IAAI,CAAC;gBACR,sBAAsB,cAAG,YAAkC,0CAAE,MAAM,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE;gBACnF,SAAS,EAAE,SAA8B;aAC1C,CAAC,CAAC;QACL,CAAC;;;;;;;gBAOO,SAAS,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC;;wBAEhD,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,0CAAG,uBAAuB,oCAAK,IAAI;iCAC7C,CAAC,GAAgB,EAAE,EAAE;;YAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,aAA6C,CAAC;YAC3E,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC;YAGpF,IAAI,CAAC,IAAI,CAAC;gBACR,sBAAsB,cAAG,YAAyB,0CAAE,MAAM,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE;gBAC1E,SAAS,EAAE,SAA8B;aAC1C,CAAC,CAAC;QACL,CAAC;;;;;;oBAMW,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,iBAAiB;mBACvB,IAAI,CAAC,cAAc;;;;;;;QAO9B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,sBAAsB;YACvC,CAAC,CAAC,IAAI,CAAA;;;WAGH;YACH,CAAC,CAAC,IAAI,CAAA,6EAA6E;;;;;;;;QAQnF,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;CACF","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,OAAO,gCAAgC,CAAC;AACxC,OAAO,oBAAoB,CAAC;AAE5B,8DAA2D;AAC3D,8DAA2D;AAC3D,yDAAsD;AACtD,qDAAkD;AAClD,8CAA2C;AAE3C,oCAAiC;AACjC,0BAAuB;AAEvB,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 '@polymer/iron-icons/maps-icons';\nimport '@polymer/iron-icon';\n\nimport '../../internal/InternalAsyncComboBoxControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalTextAreaControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../NucleonElement/index';\nimport '../I18n/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
+ {"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="header"
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-t-l rounded-b-l mb-s"
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":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,gEAA6D;AAGvF,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 { html, TemplateResult } from 'lit-html';\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { Data } from '../../types';\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=\"header\"\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-t-l rounded-b-l 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
+ {"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 { TemplateResult } from 'lit-html';
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 { classMap } from "../../../../../utils/class-map.js";
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: { type: String, attribute: 'store-shipping-services-uri' },
19
+ storeShippingServicesUri: { attribute: 'store-shipping-services-uri' },
20
20
  internationalAllowed: { type: Boolean, attribute: 'international-allowed' },
21
- shippingMethodUri: { type: String, attribute: 'shipping-method-uri' },
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":"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","sourcesContent":["import { TemplateResult, html } from 'lit-html';\nimport { ConfigurableMixin } from '../../../../../mixins/configurable';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ThemeableMixin } from '../../../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { classMap } from '../../../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\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: { type: String, attribute: 'store-shipping-services-uri' },\n internationalAllowed: { type: Boolean, attribute: 'international-allowed' },\n shippingMethodUri: { type: String, 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
+ {"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 { TemplateResult } from 'lit-html';
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;