Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: input-date: Disclose when date was reverted to previous #5164

Merged
merged 16 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions components/inputs/demo/input-date.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ <h2>Value Specified</h2>
</template>
</d2l-demo-snippet>

<h2>Min and Max Value</h2>
<h2>Min and Max Value, Required</h2>
<d2l-demo-snippet>
<template>
<d2l-input-date label="Date" max-value="2018-09-30" min-value="2018-08-27" value="2018-09-08"></d2l-input-date>
<d2l-input-date label="Date" max-value="2018-09-30" min-value="2018-08-27" value="2018-08-27" required></d2l-input-date>
</template>
</d2l-demo-snippet>

Expand Down
86 changes: 74 additions & 12 deletions components/inputs/input-date.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,9 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
_formattedValue: { type: String },
_inputTextFocusShowTooltip: { type: Boolean },
_showInfoTooltip: { type: Boolean },
_shownValue: { type: String }
_shownValue: { type: String },
_showRevertInstructions: { state: true },
_showRevertTooltip: { state: true }
};
}

Expand Down Expand Up @@ -159,10 +161,11 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
this._inputId = getUniqueId();
this._inputTextFocusMouseup = false;
this._inputTextFocusShowTooltip = true; // true by default so hover triggers tooltip
this._namespace = 'components.input-date';
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This uses this._namespace for the lang terms which had come up as being bad practice since it makes searching for lang terms more difficult.
Since I was adding more lang term usage I thought I'd clean this up, but let me know if I shouldn't actually do this or if it's too much noise.

this._openCalendarOnly = false;
this._openedOnKeydown = false;
this._showInfoTooltip = true;
this._showRevertInstructions = false;
this._showRevertTooltip = false;
this._shownValue = '';

this._dateTimeDescriptor = getDateTimeDescriptor();
Expand All @@ -183,11 +186,11 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
const minDate = this.minValue ? formatDate(getDateFromISODate(this.minValue), { format: 'medium' }) : null;
const maxDate = this.maxValue ? formatDate(getDateFromISODate(this.maxValue), { format: 'medium' }) : null;
if (minDate && maxDate) {
return this.localize(`${this._namespace}.errorOutsideRange`, { minDate, maxDate });
return this.localize('components.input-date.errorOutsideRange', { minDate, maxDate });
} else if (maxDate) {
return this.localize(`${this._namespace}.errorMaxDateOnly`, { maxDate });
return this.localize('components.input-date.errorMaxDateOnly', { maxDate });
} else if (this.minValue) {
return this.localize(`${this._namespace}.errorMinDateOnly`, { minDate });
return this.localize('components.input-date.errorMinDateOnly', { minDate });
}
}
return super.validationMessage;
Expand Down Expand Up @@ -237,12 +240,17 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
const formattedWideDate = formatISODateInUserCalDescriptor('2323-12-23');
const shortDateFormat = (this._dateTimeDescriptor.formats.dateFormats.short).toUpperCase();

const clearButton = !this.required ? html`<d2l-button-subtle text="${this.localize(`${this._namespace}.clear`)}" @click="${this._handleClear}"></d2l-button-subtle>` : null;
const nowButton = this.hasNow ? html`<d2l-button-subtle text="${this.localize(`${this._namespace}.now`)}" @click="${this._handleSetToNow}"></d2l-button-subtle>` : null;
const clearButton = !this.required ? html`<d2l-button-subtle text="${this.localize('components.input-date.clear')}" @click="${this._handleClear}"></d2l-button-subtle>` : null;
const nowButton = this.hasNow ? html`<d2l-button-subtle text="${this.localize('components.input-date.now')}" @click="${this._handleSetToNow}"></d2l-button-subtle>` : null;
const icon = (this.invalid || this.childErrors.size > 0)
? html`<d2l-icon icon="tier1:alert" slot="left" style="${styleMap({ color: 'var(--d2l-color-cinnabar)' })}"></d2l-icon>`
: html`<d2l-icon icon="tier1:calendar" slot="left"></d2l-icon>`;
const errorTooltip = (this.validationError && !this.opened && this.childErrors.size === 0) ? html`<d2l-tooltip align="start" announced for="${this._inputId}" state="error" class="vdiff-target">${this.validationError}</d2l-tooltip>` : null;

