@ethlete/core 3.0.1 → 3.1.0
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/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
- package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
- package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +3 -3
- package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +3 -3
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
- package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
- package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
- package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
- package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
- package/esm2022/lib/directives/let/let.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
- package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
- package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
- package/esm2022/lib/services/click-observer.service.mjs +6 -6
- package/esm2022/lib/services/content-observer.service.mjs +6 -6
- package/esm2022/lib/services/focus-visible.service.mjs +3 -3
- package/esm2022/lib/services/resize-observer.service.mjs +6 -6
- package/esm2022/lib/services/router-state.service.mjs +3 -3
- package/esm2022/lib/services/viewport.service.mjs +3 -3
- package/esm2022/lib/validators/at-least-one-required.validator.mjs +20 -0
- package/esm2022/lib/validators/public-api.mjs +4 -1
- package/fesm2022/ethlete-core.mjs +121 -100
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/validators/at-least-one-required.validator.d.ts +14 -0
- package/lib/validators/public-api.d.ts +2 -0
- package/package.json +6 -6
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const AT_LEAST_ONE_REQUIRED = 'atLeastOneRequired';
|
|
2
|
+
export const ValidateAtLeastOneRequired = (config) => {
|
|
3
|
+
return (formGroup) => {
|
|
4
|
+
const { keys, checkFalse } = config;
|
|
5
|
+
if (!formGroup) {
|
|
6
|
+
return { [AT_LEAST_ONE_REQUIRED]: true };
|
|
7
|
+
}
|
|
8
|
+
const controlValues = keys.map((key) => formGroup.get(key)?.value);
|
|
9
|
+
const areAllFalsy = controlValues.every((value) => value === null ||
|
|
10
|
+
value === undefined ||
|
|
11
|
+
value === '' ||
|
|
12
|
+
(Array.isArray(value) && value.length === 0) ||
|
|
13
|
+
(checkFalse && value === false));
|
|
14
|
+
if (areAllFalsy) {
|
|
15
|
+
return { [AT_LEAST_ONE_REQUIRED]: true };
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXQtbGVhc3Qtb25lLXJlcXVpcmVkLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvYXQtbGVhc3Qtb25lLXJlcXVpcmVkLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztBQWUxRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLE1BQXdDLEVBQWUsRUFBRTtJQUNsRyxPQUFPLENBQUMsU0FBMEIsRUFBMkIsRUFBRTtRQUM3RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUVwQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUMxQztRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FDckMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNSLEtBQUssS0FBSyxJQUFJO1lBQ2QsS0FBSyxLQUFLLFNBQVM7WUFDbkIsS0FBSyxLQUFLLEVBQUU7WUFDWixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxVQUFVLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUNsQyxDQUFDO1FBRUYsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQVRfTEVBU1RfT05FX1JFUVVJUkVEID0gJ2F0TGVhc3RPbmVSZXF1aXJlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWRDb25maWcge1xuICAvKipcbiAgICogS2V5cyBvZiBmb3JtIGNvbnRyb2xzIHRvIHZhbGlkYXRlIGluIHRoZSBzdXBwbGllZCBmb3JtIGdyb3VwXG4gICAqL1xuICBrZXlzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIHZhbHVlIGBmYWxzZWAgd2lsbCByZXN1bHQgaW4gYSB2YWxpZGF0aW9uIGVycm9yXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBjaGVja0ZhbHNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFZhbGlkYXRlQXRMZWFzdE9uZVJlcXVpcmVkID0gKGNvbmZpZzogVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWRDb25maWcpOiBWYWxpZGF0b3JGbiA9PiB7XG4gIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgeyBrZXlzLCBjaGVja0ZhbHNlIH0gPSBjb25maWc7XG5cbiAgICBpZiAoIWZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHsgW0FUX0xFQVNUX09ORV9SRVFVSVJFRF06IHRydWUgfTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sVmFsdWVzID0ga2V5cy5tYXAoKGtleSkgPT4gZm9ybUdyb3VwLmdldChrZXkpPy52YWx1ZSk7XG5cbiAgICBjb25zdCBhcmVBbGxGYWxzeSA9IGNvbnRyb2xWYWx1ZXMuZXZlcnkoXG4gICAgICAodmFsdWUpID0+XG4gICAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdmFsdWUgPT09ICcnIHx8XG4gICAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8XG4gICAgICAgIChjaGVja0ZhbHNlICYmIHZhbHVlID09PSBmYWxzZSksXG4gICAgKTtcblxuICAgIGlmIChhcmVBbGxGYWxzeSkge1xuICAgICAgcmV0dXJuIHsgW0FUX0xFQVNUX09ORV9SRVFVSVJFRF06IHRydWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn07XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { ValidateAtLeastOneRequired } from './at-least-one-required.validator';
|
|
1
2
|
import { IsArrayNotEmpty } from './is-array-not-empty.validator';
|
|
2
3
|
import { IsEmail } from './is-email.validator';
|
|
3
4
|
import { MustMatch } from './must-match.validator';
|
|
5
|
+
export * from './at-least-one-required.validator';
|
|
4
6
|
export * from './is-array-not-empty.validator';
|
|
5
7
|
export * from './is-email.validator';
|
|
6
8
|
export * from './must-match.validator';
|
|
@@ -8,5 +10,6 @@ export const Validators = {
|
|
|
8
10
|
MustMatch,
|
|
9
11
|
IsEmail,
|
|
10
12
|
IsArrayNotEmpty,
|
|
13
|
+
ValidateAtLeastOneRequired,
|
|
11
14
|
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixTQUFTO0lBQ1QsT0FBTztJQUNQLGVBQWU7SUFDZiwwQkFBMEI7Q0FDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRlQXRMZWFzdE9uZVJlcXVpcmVkIH0gZnJvbSAnLi9hdC1sZWFzdC1vbmUtcmVxdWlyZWQudmFsaWRhdG9yJztcbmltcG9ydCB7IElzQXJyYXlOb3RFbXB0eSB9IGZyb20gJy4vaXMtYXJyYXktbm90LWVtcHR5LnZhbGlkYXRvcic7XG5pbXBvcnQgeyBJc0VtYWlsIH0gZnJvbSAnLi9pcy1lbWFpbC52YWxpZGF0b3InO1xuaW1wb3J0IHsgTXVzdE1hdGNoIH0gZnJvbSAnLi9tdXN0LW1hdGNoLnZhbGlkYXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXQtbGVhc3Qtb25lLXJlcXVpcmVkLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2lzLWFycmF5LW5vdC1lbXB0eS52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1lbWFpbC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tdXN0LW1hdGNoLnZhbGlkYXRvcic7XG5cbmV4cG9ydCBjb25zdCBWYWxpZGF0b3JzID0ge1xuICBNdXN0TWF0Y2gsXG4gIElzRW1haWwsXG4gIElzQXJyYXlOb3RFbXB0eSxcbiAgVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWQsXG59IGFzIGNvbnN0O1xuIl19
|