@foxy.io/elements 1.30.0 → 1.31.0-beta.1

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 (54) hide show
  1. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  2. package/dist/cdn/foxy-cart-form.js +1 -1
  3. package/dist/cdn/foxy-coupon-form.js +1 -1
  4. package/dist/cdn/foxy-customer-form.js +1 -1
  5. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  6. package/dist/cdn/foxy-customer-portal.js +1 -1
  7. package/dist/cdn/foxy-customer.js +1 -1
  8. package/dist/cdn/foxy-gift-card-form.js +1 -1
  9. package/dist/cdn/foxy-item-category-form.js +1 -1
  10. package/dist/cdn/foxy-item-form.js +1 -1
  11. package/dist/cdn/foxy-native-integration-form.js +1 -1
  12. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  13. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  14. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  15. package/dist/cdn/foxy-store-card.js +1 -1
  16. package/dist/cdn/foxy-store-form.js +1 -1
  17. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  18. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  19. package/dist/cdn/foxy-transaction.js +1 -1
  20. package/dist/cdn/foxy-webhook-form.js +1 -1
  21. package/dist/cdn/shared-1d4fdfa8.js +1 -0
  22. package/dist/cdn/shared-cc8b47c6.js +1 -0
  23. package/dist/cdn/shared-fcbf196e.js +1 -0
  24. package/dist/cdn/translations/store-card/en.json +3 -1
  25. package/dist/cdn/translations/store-shipping-method-form/en.json +157 -127
  26. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.d.ts +2 -0
  27. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +56 -35
  28. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -1
  29. package/dist/elements/internal/InternalAsyncResourceLinkListControl/types.d.ts +18 -0
  30. package/dist/elements/internal/InternalAsyncResourceLinkListControl/types.js +2 -0
  31. package/dist/elements/internal/InternalAsyncResourceLinkListControl/types.js.map +1 -0
  32. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.d.ts +1 -0
  33. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js +4 -0
  34. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js.map +1 -1
  35. package/dist/elements/internal/InternalPasswordControl/index.d.ts +1 -0
  36. package/dist/elements/internal/InternalPasswordControl/index.js +1 -0
  37. package/dist/elements/internal/InternalPasswordControl/index.js.map +1 -1
  38. package/dist/elements/internal/InternalPasswordControl/vaadinStyles.d.ts +1 -0
  39. package/dist/elements/internal/InternalPasswordControl/vaadinStyles.js +73 -0
  40. package/dist/elements/internal/InternalPasswordControl/vaadinStyles.js.map +1 -0
  41. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js +7 -5
  42. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js.map +1 -1
  43. package/dist/elements/public/StoreCard/StoreCard.js +13 -1
  44. package/dist/elements/public/StoreCard/StoreCard.js.map +1 -1
  45. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +4 -3
  46. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +79 -63
  47. package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
  48. package/dist/elements/public/StoreShippingMethodForm/index.d.ts +2 -1
  49. package/dist/elements/public/StoreShippingMethodForm/index.js +2 -1
  50. package/dist/elements/public/StoreShippingMethodForm/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/cdn/shared-40c6b1f6.js +0 -1
  53. package/dist/cdn/shared-96a392d9.js +0 -1
  54. package/dist/cdn/shared-b980ba1d.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalPasswordControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/InternalPasswordControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,uBAAuB;IAApE;;QASE,qBAAgB,GAA4B,IAAI,CAAC;QAEjD,sDAAsD;QACtD,kBAAa,GAAG,KAAK,CAAC;IAsDxB,CAAC;IAjEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE;YAClE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE;SAC9D,CAAC;IACJ,CAAC;IAOD,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAqC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC;;UAEC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE;;KAEvD,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAA;;;gBAGC,QAAQ,CAAC;YACf,2EAA2E,EAAE,IAAI;YACjF,yCAAyC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC3E,kBAAkB,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;SACnD,CAAC;;iBAEO,GAAG,EAAE;;YACZ,IAAI,CAAC,MAAM,GAAG,sBAAsB,OAAC,IAAI,CAAC,gBAAgB,mCAAI,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACrE,oFAAoF;YACpF,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,CAAC,IAAI,EAAE;QACnC,CAAC;;UAEC,GAAG,CAAA,g1BAAg1B;;KAEx1B,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { PasswordFieldElement } from '@vaadin/vaadin-text-field/vaadin-password-field';\nimport type { GeneratorOptions } from './generateRandomPassword';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { generateRandomPassword } from './generateRandomPassword';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\n\n/**\n * Internal control displaying a basic password box.\n *\n * @since 1.17.0\n * @element foxy-internal-password-field-control\n */\nexport class InternalPasswordControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n generatorOptions: { type: Object, attribute: 'generator-options' },\n showGenerator: { type: Boolean, attribute: 'show-generator' },\n };\n }\n\n generatorOptions: null | GeneratorOptions = null;\n\n /** If true, renders the password generator button. */\n showGenerator = false;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-password-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const area = evt.currentTarget as PasswordFieldElement;\n this._value = area.value;\n }}\n >\n ${this.showGenerator ? this.__renderGenerator() : ''}\n </vaadin-password-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n\n private __renderGenerator(): TemplateResult {\n return html`\n <div\n data-testid=\"generator\"\n class=${classMap({\n 'w-s h-s flex items-center justify-center cursor-default transition-colors': true,\n 'text-contrast-60 hover-text-contrast-80': !this.disabled && !this.readonly,\n 'text-contrast-20': this.disabled || this.readonly,\n })}\n slot=\"suffix\"\n @click=${() => {\n this._value = generateRandomPassword(this.generatorOptions ?? void 0);\n const field = this.renderRoot.querySelector('vaadin-password-field');\n // @ts-expect-error: this is a private method but it's ok since the version is fixed\n field?._setPasswordVisible(true);\n }}\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1.15em; height: 1.15em\"><path d=\"M15.98 1.804a1 1 0 00-1.96 0l-.24 1.192a1 1 0 01-.784.785l-1.192.238a1 1 0 000 1.962l1.192.238a1 1 0 01.785.785l.238 1.192a1 1 0 001.962 0l.238-1.192a1 1 0 01.785-.785l1.192-.238a1 1 0 000-1.962l-1.192-.238a1 1 0 01-.785-.785l-.238-1.192zM6.949 5.684a1 1 0 00-1.898 0l-.683 2.051a1 1 0 01-.633.633l-2.051.683a1 1 0 000 1.898l2.051.684a1 1 0 01.633.632l.683 2.051a1 1 0 001.898 0l.683-2.051a1 1 0 01.633-.633l2.051-.683a1 1 0 000-1.898l-2.051-.683a1 1 0 01-.633-.633L6.95 5.684zM13.949 13.684a1 1 0 00-1.898 0l-.184.551a1 1 0 01-.632.633l-.551.183a1 1 0 000 1.898l.551.183a1 1 0 01.633.633l.183.551a1 1 0 001.898 0l.184-.551a1 1 0 01.632-.633l.551-.183a1 1 0 000-1.898l-.551-.184a1 1 0 01-.633-.632l-.183-.551z\" /></svg>`}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalPasswordControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/InternalPasswordControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,uBAAuB;IAApE;;QAUE,qBAAgB,GAA4B,IAAI,CAAC;QAEjD,sDAAsD;QACtD,kBAAa,GAAG,KAAK,CAAC;QAEtB,WAAM,GAAyC,IAAI,CAAC;IAuDtD,CAAC;IArEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE;YAClE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE;YAC7D,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IASD,aAAa;;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;gBACV,SAAS,OAAC,IAAI,CAAC,MAAM,mCAAI,KAAK,CAAC,CAAC;;oBAE5B,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAqC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC;;UAEC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE;;KAEvD,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAA;;;gBAGC,QAAQ,CAAC;YACf,2EAA2E,EAAE,IAAI;YACjF,yCAAyC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC3E,kBAAkB,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;SACnD,CAAC;;iBAEO,GAAG,EAAE;;YACZ,IAAI,CAAC,MAAM,GAAG,sBAAsB,OAAC,IAAI,CAAC,gBAAgB,mCAAI,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACrE,oFAAoF;YACpF,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,CAAC,IAAI,EAAE;QACnC,CAAC;;UAEC,GAAG,CAAA,g1BAAg1B;;KAEx1B,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { PasswordFieldElement } from '@vaadin/vaadin-text-field/vaadin-password-field';\nimport type { GeneratorOptions } from './generateRandomPassword';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { generateRandomPassword } from './generateRandomPassword';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\n\n/**\n * Internal control displaying a basic password box.\n *\n * @since 1.17.0\n * @element foxy-internal-password-field-control\n */\nexport class InternalPasswordControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n generatorOptions: { type: Object, attribute: 'generator-options' },\n showGenerator: { type: Boolean, attribute: 'show-generator' },\n layout: {},\n };\n }\n\n generatorOptions: null | GeneratorOptions = null;\n\n /** If true, renders the password generator button. */\n showGenerator = false;\n\n layout: 'standalone' | 'summary-item' | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-password-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n theme=${ifDefined(this.layout ?? void 0)}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const area = evt.currentTarget as PasswordFieldElement;\n this._value = area.value;\n }}\n >\n ${this.showGenerator ? this.__renderGenerator() : ''}\n </vaadin-password-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n\n private __renderGenerator(): TemplateResult {\n return html`\n <div\n data-testid=\"generator\"\n class=${classMap({\n 'w-s h-s flex items-center justify-center cursor-default transition-colors': true,\n 'text-contrast-60 hover-text-contrast-80': !this.disabled && !this.readonly,\n 'text-contrast-20': this.disabled || this.readonly,\n })}\n slot=\"suffix\"\n @click=${() => {\n this._value = generateRandomPassword(this.generatorOptions ?? void 0);\n const field = this.renderRoot.querySelector('vaadin-password-field');\n // @ts-expect-error: this is a private method but it's ok since the version is fixed\n field?._setPasswordVisible(true);\n }}\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1.15em; height: 1.15em\"><path d=\"M15.98 1.804a1 1 0 00-1.96 0l-.24 1.192a1 1 0 01-.784.785l-1.192.238a1 1 0 000 1.962l1.192.238a1 1 0 01.785.785l.238 1.192a1 1 0 001.962 0l.238-1.192a1 1 0 01.785-.785l1.192-.238a1 1 0 000-1.962l-1.192-.238a1 1 0 01-.785-.785l-.238-1.192zM6.949 5.684a1 1 0 00-1.898 0l-.683 2.051a1 1 0 01-.633.633l-2.051.683a1 1 0 000 1.898l2.051.684a1 1 0 01.633.632l.683 2.051a1 1 0 001.898 0l.683-2.051a1 1 0 01.633-.633l2.051-.683a1 1 0 000-1.898l-2.051-.683a1 1 0 01-.633-.633L6.95 5.684zM13.949 13.684a1 1 0 00-1.898 0l-.184.551a1 1 0 01-.632.633l-.551.183a1 1 0 000 1.898l.551.183a1 1 0 01.633.633l.183.551a1 1 0 001.898 0l.184-.551a1 1 0 01.632-.633l.551-.183a1 1 0 000-1.898l-.551-.184a1 1 0 01-.633-.632l-.183-.551z\" /></svg>`}\n </div>\n `;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import '@vaadin/vaadin-text-field/vaadin-password-field';
2
2
  import '../InternalEditableControl/index';
3
+ import './vaadinStyles';
3
4
  import { InternalPasswordControl as Control } from './InternalPasswordControl';
4
5
  export { Control as InternalPasswordControl };
@@ -1,5 +1,6 @@
1
1
  import '@vaadin/vaadin-text-field/vaadin-password-field';
2
2
  import "../InternalEditableControl/index.js";
3
+ import "./vaadinStyles.js";
3
4
  import { InternalPasswordControl as Control } from "./InternalPasswordControl.js";
4
5
  customElements.define('foxy-internal-password-control', Control);
5
6
  export { Control as InternalPasswordControl };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,iDAAiD,CAAC;AACzD,6CAA0C;AAC1C,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,qCAAkC;AAE/E,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-password-field';\nimport '../InternalEditableControl/index';\nimport { InternalPasswordControl as Control } from './InternalPasswordControl';\n\ncustomElements.define('foxy-internal-password-control', Control);\n\nexport { Control as InternalPasswordControl };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,iDAAiD,CAAC;AACzD,6CAA0C;AAC1C,2BAAwB;AAExB,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,qCAAkC;AAE/E,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-password-field';\nimport '../InternalEditableControl/index';\nimport './vaadinStyles';\n\nimport { InternalPasswordControl as Control } from './InternalPasswordControl';\n\ncustomElements.define('foxy-internal-password-control', Control);\n\nexport { Control as InternalPasswordControl };\n"]}
@@ -0,0 +1,73 @@
1
+ import { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';
2
+ import { css } from 'lit-element';
3
+ registerStyles('vaadin-password-field', css `:host([theme~='summary-item'])::before{
4
+ display:none;
5
+ }
6
+
7
+ :host([theme~='summary-item']) .vaadin-text-field-container{
8
+ display:grid;
9
+ grid-template-columns:auto 1fr;
10
+ grid-template-rows:repeat(3, min-content);
11
+ gap:0 var(--lumo-space-m);
12
+ }
13
+
14
+ :host([theme~='summary-item']) [part='label']{
15
+ font:normal var(--lumo-font-size-m) var(--lumo-font-family);
16
+ color:var(--lumo-body-text-color) !important;
17
+ grid-row:1;
18
+ -webkit-text-fill-color:var(--lumo-body-text-color) !important;
19
+ }
20
+
21
+ :host([theme~='summary-item']) [part='helper-text']{
22
+ font:normal var(--lumo-font-size-s) var(--lumo-font-family);
23
+ color:var(--lumo-secondary-text-color) !important;
24
+ grid-row:2;
25
+ }
26
+
27
+ :host([theme~='summary-item']) [part='helper-text']::before{
28
+ display:none;
29
+ }
30
+
31
+ :host([theme~='summary-item']) [part='error-message']{
32
+ font:normal var(--lumo-font-size-s) var(--lumo-font-family);
33
+ color:var(--lumo-error-text-color);
34
+ grid-row:3;
35
+ }
36
+
37
+ :host([theme~='summary-item']) [part='error-message'],
38
+ :host([theme~='summary-item']) [part='helper-text'],
39
+ :host([theme~='summary-item']) [part='label']{
40
+ line-height:var(--lumo-line-height-xs);
41
+ grid-column:1;
42
+ padding:0;
43
+ }
44
+
45
+ :host([theme~='summary-item']) [part='input-field']{
46
+ grid-column:2;
47
+ grid-row:1;
48
+ padding:0;
49
+ background:transparent;
50
+ align-self:start;
51
+ height:1em;
52
+ --lumo-icon-size-m:1rem;
53
+ }
54
+
55
+ :host([theme~='summary-item']) [part='input-field']::after,
56
+ :host([theme~='summary-item'][readonly]) [part='input-field'] slot[name='suffix']{
57
+ display:none;
58
+ }
59
+
60
+ :host([theme~='summary-item']) [part='value']{
61
+ line-height:var(--lumo-line-height-xs);
62
+ text-align:right;
63
+ min-height:auto;
64
+ padding:0;
65
+ margin-right:var(--lumo-space-xs);
66
+ -webkit-mask-image:none;
67
+ }
68
+
69
+ :host([theme~='summary-item'][readonly]) [part='value']{
70
+ margin-right:0;
71
+ }
72
+ `);
73
+ //# sourceMappingURL=vaadinStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaadinStyles.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/vaadinStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,cAAc,CACZ,uBAAuB,EACvB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEF,CACF,CAAC","sourcesContent":["import { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\nimport { css } from 'lit-element';\n\nregisterStyles(\n 'vaadin-password-field',\n css`\n :host([theme~='summary-item'])::before {\n display: none;\n }\n\n :host([theme~='summary-item']) .vaadin-text-field-container {\n display: grid;\n grid-template-columns: auto 1fr;\n grid-template-rows: repeat(3, min-content);\n gap: 0 var(--lumo-space-m);\n }\n\n :host([theme~='summary-item']) [part='label'] {\n font: normal var(--lumo-font-size-m) var(--lumo-font-family);\n color: var(--lumo-body-text-color) !important;\n grid-row: 1;\n -webkit-text-fill-color: var(--lumo-body-text-color) !important;\n }\n\n :host([theme~='summary-item']) [part='helper-text'] {\n font: normal var(--lumo-font-size-s) var(--lumo-font-family);\n color: var(--lumo-secondary-text-color) !important;\n grid-row: 2;\n }\n\n :host([theme~='summary-item']) [part='helper-text']::before {\n display: none;\n }\n\n :host([theme~='summary-item']) [part='error-message'] {\n font: normal var(--lumo-font-size-s) var(--lumo-font-family);\n color: var(--lumo-error-text-color);\n grid-row: 3;\n }\n\n :host([theme~='summary-item']) [part='error-message'],\n :host([theme~='summary-item']) [part='helper-text'],\n :host([theme~='summary-item']) [part='label'] {\n line-height: var(--lumo-line-height-xs);\n grid-column: 1;\n padding: 0;\n }\n\n :host([theme~='summary-item']) [part='input-field'] {\n grid-column: 2;\n grid-row: 1;\n padding: 0;\n background: transparent;\n align-self: start;\n height: 1em;\n\n --lumo-icon-size-m: 1rem;\n }\n\n :host([theme~='summary-item']) [part='input-field']::after,\n :host([theme~='summary-item'][readonly]) [part='input-field'] slot[name='suffix'] {\n display: none;\n }\n\n :host([theme~='summary-item']) [part='value'] {\n line-height: var(--lumo-line-height-xs);\n text-align: right;\n min-height: auto;\n padding: 0;\n margin-right: var(--lumo-space-xs);\n -webkit-mask-image: none;\n }\n\n :host([theme~='summary-item'][readonly]) [part='value'] {\n margin-right: 0;\n }\n `\n);\n"]}
@@ -5,12 +5,9 @@ export class InternalSummaryControl extends InternalEditableControl {
5
5
  return [
6
6
  ...super.styles,
7
7
  css `::slotted(*){
8
+ background-color:var(--lumo-base-color);
8
9
  padding:calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);
