@foxy.io/elements 1.32.0-beta.2 → 1.32.0-beta.4
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 +2 -2
- 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-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 -64
- package/dist/cdn/foxy-report-form.js +1 -1
- package/dist/cdn/foxy-reports-table.js +1 -1
- 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-4efc6bb8.js → shared-001dfdb6.js} +1 -1
- package/dist/cdn/{shared-b6ab5711.js → shared-02d4f592.js} +1 -1
- package/dist/cdn/shared-03427c91.js +1 -0
- package/dist/cdn/{shared-24c7c37f.js → shared-08e7b7e5.js} +1 -1
- package/dist/cdn/{shared-9de0a899.js → shared-09350008.js} +1 -1
- package/dist/cdn/{shared-838cc86b.js → shared-0e58c95c.js} +1 -1
- package/dist/cdn/{shared-9e94c56d.js → shared-0e80f20c.js} +1 -1
- package/dist/cdn/{shared-a4b0ccf4.js → shared-0ec6badf.js} +1 -1
- package/dist/cdn/{shared-f97ed2ff.js → shared-10674b72.js} +1 -1
- package/dist/cdn/{shared-9ef03974.js → shared-1183a365.js} +1 -1
- package/dist/cdn/{shared-64d9ac2a.js → shared-11902e83.js} +1 -1
- package/dist/cdn/{shared-c9f3f8d3.js → shared-12c2e2c7.js} +1 -1
- package/dist/cdn/{shared-55bc51c8.js → shared-1e827d8b.js} +1 -1
- package/dist/cdn/{shared-4e1b5fa3.js → shared-20b733ff.js} +1 -1
- package/dist/cdn/{shared-978aaaf2.js → shared-297ee58c.js} +1 -1
- package/dist/cdn/{shared-1c169878.js → shared-2ae2767e.js} +1 -1
- package/dist/cdn/{shared-91560256.js → shared-2d2e210c.js} +1 -1
- package/dist/cdn/{shared-1cd2db2d.js → shared-32af1656.js} +1 -1
- package/dist/cdn/{shared-45bef1ac.js → shared-33c54c6e.js} +1 -1
- package/dist/cdn/shared-35093aea.js +64 -0
- package/dist/cdn/{shared-f0d70be1.js → shared-394d6660.js} +1 -1
- package/dist/cdn/{shared-537d2efe.js → shared-395b2f4c.js} +1 -1
- package/dist/cdn/{shared-ed9c9bab.js → shared-3e302c9e.js} +1 -1
- package/dist/cdn/{shared-ac6e1790.js → shared-513e54c9.js} +1 -1
- package/dist/cdn/{shared-783f6e58.js → shared-51415f88.js} +1 -1
- package/dist/cdn/{shared-30b4c05b.js → shared-532dd9aa.js} +1 -1
- package/dist/cdn/{shared-1cfea4b6.js → shared-555c2785.js} +1 -1
- package/dist/cdn/{shared-eff5dcb0.js → shared-58e2c070.js} +1 -1
- package/dist/cdn/{shared-3a066450.js → shared-5f00bc80.js} +1 -1
- package/dist/cdn/{shared-c6b69d4e.js → shared-65c53765.js} +1 -1
- package/dist/cdn/{shared-d713c00f.js → shared-6745d2ec.js} +1 -1
- package/dist/cdn/{shared-906fe068.js → shared-676a6445.js} +1 -1
- package/dist/cdn/{shared-de45ad84.js → shared-68470d06.js} +1 -1
- package/dist/cdn/{shared-be093279.js → shared-68ae5d92.js} +1 -1
- package/dist/cdn/{shared-08c637a9.js → shared-772745f5.js} +1 -1
- package/dist/cdn/shared-7c1d9bf8.js +1 -0
- package/dist/cdn/{shared-4a86d1ca.js → shared-8405bdfa.js} +1 -1
- package/dist/cdn/{shared-25324930.js → shared-89db9c39.js} +1 -1
- package/dist/cdn/{shared-d8cd61ed.js → shared-8f8c3902.js} +1 -1
- package/dist/cdn/{shared-85989cf3.js → shared-94965d32.js} +1 -1
- package/dist/cdn/{shared-8a8bfd72.js → shared-960eac62.js} +1 -1
- package/dist/cdn/{shared-787e52c4.js → shared-a62af87b.js} +1 -1
- package/dist/cdn/{shared-5ff1affd.js → shared-a811962b.js} +1 -1
- package/dist/cdn/{shared-26425c01.js → shared-abc64854.js} +1 -1
- package/dist/cdn/{shared-08e42e78.js → shared-acba6fbd.js} +1 -1
- package/dist/cdn/{shared-0f261023.js → shared-ad9eae20.js} +1 -1
- package/dist/cdn/{shared-51bb937b.js → shared-af70646d.js} +1 -1
- package/dist/cdn/{shared-011d6240.js → shared-b4b7767a.js} +1 -1
- package/dist/cdn/{shared-45ecb912.js → shared-b6c5ab3b.js} +1 -1
- package/dist/cdn/shared-b79fd251.js +1 -0
- package/dist/cdn/{shared-0a24f318.js → shared-b7ee8271.js} +1 -1
- package/dist/cdn/{shared-c7ffb9f2.js → shared-b8bdf3ae.js} +2 -2
- package/dist/cdn/{shared-620dccaa.js → shared-b9af1789.js} +1 -1
- package/dist/cdn/{shared-4d543043.js → shared-bd59ddc4.js} +1 -1
- package/dist/cdn/{shared-0e44bfff.js → shared-c1c20484.js} +1 -1
- package/dist/cdn/{shared-37cf92bd.js → shared-c1c481c3.js} +1 -1
- package/dist/cdn/{shared-c89f7ad5.js → shared-ca0700a7.js} +1 -1
- package/dist/cdn/{shared-b74187e9.js → shared-d6bf2433.js} +1 -1
- package/dist/cdn/{shared-8f3fdf8b.js → shared-de2dfe65.js} +5 -5
- package/dist/cdn/{shared-34c84b9f.js → shared-e24f4d30.js} +1 -1
- package/dist/cdn/{shared-c40a4b0c.js → shared-e86b8958.js} +1 -1
- package/dist/cdn/{shared-9411a937.js → shared-e95ac70b.js} +1 -1
- package/dist/cdn/{shared-e3647540.js → shared-ea378d0a.js} +1 -1
- package/dist/cdn/{shared-3491d10e.js → shared-f0c7a963.js} +1 -1
- package/dist/cdn/{shared-e1850e5f.js → shared-f23cde6c.js} +1 -1
- package/dist/cdn/{shared-045bd59c.js → shared-f7474be7.js} +1 -1
- package/dist/cdn/{shared-57cc81b4.js → shared-fa5e0813.js} +1 -1
- package/dist/cdn/{shared-8b9ae780.js → shared-fc176bc4.js} +1 -1
- package/dist/cdn/translations/coupon-form/en.json +43 -87
- package/dist/elements/internal/InternalArrayMapControl/InternalArrayMapControl.d.ts +12 -0
- package/dist/elements/internal/InternalArrayMapControl/InternalArrayMapControl.js +277 -0
- package/dist/elements/internal/InternalArrayMapControl/InternalArrayMapControl.js.map +1 -0
- package/dist/elements/internal/InternalArrayMapControl/index.d.ts +4 -0
- package/dist/elements/internal/InternalArrayMapControl/index.js +6 -0
- package/dist/elements/internal/InternalArrayMapControl/index.js.map +1 -0
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +13 -27
- package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -1
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +123 -139
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.d.ts +2 -2
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js +28 -47
- package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.d.ts +3 -3
- package/dist/elements/public/CouponForm/CouponForm.js +64 -35
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CouponForm/index.d.ts +1 -0
- package/dist/elements/public/CouponForm/index.js +1 -0
- package/dist/elements/public/CouponForm/index.js.map +1 -1
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js +9 -27
- package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js.map +1 -1
- package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +1 -5
- package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
- package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -2
- package/dist/elements/public/QueryBuilder/QueryBuilder.js +6 -3
- package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/elements/public/QueryBuilder/components/Rule.js +4 -3
- package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
- package/dist/elements/public/QueryBuilder/utils/parse.js +3 -1
- package/dist/elements/public/QueryBuilder/utils/parse.js.map +1 -1
- package/dist/elements/public/QueryBuilder/utils/stringify.d.ts +1 -1
- package/dist/elements/public/QueryBuilder/utils/stringify.js +16 -7
- package/dist/elements/public/QueryBuilder/utils/stringify.js.map +1 -1
- package/dist/elements/public/Transaction/index.d.ts +1 -0
- package/dist/elements/public/Transaction/index.js +1 -0
- package/dist/elements/public/Transaction/index.js.map +1 -1
- package/dist/mixins/themeable.js +0 -5
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-56d1eae5.js +0 -1
- package/dist/cdn/shared-73c1d31e.js +0 -1
- package/dist/cdn/shared-97e1f413.js +0 -1
|
@@ -66,9 +66,8 @@ div:has(> select)::after{
|
|
|
66
66
|
'transition-colors flex items-center': true,
|
|
67
67
|
'text-secondary': this.readonly,
|
|
68
68
|
'text-disabled': this.disabled,
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'ml-s h-m': !isSummaryItem,
|
|
69
|
+
'border border-contrast-10 rounded-s': isSummaryItem,
|
|
70
|
+
'h-m': !isSummaryItem,
|
|
72
71
|
});
|
|
73
72
|
const isAddButtonDisabled = this.disabled || !this.__newItem;
|
|
74
73
|
const addItem = () => {
|
|
@@ -87,120 +86,97 @@ div:has(> select)::after{
|
|
|
87
86
|
this._value = newValue;
|
|
88
87
|
this.__newItem = '';
|
|
89
88
|
};
|
|
90
|
-
const helperAndError = html `
|
|
91
|
-
<div
|
|
92
|
-
class=${classMap({
|
|
93
|
-
'transition-colors text-xs mt-xs': true,
|
|
94
|
-
'text-secondary group-hover-text-body': !isSummaryItem && isInteractive,
|
|
95
|
-
'text-disabled': !isSummaryItem && this.disabled,
|
|
96
|
-
'text-secondary': isSummaryItem,
|
|
97
|
-
})}
|
|
98
|
-
?hidden=${!this.helperText}
|
|
99
|
-
>
|
|
100
|
-
${this.helperText}
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
<div
|
|
104
|
-
class="mt-xs text-xs leading-xs text-error"
|
|
105
|
-
?hidden=${!this.__isErrorVisible || !this._errorMessage || this.disabled || this.readonly}
|
|
106
|
-
>
|
|
107
|
-
${this._errorMessage}
|
|
108
|
-
</div>
|
|
109
|
-
`;
|
|
110
89
|
return html `
|
|
111
|
-
<div class="
|
|
90
|
+
<div class="mb-s" ?hidden=${!this.label && !this.helperText}>
|
|
91
|
+
<div class=${classMap({ 'font-medium text-l': !isSummaryItem })}>${this.label}</div>
|
|
112
92
|
<div
|
|
113
93
|
class=${classMap({
|
|
114
|
-
'
|
|
115
|
-
'text-
|
|
116
|
-
'text-
|
|
117
|
-
'font-medium text-s': !isSummaryItem,
|
|
118
|
-
'text-m': isSummaryItem,
|
|
94
|
+
'text-secondary': true,
|
|
95
|
+
'text-xs': isSummaryItem,
|
|
96
|
+
'text-s': !isSummaryItem,
|
|
119
97
|
})}
|
|
98
|
+
?hidden=${!this.helperText}
|
|
120
99
|
>
|
|
121
|
-
${this.
|
|
100
|
+
${this.helperText}
|
|
122
101
|
</div>
|
|
102
|
+
</div>
|
|
123
103
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
class=${classMap({
|
|
104
|
+
<div
|
|
105
|
+
class=${classMap({
|
|
106
|
+
'bg-contrast-5 rounded': !isSummaryItem,
|
|
128
107
|
'mt-s': isSummaryItem,
|
|
129
|
-
'transition-colors': true,
|
|
130
|
-
'border border-contrast-10 rounded': !isSummaryItem,
|
|
131
|
-
'group-hover-border-contrast-20': !isSummaryItem && isInteractive,
|
|
132
108
|
})}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
109
|
+
>
|
|
110
|
+
<ol
|
|
111
|
+
class=${classMap({
|
|
136
112
|
'transition-colors font-medium': true,
|
|
137
113
|
'divide-y divide-contrast-10': !isSummaryItem,
|
|
138
114
|
'flex flex-wrap gap-s': isSummaryItem,
|
|
139
115
|
})}
|
|
140
|
-
|
|
141
|
-
|
|
116
|
+
>
|
|
117
|
+
${repeat(this._value, item => item.value, (item, index) => {
|
|
142
118
|
var _a;
|
|
143
119
|
return html `
|
|
144
|
-
|
|
145
|
-
|
|
120
|
+
<li
|
|
121
|
+
class=${itemClass}
|
|
122
|
+
style="padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
123
|
+
>
|
|
124
|
+
<div class="flex-1 mr-s">${(_a = item.label) !== null && _a !== void 0 ? _a : item.value}</div>
|
|
146
125
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
126
|
+
<button
|
|
127
|
+
aria-label=${this.t('delete')}
|
|
128
|
+
class=${deleteButtonClass}
|
|
129
|
+
?disabled=${this.disabled}
|
|
130
|
+
@click=${() => {
|
|
152
131
|
this._value = this._value.filter((_, i) => i !== index);
|
|
153
132
|
}}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
133
|
+
>
|
|
134
|
+
<iron-icon icon="lumo:cross" class="icon-inline text-xl"></iron-icon>
|
|
135
|
+
</button>
|
|
136
|
+
</li>
|
|
137
|
+
`;
|
|
159
138
|
})}
|
|
160
|
-
|
|
139
|
+
</ol>
|
|
161
140
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
? 'border-radius: calc(var(--lumo-border-radius-m) - 1px)'
|
|
167
|
-
: 'border-radius: 0 0 calc(var(--lumo-border-radius-m) - 1px) calc(var(--lumo-border-radius-m) - 1px)'}
|
|
168
|
-
class=${classMap({
|
|
169
|
-
'transition-colors pl-s h-m flex items-center gap-xs': true,
|
|
141
|
+
<div
|
|
142
|
+
style="padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
|
|
143
|
+
class=${classMap({
|
|
144
|
+
'transition-colors h-m flex items-center gap-xs': true,
|
|
170
145
|
'focus-within-ring-2 focus-within-ring-primary-50': !isSummaryItem,
|
|
171
|
-
'bg-contrast-
|
|
146
|
+
'bg-contrast-5 hover-bg-contrast-10': !isSummaryItem && isInteractive,
|
|
172
147
|
'bg-contrast-5': !isSummaryItem && this.disabled,
|
|
173
148
|
'flex': !this.readonly,
|
|
174
149
|
'hidden': this.readonly,
|
|
175
150
|
'rounded-s border border-contrast-10': isSummaryItem,
|
|
176
151
|
'mt-s': isSummaryItem && this._value.length > 0,
|
|
152
|
+
'rounded': !isSummaryItem && this._value.length === 0,
|
|
153
|
+
'rounded-b': !isSummaryItem && this._value.length > 0,
|
|
177
154
|
})}
|
|
178
|
-
|
|
179
|
-
|
|
155
|
+
>
|
|
156
|
+
${this.range
|
|
180
157
|
? html `
|
|
181
|
-
|
|
182
|
-
</foxy-i18n>
|
|
158
|
+
<foxy-i18n infer="" class="text-disabled font-medium" key="range_from"> </foxy-i18n>
|
|
183
159
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
160
|
+
<input
|
|
161
|
+
placeholder=${this.placeholder}
|
|
162
|
+
class=${classMap({
|
|
187
163
|
'bg-transparent appearance-none h-m font-medium focus-outline-none': true,
|
|
188
164
|
'text-disabled': this.disabled,
|
|
189
165
|
})}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
166
|
+
list="list"
|
|
167
|
+
...=${spread(this.inputParams)}
|
|
168
|
+
.value=${live((_a = this.__newItem.split('..')[0]) !== null && _a !== void 0 ? _a : '')}
|
|
169
|
+
?disabled=${this.disabled}
|
|
170
|
+
?readonly=${this.readonly}
|
|
171
|
+
@keydown=${(evt) => evt.key === 'Enter' && addItem()}
|
|
172
|
+
@change=${(evt) => evt.stopPropagation()}
|
|
173
|
+
@input=${(evt) => {
|
|
198
174
|
var _a;
|
|
199
175
|
const newFrom = evt.currentTarget.value.trim();
|
|
200
176
|
const oldTo = (_a = this.__newItem.split('..')[1]) !== null && _a !== void 0 ? _a : '';
|
|
201
177
|
this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;
|
|
202
178
|
}}
|
|
203
|
-
|
|
179
|
+
@paste=${(evt) => {
|
|
204
180
|
var _a, _b, _c;
|
|
205
181
|
evt.preventDefault();
|
|
206
182
|
const newFrom = (_b = (_a = evt.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '';
|
|
@@ -208,33 +184,33 @@ div:has(> select)::after{
|
|
|
208
184
|
this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;
|
|
209
185
|
addItem();
|
|
210
186
|
}}
|
|
211
|
-
|
|
187
|
+
@blur=${() => {
|
|
212
188
|
this.__isErrorVisible = true;
|
|
213
189
|
}}
|
|
214
|
-
|
|
190
|
+
/>
|
|
215
191
|
|
|
216
|
-
|
|
192
|
+
<foxy-i18n infer="" class="text-disabled font-medium" key="range_to"></foxy-i18n>
|
|
217
193
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
194
|
+
<input
|
|
195
|
+
placeholder=${this.placeholder}
|
|
196
|
+
class=${classMap({
|
|
221
197
|
'bg-transparent appearance-none h-m font-medium focus-outline-none': true,
|
|
222
198
|
'text-disabled': this.disabled,
|
|
223
199
|
})}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
200
|
+
list="list"
|
|
201
|
+
...=${spread(this.inputParams)}
|
|
202
|
+
.value=${live((_b = this.__newItem.split('..')[1]) !== null && _b !== void 0 ? _b : '')}
|
|
203
|
+
?disabled=${this.disabled}
|
|
204
|
+
?readonly=${this.readonly}
|
|
205
|
+
@keydown=${(evt) => evt.key === 'Enter' && addItem()}
|
|
206
|
+
@change=${(evt) => evt.stopPropagation()}
|
|
207
|
+
@input=${(evt) => {
|
|
232
208
|
var _a;
|
|
233
209
|
const newTo = evt.currentTarget.value.trim();
|
|
234
210
|
const oldFrom = (_a = this.__newItem.split('..')[0]) !== null && _a !== void 0 ? _a : '';
|
|
235
211
|
this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;
|
|
236
212
|
}}
|
|
237
|
-
|
|
213
|
+
@paste=${(evt) => {
|
|
238
214
|
var _a, _b, _c;
|
|
239
215
|
evt.preventDefault();
|
|
240
216
|
const newTo = (_b = (_a = evt.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '';
|
|
@@ -242,75 +218,75 @@ div:has(> select)::after{
|
|
|
242
218
|
this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;
|
|
243
219
|
addItem();
|
|
244
220
|
}}
|
|
245
|
-
|
|
221
|
+
@blur=${() => {
|
|
246
222
|
this.__isErrorVisible = true;
|
|
247
223
|
}}
|
|
248
|
-
|
|
249
|
-
|
|
224
|
+
/>
|
|
225
|
+
`
|
|
250
226
|
: html `
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
227
|
+
<input
|
|
228
|
+
placeholder=${this.placeholder}
|
|
229
|
+
class=${classMap({
|
|
254
230
|
'w-full bg-transparent appearance-none h-m font-medium focus-outline-none': true,
|
|
255
231
|
'text-disabled': this.disabled,
|
|
256
232
|
})}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
233
|
+
list="list"
|
|
234
|
+
...=${spread(this.inputParams)}
|
|
235
|
+
.value=${live(this.__newItem)}
|
|
236
|
+
?disabled=${this.disabled}
|
|
237
|
+
?readonly=${this.readonly}
|
|
238
|
+
@keydown=${(evt) => evt.key === 'Enter' && addItem()}
|
|
239
|
+
@change=${(evt) => evt.stopPropagation()}
|
|
240
|
+
@input=${(evt) => {
|
|
265
241
|
this.__newItem = evt.currentTarget.value.trim();
|
|
266
242
|
}}
|
|
267
|
-
|
|
243
|
+
@paste=${(evt) => {
|
|
268
244
|
var _a, _b;
|
|
269
245
|
evt.preventDefault();
|
|
270
246
|
this.__newItem = (_b = (_a = evt.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '';
|
|
271
247
|
addItem();
|
|
272
248
|
}}
|
|
273
|
-
|
|
249
|
+
@blur=${() => {
|
|
274
250
|
this.__isErrorVisible = true;
|
|
275
251
|
}}
|
|
276
|
-
|
|
277
|
-
|
|
252
|
+
/>
|
|
253
|
+
`}
|
|
278
254
|
|
|
279
|
-
|
|
280
|
-
|
|
255
|
+
<div
|
|
256
|
+
class=${classMap({
|
|
281
257
|
'relative': true,
|
|
282
258
|
'hover-text-base focus-within-text-primary-contrast': !this.disabled,
|
|
283
259
|
'text-disabled': this.disabled,
|
|
284
260
|
})}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
261
|
+
?hidden=${this.units.length === 0}
|
|
262
|
+
>
|
|
263
|
+
<select
|
|
264
|
+
style="min-width: 8rem"
|
|
265
|
+
class=${classMap({
|
|
290
266
|
'transition-colors rounded-s mx-xs px-s': true,
|
|
291
267
|
'bg-contrast-5 appearance-none h-xs font-medium focus-outline-none': true,
|
|
292
268
|
'hover-bg-contrast focus-bg-primary': !this.disabled,
|
|
293
269
|
})}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
270
|
+
?disabled=${this.disabled}
|
|
271
|
+
>
|
|
272
|
+
${this.units.map(({ label, value }) => {
|
|
297
273
|
return html `<option value=${value}>${label !== null && label !== void 0 ? label : value}</option>`;
|
|
298
274
|
})}
|
|
299
|
-
|
|
300
|
-
|
|
275
|
+
</select>
|
|
276
|
+
</div>
|
|
301
277
|
|
|
302
|
-
|
|
303
|
-
|
|
278
|
+
<datalist id="list">
|
|
279
|
+
${this.options.map(({ label, value }) => {
|
|
304
280
|
if (this._value.some(item => item.value === value))
|
|
305
281
|
return;
|
|
306
282
|
return html `<option value=${value}>${label !== null && label !== void 0 ? label : value}</option>`;
|
|
307
283
|
})}
|
|
308
|
-
|
|
284
|
+
</datalist>
|
|
309
285
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
286
|
+
<div class="mr-xs ml-auto" ?hidden=${!this.__newItem}>
|
|
287
|
+
<button
|
|
288
|
+
aria-label=${this.t('submit')}
|
|
289
|
+
class=${classMap({
|
|
314
290
|
'w-xs h-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,
|
|
315
291
|
'flex items-center justify-center rounded-s transition-colors': true,
|
|
316
292
|
'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,
|
|
@@ -318,16 +294,24 @@ div:has(> select)::after{
|
|
|
318
294
|
'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,
|
|
319
295
|
'focus-ring-2': !isAddButtonDisabled,
|
|
320
296
|
})}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
</div>
|
|
297
|
+
?disabled=${isAddButtonDisabled}
|
|
298
|
+
@click=${addItem}
|
|
299
|
+
>
|
|
300
|
+
<iron-icon icon="lumo:plus" class="icon-inline text-l"></iron-icon>
|
|
301
|
+
</button>
|
|
327
302
|
</div>
|
|
328
303
|
</div>
|
|
304
|
+
</div>
|
|
329
305
|
|
|
330
|
-
|
|
306
|
+
<div
|
|
307
|
+
class=${classMap({
|
|
308
|
+
'mt-s leading-xs text-error': true,
|
|
309
|
+
'text-xs': isSummaryItem,
|
|
310
|
+
'text-s': !isSummaryItem,
|
|
311
|
+
})}
|
|
312
|
+
?hidden=${!this.__isErrorVisible || !this._errorMessage || this.disabled || this.readonly}
|
|
313
|
+
>
|
|
314
|
+
${this._errorMessage}
|
|
331
315
|
</div>
|
|
332
316
|
`;
|
|
333
317
|
}
|
package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalEditableListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/InternalEditableListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Item, Option, Unit } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { spread } from '@open-wc/lit-helpers';\nimport { live } from 'lit-html/directives/live';\n\nexport class InternalEditableListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n inputParams: { attribute: false },\n options: { type: Array },\n layout: {},\n units: { type: Array },\n range: {},\n __isErrorVisible: { attribute: false },\n __newItem: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n div:has(> select) {\n position: relative;\n }\n\n div:has(> select)::after {\n content: ' ';\n position: absolute;\n top: 50%;\n margin-top: -2px;\n right: 10px;\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid currentColor;\n }\n `,\n ];\n }\n\n inputParams: Record<string, unknown> = {};\n\n options: Option[] = [];\n\n layout: 'standalone' | 'summary-item' | null = null;\n\n units: Unit[] = [];\n\n range: null | 'optional' = null;\n\n private __isErrorVisible = false;\n\n private __newItem = '';\n\n render(): TemplateResult {\n const isSummaryItem = this.layout === 'summary-item';\n const isInteractive = !this.disabled && !this.readonly;\n\n const deleteButtonClass = classMap({\n 'w-xs h-xs rounded-s transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n 'mr-xs': !isSummaryItem,\n });\n\n const itemClass = classMap({\n 'transition-colors flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'group-hover-divide-contrast-20': !isSummaryItem && isInteractive,\n 'pl-s border border-contrast-10 rounded-s': isSummaryItem,\n 'ml-s h-m': !isSummaryItem,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n const newValue = [...this._value];\n const unit = this.renderRoot.querySelector('select')?.value;\n\n this.__newItem\n .split('\\n')\n .map(code => code.trim())\n .filter(code => code.length > 0)\n .forEach(value => {\n if (!newValue.some(item => item.value === value)) {\n newValue.push({ value, unit });\n }\n });\n\n this._value = newValue;\n this.__newItem = '';\n };\n\n const helperAndError = html`\n <div\n class=${classMap({\n 'transition-colors text-xs mt-xs': true,\n 'text-secondary group-hover-text-body': !isSummaryItem && isInteractive,\n 'text-disabled': !isSummaryItem && this.disabled,\n 'text-secondary': isSummaryItem,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this.__isErrorVisible || !this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n `;\n\n return html`\n <div class=\"group\">\n <div\n class=${classMap({\n 'transition-colors mb-xs': true,\n 'text-secondary group-hover-text-body': !isSummaryItem && isInteractive,\n 'text-disabled': !isSummaryItem && this.disabled,\n 'font-medium text-s': !isSummaryItem,\n 'text-m': isSummaryItem,\n })}\n >\n ${this.label}\n </div>\n\n ${isSummaryItem ? helperAndError : ''}\n\n <div\n class=${classMap({\n 'mt-s': isSummaryItem,\n 'transition-colors': true,\n 'border border-contrast-10 rounded': !isSummaryItem,\n 'group-hover-border-contrast-20': !isSummaryItem && isInteractive,\n })}\n >\n <ol\n class=${classMap({\n 'transition-colors font-medium': true,\n 'divide-y divide-contrast-10': !isSummaryItem,\n 'flex flex-wrap gap-s': isSummaryItem,\n })}\n >\n ${repeat(\n this._value,\n item => item.value,\n (item, index) => {\n return html`\n <li class=${itemClass}>\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this._value = this._value.filter((_, i) => i !== index);\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n style=${isSummaryItem\n ? ''\n : this._value.length === 0\n ? 'border-radius: calc(var(--lumo-border-radius-m) - 1px)'\n : 'border-radius: 0 0 calc(var(--lumo-border-radius-m) - 1px) calc(var(--lumo-border-radius-m) - 1px)'}\n class=${classMap({\n 'transition-colors pl-s h-m flex items-center gap-xs': true,\n 'focus-within-ring-2 focus-within-ring-primary-50': !isSummaryItem,\n 'bg-contrast-10 group-hover-bg-contrast-20': !isSummaryItem && isInteractive,\n 'bg-contrast-5': !isSummaryItem && this.disabled,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n 'rounded-s border border-contrast-10': isSummaryItem,\n 'mt-s': isSummaryItem && this._value.length > 0,\n })}\n >\n ${this.range\n ? html`\n <foxy-i18n infer=\"\" class=\"text-disabled font-medium\" key=\"range_from\">\n </foxy-i18n>\n\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'bg-transparent appearance-none h-m font-medium focus-outline-none': true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem.split('..')[0] ?? '')}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n const newFrom = (evt.currentTarget as HTMLInputElement).value.trim();\n const oldTo = this.__newItem.split('..')[1] ?? '';\n this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n\n const newFrom = evt.clipboardData?.getData('text') ?? '';\n const oldTo = this.__newItem.split('..')[1] ?? '';\n this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;\n\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n\n <foxy-i18n infer=\"\" class=\"text-disabled font-medium\" key=\"range_to\"></foxy-i18n>\n\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'bg-transparent appearance-none h-m font-medium focus-outline-none': true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem.split('..')[1] ?? '')}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n const newTo = (evt.currentTarget as HTMLInputElement).value.trim();\n const oldFrom = this.__newItem.split('..')[0] ?? '';\n this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n\n const newTo = evt.clipboardData?.getData('text') ?? '';\n const oldFrom = this.__newItem.split('..')[0] ?? '';\n this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;\n\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n `\n : html`\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'w-full bg-transparent appearance-none h-m font-medium focus-outline-none':\n true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n this.__newItem = evt.clipboardData?.getData('text') ?? '';\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n `}\n\n <div\n class=${classMap({\n 'relative': true,\n 'hover-text-base focus-within-text-primary-contrast': !this.disabled,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${this.units.length === 0}\n >\n <select\n style=\"min-width: 8rem\"\n class=${classMap({\n 'transition-colors rounded-s mx-xs px-s': true,\n 'bg-contrast-5 appearance-none h-xs font-medium focus-outline-none': true,\n 'hover-bg-contrast focus-bg-primary': !this.disabled,\n })}\n ?disabled=${this.disabled}\n >\n ${this.units.map(({ label, value }) => {\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </select>\n </div>\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this._value.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"mr-xs ml-auto\" ?hidden=${!this.__newItem}>\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,\n 'flex items-center justify-center rounded-s transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-contrast-5 text-body cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n </div>\n\n ${isSummaryItem ? '' : helperAndError}\n </div>\n `;\n }\n\n protected get _value(): Item[] {\n return (super._value ?? []) as Item[];\n }\n\n protected set _value(newValue: Item[]) {\n super._value = newValue;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalEditableListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/InternalEditableListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Item, Option, Unit } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { spread } from '@open-wc/lit-helpers';\nimport { live } from 'lit-html/directives/live';\n\nexport class InternalEditableListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n inputParams: { attribute: false },\n options: { type: Array },\n layout: {},\n units: { type: Array },\n range: {},\n __isErrorVisible: { attribute: false },\n __newItem: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n div:has(> select) {\n position: relative;\n }\n\n div:has(> select)::after {\n content: ' ';\n position: absolute;\n top: 50%;\n margin-top: -2px;\n right: 10px;\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid currentColor;\n }\n `,\n ];\n }\n\n inputParams: Record<string, unknown> = {};\n\n options: Option[] = [];\n\n layout: 'standalone' | 'summary-item' | null = null;\n\n units: Unit[] = [];\n\n range: null | 'optional' = null;\n\n private __isErrorVisible = false;\n\n private __newItem = '';\n\n render(): TemplateResult {\n const isSummaryItem = this.layout === 'summary-item';\n const isInteractive = !this.disabled && !this.readonly;\n\n const deleteButtonClass = classMap({\n 'w-xs h-xs rounded-s transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n 'mr-xs': !isSummaryItem,\n });\n\n const itemClass = classMap({\n 'transition-colors flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'border border-contrast-10 rounded-s': isSummaryItem,\n 'h-m': !isSummaryItem,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n const newValue = [...this._value];\n const unit = this.renderRoot.querySelector('select')?.value;\n\n this.__newItem\n .split('\\n')\n .map(code => code.trim())\n .filter(code => code.length > 0)\n .forEach(value => {\n if (!newValue.some(item => item.value === value)) {\n newValue.push({ value, unit });\n }\n });\n\n this._value = newValue;\n this.__newItem = '';\n };\n\n return html`\n <div class=\"mb-s\" ?hidden=${!this.label && !this.helperText}>\n <div class=${classMap({ 'font-medium text-l': !isSummaryItem })}>${this.label}</div>\n <div\n class=${classMap({\n 'text-secondary': true,\n 'text-xs': isSummaryItem,\n 'text-s': !isSummaryItem,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n </div>\n\n <div\n class=${classMap({\n 'bg-contrast-5 rounded': !isSummaryItem,\n 'mt-s': isSummaryItem,\n })}\n >\n <ol\n class=${classMap({\n 'transition-colors font-medium': true,\n 'divide-y divide-contrast-10': !isSummaryItem,\n 'flex flex-wrap gap-s': isSummaryItem,\n })}\n >\n ${repeat(\n this._value,\n item => item.value,\n (item, index) => {\n return html`\n <li\n class=${itemClass}\n style=\"padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this._value = this._value.filter((_, i) => i !== index);\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n style=\"padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n class=${classMap({\n 'transition-colors h-m flex items-center gap-xs': true,\n 'focus-within-ring-2 focus-within-ring-primary-50': !isSummaryItem,\n 'bg-contrast-5 hover-bg-contrast-10': !isSummaryItem && isInteractive,\n 'bg-contrast-5': !isSummaryItem && this.disabled,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n 'rounded-s border border-contrast-10': isSummaryItem,\n 'mt-s': isSummaryItem && this._value.length > 0,\n 'rounded': !isSummaryItem && this._value.length === 0,\n 'rounded-b': !isSummaryItem && this._value.length > 0,\n })}\n >\n ${this.range\n ? html`\n <foxy-i18n infer=\"\" class=\"text-disabled font-medium\" key=\"range_from\"> </foxy-i18n>\n\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'bg-transparent appearance-none h-m font-medium focus-outline-none': true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem.split('..')[0] ?? '')}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n const newFrom = (evt.currentTarget as HTMLInputElement).value.trim();\n const oldTo = this.__newItem.split('..')[1] ?? '';\n this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n\n const newFrom = evt.clipboardData?.getData('text') ?? '';\n const oldTo = this.__newItem.split('..')[1] ?? '';\n this.__newItem = oldTo ? `${newFrom}..${oldTo}` : newFrom;\n\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n\n <foxy-i18n infer=\"\" class=\"text-disabled font-medium\" key=\"range_to\"></foxy-i18n>\n\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'bg-transparent appearance-none h-m font-medium focus-outline-none': true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem.split('..')[1] ?? '')}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n const newTo = (evt.currentTarget as HTMLInputElement).value.trim();\n const oldFrom = this.__newItem.split('..')[0] ?? '';\n this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n\n const newTo = evt.clipboardData?.getData('text') ?? '';\n const oldFrom = this.__newItem.split('..')[0] ?? '';\n this.__newItem = oldFrom ? `${oldFrom}..${newTo}` : newTo;\n\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n `\n : html`\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'w-full bg-transparent appearance-none h-m font-medium focus-outline-none':\n true,\n 'text-disabled': this.disabled,\n })}\n list=\"list\"\n ...=${spread(this.inputParams)}\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n @paste=${(evt: ClipboardEvent) => {\n evt.preventDefault();\n this.__newItem = evt.clipboardData?.getData('text') ?? '';\n addItem();\n }}\n @blur=${() => {\n this.__isErrorVisible = true;\n }}\n />\n `}\n\n <div\n class=${classMap({\n 'relative': true,\n 'hover-text-base focus-within-text-primary-contrast': !this.disabled,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${this.units.length === 0}\n >\n <select\n style=\"min-width: 8rem\"\n class=${classMap({\n 'transition-colors rounded-s mx-xs px-s': true,\n 'bg-contrast-5 appearance-none h-xs font-medium focus-outline-none': true,\n 'hover-bg-contrast focus-bg-primary': !this.disabled,\n })}\n ?disabled=${this.disabled}\n >\n ${this.units.map(({ label, value }) => {\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </select>\n </div>\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this._value.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"mr-xs ml-auto\" ?hidden=${!this.__newItem}>\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,\n 'flex items-center justify-center rounded-s transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-contrast-5 text-body cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div\n class=${classMap({\n 'mt-s leading-xs text-error': true,\n 'text-xs': isSummaryItem,\n 'text-s': !isSummaryItem,\n })}\n ?hidden=${!this.__isErrorVisible || !this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n `;\n }\n\n protected get _value(): Item[] {\n return (super._value ?? []) as Item[];\n }\n\n protected set _value(newValue: Item[]) {\n super._value = newValue;\n }\n}\n"]}
|
|
@@ -4,8 +4,8 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
|
|
|
4
4
|
import { Operator } from '../../public/QueryBuilder/types';
|
|
5
5
|
export declare class InternalQueryBuilderControl extends InternalEditableControl {
|
|
6
6
|
static get properties(): PropertyDeclarations;
|
|
7
|
-
|
|
7
|
+
disableZoom: boolean;
|
|
8
8
|
disableOr: boolean;
|
|
9
|
-
|
|
9
|
+
operators: Operator[];
|
|
10
10
|
renderControl(): TemplateResult;
|
|
11
11
|
}
|
|
@@ -1,71 +1,52 @@
|
|
|
1
1
|
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
2
|
import { Operator } from "../../public/QueryBuilder/types.js";
|
|
3
|
-
import { classMap } from "../../../utils/class-map.js";
|
|
4
3
|
import { html } from 'lit-html';
|
|
5
4
|
export class InternalQueryBuilderControl extends InternalEditableControl {
|
|
6
5
|
constructor() {
|
|
7
6
|
super(...arguments);
|
|
8
|
-
this.
|
|
7
|
+
this.disableZoom = false;
|
|
9
8
|
this.disableOr = false;
|
|
10
|
-
this.
|
|
9
|
+
this.operators = Object.values(Operator);
|
|
11
10
|
}
|
|
12
11
|
static get properties() {
|
|
13
12
|
return {
|
|
14
13
|
...super.properties,
|
|
15
|
-
|
|
14
|
+
disableZoom: { type: Boolean, attribute: 'disable-zoom' },
|
|
16
15
|
disableOr: { type: Boolean, attribute: 'disable-or' },
|
|
17
|
-
|
|
16
|
+
operators: { type: Array },
|
|
18
17
|
};
|
|
19
18
|
}
|
|
20
19
|
renderControl() {
|
|
21
|
-
var _a;
|
|
22
20
|
const { label, helperText, _errorMessage: error } = this;
|
|
23
21
|
const showError = error && !this.disabled && !this.readonly;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
22
|
+
return html `
|
|
23
|
+
<section class="grid gap-s leading-xs">
|
|
24
|
+
<div ?hidden=${!label && !helperText}>
|
|
25
|
+
${label ? html `<p class="text-l font-medium">${label}</p>` : ''}
|
|
26
|
+
${helperText ? html `<p class="text-s text-secondary">${helperText}</p>` : ''}
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div
|
|
30
|
+
class="bg-contrast-5 rounded"
|
|
31
|
+
style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);"
|
|
32
|
+
>
|
|
33
|
+
<foxy-query-builder
|
|
34
|
+
infer="query-builder"
|
|
35
|
+
style="--lumo-border-radius: var(--lumo-border-radius-s); --lumo-border-radius-l: var(--lumo-border-radius-s)"
|
|
36
|
+
.operators=${this.operators}
|
|
37
|
+
.value=${this._value}
|
|
38
|
+
?disable-zoom=${this.disableZoom}
|
|
39
|
+
?disable-or=${this.disableOr}
|
|
40
|
+
@change=${(evt) => {
|
|
36
41
|
var _a;
|
|
37
42
|
const queryBuilder = evt.currentTarget;
|
|
38
43
|
this._value = (_a = queryBuilder.value) !== null && _a !== void 0 ? _a : '';
|
|
39
44
|
}}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
class=${classMap({
|
|
46
|
-
'grid gap-xs leading-xs transition-colors text-secondary': true,
|
|
47
|
-
'hover-text-body': layout === 'standalone' && !this.disabled && !this.readonly,
|
|
48
|
-
'text-disabled': this.disabled,
|
|
49
|
-
'text-body': this.readonly,
|
|
50
|
-
})}
|
|
51
|
-
>
|
|
52
|
-
${label
|
|
53
|
-
? html `
|
|
54
|
-
<p
|
|
55
|
-
class=${classMap({
|
|
56
|
-
'text-s font-medium': layout === 'standalone',
|
|
57
|
-
'text-m text-body': layout === 'summary-item',
|
|
58
|
-
'hidden': !label,
|
|
59
|
-
})}
|
|
60
|
-
>
|
|
61
|
-
${label}
|
|
62
|
-
</p>
|
|
63
|
-
`
|
|
64
|
-
: ''}
|
|
65
|
-
${layout === 'standalone' ? builder : ''}
|
|
66
|
-
${helperText ? html `<p class="text-xs">${helperText}</p>` : ''}
|
|
67
|
-
${showError ? html `<p class="text-xs text-error">${error}</p>` : ''}
|
|
68
|
-
${layout === 'summary-item' ? builder : ''}
|
|
45
|
+
>
|
|
46
|
+
</foxy-query-builder>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
${showError ? html `<p class="text-s text-error">${error}</p>` : ''}
|
|
69
50
|
</section>
|
|
70
51
|
`;
|
|
71
52
|
}
|
package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalQueryBuilderControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,QAAQ,EAAE,2CAAwC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InternalQueryBuilderControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,QAAQ,EAAE,2CAAwC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,2BAA4B,SAAQ,uBAAuB;IAAxE;;QAUE,gBAAW,GAAG,KAAK,CAAC;QAEpB,cAAS,GAAG,KAAK,CAAC;QAElB,cAAS,GAAe,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAoClD,CAAC;IAjDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;YACzD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE;YACrD,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC3B,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACzD,MAAM,SAAS,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE5D,OAAO,IAAI,CAAA;;uBAEQ,CAAC,KAAK,IAAI,CAAC,UAAU;YAChC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,iCAAiC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;YAC7D,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,oCAAoC,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;yBAU7D,IAAI,CAAC,SAAS;qBAClB,IAAI,CAAC,MAAM;4BACJ,IAAI,CAAC,WAAW;0BAClB,IAAI,CAAC,SAAS;sBAClB,CAAC,GAAgB,EAAE,EAAE;;YAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,aAA6B,CAAC;YACvD,IAAI,CAAC,MAAM,SAAG,YAAY,CAAC,KAAK,mCAAI,EAAE,CAAC;QACzC,CAAC;;;;;UAKH,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA,gCAAgC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;;KAErE,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { QueryBuilder } from '../../public/QueryBuilder/QueryBuilder';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { Operator } from '../../public/QueryBuilder/types';\nimport { html } from 'lit-html';\n\nexport class InternalQueryBuilderControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disableZoom: { type: Boolean, attribute: 'disable-zoom' },\n disableOr: { type: Boolean, attribute: 'disable-or' },\n operators: { type: Array },\n };\n }\n\n disableZoom = false;\n\n disableOr = false;\n\n operators: Operator[] = Object.values(Operator);\n\n renderControl(): TemplateResult {\n const { label, helperText, _errorMessage: error } = this;\n const showError = error && !this.disabled && !this.readonly;\n\n return html`\n <section class=\"grid gap-s leading-xs\">\n <div ?hidden=${!label && !helperText}>\n ${label ? html`<p class=\"text-l font-medium\">${label}</p>` : ''}\n ${helperText ? html`<p class=\"text-s text-secondary\">${helperText}</p>` : ''}\n </div>\n\n <div\n class=\"bg-contrast-5 rounded\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\"\n >\n <foxy-query-builder\n infer=\"query-builder\"\n style=\"--lumo-border-radius: var(--lumo-border-radius-s); --lumo-border-radius-l: var(--lumo-border-radius-s)\"\n .operators=${this.operators}\n .value=${this._value}\n ?disable-zoom=${this.disableZoom}\n ?disable-or=${this.disableOr}\n @change=${(evt: CustomEvent) => {\n const queryBuilder = evt.currentTarget as QueryBuilder;\n this._value = queryBuilder.value ?? '';\n }}\n >\n </foxy-query-builder>\n </div>\n\n ${showError ? html`<p class=\"text-s text-error\">${error}</p>` : ''}\n </section>\n `;\n }\n}\n"]}
|