Skip to content

Commit 14df4fc

Browse files
tlouissedaKmoR
authored andcommitted
feat(validate): added disabledDatesValidator
1 parent 4ee8b8f commit 14df4fc

File tree

17 files changed

+51
-1
lines changed

17 files changed

+51
-1
lines changed

packages/validate/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
export { ValidateMixin } from './src/ValidateMixin.js';
22
export { Unparseable } from './src/Unparseable.js';
3+
export { isValidatorApplied } from './src/isValidatorApplied.js';
34

45
export {
56
defaultOk,
67
defaultOkValidator,
8+
isDateDisabled,
9+
isDateDisabledValidator,
710
equalsLength,
811
equalsLengthValidator,
912
isDate,

packages/validate/src/validators.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ export const minMaxDateValidator = (...factoryParams) => [
8080
...factoryParams,
8181
];
8282

83+
export const isDateDisabled = (value, isDisabledFn) => isDisabledFn(value);
84+
export const isDateDisabledValidator = (...factoryParams) => [
85+
(...params) => ({ isDateDisabled: isDateDisabled(...params) }),
86+
...factoryParams,
87+
];
88+
8389
export const randomOk = () => false;
8490
export const randomOkValidator = () => [(...params) => ({ randomOk: randomOk(...params) })];
8591

packages/validate/test/validators.test.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ import {
2525
isDate,
2626
minDate,
2727
maxDate,
28+
isDateDisabled,
2829
minMaxDate,
2930
isDateValidator,
3031
minDateValidator,
3132
maxDateValidator,
3233
minMaxDateValidator,
34+
isDateDisabledValidator,
3335
randomOk,
3436
defaultOk,
3537
randomOkValidator,
@@ -149,7 +151,12 @@ describe('LionValidate', () => {
149151
expect(minMaxDate(new Date('2018/02/05'), minMaxSetting)).to.be.false;
150152
});
151153

152-
it('provides {isDate, minDate, maxDate, minMaxDate}Validator factory function for all types', () => {
154+
it('provides isDateDisabled() to disable dates matching specified condition', () => {
155+
expect(isDateDisabled(new Date('2018/02/03'), d => d.getDate() === 3)).to.be.true;
156+
expect(isDateDisabled(new Date('2018/02/04'), d => d.getDate() === 3)).to.be.false;
157+
});
158+
159+
it('provides {isDate, minDate, maxDate, minMaxDate, isDateDisabled}Validator factory function for all types', () => {
153160
// do a smoke test for each type
154161
smokeTestValidator('isDate', isDateValidator, new Date());
155162
smokeTestValidator(
@@ -169,6 +176,12 @@ describe('LionValidate', () => {
169176
max: new Date('2018/02/04'),
170177
};
171178
smokeTestValidator('minMaxDate', minMaxDateValidator, new Date('2018/02/03'), minMaxSetting);
179+
smokeTestValidator(
180+
'isDateDisabled',
181+
isDateDisabledValidator,
182+
new Date('2018/02/03'),
183+
d => d.getDate() !== 15,
184+
);
172185
});
173186
});
174187

packages/validate/translations/bg.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default {
1515
maxDate: 'Моля, въведете {fieldName} преди {validatorParams, date, YYYYMMDD}.',
1616
minMaxDate:
1717
'Моля, въведете {fieldName} между {validatorParams.min, date, YYYYMMDD} и {validatorParams.max, date, YYYYMMDD}.',
18+
isDisabledDate: 'Тази дата не е на разположение, моля, изберете друга.',
1819
isEmail: 'Моля, въведете валиден {fieldName} с формат "name@example.com".',
1920
},
2021
warning: {
@@ -33,6 +34,7 @@ export default {
3334
maxDate: 'Моля, въведете {fieldName} преди {validatorParams, date, YYYYMMDD}.',
3435
minMaxDate:
3536
'Моля, въведете {fieldName} между {validatorParams.min, date, YYYYMMDD} и {validatorParams.max, date, YYYYMMDD}.',
37+
isDisabledDate: 'Тази дата не е на разположение, моля, изберете друга.',
3638
isEmail: 'Моля, въведете валиден {fieldName} с формат "name@example.com".',
3739
},
3840
success: {

packages/validate/translations/cs.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default {
1515
maxDate: 'Zadejte {fieldName} před {validatorParams, date, YYYYMMDD}.',
1616
minMaxDate:
1717
'Zadejte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.',
18+
isDisabledDate: 'Toto datum je nedostupné, vyberte jiné.',
1819
isEmail: 'Zadejte platný {fieldName} ve formátu "name@example.com".',
1920
},
2021
warning: {
@@ -33,6 +34,7 @@ export default {
3334
maxDate: 'Zadejte {fieldName} před {validatorParams, date, YYYYMMDD}.',
3435
minMaxDate:
3536
'Zadejte {fieldName} od {validatorParams.min, date, YYYYMMDD} do {validatorParams.max, date, YYYYMMDD}.',
37+
isDisabledDate: 'Toto datum je nedostupné, vyberte jiné.',
3638
isEmail: 'Zadejte platný {fieldName} ve formátu "name@example.com".',
3739
},
3840
success: {

packages/validate/translations/de.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default {
1919
'Geben Sie für {fieldName} einen Wert ein, der vor {validatorParams, date, YYYYMMDD} liegt.',
2020
minMaxDate:
2121
'Geben Sie für {fieldName} einen Wert zwischen {validatorParams.min, date, YYYYMMDD} und {validatorParams.max, date, YYYYMMDD} ein.',
22+
isDisabledDate: 'Dieses Datum ist nicht verfügbar, bitte wählen Sie ein anderes Datum.',
2223
isEmail: 'Geben Sie einen gültige {fieldName} im Format „name@example.com“ ein.',
2324
},
2425
warning: {
@@ -41,6 +42,7 @@ export default {
4142
'Geben Sie für {fieldName} einen Wert ein, der vor {validatorParams, date, YYYYMMDD} liegt.',
4243
minMaxDate:
4344
'Geben Sie für {fieldName} einen Wert zwischen {validatorParams.min, date, YYYYMMDD} und {validatorParams.max, date, YYYYMMDD} ein.',
45+
isDisabledDate: 'Dieses Datum ist nicht verfügbar, bitte wählen Sie ein anderes Datum.',
4446
isEmail: 'Geben Sie einen gültige {fieldName} im Format „name@example.com“ ein.',
4547
},
4648
success: {

packages/validate/translations/en.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default {
1616
maxDate: 'Please enter a(n) {fieldName} before {validatorParams, date, YYYYMMDD}.',
1717
minMaxDate:
1818
'Please enter a {fieldName} between {validatorParams.min, date, YYYYMMDD} and {validatorParams.max, date, YYYYMMDD}.',
19+
isDisabledDate: 'This date is unavailable, please choose another one.',
1920
isEmail: 'Please enter a valid {fieldName} in the format "name@example.com".',
2021
},
2122
warning: {
@@ -35,6 +36,7 @@ export default {
3536
maxDate: 'Please enter a(n) {fieldName} before {validatorParams, date, YYYYMMDD}.',
3637
minMaxDate:
3738
'Please enter a {fieldName} between {validatorParams.min, date, YYYYMMDD} and {validatorParams.max, date, YYYYMMDD}.',
39+
isDisabledDate: 'This date is unavailable, please choose another one.',
3840
isEmail: 'Please enter a valid {fieldName} in the format "name@example.com".',
3941
},
4042
success: {

packages/validate/translations/es.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export default {
1717
maxDate: 'Introduzca un/a {fieldName} antes de {validatorParams, date, YYYYMMDD}.',
1818
minMaxDate:
1919
'Introduzca un/a {fieldName} entre {validatorParams.min, date, YYYYMMDD} y {validatorParams.max, date, YYYYMMDD}.',
20+
isDisabledDate: 'Esta fecha no está disponible. Elija otra.',
2021
isEmail: 'Introduzca un/a {fieldName} válido/a con el formato "nombre@ejemplo.com".',
2122
},
2223
warning: {
@@ -37,6 +38,7 @@ export default {
3738
maxDate: 'Introduzca un/a {fieldName} antes de {validatorParams, date, YYYYMMDD}.',
3839
minMaxDate:
3940
'Introduzca un/a {fieldName} entre {validatorParams.min, date, YYYYMMDD} y {validatorParams.max, date, YYYYMMDD}.',
41+
isDisabledDate: 'Esta fecha no está disponible. Elija otra.',
4042
isEmail: 'Introduzca un/a {fieldName} válido/a con el formato "nombre@ejemplo.com".',
4143
},
4244
success: {

packages/validate/translations/fr.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default {
1818
maxDate: 'Veuillez indiquer un(e) {fieldName} avant {validatorParams.max, date, YYYYMMDD}.',
1919
minMaxDate:
2020
'Veuillez indiquer un(e) {fieldName} entre {validatorParams.min, date, YYYYMMDD} et {validatorParams.max, date, YYYYMMDD}.',
21+
isDisabledDate: "Cette date n'est pas disponible, veuillez en choisir une autre.",
2122
isEmail: 'Veuillez indiquer un(e) {fieldName} au format "nom@exemple.com".',
2223
},
2324
warning: {
@@ -39,6 +40,7 @@ export default {
3940
maxDate: 'Veuillez indiquer un(e) {fieldName} avant {validatorParams, date, YYYYMMDD}.',
4041
minMaxDate:
4142
'Veuillez indiquer un(e) {fieldName} entre {validatorParams.min, date, YYYYMMDD} et {validatorParams.max, date, YYYYMMDD}.',
43+
isDisabledDate: "Cette date n'est pas disponible, veuillez en choisir une autre.",
4244
isEmail: 'Veuillez indiquer un(e) {fieldName} au format "nom@exemple.com".',
4345
},
4446
success: {

packages/validate/translations/hu.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default {
1616
maxDate: 'Adjon meg egy {validatorParams, date, YYYYMMDD} előtti {fieldName} értéket.',
1717
minMaxDate:
1818
'Adjon meg egy {validatorParams.min, date, YYYYMMDD} és {validatorParams.max, date, YYYYMMDD} közötti {fieldName} értéket.',
19+
isDisabledDate: 'Ez a dátum nem áll rendelkezésre, válasszon egy másikat.',
1920
isEmail:
2021
'Adjon meg egy érvényes {fieldName} értéket, a következő formátumban: „név@példa.com”.',
2122
},
@@ -36,6 +37,7 @@ export default {
3637
maxDate: 'Adjon meg egy {validatorParams, date, YYYYMMDD} előtti {fieldName} értéket.',
3738
minMaxDate:
3839
'Adjon meg egy {validatorParams.min, date, YYYYMMDD} és {validatorParams.max, date, YYYYMMDD} közötti {fieldName} értéket.',
40+
isDisabledDate: 'Ez a dátum nem áll rendelkezésre, válasszon egy másikat.',
3941
isEmail:
4042
'Adjon meg egy érvényes {fieldName} értéket, a következő formátumban: „név@példa.com”.',
4143
},

0 commit comments

Comments
 (0)