diff --git a/packages/validate/index.js b/packages/validate/index.js index 5ba526c8b..3548a9452 100644 --- a/packages/validate/index.js +++ b/packages/validate/index.js @@ -1,9 +1,12 @@ export { ValidateMixin } from './src/ValidateMixin.js'; export { Unparseable } from './src/Unparseable.js'; +export { isValidatorApplied } from './src/isValidatorApplied.js'; export { defaultOk, defaultOkValidator, + isDateDisabled, + isDateDisabledValidator, equalsLength, equalsLengthValidator, isDate, diff --git a/packages/validate/src/validators.js b/packages/validate/src/validators.js index 000aadbdb..69bc2c0af 100644 --- a/packages/validate/src/validators.js +++ b/packages/validate/src/validators.js @@ -80,6 +80,12 @@ export const minMaxDateValidator = (...factoryParams) => [ ...factoryParams, ]; +export const isDateDisabled = (value, isDisabledFn) => isDisabledFn(value); +export const isDateDisabledValidator = (...factoryParams) => [ + (...params) => ({ isDateDisabled: isDateDisabled(...params) }), + ...factoryParams, +]; + export const randomOk = () => false; export const randomOkValidator = () => [(...params) => ({ randomOk: randomOk(...params) })]; diff --git a/packages/validate/test/validators.test.js b/packages/validate/test/validators.test.js index d83be9ef6..f2972cdfa 100644 --- a/packages/validate/test/validators.test.js +++ b/packages/validate/test/validators.test.js @@ -25,11 +25,13 @@ import { isDate, minDate, maxDate, + isDateDisabled, minMaxDate, isDateValidator, minDateValidator, maxDateValidator, minMaxDateValidator, + isDateDisabledValidator, randomOk, defaultOk, randomOkValidator, @@ -149,7 +151,12 @@ describe('LionValidate', () => { expect(minMaxDate(new Date('2018/02/05'), minMaxSetting)).to.be.false; }); - it('provides {isDate, minDate, maxDate, minMaxDate}Validator factory function for all types', () => { + it('provides isDateDisabled() to disable dates matching specified condition', () => { + expect(isDateDisabled(new Date('2018/02/03'), d => d.getDate() === 3)).to.be.true; + expect(isDateDisabled(new Date('2018/02/04'), d => d.getDate() === 3)).to.be.false; + }); + + it('provides {isDate, minDate, maxDate, minMaxDate, isDateDisabled}Validator factory function for all types', () => { // do a smoke test for each type smokeTestValidator('isDate', isDateValidator, new Date()); smokeTestValidator( @@ -169,6 +176,12 @@ describe('LionValidate', () => { max: new Date('2018/02/04'), }; smokeTestValidator('minMaxDate', minMaxDateValidator, new Date('2018/02/03'), minMaxSetting); + smokeTestValidator( + 'isDateDisabled', + isDateDisabledValidator, + new Date('2018/02/03'), + d => d.getDate() !== 15, + ); }); }); diff --git a/packages/validate/translations/bg.js b/packages/validate/translations/bg.js index 531c98b38..f8e2ae1d7 100644 --- a/packages/validate/translations/bg.js +++ b/packages/validate/translations/bg.js @@ -15,6 +15,7 @@ export default { maxDate: 'Моля, въведете {fieldName} преди {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Моля, въведете {fieldName} между {validatorParams.min, date, YYYYMMDD} и {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Тази дата не е на разположение, моля, изберете друга.', isEmail: 'Моля, въведете валиден {fieldName} с формат "name@example.com".', }, warning: { @@ -33,6 +34,7 @@ export default { maxDate: 'Моля, въведете {fieldName} преди {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Моля, въведете {fieldName} между {validatorParams.min, date, YYYYMMDD} и {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Тази дата не е на разположение, моля, изберете друга.', isEmail: 'Моля, въведете валиден {fieldName} с формат "name@example.com".', }, success: { diff --git a/packages/validate/translations/cs.js b/packages/validate/translations/cs.js index dfe6759ab..4be6cb060 100644 --- a/packages/validate/translations/cs.js +++ b/packages/validate/translations/cs.js @@ -15,6 +15,7 @@ export default { maxDate: 'Zadejte {fieldName} před {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Zadejte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Toto datum je nedostupné, vyberte jiné.', isEmail: 'Zadejte platný {fieldName} ve formátu "name@example.com".', }, warning: { @@ -33,6 +34,7 @@ export default { maxDate: 'Zadejte {fieldName} před {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Zadejte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Toto datum je nedostupné, vyberte jiné.', isEmail: 'Zadejte platný {fieldName} ve formátu "name@example.com".', }, success: { diff --git a/packages/validate/translations/de.js b/packages/validate/translations/de.js index 786d9cd52..a8d5b1b4e 100644 --- a/packages/validate/translations/de.js +++ b/packages/validate/translations/de.js @@ -19,6 +19,7 @@ export default { 'Geben Sie für {fieldName} einen Wert ein, der vor {validatorParams, date, YYYYMMDD} liegt.', minMaxDate: 'Geben Sie für {fieldName} einen Wert zwischen {validatorParams.min, date, YYYYMMDD} und {validatorParams.max, date, YYYYMMDD} ein.', + isDisabledDate: 'Dieses Datum ist nicht verfügbar, bitte wählen Sie ein anderes Datum.', isEmail: 'Geben Sie einen gültige {fieldName} im Format „name@example.com“ ein.', }, warning: { @@ -41,6 +42,7 @@ export default { 'Geben Sie für {fieldName} einen Wert ein, der vor {validatorParams, date, YYYYMMDD} liegt.', minMaxDate: 'Geben Sie für {fieldName} einen Wert zwischen {validatorParams.min, date, YYYYMMDD} und {validatorParams.max, date, YYYYMMDD} ein.', + isDisabledDate: 'Dieses Datum ist nicht verfügbar, bitte wählen Sie ein anderes Datum.', isEmail: 'Geben Sie einen gültige {fieldName} im Format „name@example.com“ ein.', }, success: { diff --git a/packages/validate/translations/en.js b/packages/validate/translations/en.js index 6e744444b..5461c5812 100644 --- a/packages/validate/translations/en.js +++ b/packages/validate/translations/en.js @@ -16,6 +16,7 @@ export default { maxDate: 'Please enter a(n) {fieldName} before {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Please enter a {fieldName} between {validatorParams.min, date, YYYYMMDD} and {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'This date is unavailable, please choose another one.', isEmail: 'Please enter a valid {fieldName} in the format "name@example.com".', }, warning: { @@ -35,6 +36,7 @@ export default { maxDate: 'Please enter a(n) {fieldName} before {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Please enter a {fieldName} between {validatorParams.min, date, YYYYMMDD} and {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'This date is unavailable, please choose another one.', isEmail: 'Please enter a valid {fieldName} in the format "name@example.com".', }, success: { diff --git a/packages/validate/translations/es.js b/packages/validate/translations/es.js index da583ae5c..65540a711 100644 --- a/packages/validate/translations/es.js +++ b/packages/validate/translations/es.js @@ -17,6 +17,7 @@ export default { maxDate: 'Introduzca un/a {fieldName} antes de {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Introduzca un/a {fieldName} entre {validatorParams.min, date, YYYYMMDD} y {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Esta fecha no está disponible. Elija otra.', isEmail: 'Introduzca un/a {fieldName} válido/a con el formato "nombre@ejemplo.com".', }, warning: { @@ -37,6 +38,7 @@ export default { maxDate: 'Introduzca un/a {fieldName} antes de {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Introduzca un/a {fieldName} entre {validatorParams.min, date, YYYYMMDD} y {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Esta fecha no está disponible. Elija otra.', isEmail: 'Introduzca un/a {fieldName} válido/a con el formato "nombre@ejemplo.com".', }, success: { diff --git a/packages/validate/translations/fr.js b/packages/validate/translations/fr.js index be88c48ea..541832b9c 100644 --- a/packages/validate/translations/fr.js +++ b/packages/validate/translations/fr.js @@ -18,6 +18,7 @@ export default { maxDate: 'Veuillez indiquer un(e) {fieldName} avant {validatorParams.max, date, YYYYMMDD}.', minMaxDate: 'Veuillez indiquer un(e) {fieldName} entre {validatorParams.min, date, YYYYMMDD} et {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: "Cette date n'est pas disponible, veuillez en choisir une autre.", isEmail: 'Veuillez indiquer un(e) {fieldName} au format "nom@exemple.com".', }, warning: { @@ -39,6 +40,7 @@ export default { maxDate: 'Veuillez indiquer un(e) {fieldName} avant {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Veuillez indiquer un(e) {fieldName} entre {validatorParams.min, date, YYYYMMDD} et {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: "Cette date n'est pas disponible, veuillez en choisir une autre.", isEmail: 'Veuillez indiquer un(e) {fieldName} au format "nom@exemple.com".', }, success: { diff --git a/packages/validate/translations/hu.js b/packages/validate/translations/hu.js index 1abc07a82..224bbf6c9 100644 --- a/packages/validate/translations/hu.js +++ b/packages/validate/translations/hu.js @@ -16,6 +16,7 @@ export default { maxDate: 'Adjon meg egy {validatorParams, date, YYYYMMDD} előtti {fieldName} értéket.', minMaxDate: 'Adjon meg egy {validatorParams.min, date, YYYYMMDD} és {validatorParams.max, date, YYYYMMDD} közötti {fieldName} értéket.', + isDisabledDate: 'Ez a dátum nem áll rendelkezésre, válasszon egy másikat.', isEmail: 'Adjon meg egy érvényes {fieldName} értéket, a következő formátumban: „név@példa.com”.', }, @@ -36,6 +37,7 @@ export default { maxDate: 'Adjon meg egy {validatorParams, date, YYYYMMDD} előtti {fieldName} értéket.', minMaxDate: 'Adjon meg egy {validatorParams.min, date, YYYYMMDD} és {validatorParams.max, date, YYYYMMDD} közötti {fieldName} értéket.', + isDisabledDate: 'Ez a dátum nem áll rendelkezésre, válasszon egy másikat.', isEmail: 'Adjon meg egy érvényes {fieldName} értéket, a következő formátumban: „név@példa.com”.', }, diff --git a/packages/validate/translations/it.js b/packages/validate/translations/it.js index a51bc1d36..f57ca4f9c 100644 --- a/packages/validate/translations/it.js +++ b/packages/validate/translations/it.js @@ -16,6 +16,7 @@ export default { maxDate: 'Inserire un(a) {fieldName} prima di {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Inserire un(a) {fieldName} tra {validatorParams.min, date, YYYYMMDD} e {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: "ТQuesta data non è disponibile, sceglierne un'altra.", isEmail: 'Inserire un valore valido per {fieldName} nel formato "name@example.com".', }, warning: { @@ -35,6 +36,7 @@ export default { maxDate: 'Inserire un(a) {fieldName} prima di {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Inserire un(a) {fieldName} tra {validatorParams.min, date, YYYYMMDD} e {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: "ТQuesta data non è disponibile, sceglierne un'altra.", isEmail: 'Inserire un valore valido per {fieldName} nel formato "name@example.com".', }, success: { diff --git a/packages/validate/translations/nl.js b/packages/validate/translations/nl.js index 599e0d036..50abb1928 100644 --- a/packages/validate/translations/nl.js +++ b/packages/validate/translations/nl.js @@ -15,6 +15,7 @@ export default { maxDate: 'Vul een {fieldName} in voor {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Vul een {fieldName} in tussen {validatorParams.min, date, YYYYMMDD} en {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Deze datum is niet mogelijk, kies een andere.', isEmail: 'Vul een {fieldName} in formaat "name@example.com".', }, warning: { @@ -33,6 +34,7 @@ export default { maxDate: 'Vul een {fieldName} in voor {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Vul een {fieldName} in tussen {validatorParams.min, date, YYYYMMDD} en {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Deze datum is niet mogelijk, kies een andere.', isEmail: 'Vul een {fieldName} in formaat "name@example.com".', }, success: { diff --git a/packages/validate/translations/pl.js b/packages/validate/translations/pl.js index 4496991c8..051cb8a27 100644 --- a/packages/validate/translations/pl.js +++ b/packages/validate/translations/pl.js @@ -19,6 +19,7 @@ export default { 'Proszę podać wartość {fieldName} przypadającą przed {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Proszę podać wartość {fieldName} między {validatorParams.min, date, YYYYMMDD} a {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Ta data jest niedostępna, wybierz inną.', isEmail: 'Proszę podać prawidłowy {fieldName} w formacie „nazwa@example.com”.', }, warning: { @@ -41,6 +42,7 @@ export default { 'Proszę podać wartość {fieldName} przypadającą przed {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Proszę podać wartość {fieldName} między {validatorParams.min, date, YYYYMMDD} a {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Ta data jest niedostępna, wybierz inną.', isEmail: 'Proszę podać prawidłowy {fieldName} w formacie „nazwa@example.com”.', }, success: { diff --git a/packages/validate/translations/ro.js b/packages/validate/translations/ro.js index 59beaf786..b4476e3a0 100644 --- a/packages/validate/translations/ro.js +++ b/packages/validate/translations/ro.js @@ -17,6 +17,7 @@ export default { maxDate: 'Introduceți un/o {fieldName} înainte de {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Introduceți un/o {fieldName} cuprins(ă) între {validatorParams.min, date, YYYYMMDD} și {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Această dată nu este disponibilă, alegeți alta.', isEmail: 'Introduceți un/o {fieldName} valid(ă) în formatul „nume@exemplu.com”.', }, warning: { @@ -37,6 +38,7 @@ export default { maxDate: 'Introduceți un/o {fieldName} înainte de {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Introduceți un/o {fieldName} cuprins(ă) între {validatorParams.min, date, YYYYMMDD} și {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Această dată nu este disponibilă, alegeți alta.', isEmail: 'Introduceți un/o {fieldName} valid(ă) în formatul „nume@exemplu.com”.', }, success: { diff --git a/packages/validate/translations/ru.js b/packages/validate/translations/ru.js index b9d770987..731936f84 100644 --- a/packages/validate/translations/ru.js +++ b/packages/validate/translations/ru.js @@ -16,6 +16,7 @@ export default { maxDate: 'Введите значение поля {fieldName} до {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Введите значение поля {fieldName} от {validatorParams.min, date, YYYYMMDD} до {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Эта дата недоступна, выберите другой вариант.', isEmail: 'Введите действительное значение поля {fieldName} в формате «name@example.com».', }, warning: { @@ -35,6 +36,7 @@ export default { maxDate: 'Введите значение поля {fieldName} до {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Введите значение поля {fieldName} от {validatorParams.min, date, YYYYMMDD} до {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Эта дата недоступна, выберите другой вариант.', isEmail: 'Введите действительное значение поля {fieldName} в формате «name@example.com».', }, success: { diff --git a/packages/validate/translations/sk.js b/packages/validate/translations/sk.js index 8f74ded6e..3a623364a 100644 --- a/packages/validate/translations/sk.js +++ b/packages/validate/translations/sk.js @@ -16,6 +16,7 @@ export default { maxDate: 'Uveďte {fieldName} skôr ako {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Uveďte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Tento dátum je nedostupný, vyberte iný.', isEmail: 'Uveďte platnú položku {fieldName} vo formáte „meno@príklad.com“.', }, warning: { @@ -35,6 +36,7 @@ export default { maxDate: 'Uveďte {fieldName} skôr ako {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Uveďte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Tento dátum je nedostupný, vyberte iný.', isEmail: 'Uveďte platnú položku {fieldName} vo formáte „meno@príklad.com“.', }, success: { diff --git a/packages/validate/translations/uk.js b/packages/validate/translations/uk.js index afd2d3424..c0eeb3bd5 100644 --- a/packages/validate/translations/uk.js +++ b/packages/validate/translations/uk.js @@ -17,6 +17,7 @@ export default { maxDate: 'Уведіть значення {fieldName} перед {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Уведіть значення {fieldName} між {validatorParams.min, date, YYYYMMDD} та {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Ця дата недоступна, виберіть іншу.', isEmail: 'Уведіть допустиме значення {fieldName} у форматі name@example.com.', }, warning: { @@ -37,6 +38,7 @@ export default { maxDate: 'Уведіть значення {fieldName} перед {validatorParams, date, YYYYMMDD}.', minMaxDate: 'Уведіть значення {fieldName} між {validatorParams.min, date, YYYYMMDD} та {validatorParams.max, date, YYYYMMDD}.', + isDisabledDate: 'Ця дата недоступна, виберіть іншу.', isEmail: 'Уведіть допустиме значення {fieldName} у форматі name@example.com.', }, success: {