const tooltip = this._getErrorTooltip() || this._getRevertTooltip(shortDateFormat);

const inputTextInstructions = (this._showInfoTooltip && !tooltip && !this.invalid && this.childErrors.size === 0 && this._inputTextFocusShowTooltip)
? this.localize('components.input-date.openInstructions', { format: shortDateFormat })
: undefined;

const dropdownContent = this._dropdownFirstOpened ? html`
<d2l-dropdown-content
Expand All @@ -265,7 +273,7 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
min-value="${ifDefined(this.minValue)}"
selected-value="${ifDefined(this._shownValue)}">
<div class="d2l-calendar-slot-buttons">
<d2l-button-subtle text="${this.localize(`${this._namespace}.today`)}" @click="${this._handleSetToToday}"></d2l-button-subtle>
<d2l-button-subtle text="${this.localize('components.input-date.today')}" @click="${this._handleSetToToday}"></d2l-button-subtle>
${nowButton}
${clearButton}
</div>
Expand All @@ -276,15 +284,15 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
<div>${formattedWideDate}</div>
<div>${shortDateFormat}</div>
</div>
${errorTooltip}
${tooltip}
<d2l-dropdown ?disabled="${this.disabled || this.skeleton}" no-auto-open ?prefer-fixed-positioning="${this.preferFixedPositioning}">
<d2l-input-text
?novalidate="${this.noValidate}"
aria-invalid="${this.invalid ? 'true' : 'false'}"
@blur="${this._handleInputTextBlur}"
@change="${this._handleChange}"
class="d2l-dropdown-opener vdiff-target"
instructions="${ifDefined((this._showInfoTooltip && !errorTooltip && !this.invalid && this.childErrors.size === 0 && this._inputTextFocusShowTooltip) ? this.localize(`${this._namespace}.openInstructions`, { format: shortDateFormat }) : undefined)}"
instructions="${ifDefined(inputTextInstructions)}"
?disabled="${this.disabled}"
@focus="${this._handleInputTextFocus}"
@keydown="${this._handleKeydown}"
Expand Down Expand Up @@ -349,15 +357,62 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
this._dropdown.close();
}

_getErrorTooltip() {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also probably combine this with _getRevertTooltip but I think we would likely sacrifice some readability by putting too many cases into that one function.

if (!this.validationError || this.opened || this.childErrors.size > 0) return null;

const message = (this._showRevertTooltip || this._showRevertInstructions)
? html`
<div>${this.localize('components.input-date.revert', { label: this.label })}</div>
<br>
<div>${this.validationError}</div>`
: this.validationError;

return html`
<d2l-tooltip
align="start"
announced
class="vdiff-target"
for="${this._inputId}"
?force-show="${this._showRevertTooltip}"
state="error">
${message}
</d2l-tooltip>
`;
}

_getRevertTooltip(shortDateFormat) {
if (this.opened || this.invalid || (!this._showRevertInstructions && !this._showRevertTooltip)) return null;

const revertMessage = this.localize('components.input-date.revert', { label: this.label });
const secondaryMessage = this._showRevertInstructions
? this.localize('components.input-date.openInstructions', { format: shortDateFormat })
: this.localize('components.input-date.useDateFormat', { format: shortDateFormat });

return html`
<d2l-tooltip
align="start"
announced
class="vdiff-target"
for="${this._inputId}"
?force-show="${this._showRevertTooltip}">
<div>${revertMessage}</div>
<br>
<div>${secondaryMessage}</div>
</d2l-tooltip>
`;
}

_handleBlur() {
this._showInfoTooltip = true;
this.requestValidate(true);
}

async _handleChange() {
this._showRevertTooltip = false;
const value = this._textInput.value;
const isNewVal = value !== this.value;
if (!value && !this.required) {
if (value !== this.value) {
if (isNewVal) {
await this._updateValueDispatchEvent('');
if (this._calendar) {
await this.updateComplete;
Expand All @@ -373,6 +428,7 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
await this._updateValueDispatchEvent(formatDateInISO({ year: date.getFullYear(), month: (parseInt(date.getMonth()) + 1), date: date.getDate() }));
} catch {
// leave value the same when invalid input
if (isNewVal) this._showRevertTooltip = true;
}
this._setFormattedValue(); // keep out here in case parseDate is same date, e.g., user adds invalid text to end of parseable date
if (this._calendar) {
Expand All @@ -390,6 +446,7 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
}

async _handleDateSelected(e) {
this._showRevertTooltip = false;
const value = e.target.selectedValue;
await this._updateValueDispatchEvent(value);
if (this._dropdown) {
Expand Down Expand Up @@ -448,9 +505,14 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
_handleInputTextBlur() {
this._inputTextFocusMouseup = false;
this._inputTextFocusShowTooltip = true;
this._showRevertInstructions = false;
}

_handleInputTextFocus() {
if (this._showRevertTooltip) {
this._showRevertInstructions = true;
this._showRevertTooltip = false;
}
this._formattedValue = this._shownValue ? formatISODateInUserCalDescriptor(this._shownValue) : '';

// hide tooltip when focus, wait to see if click happened, then show
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
76 changes: 75 additions & 1 deletion components/inputs/test/input-date.vdiff.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import '../input-date.js';
import { clickElem, expect, fixture, focusElem, html, nextFrame, oneEvent, sendKeys, sendKeysElem } from '@brightspace-ui/testing';
import { aTimeout, clickElem, expect, fixture, focusElem, html, nextFrame, oneEvent, sendKeys, sendKeysElem } from '@brightspace-ui/testing';
import { reset, useFakeTimers } from 'sinon';
import { ifDefined } from 'lit/directives/if-defined.js';
import { inlineHelpFixtures } from './input-shared-content.js';
Expand Down Expand Up @@ -351,6 +351,80 @@ describe('d2l-input-date', () => {
await sendKeysElem(elem, 'press', 'Enter');
await expect(elem).to.be.golden();
});

it('click then click away', async() => {
await clickElem(elem);
await clickElem(document.body);
await expect(elem).to.be.golden();
});

it('open then close', async() => {
await sendKeysElem(elem, 'press', 'Enter');
sendKeys('press', 'Escape');
await oneEvent(elem, 'd2l-tooltip-show');
await expect(elem).to.be.golden();
});
});

describe('required min-max revert', () => {

let elem;
beforeEach(async() => {
elem = await fixture(create({ label: 'Date', labelHidden: false, required: true, value: '2012-01-01', maxValue: '2018-02-27', minValue: '2018-02-13' }));
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Tab'); // trigger validation
});

it('delete text input then blur', async() => {
margaree marked this conversation as resolved.
Show resolved Hide resolved
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Backspace');
await sendKeys('press', 'Tab');
await expect(elem).to.be.golden();
});

it('delete text input then blur then re-focus', async() => {
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Backspace');
await sendKeys('press', 'Tab');
await focusElem(elem);
await aTimeout(100);
await expect(elem).to.be.golden();
});

});

describe('required revert', () => {

let elem;
beforeEach(async() => {
elem = await fixture(create({ label: 'Date', labelHidden: false, required: true, value: '2020-01-01' }));
});

it('delete text input then blur', async() => {
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Backspace');
await sendKeys('press', 'Tab');
await expect(elem).to.be.golden();
});

it('delete text input then blur then re-focus', async() => {
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Backspace');
await sendKeys('press', 'Tab');
await focusElem(elem);
await aTimeout(1000);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the problem that seems to be happening here is that in the blurred state the tooltip is less wide because it has less wide content, but then when we re-focus the content is wider. Testing this, it always ends up going to the wider width. However, in the vdiffs sometimes the screenshot is taken before it's gotten wider, leading to flake.

I can do something like `await waitUntil(this.shadowRoot.querySelector('d2l-tooltip').shadowRoot.querySelector('...content div').clientWidth > 300, '...') but that feels bad. Are there alternatives I'm missing?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, that tooltip is just permanent eh. The only other thing I can think of would be to just put the input into the state you want initially by setting _showRevertTooltip = true, but that's equally a bit hacky.

