ngx-material-entity 16.0.2 → 16.0.3
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/components/edit-page/edit-page.component.d.ts +13 -2
- package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +1 -0
- package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +2 -1
- package/components/input/input.component.d.ts +1 -1
- package/components/input/input.module.d.ts +4 -2
- package/components/input/number/number-slider-input/number-slider-input.component.d.ts +2 -1
- package/components/table/create-dialog/create-entity-dialog.component.d.ts +3 -0
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +4 -0
- package/components/tooltip/tooltip.component.d.ts +9 -0
- package/decorators/array/array-decorator-internal.data.d.ts +6 -6
- package/decorators/array/array-decorator.data.d.ts +7 -7
- package/decorators/base/property-decorator-internal.data.d.ts +11 -2
- package/decorators/base/property-decorator.data.d.ts +9 -1
- package/decorators/boolean/boolean-decorator-internal.data.d.ts +3 -3
- package/decorators/boolean/boolean-decorator.data.d.ts +1 -1
- package/decorators/custom/custom-decorator-internal.data.d.ts +2 -2
- package/decorators/custom/custom-decorator.data.d.ts +4 -4
- package/decorators/date/date-decorator-internal.data.d.ts +4 -4
- package/decorators/date/date-decorator.data.d.ts +5 -5
- package/decorators/file/file-decorator-internal.data.d.ts +3 -3
- package/decorators/file/file-decorator.data.d.ts +1 -1
- package/decorators/has-many/has-many-decorator-internal.data.d.ts +1 -1
- package/decorators/has-many/has-many-decorator.data.d.ts +1 -1
- package/decorators/number/number-decorator-internal.data.d.ts +3 -3
- package/decorators/number/number-decorator.data.d.ts +1 -1
- package/decorators/object/object-decorator-internal.data.d.ts +1 -1
- package/decorators/object/object-decorator.data.d.ts +1 -1
- package/decorators/references-many/references-many-decorator-internal.data.d.ts +1 -1
- package/decorators/references-many/references-many-decorator.data.d.ts +1 -1
- package/decorators/references-one/references-one-decorator-internal.data.d.ts +1 -1
- package/decorators/references-one/references-one-decorator.data.d.ts +1 -1
- package/decorators/string/string-decorator-internal.data.d.ts +5 -6
- package/decorators/string/string-decorator.data.d.ts +1 -7
- package/directives/number.directive.d.ts +17 -0
- package/directives/password-match.directive.d.ts +14 -0
- package/directives/tooltip.directive.d.ts +33 -0
- package/esm2022/components/edit-page/edit-page.component.mjs +57 -13
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +1 -1
- package/esm2022/components/input/base-input.component.mjs +2 -1
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +6 -3
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +6 -3
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +3 -1
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +3 -3
- package/esm2022/components/input/file/file-input/file-input.component.mjs +1 -1
- package/esm2022/components/input/input.component.mjs +7 -6
- package/esm2022/components/input/input.module.mjs +10 -4
- package/esm2022/components/input/number/number-input/number-input.component.mjs +4 -3
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +6 -3
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +4 -3
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +18 -6
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +26 -13
- package/esm2022/components/table/table.component.mjs +7 -4
- package/esm2022/components/tooltip/tooltip.component.mjs +20 -0
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/array/array-decorator.data.mjs +1 -1
- package/esm2022/decorators/base/property-decorator-internal.data.mjs +22 -1
- package/esm2022/decorators/base/property-decorator.data.mjs +10 -1
- package/esm2022/decorators/boolean/boolean-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/boolean/boolean-decorator.data.mjs +1 -1
- package/esm2022/decorators/custom/custom-decorator-internal.data.mjs +2 -2
- package/esm2022/decorators/custom/custom-decorator.data.mjs +1 -1
- package/esm2022/decorators/date/date-decorator-internal.data.mjs +2 -1
- package/esm2022/decorators/date/date-decorator.data.mjs +1 -1
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/file/file-decorator.data.mjs +1 -1
- package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/has-many/has-many-decorator.data.mjs +1 -1
- package/esm2022/decorators/number/number-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/number/number-decorator.data.mjs +1 -1
- package/esm2022/decorators/object/object-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/object/object-decorator.data.mjs +1 -1
- package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/references-many/references-many-decorator.data.mjs +1 -1
- package/esm2022/decorators/references-one/references-one-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/references-one/references-one-decorator.data.mjs +1 -1
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +1 -4
- package/esm2022/decorators/string/string-decorator.data.mjs +1 -1
- package/esm2022/directives/drag-drop.directive.mjs +62 -0
- package/esm2022/directives/number.directive.mjs +38 -0
- package/esm2022/directives/password-match.directive.mjs +30 -0
- package/esm2022/directives/tooltip.directive.mjs +112 -0
- package/esm2022/functions/get-validation-error-message.function.mjs +49 -0
- package/esm2022/functions/get-validation-errors-tooltip-content.function.ts.mjs +25 -0
- package/esm2022/public-api.mjs +6 -2
- package/esm2022/utilities/entity.utilities.mjs +83 -386
- package/esm2022/utilities/validation.utilities.mjs +455 -0
- package/fesm2022/ngx-material-entity.mjs +1374 -905
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/functions/get-validation-errors-tooltip-content.function.ts.d.ts +10 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -1
- package/utilities/entity.utilities.d.ts +33 -30
- package/utilities/validation.utilities.d.ts +56 -0
- package/esm2022/components/get-validation-error-message.function.mjs +0 -42
- package/esm2022/components/input/file/file-input/dragDrop.directive.mjs +0 -62
- /package/{components/input/file/file-input/dragDrop.directive.d.ts → directives/drag-drop.directive.d.ts} +0 -0
- /package/{components → functions}/get-validation-error-message.function.d.ts +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* A directive that validates if a given password matches the control value.
|
|
6
|
+
*/
|
|
7
|
+
export class PasswordMatchValidatorDirective {
|
|
8
|
+
/**
|
|
9
|
+
* The password that the control value should be matched against.
|
|
10
|
+
*/
|
|
11
|
+
passwordMatch;
|
|
12
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
13
|
+
validate(control) {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
15
|
+
return this.passwordMatch == control.value ? null : { passwordMatch: { value: control.value } };
|
|
16
|
+
}
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PasswordMatchValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: PasswordMatchValidatorDirective, isStandalone: true, selector: "[passwordMatch]", inputs: { passwordMatch: "passwordMatch" }, providers: [{ provide: NG_VALIDATORS, useExisting: PasswordMatchValidatorDirective, multi: true }], ngImport: i0 });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: PasswordMatchValidatorDirective, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: '[passwordMatch]',
|
|
24
|
+
providers: [{ provide: NG_VALIDATORS, useExisting: PasswordMatchValidatorDirective, multi: true }],
|
|
25
|
+
standalone: true
|
|
26
|
+
}]
|
|
27
|
+
}], propDecorators: { passwordMatch: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtbWF0Y2guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvZGlyZWN0aXZlcy9wYXNzd29yZC1tYXRjaC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFtQixhQUFhLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdGOztHQUVHO0FBTUgsTUFBTSxPQUFPLCtCQUErQjtJQUV4Qzs7T0FFRztJQUVILGFBQWEsQ0FBVTtJQUV2QiwrQ0FBK0M7SUFDL0MsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLG1FQUFtRTtRQUNuRSxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNwRyxDQUFDO3VHQVpRLCtCQUErQjsyRkFBL0IsK0JBQStCLDBHQUg3QixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzsyRkFHekYsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDbEcsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQU9HLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgdmFsaWRhdGVzIGlmIGEgZ2l2ZW4gcGFzc3dvcmQgbWF0Y2hlcyB0aGUgY29udHJvbCB2YWx1ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcGFzc3dvcmRNYXRjaF0nLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IFBhc3N3b3JkTWF0Y2hWYWxpZGF0b3JEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRNYXRjaFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGFzc3dvcmQgdGhhdCB0aGUgY29udHJvbCB2YWx1ZSBzaG91bGQgYmUgbWF0Y2hlZCBhZ2FpbnN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGFzc3dvcmRNYXRjaD86IHN0cmluZztcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkTWF0Y2ggPT0gY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IHBhc3N3b3JkTWF0Y2g6IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSB9O1xuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* A directive that displays a tooltip on hover.
|
|
5
|
+
*/
|
|
6
|
+
export class TooltipDirective {
|
|
7
|
+
el;
|
|
8
|
+
renderer;
|
|
9
|
+
/**
|
|
10
|
+
* The content to display inside the tooltip.
|
|
11
|
+
*/
|
|
12
|
+
tooltip;
|
|
13
|
+
tooltipElement;
|
|
14
|
+
isTooltipVisible = false;
|
|
15
|
+
closeListeners = [];
|
|
16
|
+
constructor(el, renderer) {
|
|
17
|
+
this.el = el;
|
|
18
|
+
this.renderer = renderer;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Shows the tooltip.
|
|
22
|
+
*/
|
|
23
|
+
onMouseEnter() {
|
|
24
|
+
if (!this.isTooltipVisible) {
|
|
25
|
+
this.showTooltip();
|
|
26
|
+
this.registerCloseListeners();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.hideTooltip();
|
|
30
|
+
this.removeCloseListeners();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Hides the tooltip.
|
|
35
|
+
*/
|
|
36
|
+
onMouseLeave() {
|
|
37
|
+
this.hideTooltip();
|
|
38
|
+
this.removeCloseListeners();
|
|
39
|
+
}
|
|
40
|
+
showTooltip() {
|
|
41
|
+
if (!this.tooltipElement) {
|
|
42
|
+
this.tooltipElement = this.renderer.createElement('div');
|
|
43
|
+
this.tooltipElement.innerHTML = this.tooltip;
|
|
44
|
+
const rect = this.el.nativeElement.getBoundingClientRect();
|
|
45
|
+
this.renderer.setStyle(this.tooltipElement, 'z-index', '1000');
|
|
46
|
+
this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
|
|
47
|
+
this.renderer.setStyle(this.tooltipElement, 'padding', '4px 8px 4px 8px');
|
|
48
|
+
this.renderer.setStyle(this.tooltipElement, 'border-radius', '5px');
|
|
49
|
+
this.renderer.setStyle(this.tooltipElement, 'background-color', '#616161');
|
|
50
|
+
this.renderer.setStyle(this.tooltipElement, 'color', 'white');
|
|
51
|
+
this.renderer.setStyle(this.tooltipElement, 'max-height', '30vh');
|
|
52
|
+
this.renderer.setStyle(this.tooltipElement, 'overflow', 'scroll');
|
|
53
|
+
this.renderer.appendChild(document.body, this.tooltipElement);
|
|
54
|
+
const left = window.scrollX + rect.left - (this.tooltipElement.clientWidth / 2) + 18;
|
|
55
|
+
this.renderer.setStyle(this.tooltipElement, 'left', `${left}px`);
|
|
56
|
+
const top = window.scrollY + rect.top - this.tooltipElement.clientHeight - 5;
|
|
57
|
+
this.renderer.setStyle(this.tooltipElement, 'top', `${top}px`);
|
|
58
|
+
this.isTooltipVisible = true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
registerCloseListeners() {
|
|
62
|
+
setTimeout(() => {
|
|
63
|
+
this.closeListeners.push(this.getCloseListener('click'), this.getCloseListener('touchmove'), this.getCloseListener('resize'));
|
|
64
|
+
}, 100);
|
|
65
|
+
}
|
|
66
|
+
getCloseListener(event) {
|
|
67
|
+
return this.renderer.listen('document', event, () => {
|
|
68
|
+
this.hideTooltip();
|
|
69
|
+
this.removeCloseListeners();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
hideTooltip() {
|
|
73
|
+
if (this.tooltipElement) {
|
|
74
|
+
this.renderer.removeChild(this.el.nativeElement, this.tooltipElement);
|
|
75
|
+
this.tooltipElement = undefined;
|
|
76
|
+
this.isTooltipVisible = false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
removeCloseListeners() {
|
|
80
|
+
for (const listener of this.closeListeners) {
|
|
81
|
+
listener();
|
|
82
|
+
}
|
|
83
|
+
this.closeListeners = [];
|
|
84
|
+
}
|
|
85
|
+
ngOnDestroy() {
|
|
86
|
+
this.removeCloseListeners();
|
|
87
|
+
}
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
89
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, host: { listeners: { "mouseenter": "onMouseEnter()", "click": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "onMouseLeave()" } }, ngImport: i0 });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
92
|
+
type: Directive,
|
|
93
|
+
args: [{
|
|
94
|
+
selector: '[tooltip]',
|
|
95
|
+
standalone: true
|
|
96
|
+
}]
|
|
97
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { tooltip: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], onMouseEnter: [{
|
|
100
|
+
type: HostListener,
|
|
101
|
+
args: ['mouseenter']
|
|
102
|
+
}, {
|
|
103
|
+
type: HostListener,
|
|
104
|
+
args: ['click']
|
|
105
|
+
}], onMouseLeave: [{
|
|
106
|
+
type: HostListener,
|
|
107
|
+
args: ['mouseleave']
|
|
108
|
+
}, {
|
|
109
|
+
type: HostListener,
|
|
110
|
+
args: ['window:resize']
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9kaXJlY3RpdmVzL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9qRzs7R0FFRztBQUtILE1BQU0sT0FBTyxnQkFBZ0I7SUFlSjtJQUNBO0lBZHJCOztPQUVHO0lBRUgsT0FBTyxDQUFVO0lBRVQsY0FBYyxDQUFlO0lBRTdCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUVsQyxjQUFjLEdBQWUsRUFBRSxDQUFDO0lBRXhDLFlBQ3FCLEVBQWMsRUFDZCxRQUFtQjtRQURuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNyQyxDQUFDO0lBRUo7O09BRUc7SUFHSCxZQUFZO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7YUFDSTtZQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUdILFlBQVk7UUFDUixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBZ0IsQ0FBQztZQUN4RSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFhLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBNkIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBRXJGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5RCxNQUFNLElBQUksR0FBVyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sR0FBRyxHQUFXLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FDbEMsQ0FBQztRQUNOLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxRQUFRLEVBQUUsQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQXRHUSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3lIQU9HLE9BQU87c0JBRE4sS0FBSztnQkFtQk4sWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFlBQVk7O3NCQUN6QixZQUFZO3VCQUFDLE9BQU87Z0JBaUJyQixZQUFZO3NCQUZYLFlBQVk7dUJBQUMsWUFBWTs7c0JBQ3pCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhIGdsb2JhbCBsaXN0ZW5lci4gSXMgYSBmdW5jdGlvbiB0aGF0IHNpbXBseSB1bnN1YnNjcmliZXMgdGhlIGxpc3RlbmVyLlxuICovXG50eXBlIExpc3RlbmVyID0gKCkgPT4gdm9pZDtcblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0aGF0IGRpc3BsYXlzIGEgdG9vbHRpcCBvbiBob3Zlci5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdG9vbHRpcF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29udGVudCB0byBkaXNwbGF5IGluc2lkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRvb2x0aXAhOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHRvb2x0aXBFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcml2YXRlIGlzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgY2xvc2VMaXN0ZW5lcnM6IExpc3RlbmVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNUb29sdGlwVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcCgpO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckNsb3NlTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNsb3NlTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlcyB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVDbG9zZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1Rvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50LmlubmVySFRNTCA9IHRoaXMudG9vbHRpcDtcbiAgICAgICAgICAgIGNvbnN0IHJlY3Q6IERPTVJlY3QgPSAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnei1pbmRleCcsICcxMDAwJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAncGFkZGluZycsICc0cHggOHB4IDRweCA4cHgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2JvcmRlci1yYWRpdXMnLCAnNXB4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgJyM2MTYxNjEnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2NvbG9yJywgJ3doaXRlJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdtYXgtaGVpZ2h0JywgJzMwdmgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ292ZXJmbG93JywgJ3Njcm9sbCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXBFbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQ6IG51bWJlciA9IHdpbmRvdy5zY3JvbGxYICsgcmVjdC5sZWZ0IC0gKHRoaXMudG9vbHRpcEVsZW1lbnQuY2xpZW50V2lkdGggLyAyKSArIDE4O1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICAgICAgICAgIGNvbnN0IHRvcDogbnVtYmVyID0gd2luZG93LnNjcm9sbFkgKyByZWN0LnRvcCAtIHRoaXMudG9vbHRpcEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gNTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICAgICAgdGhpcy5pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJDbG9zZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDbG9zZUxpc3RlbmVyKCdjbGljaycpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2xvc2VMaXN0ZW5lcigndG91Y2htb3ZlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDbG9zZUxpc3RlbmVyKCdyZXNpemUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENsb3NlTGlzdGVuZXIoZXZlbnQ6IHN0cmluZyk6IExpc3RlbmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsIGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNsb3NlTGlzdGVuZXJzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy50b29sdGlwRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5pc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUNsb3NlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIHRoaXMuY2xvc2VMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZUxpc3RlbmVycyA9IFtdO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUNsb3NlTGlzdGVuZXJzKCk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const NGX_GET_VALIDATION_ERROR_MESSAGE = new InjectionToken('Provider for the default getValidationErrorMessage.', {
|
|
3
|
+
providedIn: 'root',
|
|
4
|
+
factory: () => getValidationErrorMessage
|
|
5
|
+
});
|
|
6
|
+
/**
|
|
7
|
+
* Generates a default error message for most validation errors.
|
|
8
|
+
*
|
|
9
|
+
* @param model - The ngModel to get the error from.
|
|
10
|
+
* @returns The Validation Error Message to display.
|
|
11
|
+
*/
|
|
12
|
+
function getValidationErrorMessage(model) {
|
|
13
|
+
if (model.hasError('matDatepickerParse')) {
|
|
14
|
+
return 'not a valid date';
|
|
15
|
+
}
|
|
16
|
+
else if (model.hasError('email')) {
|
|
17
|
+
return 'not a valid email';
|
|
18
|
+
}
|
|
19
|
+
else if (model.hasError('minlength')) {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
21
|
+
return `needs to be at least ${model.getError('minlength').requiredLength} characters long`;
|
|
22
|
+
}
|
|
23
|
+
else if (model.hasError('maxlength')) {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
25
|
+
return `needs to be at most ${model.getError('maxlength').requiredLength} characters long`;
|
|
26
|
+
}
|
|
27
|
+
else if (model.hasError('min')) {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
29
|
+
return `needs to be equal or bigger than ${model.getError('min').min}`;
|
|
30
|
+
}
|
|
31
|
+
else if (model.hasError('max')) {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
33
|
+
return `needs to be equal or smaller than ${model.getError('max').max}`;
|
|
34
|
+
}
|
|
35
|
+
else if (model.hasError('passwordMatch')) {
|
|
36
|
+
return 'Passwords need to match!';
|
|
37
|
+
}
|
|
38
|
+
else if (model.hasError('required')) {
|
|
39
|
+
return 'required';
|
|
40
|
+
}
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
42
|
+
else if (model.hasError('pattern') && model.getError('pattern').requiredPattern === '^true$') {
|
|
43
|
+
return 'needs to be selected';
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return 'invalid input';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbGlkYXRpb24tZXJyb3ItbWVzc2FnZS5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQWlDLElBQUksY0FBYyxDQUM1RixxREFBcUQsRUFDckQ7SUFDSSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCO0NBQzNDLENBQ0osQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBQyxLQUFjO0lBQzdDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sa0JBQWtCLENBQUM7S0FDN0I7U0FDSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUIsT0FBTyxtQkFBbUIsQ0FBQztLQUM5QjtTQUNJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNsQyxzRUFBc0U7UUFDdEUsT0FBTyx3QkFBd0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDO0tBQy9GO1NBQ0ksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ2xDLHNFQUFzRTtRQUN0RSxPQUFPLHVCQUF1QixLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsa0JBQWtCLENBQUM7S0FDOUY7U0FDSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsc0VBQXNFO1FBQ3RFLE9BQU8sb0NBQW9DLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDMUU7U0FDSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsc0VBQXNFO1FBQ3RFLE9BQU8scUNBQXFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDM0U7U0FDSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDdEMsT0FBTywwQkFBMEIsQ0FBQztLQUNyQztTQUNJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUNqQyxPQUFPLFVBQVUsQ0FBQztLQUNyQjtJQUNELHNFQUFzRTtTQUNqRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFO1FBQzFGLE9BQU8sc0JBQXNCLENBQUM7S0FDakM7U0FDSTtRQUNELE9BQU8sZUFBZSxDQUFDO0tBQzFCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgTkdYX0dFVF9WQUxJREFUSU9OX0VSUk9SX01FU1NBR0U6IEluamVjdGlvblRva2VuPCgpID0+IHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgJ1Byb3ZpZGVyIGZvciB0aGUgZGVmYXVsdCBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlLicsXG4gICAge1xuICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcbiAgICB9XG4pO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBmb3IgbW9zdCB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gbW9kZWwgLSBUaGUgbmdNb2RlbCB0byBnZXQgdGhlIGVycm9yIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgVmFsaWRhdGlvbiBFcnJvciBNZXNzYWdlIHRvIGRpc3BsYXkuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWw6IE5nTW9kZWwpOiBzdHJpbmcge1xuICAgIGlmIChtb2RlbC5oYXNFcnJvcignbWF0RGF0ZXBpY2tlclBhcnNlJykpIHtcbiAgICAgICAgcmV0dXJuICdub3QgYSB2YWxpZCBkYXRlJztcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kZWwuaGFzRXJyb3IoJ2VtYWlsJykpIHtcbiAgICAgICAgcmV0dXJuICdub3QgYSB2YWxpZCBlbWFpbCc7XG4gICAgfVxuICAgIGVsc2UgaWYgKG1vZGVsLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIHJldHVybiBgbmVlZHMgdG8gYmUgYXQgbGVhc3QgJHttb2RlbC5nZXRFcnJvcignbWlubGVuZ3RoJykucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnMgbG9uZ2A7XG4gICAgfVxuICAgIGVsc2UgaWYgKG1vZGVsLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIHJldHVybiBgbmVlZHMgdG8gYmUgYXQgbW9zdCAke21vZGVsLmdldEVycm9yKCdtYXhsZW5ndGgnKS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBsb25nYDtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kZWwuaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgcmV0dXJuIGBuZWVkcyB0byBiZSBlcXVhbCBvciBiaWdnZXIgdGhhbiAke21vZGVsLmdldEVycm9yKCdtaW4nKS5taW59YDtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kZWwuaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgcmV0dXJuIGBuZWVkcyB0byBiZSBlcXVhbCBvciBzbWFsbGVyIHRoYW4gJHttb2RlbC5nZXRFcnJvcignbWF4JykubWF4fWA7XG4gICAgfVxuICAgIGVsc2UgaWYgKG1vZGVsLmhhc0Vycm9yKCdwYXNzd29yZE1hdGNoJykpIHtcbiAgICAgICAgcmV0dXJuICdQYXNzd29yZHMgbmVlZCB0byBtYXRjaCEnO1xuICAgIH1cbiAgICBlbHNlIGlmIChtb2RlbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICByZXR1cm4gJ3JlcXVpcmVkJztcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgIGVsc2UgaWYgKG1vZGVsLmhhc0Vycm9yKCdwYXR0ZXJuJykgJiYgbW9kZWwuZ2V0RXJyb3IoJ3BhdHRlcm4nKS5yZXF1aXJlZFBhdHRlcm4gPT09ICdedHJ1ZSQnKSB7XG4gICAgICAgIHJldHVybiAnbmVlZHMgdG8gYmUgc2VsZWN0ZWQnO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdpbnZhbGlkIGlucHV0JztcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
|
2
|
+
export const NGX_VALIDATION_ERRORS_TOOLTIP_TITLE = new InjectionToken('Provider for the validation errors tooltip title.', {
|
|
3
|
+
providedIn: 'root',
|
|
4
|
+
factory: () => 'Validation Errors:'
|
|
5
|
+
});
|
|
6
|
+
/**
|
|
7
|
+
* The default function that gets the validation errors tooltip content.
|
|
8
|
+
*
|
|
9
|
+
* @param validationErrors - All validation errors for which the tooltip content should be generated.
|
|
10
|
+
* @returns A html string, containing a list of the name of each invalid property.
|
|
11
|
+
*/
|
|
12
|
+
export function getValidationErrorsTooltipContent(validationErrors) {
|
|
13
|
+
const title = inject(NGX_VALIDATION_ERRORS_TOOLTIP_TITLE);
|
|
14
|
+
let res = `
|
|
15
|
+
${title}
|
|
16
|
+
<br>
|
|
17
|
+
<ul style="margin-bottom: 0px; padding-left: 16px;">
|
|
18
|
+
`;
|
|
19
|
+
for (const error of validationErrors) {
|
|
20
|
+
res = res.concat(`<li>${error.property}</li>`);
|
|
21
|
+
}
|
|
22
|
+
res = res.concat('</ul>');
|
|
23
|
+
return res;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbGlkYXRpb24tZXJyb3JzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvcnMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUEyQixJQUFJLGNBQWMsQ0FDekYsbURBQW1ELEVBQ25EO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQjtDQUN0QyxDQUNKLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxnQkFBbUM7SUFDakYsTUFBTSxLQUFLLEdBQVcsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDbEUsSUFBSSxHQUFHLEdBQVc7VUFDWixLQUFLOzs7S0FHVixDQUFDO0lBQ0YsS0FBSyxNQUFNLEtBQUssSUFBSSxnQkFBZ0IsRUFBRTtRQUNsQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDO0tBQ2xEO0lBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3ZhbGlkYXRpb24udXRpbGl0aWVzJztcblxuZXhwb3J0IGNvbnN0IE5HWF9WQUxJREFUSU9OX0VSUk9SU19UT09MVElQX1RJVExFOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAgICdQcm92aWRlciBmb3IgdGhlIHZhbGlkYXRpb24gZXJyb3JzIHRvb2x0aXAgdGl0bGUuJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gJ1ZhbGlkYXRpb24gRXJyb3JzOidcbiAgICB9XG4pO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRoYXQgZ2V0cyB0aGUgdmFsaWRhdGlvbiBlcnJvcnMgdG9vbHRpcCBjb250ZW50LlxuICpcbiAqIEBwYXJhbSB2YWxpZGF0aW9uRXJyb3JzIC0gQWxsIHZhbGlkYXRpb24gZXJyb3JzIGZvciB3aGljaCB0aGUgdG9vbHRpcCBjb250ZW50IHNob3VsZCBiZSBnZW5lcmF0ZWQuXG4gKiBAcmV0dXJucyBBIGh0bWwgc3RyaW5nLCBjb250YWluaW5nIGEgbGlzdCBvZiB0aGUgbmFtZSBvZiBlYWNoIGludmFsaWQgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQodmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSBpbmplY3QoTkdYX1ZBTElEQVRJT05fRVJST1JTX1RPT0xUSVBfVElUTEUpO1xuICAgIGxldCByZXM6IHN0cmluZyA9IGBcbiAgICAgICAgJHt0aXRsZX1cbiAgICAgICAgPGJyPlxuICAgICAgICA8dWwgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMTZweDtcIj5cbiAgICBgO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgdmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICByZXMgPSByZXMuY29uY2F0KGA8bGk+JHtlcnJvci5wcm9wZXJ0eX08L2xpPmApO1xuICAgIH1cbiAgICByZXMgPSByZXMuY29uY2F0KCc8L3VsPicpO1xuICAgIHJldHVybiByZXM7XG59Il19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -8,7 +8,6 @@ export * from './components/confirm-dialog/confirm-dialog-data';
|
|
|
8
8
|
export * from './components/confirm-dialog/confirm-dialog.component';
|
|
9
9
|
export * from './components/edit-page/edit-data.route';
|
|
10
10
|
export * from './components/edit-page/edit-page.component';
|
|
11
|
-
export * from './components/get-validation-error-message.function';
|
|
12
11
|
export * from './components/input/base-input.component';
|
|
13
12
|
export * from './components/input/input.component';
|
|
14
13
|
export * from './components/input/input.module';
|
|
@@ -20,6 +19,7 @@ export * from './components/table/edit-dialog/edit-entity-data';
|
|
|
20
19
|
export * from './components/table/edit-dialog/edit-entity-dialog.component';
|
|
21
20
|
export * from './components/table/table-data';
|
|
22
21
|
export * from './components/table/table.component';
|
|
22
|
+
export * from './components/tooltip/tooltip.component';
|
|
23
23
|
// decorators
|
|
24
24
|
export * from './decorators/array/array-decorator.data';
|
|
25
25
|
export * from './decorators/array/array.decorator';
|
|
@@ -45,6 +45,9 @@ export * from './decorators/references-one/references-one-decorator.data';
|
|
|
45
45
|
export * from './decorators/references-one/references-one.decorator';
|
|
46
46
|
export * from './decorators/string/string-decorator.data';
|
|
47
47
|
export * from './decorators/string/string.decorator';
|
|
48
|
+
// functions
|
|
49
|
+
export * from './functions/get-validation-error-message.function';
|
|
50
|
+
export * from './functions/get-validation-errors-tooltip-content.function.ts';
|
|
48
51
|
// services
|
|
49
52
|
export * from './services/entity.service';
|
|
50
53
|
export * from './services/unsaved-changes.guard';
|
|
@@ -52,4 +55,5 @@ export * from './services/unsaved-changes.guard';
|
|
|
52
55
|
export * from './utilities/date.utilities';
|
|
53
56
|
export * from './utilities/entity.utilities';
|
|
54
57
|
export * from './utilities/file.utilities';
|
|
55
|
-
|
|
58
|
+
export * from './utilities/validation.utilities';
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxVQUFVO0FBQ1YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxhQUFhO0FBQ2IsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxhQUFhO0FBQ2IsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsWUFBWTtBQUNaLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxXQUFXO0FBQ1gsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELFdBQVc7QUFDWCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LW1hdGVyaWFsLWVudGl0eS5cbiAqL1xuXG4vLyBjbGFzc2VzXG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtcGFnZS9lZGl0LWRhdGEucm91dGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtcGFnZS9lZGl0LXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC9pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NyZWF0ZS1kaWFsb2cvY3JlYXRlLWVudGl0eS1kaWFsb2ctZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY3JlYXRlLWRpYWxvZy9jcmVhdGUtZW50aXR5LWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2RlZmF1bHQuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvZGlzcGxheS1jb2x1bW4tdmFsdWUvYmFzZS1kaXNwbGF5LWNvbHVtbi12YWx1ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2VkaXQtZGlhbG9nL2VkaXQtZW50aXR5LWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2VkaXQtZGlhbG9nL2VkaXQtZW50aXR5LWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG4vLyBkZWNvcmF0b3JzXG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYXJyYXkvYXJyYXktZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2FycmF5L2FycmF5LmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYmFzZS9kcm9wZG93bi12YWx1ZS5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgQ29sLCBQb3NpdGlvbiB9IGZyb20gJy4vZGVjb3JhdG9ycy9iYXNlL3Byb3BlcnR5LWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9ib29sZWFuL2Jvb2xlYW4tZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2Jvb2xlYW4vYm9vbGVhbi5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2N1c3RvbS9jdXN0b20tZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2N1c3RvbS9jdXN0b20uZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9kYXRlL2RhdGUtZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2RhdGUvZGF0ZS5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2ZpbGUvZmlsZS1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvZmlsZS9maWxlLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvaGFzLW1hbnkvaGFzLW1hbnktZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2hhcy1tYW55L2hhcy1tYW55LmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvbnVtYmVyL251bWJlci1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvbnVtYmVyL251bWJlci5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL29iamVjdC9vYmplY3QtZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL29iamVjdC9vYmplY3QuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9yZWZlcmVuY2VzLW1hbnkvcmVmZXJlbmNlcy1tYW55LWRlY29yYXRvci5kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9yZWZlcmVuY2VzLW1hbnkvcmVmZXJlbmNlcy1tYW55LmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvcmVmZXJlbmNlcy1vbmUvcmVmZXJlbmNlcy1vbmUtZGVjb3JhdG9yLmRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL3JlZmVyZW5jZXMtb25lL3JlZmVyZW5jZXMtb25lLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvc3RyaW5nL3N0cmluZy1kZWNvcmF0b3IuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvc3RyaW5nL3N0cmluZy5kZWNvcmF0b3InO1xuLy8gZnVuY3Rpb25zXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLmZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb25zL2dldC12YWxpZGF0aW9uLWVycm9ycy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24udHMnO1xuLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy91bnNhdmVkLWNoYW5nZXMuZ3VhcmQnO1xuLy91dGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzL2RhdGUudXRpbGl0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzL2VudGl0eS51dGlsaXRpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXRpZXMvZmlsZS51dGlsaXRpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXRpZXMvdmFsaWRhdGlvbi51dGlsaXRpZXMnOyJdfQ==
|