@foxy.io/elements 1.18.0-beta.13 → 1.18.0-beta.15
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-api-browser.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-cancellation-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-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-api.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.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +2 -2
- package/dist/cdn/foxy-customer.js +2 -2
- 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-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-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-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.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-nucleon-element.js +1 -1
- package/dist/cdn/foxy-pagination.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-payments-api.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +12 -12
- package/dist/cdn/foxy-reports-table.js +5 -5
- package/dist/cdn/foxy-shipment-card.js +2 -2
- package/dist/cdn/foxy-shipping-method-card.js +1 -0
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -0
- 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 +3 -3
- 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-card.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 -0
- 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 +1 -1
- package/dist/cdn/foxy-user-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-a0f6e39c.js → shared-0565ecbc.js} +1 -1
- package/dist/cdn/{shared-d863e06b.js → shared-081ad02f.js} +1 -1
- package/dist/cdn/{shared-415c86b6.js → shared-0953a0e7.js} +1 -1
- package/dist/cdn/{shared-fff1815b.js → shared-0d91f648.js} +1 -1
- package/dist/cdn/{shared-8a34457d.js → shared-10dbb9d7.js} +1 -1
- package/dist/cdn/{shared-9f0606f2.js → shared-15278fe0.js} +1 -1
- package/dist/cdn/{shared-015e5cb9.js → shared-1d34726a.js} +1 -1
- package/dist/cdn/{shared-10e7ddf5.js → shared-23e0d67e.js} +1 -1
- package/dist/cdn/{shared-57412bac.js → shared-2a56246b.js} +1 -1
- package/dist/cdn/{shared-7c8b3ce0.js → shared-2af327d0.js} +1 -1
- package/dist/cdn/{shared-7e690245.js → shared-3425791b.js} +5 -5
- package/dist/cdn/{shared-26adbd9b.js → shared-34cd3a01.js} +1 -1
- package/dist/cdn/shared-38df92f3.js +1 -0
- package/dist/cdn/{shared-c7fad58c.js → shared-398b3c49.js} +1 -1
- package/dist/cdn/{shared-5382ccfa.js → shared-3ef5c283.js} +1 -1
- package/dist/cdn/{shared-68fad60e.js → shared-45418f3b.js} +1 -1
- package/dist/cdn/{shared-58445db9.js → shared-4610cbdb.js} +1 -1
- package/dist/cdn/{shared-b0ba62ff.js → shared-4a796610.js} +1 -1
- package/dist/cdn/{shared-f38a79cc.js → shared-4ff7174f.js} +1 -1
- package/dist/cdn/shared-5606cd36.js +1 -0
- package/dist/cdn/{shared-aecb20d0.js → shared-5c837b54.js} +1 -1
- package/dist/cdn/{shared-ba78987f.js → shared-63671948.js} +1 -1
- package/dist/cdn/{shared-8911c2e0.js → shared-6b471536.js} +1 -1
- package/dist/cdn/{shared-4382f0cd.js → shared-6dafebaf.js} +1 -1
- package/dist/cdn/{shared-53cdff0b.js → shared-74b7438a.js} +1 -1
- package/dist/cdn/shared-760cc838.js +1 -0
- package/dist/cdn/shared-779795c5.js +1 -0
- package/dist/cdn/{shared-68600caf.js → shared-7ab9beb2.js} +1 -1
- package/dist/cdn/{shared-45cc4f44.js → shared-7ca327ea.js} +1 -1
- package/dist/cdn/{shared-cbff5e58.js → shared-8033b140.js} +1 -1
- package/dist/cdn/{shared-0b67dae4.js → shared-8328826e.js} +7 -7
- package/dist/cdn/{shared-34db34b2.js → shared-86be537c.js} +1 -1
- package/dist/cdn/{shared-20b2223a.js → shared-8704e701.js} +1 -1
- package/dist/cdn/shared-88924652.js +169 -0
- package/dist/cdn/shared-890a22af.js +1 -0
- package/dist/cdn/shared-8ab29d7d.js +1 -0
- package/dist/cdn/{shared-465cdd03.js → shared-8dee6348.js} +2 -2
- package/dist/cdn/{shared-d8faafc7.js → shared-9195959e.js} +1 -1
- package/dist/cdn/{shared-8c8853ab.js → shared-93c15291.js} +1 -1
- package/dist/cdn/shared-a420358e.js +1 -0
- package/dist/cdn/{shared-6a2cf3b9.js → shared-a5000f1f.js} +2 -2
- package/dist/cdn/{shared-b54eb879.js → shared-a6339611.js} +1 -1
- package/dist/cdn/{shared-da126678.js → shared-a861c770.js} +1 -1
- package/dist/cdn/{shared-2ec256d5.js → shared-a8966936.js} +1 -1
- package/dist/cdn/{shared-cd1bc9f5.js → shared-a8ada44e.js} +1 -1
- package/dist/cdn/{shared-c47571a6.js → shared-abf68928.js} +1 -1
- package/dist/cdn/shared-b567541a.js +1 -0
- package/dist/cdn/{shared-ef792142.js → shared-b6a37360.js} +1 -1
- package/dist/cdn/{shared-c6f5602e.js → shared-b98f0ad9.js} +1 -1
- package/dist/cdn/{shared-e46eb641.js → shared-bd4b0759.js} +1 -1
- package/dist/cdn/shared-c29811ec.js +1 -0
- package/dist/cdn/{shared-2e33702b.js → shared-cd14b0cc.js} +1 -1
- package/dist/cdn/{shared-09a14740.js → shared-d1b62ccd.js} +17 -12
- package/dist/cdn/{shared-008ffb33.js → shared-d58e7670.js} +1 -1
- package/dist/cdn/shared-d82f3ba0.js +1 -0
- package/dist/cdn/{shared-5bf3f8f1.js → shared-d8b14272.js} +1 -1
- package/dist/cdn/{shared-27aeabd9.js → shared-dee53530.js} +1 -1
- package/dist/cdn/{shared-35e929aa.js → shared-eefa4103.js} +1 -1
- package/dist/cdn/{shared-0f137ff8.js → shared-f22d1ed9.js} +1 -1
- package/dist/cdn/{shared-f49ee631.js → shared-fd124dfd.js} +1 -1
- package/dist/cdn/shared-fdf6ca55.js +1 -0
- package/dist/cdn/{shared-fce199fa.js → shared-ffea7639.js} +1 -1
- package/dist/cdn/translations/email-template-card/en.json +1 -1
- package/dist/cdn/translations/shipping-method-card/en.json +11 -0
- package/dist/cdn/translations/store-form/en.json +316 -0
- package/dist/cdn/translations/template-config-form/en.json +0 -4
- package/dist/cdn/translations/template-set-card/en.json +7 -0
- package/dist/cdn/translations/template-set-form/en.json +8 -342
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +6 -0
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +47 -28
- package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.d.ts +11 -0
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +143 -0
- package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -0
- package/dist/elements/internal/InternalEditableListControl/index.d.ts +3 -0
- package/dist/elements/internal/InternalEditableListControl/index.js +5 -0
- package/dist/elements/internal/InternalEditableListControl/index.js.map +1 -0
- package/dist/elements/internal/InternalEditableListControl/types.d.ts +9 -0
- package/dist/elements/internal/InternalEditableListControl/types.js +2 -0
- package/dist/elements/internal/InternalEditableListControl/types.js.map +1 -0
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +6 -1
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +25 -12
- package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +4 -1
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +15 -0
- package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
- package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.d.ts +13 -0
- package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js +40 -0
- package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js.map +1 -0
- package/dist/elements/internal/InternalPasswordControl/index.d.ts +4 -0
- package/dist/elements/internal/InternalPasswordControl/index.js +6 -0
- package/dist/elements/internal/InternalPasswordControl/index.js.map +1 -0
- package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +4 -1
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js +15 -1
- package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
- package/dist/elements/private/Dialog/Dialog.d.ts +2 -0
- package/dist/elements/private/Dialog/Dialog.js +6 -1
- package/dist/elements/private/Dialog/Dialog.js.map +1 -1
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js +8 -1
- package/dist/elements/public/EmailTemplateCard/EmailTemplateCard.js.map +1 -1
- package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.d.ts +15 -0
- package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js +78 -0
- package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js.map +1 -0
- package/dist/elements/public/ShippingMethodCard/index.d.ts +4 -0
- package/dist/elements/public/ShippingMethodCard/index.js +6 -0
- package/dist/elements/public/ShippingMethodCard/index.js.map +1 -0
- package/dist/elements/public/ShippingMethodCard/types.d.ts +10 -0
- package/dist/elements/public/ShippingMethodCard/types.js +2 -0
- package/dist/elements/public/ShippingMethodCard/types.js.map +1 -0
- package/dist/elements/public/StoreForm/StoreForm.d.ts +55 -0
- package/dist/elements/public/StoreForm/StoreForm.js +1030 -0
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -0
- package/dist/elements/public/StoreForm/index.d.ts +15 -0
- package/dist/elements/public/StoreForm/index.js +17 -0
- package/dist/elements/public/StoreForm/index.js.map +1 -0
- package/dist/elements/public/StoreForm/types.d.ts +3 -0
- package/dist/elements/public/StoreForm/types.js +2 -0
- package/dist/elements/public/StoreForm/types.js.map +1 -0
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +24 -0
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/index.d.ts +1 -0
- package/dist/elements/public/StoreShippingMethodForm/index.js +1 -0
- package/dist/elements/public/StoreShippingMethodForm/index.js.map +1 -1
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.d.ts +0 -1
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js +9 -58
- package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js.map +1 -1
- package/dist/elements/public/TemplateConfigForm/index.d.ts +0 -1
- package/dist/elements/public/TemplateConfigForm/index.js +0 -1
- package/dist/elements/public/TemplateConfigForm/index.js.map +1 -1
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.d.ts +10 -0
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.js +18 -0
- package/dist/elements/public/TemplateSetCard/TemplateSetCard.js.map +1 -0
- package/dist/elements/public/TemplateSetCard/index.d.ts +3 -0
- package/dist/elements/public/TemplateSetCard/index.js +5 -0
- package/dist/elements/public/TemplateSetCard/index.js.map +1 -0
- package/dist/elements/public/TemplateSetCard/types.d.ts +3 -0
- package/dist/elements/public/TemplateSetCard/types.js +2 -0
- package/dist/elements/public/TemplateSetCard/types.js.map +1 -0
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.d.ts +1 -20
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +21 -236
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/index.d.ts +0 -8
- package/dist/elements/public/TemplateSetForm/index.js +0 -8
- package/dist/elements/public/TemplateSetForm/index.js.map +1 -1
- package/dist/elements/public/index.d.ts +3 -0
- package/dist/elements/public/index.defined.d.ts +3 -0
- package/dist/elements/public/index.defined.js +3 -0
- package/dist/elements/public/index.defined.js.map +1 -1
- package/dist/elements/public/index.js +3 -0
- package/dist/elements/public/index.js.map +1 -1
- package/dist/mixins/themeable.js +280 -88
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-0093ee59.js +0 -6
- package/dist/cdn/shared-156144ab.js +0 -1
- package/dist/cdn/shared-2a20ac6b.js +0 -1
- package/dist/cdn/shared-3909c1e5.js +0 -1
- package/dist/cdn/shared-3fb5f380.js +0 -1
- package/dist/cdn/shared-4cd53ea2.js +0 -1
- package/dist/cdn/shared-8c91f512.js +0 -169
- package/dist/cdn/shared-9eff0743.js +0 -1
- package/dist/cdn/shared-a03d948d.js +0 -1
- package/dist/cdn/shared-be043b54.js +0 -1
- package/dist/cdn/shared-c00bff9d.js +0 -1
- package/dist/cdn/shared-c60b6e1a.js +0 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
|
+
import { classMap } from "../../../utils/class-map.js";
|
|
3
|
+
import { repeat } from 'lit-html/directives/repeat';
|
|
4
|
+
import { live } from 'lit-html/directives/live';
|
|
5
|
+
import { html } from 'lit-element';
|
|
6
|
+
export class InternalEditableListControl extends InternalEditableControl {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.options = [];
|
|
10
|
+
this.__newItem = '';
|
|
11
|
+
}
|
|
12
|
+
static get properties() {
|
|
13
|
+
return {
|
|
14
|
+
...super.properties,
|
|
15
|
+
options: { type: Array },
|
|
16
|
+
__newItem: { attribute: false },
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
render() {
|
|
20
|
+
const deleteButtonClass = classMap({
|
|
21
|
+
'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,
|
|
22
|
+
'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,
|
|
23
|
+
'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,
|
|
24
|
+
'cursor-default text-disabled': this.disabled,
|
|
25
|
+
'flex items-center justify-center': !this.readonly,
|
|
26
|
+
'hidden': this.readonly,
|
|
27
|
+
});
|
|
28
|
+
const itemClass = classMap({
|
|
29
|
+
'transition-colors h-m ml-s flex items-center': true,
|
|
30
|
+
'text-secondary': this.readonly,
|
|
31
|
+
'text-disabled': this.disabled,
|
|
32
|
+
});
|
|
33
|
+
const isAddButtonDisabled = this.disabled || !this.__newItem;
|
|
34
|
+
const addItem = () => {
|
|
35
|
+
if (!this.__newItem)
|
|
36
|
+
return;
|
|
37
|
+
this._value = [...this._value, { value: this.__newItem }];
|
|
38
|
+
this.__newItem = '';
|
|
39
|
+
};
|
|
40
|
+
return html `
|
|
41
|
+
<div class="group">
|
|
42
|
+
<div
|
|
43
|
+
class="transition-colors mb-xs font-medium text-s text-secondary group-hover-text-body"
|
|
44
|
+
>
|
|
45
|
+
${this.label}
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div
|
|
49
|
+
class="border border-contrast-10 rounded transition-colors group-hover-border-contrast-20"
|
|
50
|
+
>
|
|
51
|
+
<ol
|
|
52
|
+
class="transition-colors divide-y divide-contrast-10 font-medium group-hover-divide-contrast-20"
|
|
53
|
+
>
|
|
54
|
+
${repeat(this._value, item => item.value, (item, index) => {
|
|
55
|
+
var _a;
|
|
56
|
+
return html `
|
|
57
|
+
<li class=${itemClass}>
|
|
58
|
+
<div class="flex-1 mr-s">${(_a = item.label) !== null && _a !== void 0 ? _a : item.value}</div>
|
|
59
|
+
|
|
60
|
+
<button
|
|
61
|
+
aria-label=${this.t('delete')}
|
|
62
|
+
class=${deleteButtonClass}
|
|
63
|
+
?disabled=${this.disabled}
|
|
64
|
+
@click=${() => {
|
|
65
|
+
this._value = this._value.filter((_, i) => i !== index);
|
|
66
|
+
}}
|
|
67
|
+
>
|
|
68
|
+
<iron-icon icon="lumo:cross" class="icon-inline text-xl"></iron-icon>
|
|
69
|
+
</button>
|
|
70
|
+
</li>
|
|
71
|
+
`;
|
|
72
|
+
})}
|
|
73
|
+
</ol>
|
|
74
|
+
|
|
75
|
+
<div
|
|
76
|
+
style=${this._value.length === 0
|
|
77
|
+
? 'border-radius: calc(var(--lumo-border-radius-m) - 1px)'
|
|
78
|
+
: 'border-radius: 0 0 calc(var(--lumo-border-radius-m) - 1px) calc(var(--lumo-border-radius-m) - 1px)'}
|
|
79
|
+
class=${classMap({
|
|
80
|
+
'transition-colors bg-contrast-10 pl-s h-m flex items-center': true,
|
|
81
|
+
'focus-within-ring-2 focus-within-ring-primary-50': true,
|
|
82
|
+
'group-hover-bg-contrast-20': true,
|
|
83
|
+
'flex': !this.readonly,
|
|
84
|
+
'hidden': this.readonly,
|
|
85
|
+
})}
|
|
86
|
+
>
|
|
87
|
+
<input
|
|
88
|
+
placeholder=${this.placeholder}
|
|
89
|
+
class="w-full bg-transparent appearance-none h-m font-medium focus-outline-none"
|
|
90
|
+
list="list"
|
|
91
|
+
.value=${live(this.__newItem)}
|
|
92
|
+
?disabled=${this.disabled}
|
|
93
|
+
?readonly=${this.readonly}
|
|
94
|
+
@keydown=${(evt) => evt.key === 'Enter' && addItem()}
|
|
95
|
+
@change=${(evt) => evt.stopPropagation()}
|
|
96
|
+
@input=${(evt) => {
|
|
97
|
+
this.__newItem = evt.currentTarget.value.trim();
|
|
98
|
+
}}
|
|
99
|
+
/>
|
|
100
|
+
|
|
101
|
+
<datalist id="list">
|
|
102
|
+
${this.options.map(({ label, value }) => {
|
|
103
|
+
if (this._value.some(item => item.value === value))
|
|
104
|
+
return;
|
|
105
|
+
return html `<option value=${value}>${label !== null && label !== void 0 ? label : value}</option>`;
|
|
106
|
+
})}
|
|
107
|
+
</datalist>
|
|
108
|
+
|
|
109
|
+
<div class="transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}">
|
|
110
|
+
<button
|
|
111
|
+
aria-label=${this.t('submit')}
|
|
112
|
+
class=${classMap({
|
|
113
|
+
'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,
|
|
114
|
+
'flex items-center justify-center rounded-full transition-colors': true,
|
|
115
|
+
'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,
|
|
116
|
+
'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,
|
|
117
|
+
'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,
|
|
118
|
+
'focus-ring-2': !isAddButtonDisabled,
|
|
119
|
+
})}
|
|
120
|
+
?disabled=${isAddButtonDisabled}
|
|
121
|
+
@click=${addItem}
|
|
122
|
+
>
|
|
123
|
+
<iron-icon icon="lumo:plus" class="icon-inline text-l"></iron-icon>
|
|
124
|
+
</button>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<div class="transition-colors mt-xs text-xs text-secondary group-hover-text-body">
|
|
130
|
+
${this.helperText}
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
`;
|
|
134
|
+
}
|
|
135
|
+
get _value() {
|
|
136
|
+
var _a;
|
|
137
|
+
return ((_a = super._value) !== null && _a !== void 0 ? _a : []);
|
|
138
|
+
}
|
|
139
|
+
set _value(newValue) {
|
|
140
|
+
super._value = newValue;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=InternalEditableListControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalEditableListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/InternalEditableListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Item, Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { classMap } from '../../../utils/class-map';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { live } from 'lit-html/directives/live';\nimport { html } from 'lit-element';\n\nexport class InternalEditableListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n __newItem: { attribute: false },\n };\n }\n\n options: Option[] = [];\n\n private __newItem = '';\n\n render(): TemplateResult {\n const deleteButtonClass = classMap({\n 'w-xs h-xs mr-xs rounded-full 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 });\n\n const itemClass = classMap({\n 'transition-colors h-m ml-s flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n if (!this.__newItem) return;\n this._value = [...this._value, { value: this.__newItem }];\n this.__newItem = '';\n };\n\n return html`\n <div class=\"group\">\n <div\n class=\"transition-colors mb-xs font-medium text-s text-secondary group-hover-text-body\"\n >\n ${this.label}\n </div>\n\n <div\n class=\"border border-contrast-10 rounded transition-colors group-hover-border-contrast-20\"\n >\n <ol\n class=\"transition-colors divide-y divide-contrast-10 font-medium group-hover-divide-contrast-20\"\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=${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 bg-contrast-10 pl-s h-m flex items-center': true,\n 'focus-within-ring-2 focus-within-ring-primary-50': true,\n 'group-hover-bg-contrast-20': true,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n })}\n >\n <input\n placeholder=${this.placeholder}\n class=\"w-full bg-transparent appearance-none h-m font-medium focus-outline-none\"\n list=\"list\"\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 />\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=\"transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}\">\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none':\n true,\n 'flex items-center justify-center rounded-full transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-success-10 text-success 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 class=\"transition-colors mt-xs text-xs text-secondary group-hover-text-body\">\n ${this.helperText}\n </div>\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"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import "../InternalEditableControl/index.js";
|
|
2
|
+
import { InternalEditableListControl } from "./InternalEditableListControl.js";
|
|
3
|
+
customElements.define('foxy-internal-editable-list-control', InternalEditableListControl);
|
|
4
|
+
export { InternalEditableListControl };
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAE1C,OAAO,EAAE,2BAA2B,EAAE,yCAAsC;AAE5E,cAAc,CAAC,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC,CAAC;AAE1F,OAAO,EAAE,2BAA2B,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\n\nimport { InternalEditableListControl } from './InternalEditableListControl';\n\ncustomElements.define('foxy-internal-editable-list-control', InternalEditableListControl);\n\nexport { InternalEditableListControl };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TemplateResult } from 'lit-html';\n\nexport type Item = { label?: string | TemplateResult; value: string };\nexport type Option = { label?: string; value: string };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CSSResultArray, TemplateResult } from 'lit-element';
|
|
1
|
+
import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
2
|
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
3
3
|
/**
|
|
4
4
|
* Internal control displaying a custom field for frequency input.
|
|
@@ -7,7 +7,12 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
|
|
|
7
7
|
* @element foxy-internal-frequency-control
|
|
8
8
|
*/
|
|
9
9
|
export declare class InternalFrequencyControl extends InternalEditableControl {
|
|
10
|
+
static get properties(): PropertyDeclarations;
|
|
10
11
|
static get styles(): CSSResultArray;
|
|
12
|
+
options: {
|
|
13
|
+
value: string;
|
|
14
|
+
label: string;
|
|
15
|
+
}[];
|
|
11
16
|
private __i18n;
|
|
12
17
|
renderControl(): TemplateResult;
|
|
13
18
|
updated(changes: Map<keyof this, unknown>): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
|
-
import { parseDuration } from "../../../utils/parse-duration.js";
|
|
3
2
|
import { css, html } from 'lit-element';
|
|
4
3
|
/**
|
|
5
4
|
* Internal control displaying a custom field for frequency input.
|
|
@@ -10,14 +9,29 @@ import { css, html } from 'lit-element';
|
|
|
10
9
|
export class InternalFrequencyControl extends InternalEditableControl {
|
|
11
10
|
constructor() {
|
|
12
11
|
super(...arguments);
|
|
12
|
+
this.options = [
|
|
13
|
+
{ value: 'd', label: 'day' },
|
|
14
|
+
{ value: 'w', label: 'week' },
|
|
15
|
+
{ value: 'm', label: 'month' },
|
|
16
|
+
{ value: 'y', label: 'year' },
|
|
17
|
+
];
|
|
13
18
|
this.__i18n = {
|
|
14
19
|
formatValue: inputValues => inputValues.join(''),
|
|
15
20
|
parseValue: value => {
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
var _a;
|
|
22
|
+
const normalizedValue = value.startsWith('.') ? `0${value}` : value;
|
|
23
|
+
const count = parseFloat(value.substring(0, Math.max(normalizedValue.length - 1, 0)));
|
|
24
|
+
const units = (_a = normalizedValue[normalizedValue.length - 1]) !== null && _a !== void 0 ? _a : '';
|
|
25
|
+
return isNaN(count) ? ['0', ''] : [count.toString(), units];
|
|
18
26
|
},
|
|
19
27
|
};
|
|
20
28
|
}
|
|
29
|
+
static get properties() {
|
|
30
|
+
return {
|
|
31
|
+
...super.properties,
|
|
32
|
+
options: { attribute: false },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
21
35
|
static get styles() {
|
|
22
36
|
return [
|
|
23
37
|
super.styles,
|
|
@@ -59,7 +73,11 @@ vaadin-combo-box::part(text-field){
|
|
|
59
73
|
renderControl() {
|
|
60
74
|
var _a, _b;
|
|
61
75
|
const value = ((_a = this._value) !== null && _a !== void 0 ? _a : '');
|
|
62
|
-
const count =
|
|
76
|
+
const count = parseFloat(this.__i18n.parseValue(value)[0]);
|
|
77
|
+
const items = this.options.map(({ value, label }) => ({
|
|
78
|
+
label: this.t(label, { count }),
|
|
79
|
+
value,
|
|
80
|
+
}));
|
|
63
81
|
return html `
|
|
64
82
|
<vaadin-custom-field
|
|
65
83
|
?disabled=${this.disabled}
|
|
@@ -93,12 +111,7 @@ vaadin-combo-box::part(text-field){
|
|
|
93
111
|
?disabled=${this.disabled}
|
|
94
112
|
?readonly=${this.readonly}
|
|
95
113
|
?invalid=${!this._checkValidity()}
|
|
96
|
-
.items=${
|
|
97
|
-
{ value: 'd', label: this.t('day', { count }) },
|
|
98
|
-
{ value: 'w', label: this.t('week', { count }) },
|
|
99
|
-
{ value: 'm', label: this.t('month', { count }) },
|
|
100
|
-
{ value: 'y', label: this.t('year', { count }) },
|
|
101
|
-
]}
|
|
114
|
+
.items=${items}
|
|
102
115
|
@keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
|
|
103
116
|
>
|
|
104
117
|
</vaadin-combo-box>
|
|
@@ -107,8 +120,8 @@ vaadin-combo-box::part(text-field){
|
|
|
107
120
|
}
|
|
108
121
|
updated(changes) {
|
|
109
122
|
super.updated(changes);
|
|
110
|
-
const field = this.renderRoot.
|
|
111
|
-
if (field.value !== this._value)
|
|
123
|
+
const field = this.renderRoot.querySelector('vaadin-custom-field');
|
|
124
|
+
if (field && field.value !== this._value)
|
|
112
125
|
field.value = this._value;
|
|
113
126
|
}
|
|
114
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { css, html } from 'lit-element';\n\n/**\n * Internal control displaying a custom field for frequency input.\n *\n * @since 1.17.0\n * @element foxy-internal-frequency-control\n */\nexport class InternalFrequencyControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `,\n ];\n }\n\n options = [\n { value: 'd', label: 'day' },\n { value: 'w', label: 'week' },\n { value: 'm', label: 'month' },\n { value: 'y', label: 'year' },\n ];\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const normalizedValue = value.startsWith('.') ? `0${value}` : value;\n const count = parseFloat(value.substring(0, Math.max(normalizedValue.length - 1, 0)));\n const units = normalizedValue[normalizedValue.length - 1] ?? '';\n\n return isNaN(count) ? ['0', ''] : [count.toString(), units];\n },\n };\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n const count = parseFloat(this.__i18n.parseValue(value)[0] as string);\n const items = this.options.map(({ value, label }) => ({\n label: this.t(label, { count }),\n value,\n }));\n\n return html`\n <vaadin-custom-field\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .errorMessage=${this._errorMessage ?? ''}\n .helperText=${this.helperText}\n .label=${this.label}\n .value=${value}\n .i18n=${this.__i18n}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as CustomFieldElement;\n this._value = field.value as string;\n }}\n >\n <vaadin-integer-field\n max=\"999\"\n min=\"1\"\n prevent-invalid-input\n has-controls\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n .items=${items}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.querySelector('vaadin-custom-field');\n if (field && field.value !== this._value) field.value = this._value as string;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-element';
|
|
1
|
+
import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
2
|
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
3
3
|
/**
|
|
4
4
|
* Internal control displaying a basic integer box.
|
|
@@ -7,6 +7,9 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
|
|
|
7
7
|
* @element foxy-internal-integer-control
|
|
8
8
|
*/
|
|
9
9
|
export declare class InternalIntegerControl extends InternalEditableControl {
|
|
10
|
+
static get properties(): PropertyDeclarations;
|
|
11
|
+
min: number | null;
|
|
12
|
+
max: number | null;
|
|
10
13
|
renderControl(): TemplateResult;
|
|
11
14
|
protected get _value(): number;
|
|
12
15
|
protected set _value(newValue: number);
|
|
@@ -8,7 +8,20 @@ import { html } from 'lit-element';
|
|
|
8
8
|
* @element foxy-internal-integer-control
|
|
9
9
|
*/
|
|
10
10
|
export class InternalIntegerControl extends InternalEditableControl {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.min = null;
|
|
14
|
+
this.max = null;
|
|
15
|
+
}
|
|
16
|
+
static get properties() {
|
|
17
|
+
return {
|
|
18
|
+
...super.properties,
|
|
19
|
+
min: { type: Number },
|
|
20
|
+
max: { type: Number },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
11
23
|
renderControl() {
|
|
24
|
+
var _a, _b;
|
|
12
25
|
return html `
|
|
13
26
|
<vaadin-integer-field
|
|
14
27
|
error-message=${ifDefined(this._errorMessage)}
|
|
@@ -16,6 +29,8 @@ export class InternalIntegerControl extends InternalEditableControl {
|
|
|
16
29
|
helper-text=${this.helperText}
|
|
17
30
|
label=${this.label}
|
|
18
31
|
class="w-full"
|
|
32
|
+
min=${ifDefined((_a = this.min) !== null && _a !== void 0 ? _a : undefined)}
|
|
33
|
+
max=${ifDefined((_b = this.max) !== null && _b !== void 0 ? _b : undefined)}
|
|
19
34
|
?disabled=${this.disabled}
|
|
20
35
|
?readonly=${this.readonly}
|
|
21
36
|
.checkValidity=${this._checkValidity}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IAAnE;;QASE,QAAG,GAAkB,IAAI,CAAC;QAE1B,QAAG,GAAkB,IAAI,CAAC;IAkC5B,CAAC;IA5CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACrB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACtB,CAAC;IACJ,CAAC;IAMD,aAAa;;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;cAEZ,SAAS,OAAC,IAAI,CAAC,GAAG,mCAAI,SAAS,CAAC;cAChC,SAAS,OAAC,IAAI,CAAC,GAAG,mCAAI,SAAS,CAAC;oBAC1B,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAoC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport type { PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic integer box.\n *\n * @since 1.17.0\n * @element foxy-internal-integer-control\n */\nexport class InternalIntegerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n min: { type: Number },\n max: { type: Number },\n };\n }\n\n min: number | null = null;\n\n max: number | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-integer-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n min=${ifDefined(this.min ?? undefined)}\n max=${ifDefined(this.max ?? undefined)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n clear-button-visible\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this._value = parseInt(field.value);\n }}\n >\n </vaadin-integer-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-element';
|
|
2
|
+
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
3
|
+
/**
|
|
4
|
+
* Internal control displaying a basic password box.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.17.0
|
|
7
|
+
* @element foxy-internal-password-field-control
|
|
8
|
+
*/
|
|
9
|
+
export declare class InternalPasswordControl extends InternalEditableControl {
|
|
10
|
+
renderControl(): TemplateResult;
|
|
11
|
+
protected get _value(): string;
|
|
12
|
+
protected set _value(newValue: string);
|
|
13
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
3
|
+
import { html } from 'lit-element';
|
|
4
|
+
/**
|
|
5
|
+
* Internal control displaying a basic password box.
|
|
6
|
+
*
|
|
7
|
+
* @since 1.17.0
|
|
8
|
+
* @element foxy-internal-password-field-control
|
|
9
|
+
*/
|
|
10
|
+
export class InternalPasswordControl extends InternalEditableControl {
|
|
11
|
+
renderControl() {
|
|
12
|
+
return html `
|
|
13
|
+
<vaadin-password-field
|
|
14
|
+
error-message=${ifDefined(this._errorMessage)}
|
|
15
|
+
helper-text=${this.helperText}
|
|
16
|
+
placeholder=${this.placeholder}
|
|
17
|
+
label=${this.label}
|
|
18
|
+
class="w-full"
|
|
19
|
+
?disabled=${this.disabled}
|
|
20
|
+
?readonly=${this.readonly}
|
|
21
|
+
.checkValidity=${this._checkValidity}
|
|
22
|
+
.value=${this._value}
|
|
23
|
+
@keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
|
|
24
|
+
@input=${(evt) => {
|
|
25
|
+
const area = evt.currentTarget;
|
|
26
|
+
this._value = area.value;
|
|
27
|
+
}}
|
|
28
|
+
>
|
|
29
|
+
</vaadin-password-field>
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
get _value() {
|
|
33
|
+
var _a;
|
|
34
|
+
return (_a = super._value) !== null && _a !== void 0 ? _a : '';
|
|
35
|
+
}
|
|
36
|
+
set _value(newValue) {
|
|
37
|
+
super._value = newValue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=InternalPasswordControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalPasswordControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/InternalPasswordControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,uBAAuB;IAClE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAqC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { PasswordFieldElement } from '@vaadin/vaadin-text-field/vaadin-password-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic password box.\n *\n * @since 1.17.0\n * @element foxy-internal-password-field-control\n */\nexport class InternalPasswordControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-password-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const area = evt.currentTarget as PasswordFieldElement;\n this._value = area.value;\n }}\n >\n </vaadin-password-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import '@vaadin/vaadin-text-field/vaadin-password-field';
|
|
2
|
+
import "../InternalEditableControl/index.js";
|
|
3
|
+
import { InternalPasswordControl as Control } from "./InternalPasswordControl.js";
|
|
4
|
+
customElements.define('foxy-internal-password-control', Control);
|
|
5
|
+
export { Control as InternalPasswordControl };
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,iDAAiD,CAAC;AACzD,6CAA0C;AAC1C,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,qCAAkC;AAE/E,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-password-field';\nimport '../InternalEditableControl/index';\nimport { InternalPasswordControl as Control } from './InternalPasswordControl';\n\ncustomElements.define('foxy-internal-password-control', Control);\n\nexport { Control as InternalPasswordControl };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-element';
|
|
1
|
+
import type { PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
2
2
|
import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
|
|
3
3
|
/**
|
|
4
4
|
* Internal control displaying a basic text box.
|
|
@@ -7,6 +7,9 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
|
|
|
7
7
|
* @element foxy-internal-text-control
|
|
8
8
|
*/
|
|
9
9
|
export declare class InternalTextControl extends InternalEditableControl {
|
|
10
|
+
static get properties(): PropertyDeclarations;
|
|
11
|
+
prefix: string | null;
|
|
12
|
+
suffix: string | null;
|
|
10
13
|
renderControl(): TemplateResult;
|
|
11
14
|
protected get _value(): string;
|
|
12
15
|
protected set _value(newValue: string);
|
|
@@ -8,6 +8,18 @@ import { html } from 'lit-element';
|
|
|
8
8
|
* @element foxy-internal-text-control
|
|
9
9
|
*/
|
|
10
10
|
export class InternalTextControl extends InternalEditableControl {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.prefix = null;
|
|
14
|
+
this.suffix = null;
|
|
15
|
+
}
|
|
16
|
+
static get properties() {
|
|
17
|
+
return {
|
|
18
|
+
...super.properties,
|
|
19
|
+
prefix: {},
|
|
20
|
+
suffix: {},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
11
23
|
renderControl() {
|
|
12
24
|
return html `
|
|
13
25
|
<vaadin-text-field
|
|
@@ -16,9 +28,9 @@ export class InternalTextControl extends InternalEditableControl {
|
|
|
16
28
|
placeholder=${this.placeholder}
|
|
17
29
|
label=${this.label}
|
|
18
30
|
class="w-full"
|
|
31
|
+
?clear-button-visible=${!this.suffix}
|
|
19
32
|
?disabled=${this.disabled}
|
|
20
33
|
?readonly=${this.readonly}
|
|
21
|
-
clear-button-visible
|
|
22
34
|
.checkValidity=${this._checkValidity}
|
|
23
35
|
.value=${this._value}
|
|
24
36
|
@keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
|
|
@@ -27,6 +39,8 @@ export class InternalTextControl extends InternalEditableControl {
|
|
|
27
39
|
this._value = field.value;
|
|
28
40
|
}}
|
|
29
41
|
>
|
|
42
|
+
${this.prefix ? html `<div slot="prefix">${this.prefix}</div>` : ''}
|
|
43
|
+
${this.suffix ? html `<div class="pr-s font-medium" slot="suffix">${this.suffix}</div>` : ''}
|
|
30
44
|
</vaadin-text-field>
|
|
31
45
|
`;
|
|
32
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAAhE;;QASE,WAAM,GAAkB,IAAI,CAAC;QAE7B,WAAM,GAAkB,IAAI,CAAC;IAkC/B,CAAC;IA5CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;gCAEM,CAAC,IAAI,CAAC,MAAM;oBACxB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;UAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,+CAA+C,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TextFieldElement } from '@vaadin/vaadin-text-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n prefix: {},\n suffix: {},\n };\n }\n\n prefix: string | null = null;\n\n suffix: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?clear-button-visible=${!this.suffix}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n ${this.prefix ? html`<div slot=\"prefix\">${this.prefix}</div>` : ''}\n ${this.suffix ? html`<div class=\"pr-s font-medium\" slot=\"suffix\">${this.suffix}</div>` : ''}\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
|
|
@@ -43,6 +43,8 @@ export declare abstract class Dialog extends Base {
|
|
|
43
43
|
header: string;
|
|
44
44
|
/** When true, centers a dialog on the screen and does not animate the stack under. */
|
|
45
45
|
alert: boolean;
|
|
46
|
+
/** When true, dialog window will a larger maximum width. */
|
|
47
|
+
wide: boolean;
|
|
46
48
|
private __returnFocusTo?;
|
|
47
49
|
private __handleKeyDown;
|
|
48
50
|
private __connected;
|
|
@@ -22,6 +22,8 @@ export class Dialog extends Base {
|
|
|
22
22
|
this.header = '';
|
|
23
23
|
/** When true, centers a dialog on the screen and does not animate the stack under. */
|
|
24
24
|
this.alert = false;
|
|
25
|
+
/** When true, dialog window will a larger maximum width. */
|
|
26
|
+
this.wide = false;
|
|
25
27
|
this.__handleKeyDown = (evt) => {
|
|
26
28
|
if (evt.key === 'Escape' && Dialog.openDialogs[0] === this && this.closable)
|
|
27
29
|
this.hide(this.editable);
|
|
@@ -40,6 +42,7 @@ export class Dialog extends Base {
|
|
|
40
42
|
editable: { type: Boolean },
|
|
41
43
|
header: { type: String },
|
|
42
44
|
alert: { type: Boolean },
|
|
45
|
+
wide: { type: Boolean },
|
|
43
46
|
open: { type: Boolean, noAccessor: true },
|
|
44
47
|
};
|
|
45
48
|
}
|
|
@@ -121,7 +124,9 @@ export class Dialog extends Base {
|
|
|
121
124
|
role="dialog"
|
|
122
125
|
aria-labelledby="dialog-title"
|
|
123
126
|
class=${classMap({
|
|
124
|
-
'transform origin-bottom ease-in-out transition duration-500 relative h-full ml-auto sm-origin-center
|
|
127
|
+
'transform origin-bottom ease-in-out transition duration-500 relative h-full ml-auto sm-origin-center': true,
|
|
128
|
+
'sm-max-w-modal': !this.wide,
|
|
129
|
+
'sm-max-w-modal-wide': this.wide,
|
|
125
130
|
'flex justify-center items-end sm-items-center mr-auto': this.alert,
|
|
126
131
|
'translate-y-full sm-translate-y-0': !this.__visible,
|
|
127
132
|
'sm-translate-x-full': !this.alert && !this.__visible,
|