9
10
  }
10
-
11
- ::slotted(:not(:first-child)){
12
- border-top:thin var(--foxy-border-style, solid) var(--lumo-contrast-10pct) !important;
13
- }
14
11
  `,
15
12
  ];
16
13
  }
@@ -20,7 +17,12 @@ export class InternalSummaryControl extends InternalEditableControl {
20
17
  renderControl() {
21
18
  return html `
22
19
  <p class="mb-xs font-medium text-secondary text-s" ?hidden=${!this.label}>${this.label}</p>
23
- <div class="border border-contrast-10 rounded"><slot></slot></div>
20
+ <div
21
+ class="rounded overflow-hidden border border-transparent grid bg-contrast-10"
22
+ style="gap: 1px"
23
+ >
24
+ <slot></slot>
25
+ </div>
24
26
  <p class="mt-xs text-xs text-secondary" ?hidden=${!this.helperText}>${this.helperText}</p>
25
27
  `;
26
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalSummaryControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSummaryControl/InternalSummaryControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,KAAK,CAAC,MAAM;YACf,GAAG;;;;;;;OAQF;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;IACT,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;mEACoD,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;;wDAEpC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;KACtF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { CSSResultArray } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\n\nexport class InternalSummaryControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n ::slotted(*) {\n padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\n }\n\n ::slotted(:not(:first-child)) {\n border-top: thin var(--foxy-border-style, solid) var(--lumo-contrast-10pct) !important;\n }\n `,\n ];\n }\n\n renderLightDom(): void {\n return;\n }\n\n renderControl(): TemplateResult {\n return html`\n <p class=\"mb-xs font-medium text-secondary text-s\" ?hidden=${!this.label}>${this.label}</p>\n <div class=\"border border-contrast-10 rounded\"><slot></slot></div>\n <p class=\"mt-xs text-xs text-secondary\" ?hidden=${!this.helperText}>${this.helperText}</p>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalSummaryControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSummaryControl/InternalSummaryControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,KAAK,CAAC,MAAM;YACf,GAAG;;;;OAKF;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;IACT,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;mEACoD,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;;;;;;;wDAOpC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;KACtF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { CSSResultArray } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\n\nexport class InternalSummaryControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n ::slotted(*) {\n background-color: var(--lumo-base-color);\n padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\n }\n `,\n ];\n }\n\n renderLightDom(): void {\n return;\n }\n\n renderControl(): TemplateResult {\n return html`\n <p class=\"mb-xs font-medium text-secondary text-s\" ?hidden=${!this.label}>${this.label}</p>\n <div\n class=\"rounded overflow-hidden border border-transparent grid bg-contrast-10\"\n style=\"gap: 1px\"\n >\n <slot></slot>\n </div>\n <p class=\"mt-xs text-xs text-secondary\" ?hidden=${!this.helperText}>${this.helperText}</p>\n `;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { TranslatableMixin } from "../../../mixins/translatable.js";
2
2
  import { TwoLineCard } from "../CustomFieldCard/TwoLineCard.js";
3
+ import { classMap } from "../../../utils/class-map.js";
3
4
  import { html } from 'lit-html';
4
5
  const NS = 'store-card';
5
6
  const Base = TranslatableMixin(TwoLineCard, NS);
@@ -27,7 +28,18 @@ export class StoreCard extends Base {
27
28
  subtitle: data => {
28
29
  const defaultD = this.defaultDomain;
29
30
  const domain = data === null || data === void 0 ? void 0 : data.store_domain;
30
- return html `${(domain === null || domain === void 0 ? void 0 : domain.includes('.')) || !defaultD ? domain : `${domain}.${defaultD}`}`;
31
+ return html `
32
+ <span
33
+ aria-label=${this.t(`status_${data.is_active ? 'active' : 'inactive'}`)}
34
+ style="width: 0.55em; height: 0.55em"
35
+ class=${classMap({
36
+ 'inline-block flex-shrink-0 rounded-full': true,
37
+ 'bg-success': data.is_active,
38
+ 'border border-contrast-50': !data.is_active,
39
+ })}
40
+ ></span>
41
+ ${(domain === null || domain === void 0 ? void 0 : domain.includes('.')) || !defaultD ? domain : `${domain}.${defaultD}`}
42
+ `;
31
43
  },
32
44
  });