await expect(elem).to.be.golden();
});

it('delete text input then blur then re-focus then blur', async() => {
await focusElem(elem);
await sendKeysElem(elem, 'press', 'Backspace');
await sendKeys('press', 'Tab');
await focusElem(elem);
await sendKeys('press', 'Tab');
await aTimeout(100);
await expect(elem).to.be.golden();
});
});
});

Expand Down
2 changes: 2 additions & 0 deletions lang/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@
"components.filter.clearAnnounce": "جارٍ مسح عوامل التصفية لـ: {filterName}",
"components.filter.clearDescription": "مسح عوامل التصفية لـ: {filterName}",
"components.filter.loading": "يتم تحميل عوامل التصفية",
"components.filter.filterCountDescription": "{number, plural, =0 {لم يتم تطبيق عوامل تصفية.} one {تم تطبيق {number} عامل تصفية} ‏other {تم تطبيق {number} من عوامل التصفية.}}",

Check warning on line 24 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter.filterCountDescription
"components.filter.filters": "عوامل التصفية",
"components.filter.noFilters": "ما من عوامل تصفية متوفرة",
"components.filter.searchResults": "{number, plural, =0 {ما من نتائج بحث} one {{number} نتيجة بحث}‏ other {{number} من نتائج البحث}}",

