@acorex/core 16.0.2 → 17.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/common/README.md +3 -0
- package/common/countries/countries.data.d.ts +2 -0
- package/common/countries/country.d.ts +13 -0
- package/common/index.d.ts +2 -0
- package/config/README.md +3 -0
- package/config/index.d.ts +2 -0
- package/config/lib/configs.d.ts +6 -0
- package/config/lib/configs.service.d.ts +12 -0
- package/date-time/README.md +3 -0
- package/date-time/index.d.ts +10 -0
- package/date-time/lib/calendar.service.d.ts +27 -0
- package/date-time/lib/dateTime.config.d.ts +12 -0
- package/date-time/lib/datetime.class.d.ts +138 -0
- package/date-time/lib/datetime.module.d.ts +8 -0
- package/date-time/lib/datetime.pipe.d.ts +12 -0
- package/date-time/lib/formatters/datetime-formatter.d.ts +19 -0
- package/date-time/lib/formatters/timeleft-formatter.d.ts +16 -0
- package/date-time/lib/georgian.calendar.d.ts +21 -0
- package/date-time/lib/holidays.loader.d.ts +21 -0
- package/date-time/lib/jalali.calendar.d.ts +40 -0
- package/esm2022/common/acorex-core-common.mjs +5 -0
- package/esm2022/common/countries/countries.data.mjs +2625 -0
- package/esm2022/common/countries/country.mjs +2 -0
- package/esm2022/common/index.mjs +3 -0
- package/esm2022/config/acorex-core-config.mjs +5 -0
- package/esm2022/config/index.mjs +3 -0
- package/esm2022/config/lib/configs.mjs +7 -0
- package/esm2022/config/lib/configs.service.mjs +27 -0
- package/esm2022/date-time/acorex-core-date-time.mjs +5 -0
- package/esm2022/date-time/index.mjs +11 -0
- package/esm2022/date-time/lib/calendar.service.mjs +100 -0
- package/esm2022/date-time/lib/dateTime.config.mjs +50 -0
- package/esm2022/date-time/lib/datetime.class.mjs +337 -0
- package/esm2022/date-time/lib/datetime.module.mjs +27 -0
- package/esm2022/date-time/lib/datetime.pipe.mjs +29 -0
- package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +32 -0
- package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +91 -0
- package/esm2022/date-time/lib/georgian.calendar.mjs +203 -0
- package/esm2022/date-time/lib/holidays.loader.mjs +13 -0
- package/esm2022/date-time/lib/jalali.calendar.mjs +440 -0
- package/esm2022/events/acorex-core-events.mjs +5 -0
- package/esm2022/events/index.mjs +3 -0
- package/esm2022/events/lib/event.service.mjs +43 -0
- package/esm2022/events/lib/event.type.mjs +6 -0
- package/esm2022/file/acorex-core-file.mjs +5 -0
- package/esm2022/file/index.mjs +7 -0
- package/esm2022/file/lib/file-download-ref.class.mjs +12 -0
- package/esm2022/file/lib/file-download-result.class.mjs +45 -0
- package/esm2022/file/lib/file-size-formatter.mjs +24 -0
- package/esm2022/file/lib/file-upload-ref.class.mjs +12 -0
- package/esm2022/file/lib/file.module.mjs +20 -0
- package/esm2022/file/lib/file.service.mjs +103 -0
- package/esm2022/format/acorex-core-format.mjs +5 -0
- package/esm2022/format/index.mjs +8 -0
- package/esm2022/format/lib/format.config.mjs +3 -0
- package/esm2022/format/lib/format.module.mjs +64 -0
- package/esm2022/format/lib/format.pipe.mjs +37 -0
- package/esm2022/format/lib/format.service.mjs +95 -0
- package/esm2022/format/lib/format.types.mjs +2 -0
- package/esm2022/format/lib/formatters/number-formatter.mjs +74 -0
- package/esm2022/format/lib/formatters/string-formatter.mjs +15 -0
- package/esm2022/image/acorex-core-image.mjs +5 -0
- package/esm2022/image/index.mjs +2 -0
- package/esm2022/image/lib/image.service.mjs +43 -0
- package/esm2022/index.mjs +2 -44
- package/esm2022/memorize/acorex-core-memorize.mjs +5 -0
- package/esm2022/memorize/index.mjs +2 -0
- package/esm2022/memorize/lib/memorize.decorator.mjs +19 -0
- package/esm2022/pipes/acorex-core-pipes.mjs +5 -0
- package/esm2022/pipes/index.mjs +2 -0
- package/esm2022/pipes/lib/safe/safe.pipe.mjs +38 -0
- package/esm2022/platform/acorex-core-platform.mjs +5 -0
- package/esm2022/platform/index.mjs +2 -0
- package/esm2022/platform/lib/platform.service.mjs +225 -0
- package/esm2022/storage/acorex-core-storage.mjs +5 -0
- package/esm2022/storage/cookie-storage.service.mjs +202 -0
- package/esm2022/storage/index.mjs +5 -0
- package/esm2022/storage/local-storage.service.mjs +58 -0
- package/esm2022/storage/session-storage.service.mjs +22 -0
- package/esm2022/storage/storage.interface.mjs +2 -0
- package/esm2022/translation/acorex-core-translation.mjs +5 -0
- package/esm2022/translation/index.mjs +9 -0
- package/esm2022/translation/lib/translation-scope.resolver.mjs +11 -0
- package/esm2022/translation/lib/translation.config.mjs +20 -0
- package/esm2022/translation/lib/translation.loader.mjs +14 -0
- package/esm2022/translation/lib/translation.module.mjs +40 -0
- package/esm2022/translation/lib/translation.service.mjs +173 -0
- package/esm2022/translation/lib/translation.types.mjs +2 -0
- package/esm2022/translation/lib/translator.directive.mjs +28 -0
- package/esm2022/translation/lib/translator.pipe.mjs +23 -0
- package/esm2022/types/acorex-core-types.mjs +5 -0
- package/esm2022/types/index.mjs +2 -0
- package/esm2022/utils/acorex-core-utils.mjs +5 -0
- package/esm2022/utils/index.mjs +6 -0
- package/esm2022/utils/lib/auto-unsubscribe.mjs +36 -0
- package/esm2022/utils/lib/color-util.mjs +111 -0
- package/esm2022/utils/lib/drawing-util.mjs +35 -0
- package/esm2022/utils/lib/html-util.mjs +39 -0
- package/esm2022/utils/lib/string-util.mjs +19 -0
- package/esm2022/validation/acorex-core-validation.mjs +5 -0
- package/esm2022/validation/index.mjs +18 -0
- package/esm2022/validation/lib/rules/between-rule.mjs +31 -0
- package/esm2022/validation/lib/rules/callback-rule.mjs +29 -0
- package/esm2022/validation/lib/rules/equal-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/greater-than.mjs +29 -0
- package/esm2022/validation/lib/rules/length-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/less-than-rule.mjs +29 -0
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +27 -0
- package/esm2022/validation/lib/rules/minlength-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/regex-rule.mjs +49 -0
- package/esm2022/validation/lib/rules/required-rule.mjs +36 -0
- package/esm2022/validation/lib/validation.config.mjs +33 -0
- package/esm2022/validation/lib/validation.module.mjs +84 -0
- package/esm2022/validation/lib/validation.service.mjs +98 -0
- package/esm2022/validation/lib/validation.types.mjs +3 -0
- package/events/README.md +3 -0
- package/events/index.d.ts +2 -0
- package/{lib/services → events/lib}/event.service.d.ts +8 -0
- package/events/lib/event.type.d.ts +5 -0
- package/fesm2022/acorex-core-common.mjs +2631 -0
- package/fesm2022/acorex-core-common.mjs.map +1 -0
- package/fesm2022/acorex-core-config.mjs +39 -0
- package/fesm2022/acorex-core-config.mjs.map +1 -0
- package/fesm2022/acorex-core-date-time.mjs +1305 -0
- package/fesm2022/acorex-core-date-time.mjs.map +1 -0
- package/fesm2022/acorex-core-events.mjs +56 -0
- package/fesm2022/acorex-core-events.mjs.map +1 -0
- package/fesm2022/acorex-core-file.mjs +214 -0
- package/fesm2022/acorex-core-file.mjs.map +1 -0
- package/fesm2022/acorex-core-format.mjs +282 -0
- package/fesm2022/acorex-core-format.mjs.map +1 -0
- package/fesm2022/acorex-core-image.mjs +50 -0
- package/fesm2022/acorex-core-image.mjs.map +1 -0
- package/fesm2022/acorex-core-memorize.mjs +26 -0
- package/fesm2022/acorex-core-memorize.mjs.map +1 -0
- package/fesm2022/acorex-core-pipes.mjs +44 -0
- package/fesm2022/acorex-core-pipes.mjs.map +1 -0
- package/fesm2022/acorex-core-platform.mjs +232 -0
- package/fesm2022/acorex-core-platform.mjs.map +1 -0
- package/fesm2022/acorex-core-storage.mjs +285 -0
- package/fesm2022/acorex-core-storage.mjs.map +1 -0
- package/fesm2022/acorex-core-translation.mjs +293 -0
- package/fesm2022/acorex-core-translation.mjs.map +1 -0
- package/fesm2022/acorex-core-types.mjs +6 -0
- package/fesm2022/acorex-core-types.mjs.map +1 -0
- package/fesm2022/acorex-core-utils.mjs +247 -0
- package/fesm2022/acorex-core-utils.mjs.map +1 -0
- package/fesm2022/acorex-core-validation.mjs +488 -0
- package/fesm2022/acorex-core-validation.mjs.map +1 -0
- package/fesm2022/acorex-core.mjs +2 -2309
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/file/README.md +3 -0
- package/file/index.d.ts +6 -0
- package/file/lib/file-download-ref.class.d.ts +6 -0
- package/file/lib/file-download-result.class.d.ts +8 -0
- package/file/lib/file-size-formatter.d.ts +16 -0
- package/file/lib/file-upload-ref.class.d.ts +5 -0
- package/file/lib/file.module.d.ts +7 -0
- package/file/lib/file.service.d.ts +18 -0
- package/format/README.md +3 -0
- package/format/index.d.ts +7 -0
- package/format/lib/format.config.d.ts +5 -0
- package/format/lib/format.module.d.ts +18 -0
- package/format/lib/format.pipe.d.ts +12 -0
- package/format/lib/format.service.d.ts +43 -0
- package/format/lib/format.types.d.ts +4 -0
- package/format/lib/formatters/number-formatter.d.ts +23 -0
- package/format/lib/formatters/string-formatter.d.ts +14 -0
- package/image/README.md +3 -0
- package/image/index.d.ts +1 -0
- package/image/lib/image.service.d.ts +11 -0
- package/index.d.ts +1 -43
- package/memorize/README.md +3 -0
- package/memorize/index.d.ts +1 -0
- package/memorize/lib/memorize.decorator.d.ts +1 -0
- package/package.json +98 -5
- package/pipes/README.md +3 -0
- package/pipes/index.d.ts +1 -0
- package/pipes/lib/safe/safe.pipe.d.ts +10 -0
- package/platform/README.md +3 -0
- package/platform/index.d.ts +1 -0
- package/{lib/platform → platform/lib}/platform.service.d.ts +14 -6
- package/storage/README.md +3 -0
- package/storage/cookie-storage.service.d.ts +104 -0
- package/storage/index.d.ts +4 -0
- package/storage/local-storage.service.d.ts +16 -0
- package/storage/session-storage.service.d.ts +10 -0
- package/storage/storage.interface.d.ts +14 -0
- package/translation/README.md +3 -0
- package/translation/index.d.ts +8 -0
- package/translation/lib/translation-scope.resolver.d.ts +2 -0
- package/translation/lib/translation.config.d.ts +14 -0
- package/translation/lib/translation.loader.d.ts +14 -0
- package/translation/lib/translation.module.d.ts +8 -0
- package/translation/lib/translation.service.d.ts +31 -0
- package/translation/lib/translation.types.d.ts +10 -0
- package/translation/lib/translator.directive.d.ts +12 -0
- package/translation/lib/translator.pipe.d.ts +12 -0
- package/types/README.md +3 -0
- package/types/index.d.ts +2 -0
- package/utils/README.md +3 -0
- package/utils/index.d.ts +5 -0
- package/utils/lib/auto-unsubscribe.d.ts +12 -0
- package/utils/lib/color-util.d.ts +24 -0
- package/utils/lib/drawing-util.d.ts +18 -0
- package/utils/lib/html-util.d.ts +5 -0
- package/utils/lib/string-util.d.ts +6 -0
- package/validation/README.md +3 -0
- package/validation/index.d.ts +14 -0
- package/validation/lib/rules/between-rule.d.ts +18 -0
- package/validation/lib/rules/callback-rule.d.ts +23 -0
- package/validation/lib/rules/equal-rule.d.ts +17 -0
- package/validation/lib/rules/greater-than.d.ts +17 -0
- package/validation/lib/rules/length-rule.d.ts +17 -0
- package/validation/lib/rules/less-than-rule.d.ts +17 -0
- package/validation/lib/rules/maxlength-rule.d.ts +16 -0
- package/validation/lib/rules/minlength-rule.d.ts +16 -0
- package/validation/lib/rules/regex-rule.d.ts +17 -0
- package/validation/lib/rules/required-rule.d.ts +16 -0
- package/validation/lib/validation.config.d.ts +15 -0
- package/validation/lib/validation.module.d.ts +17 -0
- package/validation/lib/validation.service.d.ts +35 -0
- package/validation/lib/validation.types.d.ts +21 -0
- package/esm2022/lib/classes/base-page.class.mjs +0 -26
- package/esm2022/lib/classes/color.class.mjs +0 -49
- package/esm2022/lib/classes/datetime.class.mjs +0 -323
- package/esm2022/lib/classes/menu.class.mjs +0 -35
- package/esm2022/lib/classes/navigator.class.mjs +0 -2
- package/esm2022/lib/classes/popup.class.mjs +0 -2
- package/esm2022/lib/classes/promise.class.mjs +0 -21
- package/esm2022/lib/classes/sectionlist.class.mjs +0 -2
- package/esm2022/lib/classes/select.class.mjs +0 -8
- package/esm2022/lib/core.module.mjs +0 -27
- package/esm2022/lib/error/error.class.mjs +0 -2
- package/esm2022/lib/error/error.module.mjs +0 -19
- package/esm2022/lib/error/error.service.mjs +0 -22
- package/esm2022/lib/events/keyboard.mjs +0 -2
- package/esm2022/lib/http/http-error.class.mjs +0 -2
- package/esm2022/lib/http/http-events.interceptor.mjs +0 -3
- package/esm2022/lib/http/http-request.class.mjs +0 -2
- package/esm2022/lib/http/http-result.class.mjs +0 -25
- package/esm2022/lib/http/http.module.mjs +0 -35
- package/esm2022/lib/http/http.service.mjs +0 -148
- package/esm2022/lib/locale/en.json +0 -255
- package/esm2022/lib/locale/fa.json +0 -245
- package/esm2022/lib/pipe/datetime.pipe.mjs +0 -25
- package/esm2022/lib/pipe/htmlToText.pipe.mjs +0 -25
- package/esm2022/lib/platform/index.mjs +0 -2
- package/esm2022/lib/platform/platform.service.mjs +0 -152
- package/esm2022/lib/services/config.mjs +0 -29
- package/esm2022/lib/services/event.service.mjs +0 -34
- package/esm2022/lib/services/navigator.service.mjs +0 -10
- package/esm2022/lib/services/storage.service.mjs +0 -16
- package/esm2022/lib/translator/translator.mjs +0 -26
- package/esm2022/lib/translator/translator.module.mjs +0 -25
- package/esm2022/lib/translator/translator.pipe.mjs +0 -24
- package/esm2022/lib/translator/translator.service.mjs +0 -21
- package/esm2022/lib/utils/array/array-util.mjs +0 -133
- package/esm2022/lib/utils/html/html-util.mjs +0 -200
- package/esm2022/lib/utils/html/html.module.mjs +0 -19
- package/esm2022/lib/utils/math/math-util.mjs +0 -6
- package/esm2022/lib/utils/object/object-util.mjs +0 -83
- package/esm2022/lib/utils/render/on-demand-preload-strategy.service.mjs +0 -21
- package/esm2022/lib/utils/render/render.service.mjs +0 -109
- package/esm2022/lib/utils/render/rendering.module.mjs +0 -35
- package/esm2022/lib/utils/scroll/scroll.directive.mjs +0 -56
- package/esm2022/lib/utils/scroll/scroll.module.mjs +0 -19
- package/esm2022/lib/utils/separator/separator.module.mjs +0 -19
- package/esm2022/lib/utils/separator/separator.pipe.mjs +0 -33
- package/lib/classes/base-page.class.d.ts +0 -13
- package/lib/classes/color.class.d.ts +0 -17
- package/lib/classes/datetime.class.d.ts +0 -63
- package/lib/classes/menu.class.d.ts +0 -34
- package/lib/classes/navigator.class.d.ts +0 -5
- package/lib/classes/popup.class.d.ts +0 -12
- package/lib/classes/promise.class.d.ts +0 -7
- package/lib/classes/sectionlist.class.d.ts +0 -8
- package/lib/classes/select.class.d.ts +0 -7
- package/lib/core.module.d.ts +0 -9
- package/lib/error/error.class.d.ts +0 -4
- package/lib/error/error.module.d.ts +0 -7
- package/lib/error/error.service.d.ts +0 -13
- package/lib/events/keyboard.d.ts +0 -2
- package/lib/http/http-error.class.d.ts +0 -7
- package/lib/http/http-events.interceptor.d.ts +0 -10
- package/lib/http/http-request.class.d.ts +0 -14
- package/lib/http/http-result.class.d.ts +0 -11
- package/lib/http/http.module.d.ts +0 -10
- package/lib/http/http.service.d.ts +0 -23
- package/lib/pipe/datetime.pipe.d.ts +0 -8
- package/lib/pipe/htmlToText.pipe.d.ts +0 -7
- package/lib/platform/index.d.ts +0 -1
- package/lib/services/config.d.ts +0 -9
- package/lib/services/navigator.service.d.ts +0 -8
- package/lib/services/storage.service.d.ts +0 -7
- package/lib/translator/translator.d.ts +0 -9
- package/lib/translator/translator.module.d.ts +0 -8
- package/lib/translator/translator.pipe.d.ts +0 -8
- package/lib/translator/translator.service.d.ts +0 -8
- package/lib/utils/array/array-util.d.ts +0 -6
- package/lib/utils/html/html-util.d.ts +0 -62
- package/lib/utils/html/html.module.d.ts +0 -8
- package/lib/utils/math/math-util.d.ts +0 -3
- package/lib/utils/object/object-util.d.ts +0 -7
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +0 -10
- package/lib/utils/render/render.service.d.ts +0 -18
- package/lib/utils/render/rendering.module.d.ts +0 -8
- package/lib/utils/scroll/scroll.directive.d.ts +0 -18
- package/lib/utils/scroll/scroll.module.d.ts +0 -8
- package/lib/utils/separator/separator.module.d.ts +0 -8
- package/lib/utils/separator/separator.pipe.d.ts +0 -8
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXEqualValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
value: any;
|
5
|
+
not?: boolean;
|
6
|
+
}
|
7
|
+
declare module '../validation.types' {
|
8
|
+
interface AXValidationRuleOptionsMap {
|
9
|
+
equal: AXEqualValidationRuleOptions;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
export declare class AXEqualValidationRule implements AXValidationRule {
|
13
|
+
get name(): string;
|
14
|
+
validate(value: any, options: AXEqualValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXEqualValidationRule, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXEqualValidationRule>;
|
17
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXGreaterThanValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
value: number;
|
5
|
+
inclusive?: boolean;
|
6
|
+
}
|
7
|
+
declare module '../validation.types' {
|
8
|
+
interface AXValidationRuleOptionsMap {
|
9
|
+
greaterThan: AXGreaterThanValidationRuleOptions;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
export declare class AXGreaterThanValidationRule implements AXValidationRule {
|
13
|
+
get name(): string;
|
14
|
+
validate(value: number, options: AXGreaterThanValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXGreaterThanValidationRule, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXGreaterThanValidationRule>;
|
17
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXLengthValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
min: number;
|
5
|
+
max: number;
|
6
|
+
}
|
7
|
+
declare module '../validation.types' {
|
8
|
+
interface AXValidationRuleOptionsMap {
|
9
|
+
length: AXLengthValidationRuleOptions;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
export declare class AXLengthValidationRule implements AXValidationRule {
|
13
|
+
get name(): string;
|
14
|
+
validate(value: string, options: AXLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXLengthValidationRule, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXLengthValidationRule>;
|
17
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXLessThanValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
value: number;
|
5
|
+
inclusive?: boolean;
|
6
|
+
}
|
7
|
+
declare module '../validation.types' {
|
8
|
+
interface AXValidationRuleOptionsMap {
|
9
|
+
lessThan: AXLessThanValidationRuleOptions;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
export declare class AXLessThanValidationRule implements AXValidationRule {
|
13
|
+
get name(): string;
|
14
|
+
validate(value: number, options: AXLessThanValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXLessThanValidationRule, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXLessThanValidationRule>;
|
17
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXMaxLengthValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
value: number;
|
5
|
+
}
|
6
|
+
declare module '../validation.types' {
|
7
|
+
interface AXValidationRuleOptionsMap {
|
8
|
+
maxLength: AXMaxLengthValidationRuleOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXMaxLengthValidationRule implements AXValidationRule {
|
12
|
+
get name(): string;
|
13
|
+
validate(value: string, options: AXMaxLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMaxLengthValidationRule, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMaxLengthValidationRule>;
|
16
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXMinLengthValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
value: number;
|
5
|
+
}
|
6
|
+
declare module '../validation.types' {
|
7
|
+
interface AXValidationRuleOptionsMap {
|
8
|
+
minLength: AXMinLengthValidationRuleOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXMinLengthValidationRule implements AXValidationRule {
|
12
|
+
get name(): string;
|
13
|
+
validate(value: string, options: AXMinLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMinLengthValidationRule, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMinLengthValidationRule>;
|
16
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXRegexValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
pattern: string | RegExp;
|
5
|
+
}
|
6
|
+
declare module '../validation.types' {
|
7
|
+
interface AXValidationRuleOptionsMap {
|
8
|
+
regex: AXRegexValidationRuleOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXRegexValidationRule implements AXValidationRule {
|
12
|
+
private traslationService;
|
13
|
+
get name(): string;
|
14
|
+
validate(value: string, options: AXRegexValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXRegexValidationRule, never>;
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXRegexValidationRule>;
|
17
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from '../validation.types';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export interface AXRequiredValidationRuleOptions extends AXValidationRuleOptions {
|
4
|
+
}
|
5
|
+
declare module '../validation.types' {
|
6
|
+
interface AXValidationRuleOptionsMap {
|
7
|
+
required: AXRequiredValidationRuleOptions;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
export declare class AXRequiredValidationRule implements AXValidationRule {
|
11
|
+
private traslationService;
|
12
|
+
get name(): string;
|
13
|
+
validate(value?: unknown, options?: AXRequiredValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXRequiredValidationRule, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXRequiredValidationRule>;
|
16
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
2
|
+
import { AXValidationRuleOptions, AXValidationRuleOptionsMap } from './validation.types';
|
3
|
+
export type AXValidationConfigRules = {
|
4
|
+
[key: string]: {
|
5
|
+
rule: keyof AXValidationRuleOptionsMap;
|
6
|
+
options: AXValidationRuleOptions;
|
7
|
+
};
|
8
|
+
};
|
9
|
+
export interface AXValidationConfig {
|
10
|
+
rules: AXValidationConfigRules;
|
11
|
+
}
|
12
|
+
export declare const AX_VALIDATION_CONFIG: InjectionToken<AXValidationConfig>;
|
13
|
+
export declare const AXValidationDefaultConfig: AXValidationConfig;
|
14
|
+
export type AXPartialValidationConfig = Partial<AXValidationConfig>;
|
15
|
+
export declare function validationConfig(config?: AXPartialValidationConfig): AXValidationConfig;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
2
|
+
import { AXValidationRule } from './validation.types';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export interface AXValidationModuleConfigs {
|
5
|
+
rules: (new () => AXValidationRule)[];
|
6
|
+
}
|
7
|
+
export declare class AXValidationModule {
|
8
|
+
static forRoot(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule>;
|
9
|
+
static forChild(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule>;
|
10
|
+
/**
|
11
|
+
* @ignore
|
12
|
+
*/
|
13
|
+
constructor(instances: any[]);
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXValidationModule, never>;
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXValidationModule, never, never, never>;
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXValidationModule>;
|
17
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Injector } from '@angular/core';
|
2
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleOptionsMap, AXValidationRuleResult, AXValidationSummary } from './validation.types';
|
3
|
+
import { AXValidationConfigRules } from './validation.config';
|
4
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export declare class AXValidationRegistryService {
|
7
|
+
private plugins;
|
8
|
+
private configs;
|
9
|
+
get customRules(): AXValidationConfigRules;
|
10
|
+
private injector;
|
11
|
+
constructor(injector: Injector);
|
12
|
+
register(...plugins: (new () => AXValidationRule)[]): void;
|
13
|
+
get(ruleName: string): AXValidationRule | undefined;
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXValidationRegistryService, never>;
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXValidationRegistryService>;
|
16
|
+
}
|
17
|
+
export declare class AXValidationService {
|
18
|
+
private pluginRegistry;
|
19
|
+
private translationService;
|
20
|
+
constructor(pluginRegistry: AXValidationRegistryService, translationService: AXTranslationService);
|
21
|
+
validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions): Promise<AXValidationRuleResult>;
|
22
|
+
ruleFor(value: unknown): AXValidationRuleChain;
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXValidationService, never>;
|
24
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXValidationService>;
|
25
|
+
}
|
26
|
+
declare class AXValidationRuleChain {
|
27
|
+
private validationService;
|
28
|
+
private initialValue;
|
29
|
+
private rules;
|
30
|
+
private validationSummary;
|
31
|
+
constructor(validationService: AXValidationService, initialValue: unknown);
|
32
|
+
addRule<K extends keyof AXValidationRuleOptionsMap>(name: K, options?: AXValidationRuleOptionsMap[K]): AXValidationRuleChain;
|
33
|
+
validate(): Promise<AXValidationSummary>;
|
34
|
+
}
|
35
|
+
export {};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
export interface AXValidationRuleOptions {
|
2
|
+
message?: string;
|
3
|
+
[key: string]: unknown;
|
4
|
+
}
|
5
|
+
export interface AXValidationRuleOptionsMap {
|
6
|
+
}
|
7
|
+
export declare abstract class AXValidationRule {
|
8
|
+
abstract get name(): string;
|
9
|
+
abstract validate(value: unknown, options?: AXValidationRuleOptions): Promise<AXValidationRuleResult>;
|
10
|
+
}
|
11
|
+
export interface AXValidationRuleResult {
|
12
|
+
rule: string;
|
13
|
+
value?: unknown;
|
14
|
+
message?: string | null;
|
15
|
+
result: boolean;
|
16
|
+
[key: string]: unknown;
|
17
|
+
}
|
18
|
+
export interface AXValidationSummary {
|
19
|
+
result: boolean;
|
20
|
+
rules: AXValidationRuleResult[];
|
21
|
+
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { EventEmitter, Injectable } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
/**
|
4
|
-
* @deprecated Use AXBasePageComponent from @acorex/components
|
5
|
-
*/
|
6
|
-
// TODO: Add Angular decorator.
|
7
|
-
export class AXBasePageComponent {
|
8
|
-
onClosed = new EventEmitter();
|
9
|
-
close(data) {
|
10
|
-
this.onClosed.emit({
|
11
|
-
component: this,
|
12
|
-
data: data
|
13
|
-
});
|
14
|
-
}
|
15
|
-
onClosing(e) {
|
16
|
-
}
|
17
|
-
ngOnDestroy() {
|
18
|
-
this.onClosed.unsubscribe();
|
19
|
-
}
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXBasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
21
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXBasePageComponent });
|
22
|
-
}
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXBasePageComponent, decorators: [{
|
24
|
-
type: Injectable
|
25
|
-
}] });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYWdlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2xhc3Nlcy9iYXNlLXBhZ2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpEOztHQUVHO0FBQ0gsK0JBQStCO0FBRS9CLE1BQU0sT0FBZ0IsbUJBQW1CO0lBRXJDLFFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV0RCxLQUFLLENBQUMsSUFBVTtRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsU0FBUyxFQUFFLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBTTtJQUNoQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQzt3R0FoQmlCLG1CQUFtQjs0R0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFYQmFzZVBhZ2VDb21wb25lbnQgZnJvbSBAYWNvcmV4L2NvbXBvbmVudHNcbiAqL1xuLy8gVE9ETzogQWRkIEFuZ3VsYXIgZGVjb3JhdG9yLlxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuXG4gICAgb25DbG9zZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjbG9zZShkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICBkYXRhOiBkYXRhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ2xvc2luZyhlOiBhbnkpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMub25DbG9zZWQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cblxufVxuXG5cbiJdfQ==
|
@@ -1,49 +0,0 @@
|
|
1
|
-
export class AXColorUtil {
|
2
|
-
static hex2Rgb(hexColor) {
|
3
|
-
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
4
|
-
return result ? {
|
5
|
-
r: parseInt(result[1], 16),
|
6
|
-
g: parseInt(result[2], 16),
|
7
|
-
b: parseInt(result[3], 16)
|
8
|
-
} : null;
|
9
|
-
}
|
10
|
-
static rgb2Hex(r, g, b, a = 255) {
|
11
|
-
let alpha;
|
12
|
-
let hex = (r | 1 << 8).toString(16).slice(1) +
|
13
|
-
(g | 1 << 8).toString(16).slice(1) +
|
14
|
-
(b | 1 << 8).toString(16).slice(1);
|
15
|
-
if (a !== 255) {
|
16
|
-
alpha = a;
|
17
|
-
}
|
18
|
-
else {
|
19
|
-
alpha = 1;
|
20
|
-
}
|
21
|
-
alpha = Math.round(alpha * 100) / 100;
|
22
|
-
alpha = Math.round(alpha * 255);
|
23
|
-
const hexAlpha = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();
|
24
|
-
return '#' + hex + (alpha == 255 ? '' : hexAlpha);
|
25
|
-
}
|
26
|
-
;
|
27
|
-
static illuminance(hexColor) {
|
28
|
-
const rgbColor = AXColorUtil.hex2Rgb(hexColor);
|
29
|
-
if (!rgbColor) {
|
30
|
-
return -1;
|
31
|
-
}
|
32
|
-
const r = rgbColor.r;
|
33
|
-
const g = rgbColor.g;
|
34
|
-
const b = rgbColor.b;
|
35
|
-
const a = [r, g, b].map(v => {
|
36
|
-
v /= 255;
|
37
|
-
return (v <= 0.03928) ?
|
38
|
-
v / 12.92 :
|
39
|
-
Math.pow(((v + 0.055) / 1.055), 2.4);
|
40
|
-
});
|
41
|
-
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
42
|
-
}
|
43
|
-
static contrastToWhite(hexColor) {
|
44
|
-
const whiteIlluminance = 1;
|
45
|
-
const illuminance = AXColorUtil.illuminance(hexColor);
|
46
|
-
return whiteIlluminance / illuminance;
|
47
|
-
}
|
48
|
-
}
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jbGFzc2VzL2NvbG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxXQUFXO0lBR3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBZ0I7UUFDM0IsTUFBTSxNQUFNLEdBQUcsMkNBQTJDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQzdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLElBQVksR0FBRztRQUMzRCxJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ1gsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNiO2FBQU07WUFDSCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3RDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekUsT0FBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBQ0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixDQUFDLElBQUksR0FBRyxDQUFDO1lBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFnQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO0lBQzFDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhDb2xvciB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICBhY3RpdmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQVhDb2xvclV0aWwge1xuXG5cbiAgICBzdGF0aWMgaGV4MlJnYihoZXhDb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXhDb2xvcik7XG4gICAgICAgIHJldHVybiByZXN1bHQgPyB7XG4gICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50KHJlc3VsdFsyXSwgMTYpLFxuICAgICAgICAgICAgYjogcGFyc2VJbnQocmVzdWx0WzNdLCAxNilcbiAgICAgICAgfSA6IG51bGw7XG4gICAgfVxuXG4gICAgc3RhdGljIHJnYjJIZXgocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYTogbnVtYmVyID0gMjU1KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGFscGhhO1xuICAgICAgICBsZXQgaGV4ID0gKHIgfCAxIDw8IDgpLnRvU3RyaW5nKDE2KS5zbGljZSgxKSArXG4gICAgICAgICAgICAoZyB8IDEgPDwgOCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpICtcbiAgICAgICAgICAgIChiIHwgMSA8PCA4KS50b1N0cmluZygxNikuc2xpY2UoMSk7XG4gICAgICAgIGlmIChhICE9PSAyNTUpIHtcbiAgICAgICAgICAgIGFscGhhID0gYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFscGhhID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFscGhhID0gTWF0aC5yb3VuZChhbHBoYSAqIDEwMCkgLyAxMDA7XG4gICAgICAgIGFscGhhID0gTWF0aC5yb3VuZChhbHBoYSAqIDI1NSk7XG4gICAgICAgIGNvbnN0IGhleEFscGhhID0gKGFscGhhICsgMHgxMDAwMCkudG9TdHJpbmcoMTYpLnN1YnN0cigtMikudG9VcHBlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuICcjJyArIGhleCArIChhbHBoYSA9PSAyNTUgPyAnJyA6IGhleEFscGhhKTtcbiAgICB9O1xuXG4gICAgc3RhdGljIGlsbHVtaW5hbmNlKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcmdiQ29sb3IgPSBBWENvbG9yVXRpbC5oZXgyUmdiKGhleENvbG9yKTtcbiAgICAgICAgaWYgKCFyZ2JDb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHIgPSByZ2JDb2xvci5yO1xuICAgICAgICBjb25zdCBnID0gcmdiQ29sb3IuZztcbiAgICAgICAgY29uc3QgYiA9IHJnYkNvbG9yLmI7XG4gICAgICAgIGNvbnN0IGEgPSBbciwgZywgYl0ubWFwKHYgPT4ge1xuICAgICAgICAgICAgdiAvPSAyNTU7XG4gICAgICAgICAgICByZXR1cm4gKHYgPD0gMC4wMzkyOCkgP1xuICAgICAgICAgICAgICAgIHYgLyAxMi45MiA6XG4gICAgICAgICAgICAgICAgTWF0aC5wb3coKCh2ICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFbMF0gKiAwLjIxMjYgKyBhWzFdICogMC43MTUyICsgYVsyXSAqIDAuMDcyMjtcbiAgICB9XG5cbiAgICBzdGF0aWMgY29udHJhc3RUb1doaXRlKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgd2hpdGVJbGx1bWluYW5jZSA9IDE7XG4gICAgICAgIGNvbnN0IGlsbHVtaW5hbmNlID0gQVhDb2xvclV0aWwuaWxsdW1pbmFuY2UoaGV4Q29sb3IpO1xuICAgICAgICByZXR1cm4gd2hpdGVJbGx1bWluYW5jZSAvIGlsbHVtaW5hbmNlO1xuICAgIH1cblxufVxuIl19
|