33
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StoreCard.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreCard/StoreCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,WAAW,EAAE,0CAAuC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,YAAY,CAAC;AACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,IAAU;IAAzC;;QAQE,+FAA+F;QAC/F,kBAAa,GAAkB,IAAI,CAAC;IAYtC,CAAC;IApBC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,aAAa,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;SAC/C,CAAC;IACJ,CAAC;IAKD,UAAU;QACR,OAAO,KAAK,CAAC,UAAU,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,UAAU,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAC;gBAClC,OAAO,IAAI,CAAA,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,GAAG,MAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC;YACxF,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { html } from 'lit-html';\n\nconst NS = 'store-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Card element representing a `fx:store` resource.\n *\n * @element foxy-store-card\n * @since 1.22.0\n */\nexport class StoreCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultDomain: { attribute: 'default-domain' },\n };\n }\n\n /** Default host domain for stores that don't use a custom domain name, e.g. `foxycart.com`. */\n defaultDomain: string | null = null;\n\n renderBody(): TemplateResult {\n return super.renderBody({\n title: data => html`${data.store_name}`,\n subtitle: data => {\n const defaultD = this.defaultDomain;\n const domain = data?.store_domain;\n return html`${domain?.includes('.') || !defaultD ? domain : `${domain}.${defaultD}`}`;\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"StoreCard.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreCard/StoreCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,WAAW,EAAE,0CAAuC;AAC7D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,YAAY,CAAC;AACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,IAAU;IAAzC;;QAQE,+FAA+F;QAC/F,kBAAa,GAAkB,IAAI,CAAC;IAuBtC,CAAC;IA/BC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,aAAa,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;SAC/C,CAAC;IACJ,CAAC;IAKD,UAAU;QACR,OAAO,KAAK,CAAC,UAAU,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,UAAU,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAC;gBAClC,OAAO,IAAI,CAAA;;yBAEM,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;;oBAE/D,QAAQ,CAAC;oBACf,yCAAyC,EAAE,IAAI;oBAC/C,YAAY,EAAE,IAAI,CAAC,SAAS;oBAC5B,2BAA2B,EAAE,CAAC,IAAI,CAAC,SAAS;iBAC7C,CAAC;;YAEF,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,GAAG,MAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE;SACxE,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'store-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Card element representing a `fx:store` resource.\n *\n * @element foxy-store-card\n * @since 1.22.0\n */\nexport class StoreCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultDomain: { attribute: 'default-domain' },\n };\n }\n\n /** Default host domain for stores that don't use a custom domain name, e.g. `foxycart.com`. */\n defaultDomain: string | null = null;\n\n renderBody(): TemplateResult {\n return super.renderBody({\n title: data => html`${data.store_name}`,\n subtitle: data => {\n const defaultD = this.defaultDomain;\n const domain = data?.store_domain;\n return html`\n <span\n aria-label=${this.t(`status_${data.is_active ? 'active' : 'inactive'}`)}\n style=\"width: 0.55em; height: 0.55em\"\n class=${classMap({\n 'inline-block flex-shrink-0 rounded-full': true,\n 'bg-success': data.is_active,\n 'border border-contrast-50': !data.is_active,\n })}\n ></span>\n ${domain?.includes('.') || !defaultD ? domain : `${domain}.${defaultD}`}\n `;\n },\n });\n }\n}\n"]}
@@ -20,13 +20,14 @@ export declare class StoreShippingMethodForm extends Base<Data> {
20
20
  shippingMethods: string | null;
21
21
  private readonly __shippingMethodLoaderId;
22
22
  private readonly __shippingMethodUriSetValue;
23
- private readonly __destinationsGetValue;
24
- private readonly __destinationsSetValue;
25
- private readonly __destinationsOptions;
23
+ private __useCustomAccount;
24
+ private readonly __useCustomAccountGetValue;
25
+ private readonly __useCustomAccountSetValue;
26
26
  get hiddenSelector(): BooleanSelector;
27
27
  get headerSubtitleOptions(): Record<string, unknown>;
28
28
  get headerTitleOptions(): Record<string, unknown>;
29
29
  renderBody(): TemplateResult;
30
+ updated(changes: Map<keyof this, unknown>): void;
30
31
  private get __shippingMethodLoader();
31
32
  private get __shippingMethod();
32
33
  }
@@ -31,29 +31,31 @@ export class StoreShippingMethodForm extends Base {
31
31
  this.undo();
32
32
  this.edit({ shipping_method_uri: newValue });
33
33
  };
34
- this.__destinationsGetValue = () => {
35
- const value = [];
36
- if (this.form.use_for_domestic)
37
- value.push('domestic');
38
- if (this.form.use_for_international)
39
- value.push('international');
40
- return value;
34
+ this.__useCustomAccount = false;
35
+ this.__useCustomAccountGetValue = () => {
36
+ return Boolean(this.__useCustomAccount ||
37
+ this.form.authentication_key ||
38
+ this.form.meter_number ||
39
+ this.form.accountid ||
40
+ this.form.password);
41
41
  };
42
- this.__destinationsSetValue = (newValue) => {
43
- this.edit({
44
- use_for_domestic: newValue.includes('domestic'),
45
- use_for_international: newValue.includes('international'),
46
- });
42
+ this.__useCustomAccountSetValue = (value) => {
43
+ if (!value) {
44
+ this.edit({
45
+ authentication_key: '',
46
+ meter_number: '',
47
+ accountid: '',
48
+ password: '',
49
+ });
50
+ }
51
+ this.__useCustomAccount = value;
47
52
  };
48
- this.__destinationsOptions = [
49
- { value: 'domestic', label: 'domestic' },
50
- { value: 'international', label: 'international' },
51
- ];
52
53
  }
53
54
  static get properties() {
54
55
  return {
55
56
  ...super.properties,
56
57
  shippingMethods: { attribute: 'shipping-methods' },
58
+ __useCustomAccount: { attribute: false },
57
59
  };
58
60
  }
59
61
  static get v8n() {
@@ -104,20 +106,14 @@ export class StoreShippingMethodForm extends Base {
104
106
  const hasData = !!this.data;
105
107
  const code = (_a = this.__shippingMethod) === null || _a === void 0 ? void 0 : _a.code;
106
108
  // prettier-ignore
107
- let hiddenControls = 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password endpoint custom-code';
109
+ let hiddenControls = 'general:shipping-container-uri general:shipping-drop-type-uri destinations account endpoint custom-code';
108
110
  if (code) {
109
111
  const codeToHiddenControls = {
110
- // prettier-ignore
111
- 'CUSTOM-ENDPOINT-POST': 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password custom-code',
112
- // prettier-ignore
113
- 'CUSTOM-CODE': 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password endpoint',
114
- // prettier-ignore
115
- 'CUSTOM': 'shipping-container-uri shipping-drop-type-uri authentication-key meter-number accountid password endpoint custom-code',
116
- // prettier-ignore
112
+ 'CUSTOM-ENDPOINT-POST': 'general destinations account custom-code',
113
+ 'CUSTOM-CODE': 'general destinations account endpoint',
114
+ 'CUSTOM': 'general account endpoint custom-code',
117
115
  'FedEx': 'endpoint custom-code',
118
- // prettier-ignore
119
- 'USPS': 'authentication-key meter-number accountid password endpoint custom-code',
120
- // prettier-ignore
116
+ 'USPS': 'account endpoint custom-code',
121
117
  'UPS': 'endpoint custom-code',
122
118
  };
123
119
  if (codeToHiddenControls[code])
@@ -126,7 +122,10 @@ export class StoreShippingMethodForm extends Base {
126
122
  if (!hasData || (code === null || code === void 0 ? void 0 : code.startsWith('CUSTOM')))
127
123
  hiddenControls += ' services';
128
124
  if (hasData)
129
- hiddenControls = `shipping-method-uri ${hiddenControls}`;
125
+ hiddenControls = `general:shipping-method-uri ${hiddenControls}`;
126
+ // prettier-ignore
127
+ if (!this.__useCustomAccountGetValue())
128
+ hiddenControls += ' account:accountid account:password account:authentication-key account:meter-number';
130
129
  return new BooleanSelector(`${hiddenControls} ${super.hiddenSelector}`.trim());
131
130
  }
132
131
  get headerSubtitleOptions() {
@@ -142,47 +141,58 @@ export class StoreShippingMethodForm extends Base {
142
141
  return html `
143
142
  ${this.renderHeader()}
144
143
 
145
- <foxy-internal-resource-picker-control
146
- infer="shipping-method-uri"
147
- first=${ifDefined((_a = this.shippingMethods) !== null && _a !== void 0 ? _a : (_b = this.form._links) === null || _b === void 0 ? void 0 : _b['fx:shipping_methods'].href)}
148
- item="foxy-shipping-method-card"
149
- .setValue=${this.__shippingMethodUriSetValue}
150
- >
151
- </foxy-internal-resource-picker-control>
144
+ <foxy-internal-summary-control infer="general">
145
+ <foxy-internal-resource-picker-control
146
+ layout="summary-item"
147
+ infer="shipping-method-uri"
148
+ first=${ifDefined((_a = this.shippingMethods) !== null && _a !== void 0 ? _a : (_b = this.form._links) === null || _b === void 0 ? void 0 : _b['fx:shipping_methods'].href)}
149
+ item="foxy-shipping-method-card"
150
+ .setValue=${this.__shippingMethodUriSetValue}
151
+ >
152
+ </foxy-internal-resource-picker-control>
152
153
 
153
- <foxy-internal-resource-picker-control
154
- infer="shipping-container-uri"
155
- first=${ifDefined(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod._links['fx:shipping_containers'].href)}
156
- item="foxy-shipping-container-card"
157
- >
158
- </foxy-internal-resource-picker-control>
154
+ <foxy-internal-resource-picker-control
155
+ layout="summary-item"
156
+ infer="shipping-container-uri"
157
+ first=${ifDefined(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod._links['fx:shipping_containers'].href)}
158
+ item="foxy-shipping-container-card"
159
+ >
160
+ </foxy-internal-resource-picker-control>
159
161
 
160
- <foxy-internal-resource-picker-control
161
- infer="shipping-drop-type-uri"
162
- first=${ifDefined(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod._links['fx:shipping_drop_types'].href)}
163
- item="foxy-shipping-drop-type-card"
164
- >
165
- </foxy-internal-resource-picker-control>
162
+ <foxy-internal-resource-picker-control
163
+ layout="summary-item"
164
+ infer="shipping-drop-type-uri"
165
+ first=${ifDefined(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod._links['fx:shipping_drop_types'].href)}
166
+ item="foxy-shipping-drop-type-card"
167
+ >
168
+ </foxy-internal-resource-picker-control>
169
+ </foxy-internal-summary-control>
166
170
 
167
- <foxy-internal-checkbox-group-control
168
- infer="destinations"
169
- .getValue=${this.__destinationsGetValue}
170
- .setValue=${this.__destinationsSetValue}
171
- .options=${this.__destinationsOptions}
172
- >
173
- </foxy-internal-checkbox-group-control>
171
+ <foxy-internal-summary-control infer="destinations">
172
+ <foxy-internal-switch-control infer="use-for-domestic"></foxy-internal-switch-control>
173
+ <foxy-internal-switch-control infer="use-for-international"></foxy-internal-switch-control>
174
+ </foxy-internal-summary-control>
174
175
 
175
- <foxy-internal-text-control infer="authentication-key"></foxy-internal-text-control>
176
- <foxy-internal-text-control infer="meter-number"></foxy-internal-text-control>
176
+ <foxy-internal-summary-control infer="account">
177
+ <foxy-internal-switch-control
178
+ infer="use-custom-account"
179
+ .getValue=${this.__useCustomAccountGetValue}
180
+ .setValue=${this.__useCustomAccountSetValue}
181
+ >
182
+ </foxy-internal-switch-control>
183
+ <foxy-internal-text-control layout="summary-item" infer="authentication-key">
184
+ </foxy-internal-text-control>
185
+ <foxy-internal-text-control layout="summary-item" infer="meter-number">
186
+ </foxy-internal-text-control>
187
+ <foxy-internal-text-control layout="summary-item" infer="accountid">
188
+ </foxy-internal-text-control>
189
+ <foxy-internal-password-control layout="summary-item" infer="password">
190
+ </foxy-internal-password-control>
191
+ </foxy-internal-summary-control>
177
192
 
178
- ${(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod.code) === 'CUSTOM-ENDPOINT-POST'
179
- ? html `
180
- <foxy-internal-text-control infer="endpoint" property="accountid">
181
- </foxy-internal-text-control>
182
- `
183
- : html `<foxy-internal-text-control infer="accountid"></foxy-internal-text-control>`}
193
+ <foxy-internal-text-control infer="endpoint" property="accountid">
194
+ </foxy-internal-text-control>
184
195
 
185
- <foxy-internal-password-control infer="password"></foxy-internal-password-control>
186
196
  <foxy-internal-source-control infer="custom-code"></foxy-internal-source-control>
187
197
 
188
198
  <foxy-internal-async-resource-link-list-control
@@ -194,6 +204,7 @@ export class StoreShippingMethodForm extends Base {
194
204
  options-href=${ifDefined(shippingMethod === null || shippingMethod === void 0 ? void 0 : shippingMethod._links['fx:shipping_services'].href)}
195
205
  links-href=${ifDefined((_d = this.data) === null || _d === void 0 ? void 0 : _d._links['fx:store_shipping_services'].href)}
196
206
  infer="services"
207
+ limit="200"
197
208
  item="foxy-shipping-service-card"
198
209
  >
199
210
  </foxy-internal-async-resource-link-list-control>
@@ -214,6 +225,11 @@ export class StoreShippingMethodForm extends Base {
214
225
  ${super.renderBody()}
215
226
  `;
216
227
  }
228
+ updated(changes) {
229
+ super.updated(changes);
230
+ if (changes.has('href'))
231
+ this.__useCustomAccount = false;
232
+ }
217
233
  get __shippingMethodLoader() {
218
234
  return this.renderRoot.querySelector(`#${this.__shippingMethodLoaderId}`);
219
235
  }
@@ -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 { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\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\ntype Embed = { 'fx:shipping_method': Resource<Rels.ShippingMethod> } | undefined;\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(): PropertyDeclarations {\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 as Embed)?.['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 as Embed)?.['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 as Embed)?.['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 private readonly __shippingMethodLoaderId = 'shippingMethodLoader';\n\n private readonly __shippingMethodUriSetValue = (newValue: string) => {\n this.undo();\n this.edit({ shipping_method_uri: newValue });\n };\n\n private readonly __destinationsGetValue = () => {\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 readonly __destinationsSetValue = (newValue: string[]) => {\n this.edit({\n use_for_domestic: newValue.includes('domestic'),\n use_for_international: newValue.includes('international'),\n });\n };\n\n private readonly __destinationsOptions = [\n { value: 'domestic', label: 'domestic' },\n { value: 'international', label: 'international' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const hasData = !!this.data;\n const code = this.__shippingMethod?.code;\n\n // prettier-ignore\n let hiddenControls = 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password endpoint custom-code';\n\n if (code) {\n const codeToHiddenControls: Record<string, string> = {\n // prettier-ignore\n 'CUSTOM-ENDPOINT-POST': 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password custom-code',\n // prettier-ignore\n 'CUSTOM-CODE': 'shipping-container-uri shipping-drop-type-uri destinations authentication-key meter-number accountid password endpoint',\n // prettier-ignore\n 'CUSTOM': 'shipping-container-uri shipping-drop-type-uri authentication-key meter-number accountid password endpoint custom-code',\n // prettier-ignore\n 'FedEx': 'endpoint custom-code',\n // prettier-ignore\n 'USPS': 'authentication-key meter-number accountid password endpoint custom-code',\n // prettier-ignore\n 'UPS': 'endpoint custom-code',\n };\n\n if (codeToHiddenControls[code]) hiddenControls = codeToHiddenControls[code];\n }\n\n if (!hasData || code?.startsWith('CUSTOM')) hiddenControls += ' services';\n if (hasData) hiddenControls = `shipping-method-uri ${hiddenControls}`;\n\n return new BooleanSelector(`${hiddenControls} ${super.hiddenSelector}`.trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return { ...super.headerTitleOptions, provider: this.__shippingMethod?.name };\n }\n\n renderBody(): TemplateResult {\n const shippingMethod = this.__shippingMethod;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-resource-picker-control\n infer=\"shipping-method-uri\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n item=\"foxy-shipping-method-card\"\n .setValue=${this.__shippingMethodUriSetValue}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n infer=\"shipping-container-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_containers'].href)}\n item=\"foxy-shipping-container-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n infer=\"shipping-drop-type-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_drop_types'].href)}\n item=\"foxy-shipping-drop-type-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"destinations\"\n .getValue=${this.__destinationsGetValue}\n .setValue=${this.__destinationsSetValue}\n .options=${this.__destinationsOptions}\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 ${shippingMethod?.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-source-control infer=\"custom-code\"></foxy-internal-source-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"shipping_service_uri\"\n foreign-key-for-id=\"shipping_service_id\"\n own-key-for-uri=\"shipping_method_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:store_shipping_services\"\n options-href=${ifDefined(shippingMethod?._links['fx:shipping_services'].href)}\n links-href=${ifDefined(this.data?._links['fx:store_shipping_services'].href)}\n infer=\"services\"\n item=\"foxy-shipping-service-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.shipping_method_uri || undefined)}\n id=${this.__shippingMethodLoaderId}\n @update=${(evt: UpdateEvent) => {\n const nucleon = evt.target as NucleonElement<Resource<Rels.ShippingMethod>>;\n const embed = nucleon.data;\n this.edit({ _embedded: embed ? { 'fx:shipping_method': embed } : {} });\n }}\n >\n </foxy-nucleon>\n\n ${super.renderBody()}\n `;\n }\n\n private get __shippingMethodLoader() {\n type Loader = NucleonElement<Resource<Rels.ShippingMethod>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__shippingMethodLoaderId}`);\n }\n\n private get __shippingMethod() {\n return (\n this.__shippingMethodLoader?.data ?? (this.form._embedded as Embed)?.['fx:shipping_method']\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 { PropertyDeclarations } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\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\ntype Embed = { 'fx:shipping_method': Resource<Rels.ShippingMethod> } | undefined;\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(): PropertyDeclarations {\n return {\n ...super.properties,\n shippingMethods: { attribute: 'shipping-methods' },\n __useCustomAccount: { attribute: false },\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 as Embed)?.['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 as Embed)?.['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 as Embed)?.['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 private readonly __shippingMethodLoaderId = 'shippingMethodLoader';\n\n private readonly __shippingMethodUriSetValue = (newValue: string) => {\n this.undo();\n this.edit({ shipping_method_uri: newValue });\n };\n\n private __useCustomAccount = false;\n\n private readonly __useCustomAccountGetValue = () => {\n return Boolean(\n this.__useCustomAccount ||\n this.form.authentication_key ||\n this.form.meter_number ||\n this.form.accountid ||\n this.form.password\n );\n };\n\n private readonly __useCustomAccountSetValue = (value: boolean) => {\n if (!value) {\n this.edit({\n authentication_key: '',\n meter_number: '',\n accountid: '',\n password: '',\n });\n }\n\n this.__useCustomAccount = value;\n };\n\n get hiddenSelector(): BooleanSelector {\n const hasData = !!this.data;\n const code = this.__shippingMethod?.code;\n\n // prettier-ignore\n let hiddenControls = 'general:shipping-container-uri general:shipping-drop-type-uri destinations account endpoint custom-code';\n\n if (code) {\n const codeToHiddenControls: Record<string, string> = {\n 'CUSTOM-ENDPOINT-POST': 'general destinations account custom-code',\n 'CUSTOM-CODE': 'general destinations account endpoint',\n 'CUSTOM': 'general account endpoint custom-code',\n 'FedEx': 'endpoint custom-code',\n 'USPS': 'account endpoint custom-code',\n 'UPS': 'endpoint custom-code',\n };\n\n if (codeToHiddenControls[code]) hiddenControls = codeToHiddenControls[code];\n }\n\n if (!hasData || code?.startsWith('CUSTOM')) hiddenControls += ' services';\n if (hasData) hiddenControls = `general:shipping-method-uri ${hiddenControls}`;\n\n // prettier-ignore\n if (!this.__useCustomAccountGetValue()) hiddenControls += ' account:accountid account:password account:authentication-key account:meter-number';\n\n return new BooleanSelector(`${hiddenControls} ${super.hiddenSelector}`.trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return { ...super.headerTitleOptions, provider: this.__shippingMethod?.name };\n }\n\n renderBody(): TemplateResult {\n const shippingMethod = this.__shippingMethod;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-method-uri\"\n first=${ifDefined(this.shippingMethods ?? this.form._links?.['fx:shipping_methods'].href)}\n item=\"foxy-shipping-method-card\"\n .setValue=${this.__shippingMethodUriSetValue}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-container-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_containers'].href)}\n item=\"foxy-shipping-container-card\"\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n layout=\"summary-item\"\n infer=\"shipping-drop-type-uri\"\n first=${ifDefined(shippingMethod?._links['fx:shipping_drop_types'].href)}\n item=\"foxy-shipping-drop-type-card\"\n >\n </foxy-internal-resource-picker-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"destinations\">\n <foxy-internal-switch-control infer=\"use-for-domestic\"></foxy-internal-switch-control>\n <foxy-internal-switch-control infer=\"use-for-international\"></foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"account\">\n <foxy-internal-switch-control\n infer=\"use-custom-account\"\n .getValue=${this.__useCustomAccountGetValue}\n .setValue=${this.__useCustomAccountSetValue}\n >\n </foxy-internal-switch-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"authentication-key\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"meter-number\">\n </foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"accountid\">\n </foxy-internal-text-control>\n <foxy-internal-password-control layout=\"summary-item\" infer=\"password\">\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-text-control infer=\"endpoint\" property=\"accountid\">\n </foxy-internal-text-control>\n\n <foxy-internal-source-control infer=\"custom-code\"></foxy-internal-source-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"shipping_service_uri\"\n foreign-key-for-id=\"shipping_service_id\"\n own-key-for-uri=\"shipping_method_uri\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n embed-key=\"fx:store_shipping_services\"\n options-href=${ifDefined(shippingMethod?._links['fx:shipping_services'].href)}\n links-href=${ifDefined(this.data?._links['fx:store_shipping_services'].href)}\n infer=\"services\"\n limit=\"200\"\n item=\"foxy-shipping-service-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.shipping_method_uri || undefined)}\n id=${this.__shippingMethodLoaderId}\n @update=${(evt: UpdateEvent) => {\n const nucleon = evt.target as NucleonElement<Resource<Rels.ShippingMethod>>;\n const embed = nucleon.data;\n this.edit({ _embedded: embed ? { 'fx:shipping_method': embed } : {} });\n }}\n >\n </foxy-nucleon>\n\n ${super.renderBody()}\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('href')) this.__useCustomAccount = false;\n }\n\n private get __shippingMethodLoader() {\n type Loader = NucleonElement<Resource<Rels.ShippingMethod>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__shippingMethodLoaderId}`);\n }\n\n private get __shippingMethod() {\n return (\n this.__shippingMethodLoader?.data ?? (this.form._embedded as Embed)?.['fx:shipping_method']\n );\n }\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import '../../internal/InternalAsyncResourceLinkListControl/index';
2
2
  import '../../internal/InternalResourcePickerControl/index';
3
- import '../../internal/InternalCheckboxGroupControl/index';
4
3
  import '../../internal/InternalPasswordControl/index';
4
+ import '../../internal/InternalSummaryControl/index';
5
5
  import '../../internal/InternalSourceControl/index';
6
+ import '../../internal/InternalSwitchControl/index';
6
7
  import '../../internal/InternalTextControl/index';
7
8
  import '../../internal/InternalForm/index';
8
9
  import '../ShippingContainerCard/index';
@@ -1,8 +1,9 @@
1
1
  import "../../internal/InternalAsyncResourceLinkListControl/index.js";
2
2
  import "../../internal/InternalResourcePickerControl/index.js";
3
- import "../../internal/InternalCheckboxGroupControl/index.js";
4
3
  import "../../internal/InternalPasswordControl/index.js";
4
+ import "../../internal/InternalSummaryControl/index.js";
5
5
  import "../../internal/InternalSourceControl/index.js";
6
+ import "../../internal/InternalSwitchControl/index.js";
6
7
  import "../../internal/InternalTextControl/index.js";
7
8
  import "../../internal/InternalForm/index.js";
8
9
  import "../ShippingContainerCard/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreShippingMethodForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,+DAA4D;AAC5D,8DAA2D;AAC3D,yDAAsD;AACtD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,2CAAwC;AACxC,0CAAuC;AACvC,yCAAsC;AACtC,wCAAqC;AACrC,oCAAiC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,cAAc,CAAC,MAAM,CAAC,iCAAiC,EAAE,uBAAuB,CAAC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalResourcePickerControl/index';\nimport '../../internal/InternalCheckboxGroupControl/index';\nimport '../../internal/InternalPasswordControl/index';\nimport '../../internal/InternalSourceControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../ShippingContainerCard/index';\nimport '../ShippingDropTypeCard/index';\nimport '../ShippingServiceCard/index';\nimport '../ShippingMethodCard/index';\nimport '../NucleonElement/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,sEAAmE;AACnE,+DAA4D;AAC5D,yDAAsD;AACtD,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,2CAAwC;AACxC,0CAAuC;AACvC,yCAAsC;AACtC,wCAAqC;AACrC,oCAAiC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAEpE,cAAc,CAAC,MAAM,CAAC,iCAAiC,EAAE,uBAAuB,CAAC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalResourcePickerControl/index';\nimport '../../internal/InternalPasswordControl/index';\nimport '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalSourceControl/index';\nimport '../../internal/InternalSwitchControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../ShippingContainerCard/index';\nimport '../ShippingDropTypeCard/index';\nimport '../ShippingServiceCard/index';\nimport '../ShippingMethodCard/index';\nimport '../NucleonElement/index';\n\nimport { StoreShippingMethodForm } from './StoreShippingMethodForm';\n\ncustomElements.define('foxy-store-shipping-method-form', StoreShippingMethodForm);\n\nexport { StoreShippingMethodForm };\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@foxy.io/elements",
3
3
  "type": "module",
4
- "version": "1.30.0",
4
+ "version": "1.31.0-beta.1",
5
5
  "description": "E-commerce web components by Foxy.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1 +0,0 @@
1
- import{I as t}from"./shared-226dd830.js";import"./shared-49ecea83.js";import{c as e,h as s}from"./shared-dc73b9a5.js";let r,o,d=t=>t;customElements.define("foxy-internal-summary-control",class extends t{static get styles(){return[...super.styles,e(r||(r=d`::slotted(*){padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)}::slotted(:not(:first-child)){border-top:thin var(--foxy-border-style,solid) var(--lumo-contrast-10pct)!important}`))]}renderLightDom(){}renderControl(){return s(o||(o=d` <p class="mb-xs font-medium text-secondary text-s" ?hidden="${0}">${0}</p> <div class="border border-contrast-10 rounded"><slot></slot></div> <p class="mt-xs text-xs text-secondary" ?hidden="${0}">${0}</p> `),!this.label,this.label,!this.helperText,this.helperText)}});
@@ -1 +0,0 @@
1
- import"./shared-4a652d60.js";import"./shared-19f46691.js";import{I as e}from"./shared-226dd830.js";import{_ as t}from"./shared-0f6e4584.js";import{i as r}from"./shared-9803aa7c.js";import{h as a,s}from"./shared-dc73b9a5.js";import{c as l}from"./shared-4e709717.js";let o,i,n,d=e=>e;customElements.define("foxy-internal-password-control",class extends e{constructor(){super(...arguments),this.generatorOptions=null,this.showGenerator=!1}static get properties(){return t(t({},super.properties),{},{generatorOptions:{type:Object,attribute:"generator-options"},showGenerator:{type:Boolean,attribute:"show-generator"}})}renderControl(){return a(o||(o=d` <vaadin-password-field error-message="${0}" helper-text="${0}" placeholder="${0}" label="${0}" class="w-full" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" .value="${0}" @keydown="${0}" @input="${0}"> ${0} </vaadin-password-field> `),r(this._errorMessage),this.helperText,this.placeholder,this.label,this.disabled,this.readonly,this._checkValidity,this._value,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),(e=>{const t=e.currentTarget;this._value=t.value}),this.showGenerator?this.__renderGenerator():"")}get _value(){var e;return null!==(e=super._value)&&void 0!==e?e:""}set _value(e){super._value=e}__renderGenerator(){return a(i||(i=d` <div data-testid="generator" class="${0}" slot="suffix" @click="${0}"> ${0} </div> `),l({"w-s h-s flex items-center justify-center cursor-default transition-colors":!0,"text-contrast-60 hover-text-contrast-80":!this.disabled&&!this.readonly,"text-contrast-20":this.disabled||this.readonly}),(()=>{var e;this._value=function(e){var t,r,a;const s=null!==(t=null==e?void 0:e.separator)&&void 0!==t?t:"-",l=null!==(r=null==e?void 0:e.charset)&&void 0!==r?r:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",o=null!==(a=null==e?void 0:e.length)&&void 0!==a?a:18;let i="";for(let e=0;e<o;e++)s&&e>0&&e%6==0&&(i+=s),i+=l[Math.floor(Math.random()*l.length)];return i}(null!==(e=this.generatorOptions)&&void 0!==e?e:void 0);const t=this.renderRoot.querySelector("vaadin-password-field");null==t||t._setPasswordVisible(!0)}),s(n||(n=d`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1.15em; height: 1.15em"><path d="M15.98 1.804a1 1 0 00-1.96 0l-.24 1.192a1 1 0 01-.784.785l-1.192.238a1 1 0 000 1.962l1.192.238a1 1 0 01.785.785l.238 1.192a1 1 0 001.962 0l.238-1.192a1 1 0 01.785-.785l1.192-.238a1 1 0 000-1.962l-1.192-.238a1 1 0 01-.785-.785l-.238-1.192zM6.949 5.684a1 1 0 00-1.898 0l-.683 2.051a1 1 0 01-.633.633l-2.051.683a1 1 0 000 1.898l2.051.684a1 1 0 01.633.632l.683 2.051a1 1 0 001.898 0l.683-2.051a1 1 0 01.633-.633l2.051-.683a1 1 0 000-1.898l-2.051-.683a1 1 0 01-.633-.633L6.95 5.684zM13.949 13.684a1 1 0 00-1.898 0l-.184.551a1 1 0 01-.632.633l-.551.183a1 1 0 000 1.898l.551.183a1 1 0 01.633.633l.183.551a1 1 0 001.898 0l.184-.551a1 1 0 01.632-.633l.551-.183a1 1 0 000-1.898l-.551-.184a1 1 0 01-.633-.632l-.183-.551z" /></svg>`)))}});
@@ -1 +0,0 @@
1
- import"./shared-3cf043a7.js";import"./foxy-collection-page.js";import"./foxy-nucleon-element.js";import"./foxy-pagination.js";import"./shared-49ecea83.js";import{I as i}from"./shared-226dd830.js";import{m as e,_ as t}from"./shared-0f6e4584.js";import{N as s}from"./shared-24d71d01.js";import{g as r}from"./shared-bab2ea2c.js";import{i as n}from"./shared-9803aa7c.js";import{c as o}from"./shared-4e709717.js";import{h as l,c as a}from"./shared-dc73b9a5.js";let d,c,h,u,f,v=i=>i;customElements.define("foxy-internal-async-resource-link-list-control",class extends i{constructor(){super(...arguments),this.foreignKeyForUri=null,this.foreignKeyForId=null,this.ownKeyForUri=null,this.optionsHref=null,this.linksHref=null,this.embedKey=null,this.ownUri=null,this.limit=20,this.item=null,this.__getItemRenderer=e(((i,e)=>new Function("ctx",`return ctx.html\`\n <${null!=i?i:"foxy-null"}\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n infer=""\n ${e?".data=${ctx.data}":"href=${ctx.href}"}\n ...=\${ctx.spread(ctx.props)}\n >\n </${null!=i?i:"foxy-null"}>\``)),((...i)=>i.join())),this.__renderItem=i=>{var e,t,s,o,a;const u=this.__getItemRenderer(this.item,!!i.data),f=i=>l(d||(d=v` <div style="padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)">${0}</div> `),i);if(!i.href||i.href.startsWith("foxy://"))return f(u(i));let m;const y=r(null!==(t=null===(e=i.data)||void 0===e?void 0:e._links.self.href)&&void 0!==t?t:"");try{const i=new URL(null!==(s=this.linksHref)&&void 0!==s?s:"");i.searchParams.set(null!==(o=this.foreignKeyForId)&&void 0!==o?o:"",String(null!=y?y:"")),i.searchParams.set("limit","1"),m=i.toString()}catch(i){m=void 0}const p=l(c||(c=v` <foxy-nucleon infer="" href="${0}" id="link-${0}" @update="${0}"> ${0} </foxy-nucleon> `),n(m),y,(()=>this.requestUpdate()),u(i));if(this.readonly)return f(p);const g=this.renderRoot.querySelector(`#link-${y}`),_=!!(null===(a=null==g?void 0:g.data)||void 0===a?void 0:a.returned_items),x=this.disabled||!(null==g?void 0:g.in("idle"))||this.__isFetching;return f(l(h||(h=v` <vaadin-checkbox class="block" ?disabled="${0}" ?checked="${0}" @change="${0}"> <div class="transition-opacity ${0}"> ${0} </div> </vaadin-checkbox> `),x,_,(e=>{var t,s,r,n,o,l,a,d;e.currentTarget.checked?this.__insertLink(null!==(s=null===(t=i.data)||void 0===t?void 0:t._links.self.href)&&void 0!==s?s:""):this.__deleteLink(null!==(d=null===(a=null===(l=null===(n=null===(r=null==g?void 0:g.data)||void 0===r?void 0:r._embedded)||void 0===n?void 0:n[null!==(o=this.embedKey)&&void 0!==o?o:""])||void 0===l?void 0:l[0])||void 0===a?void 0:a._links.self.href)&&void 0!==d?d:"")}),x?"opacity-50":"opacity-100",p))},this.__isFetching=!1}static get properties(){return t(t({},super.properties),{},{foreignKeyForUri:{attribute:"foreign-key-for-uri"},foreignKeyForId:{attribute:"foreign-key-for-id"},ownKeyForUri:{attribute:"own-key-for-uri"},optionsHref:{attribute:"options-href"},linksHref:{attribute:"links-href"},embedKey:{attribute:"embed-key"},ownUri:{attribute:"own-uri"},limit:{type:Number},item:{},__isFetching:{attribute:!1}})}static get styles(){return[super.styles,a(u||(u=v`vaadin-checkbox::part(label){margin:0 0 0 calc(.625em + (var(--lumo-border-radius)/ 4) - 1px);align-self:center}`))]}renderControl(){var i;let e;try{const t=new URL(null!==(i=this.optionsHref)&&void 0!==i?i:"");t.searchParams.set("limit",this.limit.toString()),e=t.toString()}catch(i){e=void 0}const t=[...this.renderRoot.querySelectorAll("foxy-nucleon")],s=this.__isFetching||t.some((i=>!i.in("idle")));return l(f||(f=v` <div class="group"> <div class="${0}"> <span>${0}</span> <foxy-i18n class="transition-opacity ${0}" infer="" key="${0}"> </foxy-i18n> </div> <foxy-pagination first="${0}" infer="pagination"> <foxy-collection-page infer="card" class="${0}" .item="${0}"> </foxy-collection-page> </foxy-pagination> <div class="${0}" ?hidden="${0}"> ${0} </div> <div class="mt-xs text-xs leading-xs text-error" ?hidden="${0}"> ${0} </div> </div> `),o({"flex justify-between transition-colors mb-xs font-medium text-s":!0,"text-secondary":!this.disabled&&!this.readonly,"text-disabled":this.disabled}),this.label,s?"opacity-100":"opacity-0",this.__isFetching?"status_saving":"status_loading",n(e),o({"block transition-colors divide-y rounded overflow-hidden":!0,"divide-contrast-10 ring-1 ring-inset ring-contrast-10":!0}),this.__renderItem,o({"transition-colors mt-xs text-xs":!0,"text-secondary":!this.disabled&&!this.readonly,"text-disabled":this.disabled}),!this.helperText,this.helperText,!this._errorMessage||this.disabled||this.readonly,this._errorMessage)}updated(i){var e,t;super.updated(i),i.has("item")&&(null===(t=(e=this.__getItemRenderer.cache).clear)||void 0===t||t.call(e))}async __insertLink(i){var e,t,r,n,o,l;this.__isFetching=!0;const a=new s.API(this),d=await a.fetch(null!==(e=this.linksHref)&&void 0!==e?e:"",{method:"POST",body:JSON.stringify({[null!==(t=this.foreignKeyForUri)&&void 0!==t?t:""]:i,[null!==(r=this.ownKeyForUri)&&void 0!==r?r:""]:this.ownUri})});if(d.ok){const i=await d.json(),e=await a.fetch(i._links.self.href);if(e.ok){const t=s.Rumour(null!==(o=null===(n=this.nucleon)||void 0===n?void 0:n.group)&&void 0!==o?o:""),r=await e.json();t.share({related:[null!==(l=this.linksHref)&&void 0!==l?l:""],source:i._links.self.href,data:r})}}this.__isFetching=!1}async __deleteLink(i){var e,t,r;this.__isFetching=!0;const n=new s.API(this);if((await n.fetch(i,{method:"DELETE"})).ok){s.Rumour(null!==(t=null===(e=this.nucleon)||void 0===e?void 0:e.group)&&void 0!==t?t:"").share({related:[null!==(r=this.linksHref)&&void 0!==r?r:""],source:i,data:null})}this.__isFetching=!1}});