Check warning on line 27 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter.searchResults
"components.filter.selectedFirstListLabel": "{headerText}. تظهر عوامل التصفية المحددة أولاً.",
"components.filter.singleDimensionDescription": "التصفية حسب: {filterName}",
"components.filter-dimension-set-date-text-value.textHours": "{num, plural, =1 {آخر ساعة} other {آخر {num} من الساعات}}",

Check warning on line 30 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter-dimension-set-date-text-value.textHours
"components.filter-dimension-set-date-text-value.textDays": "{num, plural, =0 {يوم} one {آخر {num} يوم} other {آخر {num} من الأيام}}",

Check warning on line 31 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter-dimension-set-date-text-value.textDays
"components.filter-dimension-set-date-text-value.textMonths": "آخر {num} من الأشهر",
"components.filter-dimension-set-date-time-range-value.label": "{text}، التوسيع لاختيار التواريخ",
"components.filter-dimension-set-date-time-range-value.valueTextRange": "{startValue} إلى {endValue}",
Expand All @@ -44,7 +44,7 @@
"components.form-element.input.text.tooShort": "يجب أن تتألف التسمية {label} من {minlength} من الأحرف على الأقل",
"components.form-element.input.url.typeMismatch": "عنوان URL غير صالح",
"components.form-element.valueMissing": "{label} مطلوبة",
"components.form-error-summary.errorSummary": "{count, plural, one {تم العثور على {count} خطأ في المعلومات التي أرسلتها} other {تم العثور على {count} من الأخطاء في المعلومات التي أرسلتها}}",

Check warning on line 47 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.form-error-summary.errorSummary
"components.form-error-summary.text": "تبديل تفاصيل الخطأ",
"components.input-color.backgroundColor": "لون الخلفية",
"components.input-color.foregroundColor": "لون المقدمة",
Expand All @@ -69,7 +69,9 @@
"components.input-date.errorOutsideRange": "يجب أن يكون التاريخ بين {minDate} و{maxDate}",
"components.input-date.openInstructions": "استخدم تنسيق التاريخ {format}. انتقل إلى الأسفل أو اضغط على Enter للوصول إلى التقويم المصغّر.",
"components.input-date.now": "الآن",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "اليوم",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "يقبل هذا الحقل قيم الأعداد الصحيحة فقط (بدون أعداد عشرية)",
"components.input-number.hintDecimalDuplicate": "يوجد عدد عشري في هذا الرقم",
"components.input-number.hintDecimalIncorrectComma": "لإضافة عدد عشري، استخدم حرف الفاصلة \",\"",
Expand Down Expand Up @@ -106,8 +108,8 @@
"components.overflow-group.moreActions": "مزيد من الإجراءات",
"components.pager-load-more.action": "تحميل المزيد",
"components.pager-load-more.action-with-page-size": "تحميل {count} إضافي",
"components.pageable.info": "{count, plural, one {{countFormatted} مادة واحد} other {{countFormatted} من المواد}}",

