@foxy.io/elements 1.41.0-beta.2 → 1.41.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +5 -5
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-admin-subscription-form.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-billing-address-card.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-client-card.js +1 -1
- package/dist/cdn/foxy-client-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-downloadable-card.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +1 -1
- package/dist/cdn/foxy-email-template-card.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
- package/dist/cdn/foxy-filter-attribute-card.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +1 -1
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-native-integration-card.js +1 -1
- package/dist/cdn/foxy-native-integration-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-passkey-card.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-card-embed.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +6 -6
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-container-card.js +1 -1
- package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-shipping-service-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +2 -2
- package/dist/cdn/foxy-store-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +7 -7
- package/dist/cdn/foxy-update-payment-method-form.js +1 -1
- package/dist/cdn/foxy-user-card.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-user-invitation-card.js +1 -1
- package/dist/cdn/foxy-user-invitation-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-097635e6.js → shared-0179fbaa.js} +1 -1
- package/dist/cdn/{shared-c1e86ea4.js → shared-12ea5def.js} +1 -1
- package/dist/cdn/{shared-f1033d78.js → shared-1522e7b0.js} +3 -3
- package/dist/cdn/{shared-6be00444.js → shared-15f46bcc.js} +1 -1
- package/dist/cdn/{shared-243456aa.js → shared-1cd9967e.js} +1 -1
- package/dist/cdn/{shared-8b0f00fa.js → shared-2931ccbe.js} +1 -1
- package/dist/cdn/{shared-d807cb20.js → shared-29b0ef56.js} +1 -1
- package/dist/cdn/{shared-3fcf4feb.js → shared-2be606c3.js} +1 -1
- package/dist/cdn/{shared-8ef0ca65.js → shared-2fe84d72.js} +1 -1
- package/dist/cdn/{shared-360d6a20.js → shared-30829c7f.js} +1 -1
- package/dist/cdn/{shared-697d44e6.js → shared-313956af.js} +1 -1
- package/dist/cdn/{shared-63eef674.js → shared-32f04dd0.js} +1 -1
- package/dist/cdn/{shared-a03facdf.js → shared-34cbd863.js} +1 -1
- package/dist/cdn/shared-35dbfac1.js +1 -0
- package/dist/cdn/{shared-f9ac8763.js → shared-3ad093b5.js} +1 -1
- package/dist/cdn/{shared-11351c00.js → shared-3c0dcb9e.js} +2 -2
- package/dist/cdn/{shared-2d596f72.js → shared-3f381f99.js} +1 -1
- package/dist/cdn/{shared-84eb85dd.js → shared-43c39c6f.js} +1 -1
- package/dist/cdn/{shared-e41fced3.js → shared-4507220f.js} +1 -1
- package/dist/cdn/{shared-57a179b3.js → shared-49fef994.js} +1 -1
- package/dist/cdn/{shared-495860b4.js → shared-504d2acb.js} +1 -1
- package/dist/cdn/{shared-3556f4b7.js → shared-5231970e.js} +1 -1
- package/dist/cdn/{shared-6957b8e6.js → shared-535d1ec6.js} +1 -1
- package/dist/cdn/{shared-1c355fac.js → shared-54031a26.js} +2 -2
- package/dist/cdn/{shared-29f60d2f.js → shared-58a50b35.js} +5 -5
- package/dist/cdn/{shared-37348820.js → shared-58c0c5cc.js} +1 -1
- package/dist/cdn/{shared-c25538f1.js → shared-58f1f368.js} +2 -2
- package/dist/cdn/{shared-6199cae2.js → shared-59657e70.js} +1 -1
- package/dist/cdn/{shared-cf12f33b.js → shared-5988dd30.js} +1 -1
- package/dist/cdn/{shared-83c5e004.js → shared-619235ab.js} +1 -1
- package/dist/cdn/{shared-be442f26.js → shared-62a913ef.js} +1 -1
- package/dist/cdn/{shared-315d7620.js → shared-65763e6f.js} +1 -1
- package/dist/cdn/{shared-88220d9e.js → shared-678878ae.js} +1 -1
- package/dist/cdn/{shared-f69aacbc.js → shared-69943b4f.js} +1 -1
- package/dist/cdn/{shared-c46affa4.js → shared-72536261.js} +1 -1
- package/dist/cdn/{shared-4d32d19e.js → shared-72ebbdcd.js} +1 -1
- package/dist/cdn/{shared-230dee11.js → shared-75f0b4ce.js} +1 -1
- package/dist/cdn/{shared-9a64bf35.js → shared-7f25f727.js} +1 -1
- package/dist/cdn/{shared-bd5285ff.js → shared-8697a27e.js} +1 -1
- package/dist/cdn/{shared-35a49192.js → shared-86d308bf.js} +1 -1
- package/dist/cdn/{shared-86e9c57a.js → shared-8a380d5b.js} +1 -1
- package/dist/cdn/{shared-a587fd4b.js → shared-8ae33bf4.js} +1 -1
- package/dist/cdn/{shared-7097e2e1.js → shared-90a27f17.js} +1 -1
- package/dist/cdn/{shared-109ec474.js → shared-92f7ee94.js} +1 -1
- package/dist/cdn/{shared-67f73b81.js → shared-968df92b.js} +1 -1
- package/dist/cdn/{shared-c18f681b.js → shared-a146c6a5.js} +1 -1
- package/dist/cdn/{shared-0df46275.js → shared-a477b90e.js} +1 -1
- package/dist/cdn/{shared-f989c70e.js → shared-a4a847e4.js} +1 -1
- package/dist/cdn/{shared-8eeddc22.js → shared-a510a176.js} +1 -1
- package/dist/cdn/{shared-edeeb089.js → shared-acbcad2e.js} +1 -1
- package/dist/cdn/{shared-888018de.js → shared-be50c355.js} +1 -1
- package/dist/cdn/{shared-048d5cae.js → shared-c003fbf3.js} +1 -1
- package/dist/cdn/{shared-7dc9c80b.js → shared-c19d73fe.js} +1 -1
- package/dist/cdn/{shared-47d95cdd.js → shared-c5025eca.js} +1 -1
- package/dist/cdn/{shared-8b25a098.js → shared-c71fb90f.js} +1 -1
- package/dist/cdn/{shared-21e68b72.js → shared-cfea6000.js} +1 -1
- package/dist/cdn/{shared-f1a70f51.js → shared-d298bb95.js} +1 -1
- package/dist/cdn/{shared-43637d69.js → shared-df97fdc7.js} +1 -1
- package/dist/cdn/{shared-b65d169b.js → shared-e69c94bd.js} +1 -1
- package/dist/cdn/{shared-864ff856.js → shared-ec013722.js} +1 -1
- package/dist/cdn/{shared-18e3b778.js → shared-ee4757df.js} +1 -1
- package/dist/cdn/{shared-e3421ca1.js → shared-ef4d09da.js} +1 -1
- package/dist/cdn/{shared-1100bca8.js → shared-f2f81cda.js} +1 -1
- package/dist/cdn/{shared-6683daed.js → shared-fe56bcdb.js} +1 -1
- package/dist/cdn/{shared-77132fe8.js → shared-ffa49371.js} +1 -1
- package/dist/cdn/translations/admin-subscription-form/en.json +1 -0
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +28 -8
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -1
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.d.ts +2 -0
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js +22 -4
- package/dist/elements/public/FilterAttributeForm/FilterAttributeForm.js.map +1 -1
- package/dist/mixins/themeable.js +12 -0
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-3661a086.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./shared-cb58dfcd.js";import{h as t}from"./shared-ba5c42c7.js";import{C as l}from"./shared-5afb584d.js";import"./foxy-nucleon-element.js";import{R as s,T as a,a as i}from"./shared-
|
|
1
|
+
import{_ as e}from"./shared-cb58dfcd.js";import{h as t}from"./shared-ba5c42c7.js";import{C as l}from"./shared-5afb584d.js";import"./foxy-nucleon-element.js";import{R as s,T as a,a as i}from"./shared-3c0dcb9e.js";import{c as r}from"./shared-4e709717.js";import{N as d}from"./shared-f83207fb.js";let n,o,h,c,m,u=e=>e;const b=l(s(a(i(d))));class p extends b{constructor(){super(...arguments),this.columns=[]}static get properties(){return e(e({},super.properties),{},{columns:{attribute:!1}})}render(){var e,l;const s=this.columns.some((e=>!!e.header));return t(n||(n=u` <div data-testid="wrapper" aria-busy="${0}" aria-live="polite" class="relative font-lumo text-m"> <table class="table-fixed w-full" data-testid="table"> <thead class="${0}"> <tr> ${0} </tr> </thead> <tbody class="divide-y divide-contrast-10"> ${0} </tbody> </table> ${0} </div> ${0} `),this.in("busy"),s?"border-b border-contrast-10":"sr-only",this.columns.map(((e,l)=>{var s;return t(o||(o=u` <th class="${0}"> ${0} </th> `),r({"truncate h-l text-tertiary text-m text-left font-medium":!0,"text-right":l===this.columns.length-1,"hidden sm-table-cell":"sm"===e.hideBelow,"hidden md-table-cell":"md"===e.hideBelow,"hidden lg-table-cell":"lg"===e.hideBelow,"hidden xl-table-cell":"xl"===e.hideBelow}),null===(s=e.header)||void 0===s?void 0:s.call(e,{html:t,lang:this.lang,data:this.data,ns:this.ns}))})),this.__rows.map((e=>{var l;return t(h||(h=u` <tr class="h-l"> ${0} </tr> `),null===(l=this.columns)||void 0===l?void 0:l.map(((l,s)=>{var a;return t(c||(c=u` <td class="${0}"> ${0} </td> `),r({"text-right":s===this.columns.length-1,"hidden sm-table-cell":"sm"===l.hideBelow,"hidden md-table-cell":"md"===l.hideBelow,"hidden lg-table-cell":"lg"===l.hideBelow,"hidden xl-table-cell":"xl"===l.hideBelow,"truncate h-l text-body":!0}),e?null===(a=l.cell)||void 0===a?void 0:a.call(l,{html:t,lang:this.lang,data:e,ns:this.ns}):"")})))})),this.in({idle:"snapshot"})?"":t(m||(m=u` <div class="absolute inset-0 flex items-center justify-center"> <foxy-spinner data-testid="spinner" layout="vertical" state="${0}" class="p-m bg-base shadow-xs rounded-t-l rounded-b-l" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> `),this.in("busy")?"busy":this.in("idle")?"empty":"error",this.lang,this.ns,null!==(l=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==l?l:""),this.renderTemplateOrSlot())}get __rows(){var e,t,l;const s=Object.values(null!==(t=null===(e=this.data)||void 0===e?void 0:e._embedded)&&void 0!==t?t:{}).reduce(((e,t)=>[...e,...t]),[]);let a;if(0===s.length)try{const e=new URL(null!==(l=this.href)&&void 0!==l?l:"").searchParams.get("limit"),t=parseInt(null!=e?e:"");a=isNaN(t)?20:t}catch(e){a=20}else a=s.length;return new Array(a).fill(null).map(((e,t)=>{var l;return null!==(l=s[t])&&void 0!==l?l:e}))}}export{p as T};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-
|
|
1
|
+
import"./shared-2fe84d72.js";import"./shared-72ebbdcd.js";import{_ as t}from"./shared-cb58dfcd.js";import{h as e}from"./shared-ba5c42c7.js";import{D as s}from"./shared-c003fbf3.js";let i,n=t=>t;customElements.define("foxy-internal-confirm-dialog",class extends s{constructor(){super(...arguments),this.closable=!1,this.editable=!1,this.alert=!0,this.messageOptions={},this.confirm="confirm",this.message="message",this.cancel="cancel",this.theme="primary"}static get properties(){return t(t({},super.properties),{},{messageOptions:{type:Object,attribute:"message-options"},confirm:{type:String},message:{type:String},cancel:{type:String},theme:{type:String}})}render(){return super.render((()=>e(i||(i=n` <foxy-i18n class="block font-lumo text-m text-body text-center mb-m" lang="${0}" key="${0}" ns="${0}" .options="${0}"> </foxy-i18n> <div class="grid grid-cols-2 gap-m"> <vaadin-button data-testid="cancelButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> <vaadin-button theme="${0}" data-testid="confirmButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> </div> `),this.lang,this.message,this.ns,this.messageOptions,this.__handleCancel,this.ns,this.lang,this.cancel,this.theme,this.__handleConfirm,this.ns,this.lang,this.confirm)))}async __handleCancel(){await this.hide(!0)}async __handleConfirm(){await this.hide()}});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shared-
|
|
1
|
+
import"./shared-3ad093b5.js";import"./shared-a4a847e4.js";import{h as e,P as t}from"./shared-cfea6000.js";import{E as s,T as r}from"./shared-65763e6f.js";import{F as l}from"./shared-58c0c5cc.js";const i=e`<dom-module id="lumo-custom-field" theme-for="vaadin-custom-field">
|
|
2
2
|
<template>
|
|
3
3
|
<style include="lumo-required-field">
|
|
4
4
|
:host {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-
|
|
1
|
+
import"./shared-e69c94bd.js";import"./shared-acbcad2e.js";import"./shared-619235ab.js";import"./shared-fe56bcdb.js";import"./shared-1cd9967e.js";import{a as e}from"./shared-92f7ee94.js";import{_ as t}from"./shared-cb58dfcd.js";import{c as i,h as a,s}from"./shared-ba5c42c7.js";import{i as l}from"./shared-53e42a77.js";import{c as o}from"./shared-4e709717.js";let n,r,d,h,u,c,p=e=>e;customElements.define("foxy-internal-frequency-control",class extends e{constructor(){super(...arguments),this.allowTwiceAMonth=!1,this.options=[{value:"d",label:"day"},{value:"w",label:"week"},{value:"m",label:"month"},{value:"y",label:"year"}],this.layout=null,this.max=999,this.__i18n={formatValue:e=>e.join(""),parseValue:e=>{var t;const i=e.startsWith(".")?`0${e}`:e,a=parseFloat(e.substring(0,Math.max(i.length-1,0))),s=null!==(t=i[i.length-1])&&void 0!==t?t:"";return isNaN(a)?["0",""]:[a.toString(),s]}}}static get properties(){return t(t({},super.properties),{},{allowTwiceAMonth:{type:Boolean,attribute:"allow-twice-a-month"},options:{attribute:!1},layout:{},max:{type:Number}})}static get styles(){return[super.styles,i(n||(n=p`:host{display:block}vaadin-custom-field{width:100%;font-size:0;line-height:0;padding-top:0!important}vaadin-custom-field::part(label){padding-bottom:var(--lumo-space-s)}vaadin-custom-field::part(error-message)[aria-hidden=false]{padding-top:var(--lumo-space-xs)}vaadin-combo-box,vaadin-integer-field{width:calc(50% - (var(--lumo-space-s)/ 2))}vaadin-integer-field{margin-right:var(--lumo-space-s);padding:0}vaadin-combo-box::part(text-field){padding:0}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input{-moz-appearance:textfield}`))]}renderControl(){var e,t;if("summary-item"===this.layout)return this.__renderSummaryItemLayout();const i=null!==(e=this._value)&&void 0!==e?e:"",s=parseFloat(this.__i18n.parseValue(i)[0]),o=this.options.map((({value:e,label:t})=>({label:this.t(t,{count:s}),value:e})));return a(r||(r=p` <vaadin-custom-field ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" .errorMessage="${0}" .helperText="${0}" .label="${0}" .value="${0}" .i18n="${0}" @change="${0}"> <vaadin-integer-field max="${0}" min="1" prevent-invalid-input has-controls ?disabled="${0}" ?readonly="${0}" ?invalid="${0}" @keydown="${0}"> </vaadin-integer-field> <vaadin-combo-box item-value-path="value" item-label-path="label" ?disabled="${0}" ?readonly="${0}" ?invalid="${0}" .items="${0}" @keydown="${0}"> </vaadin-combo-box> </vaadin-custom-field> `),this.disabled,this.readonly,this._checkValidity,null!==(t=this._errorMessage)&&void 0!==t?t:"",this.helperText,this.label,i,this.__i18n,(e=>{const t=e.currentTarget;this._value=t.value}),l(this.max||void 0),this.disabled,this.readonly,!this._checkValidity(),(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),this.disabled,this.readonly,!this._checkValidity(),o,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}))}updated(e){var t;super.updated(e);const i=this.renderRoot.querySelector("vaadin-custom-field");i&&i.value!==this._value&&(i.value=null!==(t=this._value)&&void 0!==t?t:"")}__renderSummaryItemLayout(){var e,t;const i=null!==(e=this._value)&&void 0!==e?e:"",[n,r]=this.__i18n.parseValue(i),m=parseFloat(n),v=".5m"!==this._value||this.allowTwiceAMonth?this.options.find((e=>e.value===r)):void 0;return a(d||(d=p` <div class="leading-xs"> <div class="flex items-center gap-xs"> <label class="text-m text-body flex-1 whitespace-nowrap" for="input">${0}</label> <input placeholder="${0}" inputmode="numeric" style="min-width:10ch" class="${0}" type="number" step="1" min="1" max="${0}" id="input" .value="${0}" ?disabled="${0}" ?readonly="${0}" @keydown="${0}" @input="${0}"> <div class="${0}"> <div class="flex items-center gap-xs"> <div class="whitespace-nowrap"> ${0} </div> ${0} </div> <select class="${0}" id="select" ?disabled="${0}" ?hidden="${0}" @change="${0}"> <option value="" ?selected="${0}" disabled="disabled" hidden>${0}</option> ${0} ${0} </select> </div> </div> <div style="max-width:32rem"> <p class="text-xs text-secondary">${0}</p> <p class="text-xs text-error" ?hidden="${0}"> ${0} </p> </div> </div> `),this.label,this.placeholder,o({"w-full appearance-none text-right bg-transparent transition-colors":!0,"text-m rounded-s focus-outline-none":!0,"text-secondary":this.readonly,"text-disabled":this.disabled,"font-medium":!this.readonly}),l(null!==(t=this.max)&&void 0!==t?t:void 0),".5m"===i?this.allowTwiceAMonth?2:"":m,this.disabled,this.readonly,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),(e=>{e.stopPropagation();const t=e.currentTarget;this._value=this.__i18n.formatValue([t.value,r])}),o({"relative rounded-s transition-colors transition-opacity":!0,"focus-within-ring-2 focus-within-ring-primary-50":!this.disabled&&!this.readonly,"text-body hover-opacity-80 cursor-pointer":!this.disabled&&!this.readonly,"text-secondary":this.readonly,"text-disabled":this.disabled,"font-medium":!this.readonly}),".5m"===i?this.t("times_a_month"):v?this.t(v.label,{count:m}):this.t("select"),this.readonly?"":s(h||(h=p`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25)"><path fill-rule="evenodd" d="M10.53 3.47a.75.75 0 0 0-1.06 0L6.22 6.72a.75.75 0 0 0 1.06 1.06L10 5.06l2.72 2.72a.75.75 0 1 0 1.06-1.06l-3.25-3.25Zm-4.31 9.81 3.25 3.25a.75.75 0 0 0 1.06 0l3.25-3.25a.75.75 0 1 0-1.06-1.06L10 14.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06Z" clip-rule="evenodd" /></svg>`)),o({"absolute inset-0 opacity-0":!0,"cursor-pointer":!this.disabled&&!this.readonly}),this.disabled,this.readonly,(e=>{e.stopPropagation();const t=e.currentTarget.value;this._value="times_a_month"===t?".5m":this.__i18n.formatValue([m,t])}),!v,this.t("select"),!this.allowTwiceAMonth||2!==m&&".5m"!==i?"":a(u||(u=p` <option value="times_a_month" ?selected="${0}"> ${0} </option> `),".5m"===i,this.t("times_a_month")),this.options.map((e=>a(c||(c=p` <option value="${0}" ?selected="${0}"> ${0} </option> `),e.value,".5m"!==i&&e.value===(null==v?void 0:v.value),this.t(e.label,{count:m})))),this.helperText,this.disabled||this.readonly,this._errorMessage)}});
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"overdue": {
|
|
89
89
|
"label": "",
|
|
90
90
|
"helper_text": "",
|
|
91
|
+
"error_with_zero_past_due_hint": "A past due amount has been successfully captured. Click to see the details.",
|
|
91
92
|
"past-due-amount": {
|
|
92
93
|
"label": "Past due amount",
|
|
93
94
|
"helper_text": "Missing payments increase this amount. Depending on your store settings, we may charge it automatically on the next billing cycle.",
|
|
@@ -19,11 +19,11 @@ export class AdminSubscriptionForm extends Base {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
get hiddenSelector() {
|
|
22
|
-
var _a, _b;
|
|
23
22
|
const alwaysMatch = ['delete', super.hiddenSelector.toString()];
|
|
24
|
-
|
|
23
|
+
const data = this.data;
|
|
24
|
+
if (!(data === null || data === void 0 ? void 0 : data.error_message) || !data.past_due_amount)
|
|
25
25
|
alwaysMatch.unshift('error-message');
|
|
26
|
-
if (!(
|
|
26
|
+
if (!(data === null || data === void 0 ? void 0 : data.is_active))
|
|
27
27
|
alwaysMatch.unshift('view-action', 'cancel-action');
|
|
28
28
|
return new BooleanSelector(alwaysMatch.join(' ').trim());
|
|
29
29
|
}
|
|
@@ -32,20 +32,21 @@ export class AdminSubscriptionForm extends Base {
|
|
|
32
32
|
return status ? `subtitle_${status}` : super.headerSubtitleKey;
|
|
33
33
|
}
|
|
34
34
|
renderBody() {
|
|
35
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
36
36
|
let transactionsHref;
|
|
37
37
|
try {
|
|
38
38
|
const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transactions'].href) !== null && _b !== void 0 ? _b : '');
|
|
39
39
|
url.searchParams.set('zoom', 'items');
|
|
40
40
|
transactionsHref = url.toString();
|
|
41
41
|
}
|
|
42
|
-
catch (
|
|
42
|
+
catch (_k) {
|
|
43
43
|
transactionsHref = undefined;
|
|
44
44
|
}
|
|
45
45
|
// @ts-expect-error - SDK doesn't know yet about the `fx:charge_past_due` link.
|
|
46
46
|
const chargePastDueHref = (_d = (_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:charge_past_due']) === null || _d === void 0 ? void 0 : _d.href;
|
|
47
47
|
const pastDueAmount = (_e = this.data) === null || _e === void 0 ? void 0 : _e.past_due_amount;
|
|
48
|
-
const
|
|
48
|
+
const errorMessage = (_f = this.data) === null || _f === void 0 ? void 0 : _f.error_message;
|
|
49
|
+
const currencyCode = (_g = this.data) === null || _g === void 0 ? void 0 : _g._embedded['fx:transaction_template'].currency_code;
|
|
49
50
|
return html `
|
|
50
51
|
${this.renderHeader()}
|
|
51
52
|
|
|
@@ -87,7 +88,26 @@ export class AdminSubscriptionForm extends Base {
|
|
|
87
88
|
>
|
|
88
89
|
</foxy-internal-post-action-control>
|
|
89
90
|
`
|
|
90
|
-
:
|
|
91
|
+
: errorMessage && !pastDueAmount
|
|
92
|
+
? html `
|
|
93
|
+
<details
|
|
94
|
+
class="leading-xs text-xs text-secondary rounded-b focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50"
|
|
95
|
+
style="--gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
96
|
+
>
|
|
97
|
+
<summary
|
|
98
|
+
class="cursor-pointer transition-colors hover-text-body focus-outline-none"
|
|
99
|
+
>
|
|
100
|
+
<span class="flex items-start" style="gap: var(--gap)">
|
|
101
|
+
${svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" class="flex-shrink-0" style="width: 1.25em"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>`}
|
|
102
|
+
<foxy-i18n infer="" key="error_with_zero_past_due_hint"></foxy-i18n>
|
|
103
|
+
</span>
|
|
104
|
+
</summary>
|
|
105
|
+
<p style="padding-left: calc(1.25em + var(--gap))" class="pt-xs">
|
|
106
|
+
<span class="whitespace-pre-line">${errorMessage}</span>
|
|
107
|
+
</p>
|
|
108
|
+
</details>
|
|
109
|
+
`
|
|
110
|
+
: ''}
|
|
91
111
|
</foxy-internal-summary-control>
|
|
92
112
|
|
|
93
113
|
<foxy-internal-summary-control infer="self-service-links">
|
|
@@ -139,7 +159,7 @@ export class AdminSubscriptionForm extends Base {
|
|
|
139
159
|
<foxy-internal-async-list-control
|
|
140
160
|
infer="attributes"
|
|
141
161
|
class="min-w-0"
|
|
142
|
-
first=${ifDefined((
|
|
162
|
+
first=${ifDefined((_j = (_h = this.data) === null || _h === void 0 ? void 0 : _h._links) === null || _j === void 0 ? void 0 : _j['fx:attributes'].href)}
|
|
143
163
|
item="foxy-attribute-card"
|
|
144
164
|
form="foxy-attribute-form"
|
|
145
165
|
alert
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSubscriptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { getSubscriptionStatus } from '../../../utils/get-subscription-status';\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, svg } from 'lit-html';\n\nconst NS = 'admin-subscription-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\nexport class AdminSubscriptionForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n uoeSettingsPage: { attribute: 'uoe-settings-page' },\n };\n }\n\n /** URL of the UOE settings page in the admin. If set, displays a link to that page in the self-service links section. */\n uoeSettingsPage: string | null = null;\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['delete', super.hiddenSelector.toString()];\n if (!this.data?.error_message) alwaysMatch.unshift('error-message');\n if (!this.data?.is_active) alwaysMatch.unshift('view-action', 'cancel-action');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleKey(): string {\n const status = getSubscriptionStatus(this.data);\n return status ? `subtitle_${status}` : super.headerSubtitleKey;\n }\n\n renderBody(): TemplateResult {\n let transactionsHref: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'items');\n transactionsHref = url.toString();\n } catch {\n transactionsHref = undefined;\n }\n\n // @ts-expect-error - SDK doesn't know yet about the `fx:charge_past_due` link.\n const chargePastDueHref: string | undefined = this.data?._links['fx:charge_past_due']?.href;\n const pastDueAmount = this.data?.past_due_amount;\n const currencyCode = this.data?._embedded['fx:transaction_template'].currency_code;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-admin-subscription-form-error infer=\"error-message\">\n </foxy-internal-admin-subscription-form-error>\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-date-control layout=\"summary-item\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"frequency\"\n allow-twice-a-month\n >\n </foxy-internal-frequency-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"next-transaction-date\">\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"overdue\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(currencyCode)}\n infer=\"past-due-amount\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n ${chargePastDueHref && currencyCode && pastDueAmount\n ? html`\n <foxy-internal-post-action-control\n message-options=${JSON.stringify({ amount: `${pastDueAmount} ${currencyCode}` })}\n theme=\"tertiary-inline\"\n infer=\"charge-past-due\"\n href=${chargePastDueHref}\n @success=${() => this.refresh()}\n >\n </foxy-internal-post-action-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"self-service-links\">\n <foxy-internal-admin-subscription-form-link-control infer=\"load-in-cart\">\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"cart=checkout\"\n infer=\"load-on-checkout\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=next_transaction_date\"\n infer=\"cancel-at-end-of-billing-period\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=true\"\n infer=\"cancel-next-day\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <div\n class=\"flex items-start leading-xs text-xs text-secondary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z\" clip-rule=\"evenodd\" /></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"uoe_hint_text\"></foxy-i18n>\n ${this.uoeSettingsPage\n ? html`\n <a\n target=\"_blank\"\n class=\"inline-block rounded font-medium text-body cursor-pointer hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.uoeSettingsPage}\n >\n <foxy-i18n infer=\"\" key=\"uoe_link_text\"></foxy-i18n>\n </a>\n `\n : ''}\n </p>\n </div>\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links?.['fx:attributes'].href)}\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"transactions\"\n class=\"min-w-0\"\n first=${ifDefined(transactionsHref)}\n item=\"foxy-transaction-card\"\n form=\"foxy-transaction\"\n hide-create-button\n hide-delete-button\n alert\n wide\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AdminSubscriptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { getSubscriptionStatus } from '../../../utils/get-subscription-status';\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, svg } from 'lit-html';\n\nconst NS = 'admin-subscription-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\nexport class AdminSubscriptionForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n uoeSettingsPage: { attribute: 'uoe-settings-page' },\n };\n }\n\n /** URL of the UOE settings page in the admin. If set, displays a link to that page in the self-service links section. */\n uoeSettingsPage: string | null = null;\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['delete', super.hiddenSelector.toString()];\n const data = this.data;\n\n if (!data?.error_message || !data.past_due_amount) alwaysMatch.unshift('error-message');\n if (!data?.is_active) alwaysMatch.unshift('view-action', 'cancel-action');\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleKey(): string {\n const status = getSubscriptionStatus(this.data);\n return status ? `subtitle_${status}` : super.headerSubtitleKey;\n }\n\n renderBody(): TemplateResult {\n let transactionsHref: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'items');\n transactionsHref = url.toString();\n } catch {\n transactionsHref = undefined;\n }\n\n // @ts-expect-error - SDK doesn't know yet about the `fx:charge_past_due` link.\n const chargePastDueHref: string | undefined = this.data?._links['fx:charge_past_due']?.href;\n const pastDueAmount = this.data?.past_due_amount;\n const errorMessage = this.data?.error_message;\n const currencyCode = this.data?._embedded['fx:transaction_template'].currency_code;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-admin-subscription-form-error infer=\"error-message\">\n </foxy-internal-admin-subscription-form-error>\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-date-control layout=\"summary-item\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"frequency\"\n allow-twice-a-month\n >\n </foxy-internal-frequency-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"next-transaction-date\">\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"overdue\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(currencyCode)}\n infer=\"past-due-amount\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n ${chargePastDueHref && currencyCode && pastDueAmount\n ? html`\n <foxy-internal-post-action-control\n message-options=${JSON.stringify({ amount: `${pastDueAmount} ${currencyCode}` })}\n theme=\"tertiary-inline\"\n infer=\"charge-past-due\"\n href=${chargePastDueHref}\n @success=${() => this.refresh()}\n >\n </foxy-internal-post-action-control>\n `\n : errorMessage && !pastDueAmount\n ? html`\n <details\n class=\"leading-xs text-xs text-secondary rounded-b focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50\"\n style=\"--gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <summary\n class=\"cursor-pointer transition-colors hover-text-body focus-outline-none\"\n >\n <span class=\"flex items-start\" style=\"gap: var(--gap)\">\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z\" clip-rule=\"evenodd\" /></svg>`}\n <foxy-i18n infer=\"\" key=\"error_with_zero_past_due_hint\"></foxy-i18n>\n </span>\n </summary>\n <p style=\"padding-left: calc(1.25em + var(--gap))\" class=\"pt-xs\">\n <span class=\"whitespace-pre-line\">${errorMessage}</span>\n </p>\n </details>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"self-service-links\">\n <foxy-internal-admin-subscription-form-link-control infer=\"load-in-cart\">\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"cart=checkout\"\n infer=\"load-on-checkout\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=next_transaction_date\"\n infer=\"cancel-at-end-of-billing-period\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=true\"\n infer=\"cancel-next-day\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <div\n class=\"flex items-start leading-xs text-xs text-secondary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z\" clip-rule=\"evenodd\" /></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"uoe_hint_text\"></foxy-i18n>\n ${this.uoeSettingsPage\n ? html`\n <a\n target=\"_blank\"\n class=\"inline-block rounded font-medium text-body cursor-pointer hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.uoeSettingsPage}\n >\n <foxy-i18n infer=\"\" key=\"uoe_link_text\"></foxy-i18n>\n </a>\n `\n : ''}\n </p>\n </div>\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links?.['fx:attributes'].href)}\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"transactions\"\n class=\"min-w-0\"\n first=${ifDefined(transactionsHref)}\n item=\"foxy-transaction-card\"\n form=\"foxy-transaction\"\n hide-create-button\n hide-delete-button\n alert\n wide\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
@@ -22,6 +22,8 @@ export declare class FilterAttributeForm extends Base<Data> {
|
|
|
22
22
|
static readonly attributeName: string;
|
|
23
23
|
static readonly filterNameKey: string;
|
|
24
24
|
static get properties(): PropertyDeclarations;
|
|
25
|
+
/** Default filter query. */
|
|
26
|
+
defaults: string | null;
|
|
25
27
|
/** Admin page pathname. */
|
|
26
28
|
pathname: string | null;
|
|
27
29
|
/** Filter options passed down to `QueryBuilder.options.` */
|
|
@@ -17,6 +17,8 @@ const Base = TranslatableMixin(InternalForm, NS);
|
|
|
17
17
|
export class FilterAttributeForm extends Base {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
+
/** Default filter query. */
|
|
21
|
+
this.defaults = null;
|
|
20
22
|
/** Admin page pathname. */
|
|
21
23
|
this.pathname = null;
|
|
22
24
|
/** Filter options passed down to `QueryBuilder.options.` */
|
|
@@ -33,6 +35,7 @@ export class FilterAttributeForm extends Base {
|
|
|
33
35
|
static get properties() {
|
|
34
36
|
return {
|
|
35
37
|
...super.properties,
|
|
38
|
+
defaults: {},
|
|
36
39
|
pathname: {},
|
|
37
40
|
options: { type: Array },
|
|
38
41
|
};
|
|
@@ -42,9 +45,10 @@ export class FilterAttributeForm extends Base {
|
|
|
42
45
|
const constructor = this.constructor;
|
|
43
46
|
const filterQuery = this.__getValueParam(constructor.filterQueryKey);
|
|
44
47
|
const hasData = !!this.data;
|
|
48
|
+
const hasValue = !!this.form.value;
|
|
45
49
|
if (!hasData)
|
|
46
50
|
alwaysHidden.push('filter-name');
|
|
47
|
-
if (!filterQuery && !hasData)
|
|
51
|
+
if (!hasValue || (!filterQuery && !hasData))
|
|
48
52
|
alwaysHidden.push('action');
|
|
49
53
|
return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());
|
|
50
54
|
}
|
|
@@ -90,12 +94,26 @@ export class FilterAttributeForm extends Base {
|
|
|
90
94
|
super.submit();
|
|
91
95
|
}
|
|
92
96
|
__getValueParam(key) {
|
|
93
|
-
var _a, _b;
|
|
97
|
+
var _a, _b, _c;
|
|
94
98
|
try {
|
|
99
|
+
const constructor = this.constructor;
|
|
95
100
|
const url = new URL(decode((_a = this.form.value) !== null && _a !== void 0 ? _a : ''), 'https://example.com');
|
|
96
|
-
|
|
101
|
+
let result = (_b = url.searchParams.get(key)) !== null && _b !== void 0 ? _b : '';
|
|
102
|
+
if (key === constructor.filterQueryKey &&
|
|
103
|
+
(this.in({ idle: { snapshot: 'clean' } }) || this.in({ idle: { template: 'clean' } }))) {
|
|
104
|
+
try {
|
|
105
|
+
const fullQuery = new URLSearchParams(result);
|
|
106
|
+
const defaults = new URLSearchParams((_c = this.defaults) !== null && _c !== void 0 ? _c : '');
|
|
107
|
+
fullQuery.forEach((v, k) => defaults.set(k, v));
|
|
108
|
+
result = defaults.toString();
|
|
109
|
+
}
|
|
110
|
+
catch (_d) {
|
|
111
|
+
// no-op
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
97
115
|
}
|
|
98
|
-
catch (
|
|
116
|
+
catch (_e) {
|
|
99
117
|
return '';
|
|
100
118
|
}
|
|
101
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterAttributeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/FilterAttributeForm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,uBAAuB,CAAC;AACnC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAU;IAAnD;;
|
|
1
|
+
{"version":3,"file":"FilterAttributeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/FilterAttributeForm/FilterAttributeForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { QueryBuilder } from '../QueryBuilder/QueryBuilder';\nimport type { Option } from '../QueryBuilder/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { encode, decode } from 'html-entities';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'filter-attribute-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for creating and editing saved filters in Admin. Saved filters\n * are powered by the Bookmark attribute format that allows adding custom sidebar items\n * to Admin. Bookmark attributes are named `foxy-admin-bookmark` and contain a\n * relative URL of the bookmarked Admin page in the value.\n *\n * @element foxy-filter-attribute-form\n * @since 1.24.0\n */\nexport class FilterAttributeForm extends Base<Data> {\n static readonly attributeVisibility: Data['visibility'] = 'restricted';\n\n static readonly filterQueryKey: string = 'filter_query';\n\n static readonly attributeName: string = 'foxy-admin-bookmark';\n\n static readonly filterNameKey: string = 'filter_name';\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaults: {},\n pathname: {},\n options: { type: Array },\n };\n }\n\n /** Default filter query. */\n defaults: string | null = null;\n\n /** Admin page pathname. */\n pathname: string | null = null;\n\n /** Filter options passed down to `QueryBuilder.options.` */\n options: Option[] = [];\n\n private readonly __filterNameGetValue = () => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n return this.__getValueParam(constructor.filterNameKey);\n };\n\n private readonly __filterNameSetValue = (v: string) => {\n const constructor = this.constructor as typeof FilterAttributeForm;\n this.__setValueParam(constructor.filterNameKey, v);\n };\n\n get hiddenSelector(): BooleanSelector {\n const alwaysHidden: string[] = [];\n const constructor = this.constructor as typeof FilterAttributeForm;\n const filterQuery = this.__getValueParam(constructor.filterQueryKey);\n const hasData = !!this.data;\n const hasValue = !!this.form.value;\n\n if (!hasData) alwaysHidden.push('filter-name');\n if (!hasValue || (!filterQuery && !hasData)) alwaysHidden.push('action');\n\n return new BooleanSelector(`${alwaysHidden.join(' ')} ${super.hiddenSelector}`.trim());\n }\n\n renderBody(): TemplateResult {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n return html`\n <foxy-query-builder\n infer=\"filter-query\"\n .options=${this.options}\n .value=${this.__getValueParam(constructor.filterQueryKey)}\n @change=${this.__handleFilterQueryChange}\n >\n </foxy-query-builder>\n\n <foxy-internal-text-control\n infer=\"filter-name\"\n .getValue=${this.__filterNameGetValue}\n .setValue=${this.__filterNameSetValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-filter-attribute-form-action-control infer=\"action\">\n </foxy-internal-filter-attribute-form-action-control>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (typeof this.form.value === 'string') {\n const url = new URL(decode(this.form.value), 'https://example.com');\n url.pathname = this.pathname ?? '';\n const value = encode(url.toString().substring(url.origin.length));\n if (value !== this.form.value) this.edit({ value });\n }\n }\n\n submit(): void {\n const constructor = this.constructor as typeof FilterAttributeForm;\n\n this.edit({\n visibility: constructor.attributeVisibility,\n name: constructor.attributeName,\n });\n\n super.submit();\n }\n\n private __getValueParam(key: string) {\n try {\n const constructor = this.constructor as typeof FilterAttributeForm;\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n\n let result = url.searchParams.get(key) ?? '';\n\n if (\n key === constructor.filterQueryKey &&\n (this.in({ idle: { snapshot: 'clean' } }) || this.in({ idle: { template: 'clean' } }))\n ) {\n try {\n const fullQuery = new URLSearchParams(result);\n const defaults = new URLSearchParams(this.defaults ?? '');\n fullQuery.forEach((v, k) => defaults.set(k, v));\n result = defaults.toString();\n } catch {\n // no-op\n }\n }\n\n return result;\n } catch {\n return '';\n }\n }\n\n private __setValueParam(key: string, value: string) {\n try {\n const url = new URL(decode(this.form.value ?? ''), 'https://example.com');\n url.searchParams.set(key, value);\n this.edit({ value: encode(url.toString().substring(url.origin.length)) });\n } catch {\n // ignore\n }\n }\n\n private __handleFilterQueryChange(evt: CustomEvent) {\n const constructor = this.constructor as typeof FilterAttributeForm;\n const element = evt.currentTarget as QueryBuilder;\n this.__setValueParam(constructor.filterQueryKey, element.value ?? '');\n }\n}\n"]}
|
package/dist/mixins/themeable.js
CHANGED
|
@@ -1395,6 +1395,10 @@ option{
|
|
|
1395
1395
|
white-space: pre;
|
|
1396
1396
|
}
|
|
1397
1397
|
|
|
1398
|
+
.whitespace-pre-line {
|
|
1399
|
+
white-space: pre-line;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1398
1402
|
.whitespace-pre-wrap {
|
|
1399
1403
|
white-space: pre-wrap;
|
|
1400
1404
|
}
|
|
@@ -1822,6 +1826,10 @@ option{
|
|
|
1822
1826
|
padding-bottom: var(--lumo-space-m, 1rem);
|
|
1823
1827
|
}
|
|
1824
1828
|
|
|
1829
|
+
.pt-xs {
|
|
1830
|
+
padding-top: var(--lumo-space-xs, 0.25rem);
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1825
1833
|
.pt-s {
|
|
1826
1834
|
padding-top: var(--lumo-space-s, 0.5rem);
|
|
1827
1835
|
}
|
|
@@ -2330,6 +2338,10 @@ option{
|
|
|
2330
2338
|
--tw-ring-inset: inset;
|
|
2331
2339
|
}
|
|
2332
2340
|
|
|
2341
|
+
.focus-within-ring-inset:focus-within {
|
|
2342
|
+
--tw-ring-inset: inset;
|
|
2343
|
+
}
|
|
2344
|
+
|
|
2333
2345
|
.focus-ring-inset:focus {
|
|
2334
2346
|
--tw-ring-inset: inset;
|
|
2335
2347
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeable.js","sourceRoot":"","sources":["../../src/mixins/themeable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAA0C,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,wBAAqB;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAkB,EACkB,EAAE;IACtC,OAAO,MAAM,gBAAiB,SAAQ,WAAW;QAC/C,MAAM,KAAK,MAAM;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAEjC,OAAO;gBACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAuKF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI;IACF,cAAc,CACZ,yBAAyB,EACzB,GAAG;;;;;;;;KASF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;KAOF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;KAOF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,eAAe,EACf,GAAG;;;;;;;KAQF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,uEAAuE;IACvE,cAAc,CACZ,aAAa,EACb,GAAG;;;KAIF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAU,SAAQ,mBAAmB,CACzD,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAC5C;CAAG","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { CSSResult, CSSResultArray, Constructor, LitElement, css } from 'lit-element';\n\nimport { ResponsiveMixin } from './responsive';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\n\ntype Base = Constructor<LitElement> & { styles?: CSSResult | CSSResultArray | CSSStyleSheet };\n\nexport const ThemeableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & { styles: CSSResultArray } => {\n return class ThemeableElement extends BaseElement {\n static get styles(): CSSResultArray {\n const originalCSS = super.styles;\n\n return [\n ...(originalCSS ? (Array.isArray(originalCSS) ? originalCSS : [originalCSS]) : []),\n css`\n @tailwind base;\n\n * {\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host {\n display: block;\n color: var(--lumo-body-text-color);\n line-height: var(--lumo-line-height-m);\n font: normal var(--lumo-font-size-m) var(--lumo-font-family);\n }\n\n details > summary::-webkit-details-marker {\n display: none;\n }\n\n details > summary {\n list-style: none;\n }\n\n vaadin-select {\n margin-top: -4px;\n margin-bottom: -4px;\n }\n\n vaadin-text-area,\n vaadin-text-field,\n vaadin-date-picker,\n vaadin-email-field,\n vaadin-number-field,\n vaadin-custom-field,\n vaadin-integer-field,\n vaadin-password-field,\n vaadin-checkbox-group,\n vaadin-radio-group,\n vaadin-combo-box::part(text-field),\n vaadin-date-picker::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-text-area::part(label),\n vaadin-text-field::part(label),\n vaadin-date-picker::part(label),\n vaadin-email-field::part(label),\n vaadin-number-field::part(label),\n vaadin-custom-field::part(label),\n vaadin-integer-field::part(label),\n vaadin-password-field::part(label),\n vaadin-checkbox-group::part(label),\n vaadin-radio-group::part(label),\n vaadin-combo-box::part(label),\n vaadin-date-picker::part(label) {\n margin-left: 0;\n }\n\n vaadin-time-picker,\n vaadin-date-time-picker {\n width: 100%;\n }\n\n vaadin-button,\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(label) {\n margin: 0.1875em var(--lumo-space-m);\n }\n\n .appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .appearance-none::-webkit-calendar-picker-indicator,\n .appearance-none::-webkit-outer-spin-button,\n .appearance-none::-webkit-inner-spin-button,\n .appearance-none::-webkit-list-button {\n opacity: 0 !important;\n width: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n\n input::-webkit-date-and-time-value {\n text-align: inherit !important;\n }\n\n [hidden] {\n display: none !important;\n }\n\n option {\n color: var(--lumo-body-text-color);\n }\n\n @tailwind components;\n\n @tailwind utilities;\n\n @layer utilities {\n .border-radius-overflow-fix {\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n }\n\n @variants sm, md, lg, xl {\n .grid-rows-auto {\n grid-auto-rows: 1fr;\n }\n\n .icon-inline {\n --iron-icon-height: 1em;\n --iron-icon-width: 1em;\n }\n\n .bg-blurred {\n backdrop-filter: blur(25px);\n background: var(--lumo-tint-80pct);\n }\n\n .max-w-modal {\n max-width: 28rem;\n }\n\n .max-w-modal-wide {\n max-width: 50rem;\n }\n\n .w-narrow-modal {\n width: 18rem;\n }\n\n .snap-x-mandatory {\n scroll-snap-type: x mandatory;\n }\n\n .snap-start {\n scroll-snap-align: start;\n }\n\n .hljs-tag {\n color: var(--lumo-tertiary-text-color);\n font-weight: 500;\n }\n\n .hljs-name {\n color: var(--lumo-primary-text-color);\n font-weight: 500;\n }\n\n .hljs-attr {\n color: var(--lumo-secondary-text-color);\n font-weight: 500;\n }\n\n .hljs-string {\n color: var(--lumo-success-text-color);\n font-weight: 500;\n }\n }\n }\n `,\n ];\n }\n };\n};\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker',\n css`\n vaadin-date-time-picker-custom-field {\n --lumo-text-field-size: auto;\n padding: 0;\n }\n\n vaadin-date-time-picker-custom-field::part(label) {\n padding-bottom: 0.5em;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker-date-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-date-text-field {\n padding: 0;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker-time-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-time-text-field {\n padding: 0;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-button',\n css`\n #button {\n cursor: pointer;\n }\n\n :host([theme~='primary']) {\n font-weight: 500;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n /** https://github.com/vaadin-component-factory/vcf-tooltip/issues/6 */\n registerStyles(\n 'vcf-tooltip',\n css`\n :host([hidden]) [part='container'] {\n display: none !important;\n }\n `\n );\n} catch {\n // ignore\n}\n\n/**\n * One of the base classes for each rel-specific element in the collection\n * providing shared TailwindCSS styles for Shadow DOM content.\n * This class MUST NOT be used on its own (hence the `abstract` keyword) or\n * referenced externally (outside of the package).\n *\n * @deprecated\n */\nexport abstract class Themeable extends ScopedElementsMixin(\n ResponsiveMixin(ThemeableMixin(LitElement))\n) {}\n"]}
|
|
1
|
+
{"version":3,"file":"themeable.js","sourceRoot":"","sources":["../../src/mixins/themeable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAA0C,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,wBAAqB;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAkB,EACkB,EAAE;IACtC,OAAO,MAAM,gBAAiB,SAAQ,WAAW;QAC/C,MAAM,KAAK,MAAM;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAEjC,OAAO;gBACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAuKF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI;IACF,cAAc,CACZ,yBAAyB,EACzB,GAAG;;;;;;;;KASF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;KAOF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;KAOF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,cAAc,CACZ,eAAe,EACf,GAAG;;;;;;;KAQF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED,IAAI;IACF,uEAAuE;IACvE,cAAc,CACZ,aAAa,EACb,GAAG;;;KAIF,CACF,CAAC;CACH;AAAC,WAAM;IACN,SAAS;CACV;AAED;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAU,SAAQ,mBAAmB,CACzD,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAC5C;CAAG","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { CSSResult, CSSResultArray, Constructor, LitElement, css } from 'lit-element';\n\nimport { ResponsiveMixin } from './responsive';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\n\ntype Base = Constructor<LitElement> & { styles?: CSSResult | CSSResultArray | CSSStyleSheet };\n\nexport const ThemeableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & { styles: CSSResultArray } => {\n return class ThemeableElement extends BaseElement {\n static get styles(): CSSResultArray {\n const originalCSS = super.styles;\n\n return [\n ...(originalCSS ? (Array.isArray(originalCSS) ? originalCSS : [originalCSS]) : []),\n css`\n @tailwind base;\n\n * {\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host {\n display: block;\n color: var(--lumo-body-text-color);\n line-height: var(--lumo-line-height-m);\n font: normal var(--lumo-font-size-m) var(--lumo-font-family);\n }\n\n details > summary::-webkit-details-marker {\n display: none;\n }\n\n details > summary {\n list-style: none;\n }\n\n vaadin-select {\n margin-top: -4px;\n margin-bottom: -4px;\n }\n\n vaadin-text-area,\n vaadin-text-field,\n vaadin-date-picker,\n vaadin-email-field,\n vaadin-number-field,\n vaadin-custom-field,\n vaadin-integer-field,\n vaadin-password-field,\n vaadin-checkbox-group,\n vaadin-radio-group,\n vaadin-combo-box::part(text-field),\n vaadin-date-picker::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-text-area::part(label),\n vaadin-text-field::part(label),\n vaadin-date-picker::part(label),\n vaadin-email-field::part(label),\n vaadin-number-field::part(label),\n vaadin-custom-field::part(label),\n vaadin-integer-field::part(label),\n vaadin-password-field::part(label),\n vaadin-checkbox-group::part(label),\n vaadin-radio-group::part(label),\n vaadin-combo-box::part(label),\n vaadin-date-picker::part(label) {\n margin-left: 0;\n }\n\n vaadin-time-picker,\n vaadin-date-time-picker {\n width: 100%;\n }\n\n vaadin-button,\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(label) {\n margin: 0.1875em var(--lumo-space-m);\n }\n\n .appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .appearance-none::-webkit-calendar-picker-indicator,\n .appearance-none::-webkit-outer-spin-button,\n .appearance-none::-webkit-inner-spin-button,\n .appearance-none::-webkit-list-button {\n opacity: 0 !important;\n width: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n\n input::-webkit-date-and-time-value {\n text-align: inherit !important;\n }\n\n [hidden] {\n display: none !important;\n }\n\n option {\n color: var(--lumo-body-text-color);\n }\n\n @tailwind components;\n\n @tailwind utilities;\n\n @layer utilities {\n .border-radius-overflow-fix {\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n }\n\n @variants sm, md, lg, xl {\n .grid-rows-auto {\n grid-auto-rows: 1fr;\n }\n\n .icon-inline {\n --iron-icon-height: 1em;\n --iron-icon-width: 1em;\n }\n\n .bg-blurred {\n backdrop-filter: blur(25px);\n background: var(--lumo-tint-80pct);\n }\n\n .max-w-modal {\n max-width: 28rem;\n }\n\n .max-w-modal-wide {\n max-width: 50rem;\n }\n\n .w-narrow-modal {\n width: 18rem;\n }\n\n .snap-x-mandatory {\n scroll-snap-type: x mandatory;\n }\n\n .snap-start {\n scroll-snap-align: start;\n }\n\n .hljs-tag {\n color: var(--lumo-tertiary-text-color);\n font-weight: 500;\n }\n\n .hljs-name {\n color: var(--lumo-primary-text-color);\n font-weight: 500;\n }\n\n .hljs-attr {\n color: var(--lumo-secondary-text-color);\n font-weight: 500;\n }\n\n .hljs-string {\n color: var(--lumo-success-text-color);\n font-weight: 500;\n }\n }\n }\n `,\n ];\n }\n };\n};\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker',\n css`\n vaadin-date-time-picker-custom-field {\n --lumo-text-field-size: auto;\n padding: 0;\n }\n\n vaadin-date-time-picker-custom-field::part(label) {\n padding-bottom: 0.5em;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker-date-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-date-text-field {\n padding: 0;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-date-time-picker-time-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-time-text-field {\n padding: 0;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n registerStyles(\n 'vaadin-button',\n css`\n #button {\n cursor: pointer;\n }\n\n :host([theme~='primary']) {\n font-weight: 500;\n }\n `\n );\n} catch {\n // ignore\n}\n\ntry {\n /** https://github.com/vaadin-component-factory/vcf-tooltip/issues/6 */\n registerStyles(\n 'vcf-tooltip',\n css`\n :host([hidden]) [part='container'] {\n display: none !important;\n }\n `\n );\n} catch {\n // ignore\n}\n\n/**\n * One of the base classes for each rel-specific element in the collection\n * providing shared TailwindCSS styles for Shadow DOM content.\n * This class MUST NOT be used on its own (hence the `abstract` keyword) or\n * referenced externally (outside of the package).\n *\n * @deprecated\n */\nexport abstract class Themeable extends ScopedElementsMixin(\n ResponsiveMixin(ThemeableMixin(LitElement))\n) {}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./foxy-spinner.js";import{I as e}from"./shared-f1a70f51.js";customElements.define("foxy-internal-card",e);
|