Check warning on line 111 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.pageable.info
"components.pageable.info-with-total": "{totalCount, plural, one {{countFormatted} من أصل {totalCountFormatted} مادة واحدة} other {{countFormatted} من أصل {totalCountFormatted} من المواد}}",

Check warning on line 112 in lang/ar.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.pageable.info-with-total
"components.pager-load-more.status-loading": "تحميل المزيد من المواد",
"components.selection.action-hint": "حدد مادة لتنفيذ هذا الإجراء.",
"components.selection.select-all": "تحديد الكل",
Expand Down
2 changes: 2 additions & 0 deletions lang/cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
"components.filter.clearAnnounce": "Wrthi’n clirio hidlwyr ar gyfer: {filterName}",
"components.filter.clearDescription": "Wrthi’n clirio hidlwyd ar gyfer: {filterName}",
"components.filter.loading": "Wrthi’n llwytho hidlyddion",
"components.filter.filterCountDescription": "{number, plural, =0 {Dim hidlyddion wedi’i gweithredu.} one {{number} hidlydd wedi’i weithredu.} other {{number} hidlyddion wedi’u gweithredu.}}",

Check warning on line 24 in lang/cy.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter.filterCountDescription
"components.filter.filters": "Hidlyddion",
"components.filter.noFilters": "Dim hidlyddion ar gael",
"components.filter.searchResults": "{number, plural, =0 {Dim canlyniadau chwilio} one {{number} canlyniad chwilio} other {{number} canlyniadau chwilio}}",

Check warning on line 27 in lang/cy.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter.searchResults
"components.filter.selectedFirstListLabel": "{headerText}. Mae'r hidlyddion a ddewiswyd yn ymddangos gyntaf.",
"components.filter.singleDimensionDescription": "Hidlo yn ôl: {filterName}",
"components.filter-dimension-set-date-text-value.textHours": "{num, plural, =1 {Awr ddiwethaf} other {{num} awr ddiwethaf}}",

Check warning on line 30 in lang/cy.js

View workflow job for this annotation

GitHub Actions / Accessibility and Unit Tests

categories components.filter-dimension-set-date-text-value.textHours
"components.filter-dimension-set-date-text-value.textDays": "{num, plural, =0 {Heddiw} one {{num} diwrnod diwethaf} other {{num} o ddiwrnodau diwethaf}}",
"components.filter-dimension-set-date-text-value.textMonths": "{num} o fisoedd diwethaf",
"components.filter-dimension-set-date-time-range-value.label": "{text}, ehangwch i ddewis dyddiadau",
Expand Down Expand Up @@ -69,7 +69,9 @@
"components.input-date.errorOutsideRange": "Rhaid i'r dyddiad fod rhwng {minDate} a {maxDate}",
"components.input-date.openInstructions": "Defnyddio fformat dyddiad {format}. Pwyswch saeth i lawr neu Enter i gael mynediad at galendr bach.",
"components.input-date.now": "Nawr",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Heddiw",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Mae'r maes hwn yn derbyn gwerthoedd cyfanrif yn unig (dim degolion)",
"components.input-number.hintDecimalDuplicate": "Mae degol eisoes yn y nifer hwn",
"components.input-number.hintDecimalIncorrectComma": "I ychwanegu degol defnyddiwch y nod coma \",”",
Expand Down
2 changes: 2 additions & 0 deletions lang/da.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "Datoen skal være mellem {minDate} og {maxDate}",
"components.input-date.openInstructions": "Brug datoformatet {format}. Tryk på Pil ned eller Enter for at få adgang til minikalender.",
"components.input-date.now": "Nu",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "I dag",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Dette felt accepterer kun heltalsværdier (ingen decimaler)",
"components.input-number.hintDecimalDuplicate": "Der er allerede en decimal i dette tal",
"components.input-number.hintDecimalIncorrectComma": "Hvis du vil tilføje en decimal, skal du bruge komma-tegnet \",\"",
Expand Down
2 changes: 2 additions & 0 deletions lang/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "Datum muss zwischen {minDate} und {maxDate} liegen",
"components.input-date.openInstructions": "Das Datumsformat {format} verwenden. Minikalender durch Abwärtspfeil oder durch Drücken der Eingabetaste aufrufen.",
"components.input-date.now": "Jetzt",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Heute",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Dieses Feld akzeptiert nur Ganzzahlen (keine Dezimalstellen)",
"components.input-number.hintDecimalDuplicate": "Diese Zahl enthält bereits eine Dezimale",
"components.input-number.hintDecimalIncorrectComma": "Verwenden Sie zum Hinzufügen einer Dezimalstelle das Komma \",“",
Expand Down
2 changes: 2 additions & 0 deletions lang/en-gb.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "Date must be between {minDate} and {maxDate}",
"components.input-date.openInstructions": "Use date format {format}. Arrow down or press enter to access mini-calendar.",
"components.input-date.now": "Now",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Today",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "This field only accepts integer values (no decimals)",
"components.input-number.hintDecimalDuplicate": "There's already a decimal in this number",
"components.input-number.hintDecimalIncorrectComma": "To add a decimal use the comma \",\" character",
Expand Down
2 changes: 2 additions & 0 deletions lang/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "Date must be between {minDate} and {maxDate}",
"components.input-date.openInstructions": "Use date format {format}. Arrow down or press enter to access mini-calendar.",
"components.input-date.now": "Now",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Today",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "This field only accepts integer values (no decimals)",
"components.input-number.hintDecimalDuplicate": "There's already a decimal in this number",
"components.input-number.hintDecimalIncorrectComma": "To add a decimal use the comma \",\" character",
Expand Down
2 changes: 2 additions & 0 deletions lang/es-es.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "La fecha debe estar entre el {minDate} y el {maxDate}",
"components.input-date.openInstructions": "Usar formato de fecha {format}. Use la fecha hacia abajo o pulse Intro para acceder al minicalendario.",
"components.input-date.now": "Ahora",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Hoy",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Este campo sólo acepta valores enteros (sin decimales)",
"components.input-number.hintDecimalDuplicate": "Ya hay un decimal en este número",
"components.input-number.hintDecimalIncorrectComma": "Para agregar un decimal, utilice la coma \",\"",
Expand Down
2 changes: 2 additions & 0 deletions lang/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "La fecha debe estar entre {minDate} y {maxDate}",
"components.input-date.openInstructions": "Utilice el formato de fecha {format}. Presione la flecha hacia abajo o Intro para acceder al minicalendario.",
"components.input-date.now": "Ahora",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Hoy",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Este campo solo acepta valores enteros (sin decimales)",
"components.input-number.hintDecimalDuplicate": "Ya hay un decimal en este número",
"components.input-number.hintDecimalIncorrectComma": "Para agregar un decimal, use el carácter coma (“,”)",
Expand Down
2 changes: 2 additions & 0 deletions lang/fr-fr.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ export default {
"components.input-date.errorOutsideRange": "La date doit être comprise entre {minDate} et {maxDate}",
"components.input-date.openInstructions": "Utiliser le format de date {format}. Utilisez la flèche vers le bas ou appuyez sur Entrée pour accéder au mini-calendrier.",
"components.input-date.now": "Maintenant",
"components.input-date.revert": "{label} reverted to previous value.",
"components.input-date.today": "Aujourd’hui",
"components.input-date.useDateFormat": "Use date format {format}.",
"components.input-number.hintInteger": "Ce champ accepte uniquement les valeurs entières (pas de décimales)",
"components.input-number.hintDecimalDuplicate": "Il existe déjà une décimale dans ce nombre",
"components.input-number.hintDecimalIncorrectComma": "Pour ajouter une décimale, utilisez la virgule « , »",
Expand Down
Loading