@cauca-911/material 18.0.0 → 18.0.1-beta2
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/buttons/base-button.mjs +33 -0
- package/esm2022/lib/buttons/basic-button/basic-button.component.mjs +64 -0
- package/esm2022/lib/buttons/flat-button/flat-button.component.mjs +64 -0
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +28 -0
- package/esm2022/lib/buttons/menu-item/menu-item.component.mjs +68 -0
- package/esm2022/lib/buttons/raised-button/raised-button.component.mjs +64 -0
- package/esm2022/lib/buttons/stroked-button/stroked-button.component.mjs +71 -0
- package/esm2022/lib/cauca-material.component.mjs +6 -5
- package/esm2022/lib/cauca-material.module.mjs +14 -52
- package/esm2022/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.mjs +14 -10
- package/esm2022/lib/cauca-menu-vertical/cauca-menu-vertical.component.mjs +16 -8
- package/esm2022/lib/cauca-simple-dialog/cauca-simple-dialog.component.mjs +14 -10
- package/esm2022/lib/cauca-slideshow/cauca-slideshow.component.mjs +6 -6
- package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +57 -0
- package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +69 -0
- package/esm2022/lib/dialogs/services/dialog.service.mjs +52 -0
- package/esm2022/lib/inputs/cauca-date-time-picker/cauca-date-time-picker.component.mjs +137 -0
- package/esm2022/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.mjs +2 -2
- package/esm2022/lib/inputs/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +358 -0
- package/esm2022/lib/inputs/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +74 -0
- package/esm2022/lib/inputs/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +2 -0
- package/esm2022/lib/inputs/cauca-input-file/cauca-input-file.component.mjs +147 -0
- package/esm2022/lib/inputs/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +99 -0
- package/esm2022/lib/inputs/password/models/password-validation.mjs +13 -0
- package/esm2022/lib/inputs/password/password-criteria/password-criteria.component.mjs +49 -0
- package/esm2022/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.mjs +29 -0
- package/esm2022/lib/inputs/password/password-input/password-input.component.mjs +112 -0
- package/esm2022/lib/inputs/password/password-selection/password-selection.component.mjs +112 -0
- package/esm2022/lib/inputs/password/validators/password-validator.mjs +19 -0
- package/esm2022/lib/inputs/select-with-search/select-with-search.component.mjs +157 -0
- package/esm2022/lib/layout/expandable-panel/expandable-panel.component.mjs +75 -0
- package/esm2022/lib/layout/menu-expandable-panel/menu-expandable-panel.component.mjs +148 -0
- package/esm2022/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.mjs +50 -0
- package/esm2022/lib/layout/page-title/page-title.component.mjs +86 -0
- package/esm2022/lib/notifications/snack-bar/snack-bar.component.mjs +75 -0
- package/esm2022/public-api.mjs +21 -4
- package/fesm2022/cauca-911-material.mjs +1988 -648
- package/fesm2022/cauca-911-material.mjs.map +1 -1
- package/lib/buttons/base-button.d.ts +21 -0
- package/lib/buttons/basic-button/basic-button.component.d.ts +6 -0
- package/lib/buttons/flat-button/flat-button.component.d.ts +6 -0
- package/lib/buttons/icon-button/icon-button.component.d.ts +6 -0
- package/lib/buttons/menu-item/menu-item.component.d.ts +9 -0
- package/lib/buttons/raised-button/raised-button.component.d.ts +6 -0
- package/lib/buttons/stroked-button/stroked-button.component.d.ts +6 -0
- package/lib/cauca-material.component.d.ts +1 -1
- package/lib/cauca-material.module.d.ts +4 -14
- package/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.d.ts +1 -1
- package/lib/cauca-menu-vertical/cauca-menu-vertical.component.d.ts +1 -1
- package/lib/cauca-simple-dialog/cauca-simple-dialog.component.d.ts +1 -1
- package/lib/cauca-slideshow/cauca-slideshow.component.d.ts +1 -1
- package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +18 -0
- package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +17 -0
- package/lib/dialogs/services/dialog.service.d.ts +26 -0
- package/lib/{cauca-input-file → inputs/cauca-input-file}/cauca-input-file.component.d.ts +1 -1
- package/lib/{cauca-input-multiple-langue → inputs/cauca-input-multiple-langue}/cauca-input-multiple-langue.component.d.ts +1 -1
- package/lib/inputs/password/models/password-validation.d.ts +9 -0
- package/lib/inputs/password/password-criteria/password-criteria.component.d.ts +9 -0
- package/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.d.ts +9 -0
- package/lib/inputs/password/password-input/password-input.component.d.ts +25 -0
- package/lib/inputs/password/password-selection/password-selection.component.d.ts +20 -0
- package/lib/inputs/password/validators/password-validator.d.ts +9 -0
- package/lib/inputs/select-with-search/select-with-search.component.d.ts +32 -0
- package/lib/layout/expandable-panel/expandable-panel.component.d.ts +10 -0
- package/lib/layout/menu-expandable-panel/menu-expandable-panel.component.d.ts +29 -0
- package/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.d.ts +13 -0
- package/lib/layout/page-title/page-title.component.d.ts +11 -0
- package/lib/notifications/snack-bar/snack-bar.component.d.ts +17 -0
- package/package.json +3 -2
- package/public-api.d.ts +20 -3
- package/esm2022/lib/cauca-date-time-picker/cauca-date-time-picker.component.mjs +0 -137
- package/esm2022/lib/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +0 -357
- package/esm2022/lib/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +0 -74
- package/esm2022/lib/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +0 -2
- package/esm2022/lib/cauca-input-file/cauca-input-file.component.mjs +0 -148
- package/esm2022/lib/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +0 -87
- /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/cauca-date-time-picker.component.d.ts +0 -0
- /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.d.ts +0 -0
- /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/dialog-date-time-picker/dialog-date-time-picker.component.d.ts +0 -0
- /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/components/mobile-time-picker/mobile-time-picker.component.d.ts +0 -0
- /package/lib/{cauca-date-time-picker → inputs/cauca-date-time-picker}/models/dialog-date-time-picker-data.d.ts +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Component, forwardRef, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
3
|
+
import { PasswordCriteriaViewerComponent } from '../password-criteria-viewer/password-criteria-viewer.component';
|
|
4
|
+
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
5
|
+
import { filter } from 'rxjs';
|
|
6
|
+
import { PasswordInputComponent } from '../password-input/password-input.component';
|
|
7
|
+
import { PasswordValidation } from '../models/password-validation';
|
|
8
|
+
import { PasswordValidator } from '../validators/password-validator';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
const _c0 = ["*"];
|
|
12
|
+
export class PasswordSelectionComponent {
|
|
13
|
+
constructor(formBuilder) {
|
|
14
|
+
this.passwordValidation = new PasswordValidation();
|
|
15
|
+
this.disabled = false;
|
|
16
|
+
this.direction = 'row';
|
|
17
|
+
this.formWidth = '50%';
|
|
18
|
+
this.lastPasswordValidationSent = false;
|
|
19
|
+
this.onChange = (value) => value;
|
|
20
|
+
this.onTouched = () => { };
|
|
21
|
+
this.form = formBuilder.group({
|
|
22
|
+
password: ['', Validators.required],
|
|
23
|
+
confirmation: ['', Validators.required]
|
|
24
|
+
}, { validators: (formGroup) => {
|
|
25
|
+
this.passwordValidation = PasswordValidator.validate(formGroup);
|
|
26
|
+
if (!this.passwordValidation.isValid()) {
|
|
27
|
+
return ({ validation: this.passwordValidation });
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
} });
|
|
31
|
+
this.form.valueChanges.pipe(filter(_ => this.form.valid != this.lastPasswordValidationSent)).subscribe(form => {
|
|
32
|
+
this.lastPasswordValidationSent = this.form.valid;
|
|
33
|
+
if (this.form.valid) {
|
|
34
|
+
this.onChange(form.password);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.onChange('');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
writeValue(value) {
|
|
42
|
+
this.form.get('password').setValue(value);
|
|
43
|
+
this.form.get('confirmation').setValue(value);
|
|
44
|
+
}
|
|
45
|
+
registerOnChange(fn) {
|
|
46
|
+
this.onChange = fn;
|
|
47
|
+
}
|
|
48
|
+
registerOnTouched(fn) {
|
|
49
|
+
this.onTouched = fn;
|
|
50
|
+
}
|
|
51
|
+
setDisabledState(isDisabled) {
|
|
52
|
+
this.disabled = isDisabled;
|
|
53
|
+
if (isDisabled) {
|
|
54
|
+
this.form.get('password').disable();
|
|
55
|
+
this.form.get('confirmation').disable();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.form.get('password').enable();
|
|
59
|
+
this.form.get('confirmation').enable();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = function PasswordSelectionComponent_Factory(t) { return new (t || PasswordSelectionComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder)); }; }
|
|
63
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PasswordSelectionComponent, selectors: [["app-password-selection"]], hostVars: 4, hostBindings: function PasswordSelectionComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
64
|
+
i0.ɵɵstyleProp("flex-direction", ctx.direction)("form", ctx.formWidth, "width");
|
|
65
|
+
} }, inputs: { direction: "direction", formWidth: "formWidth" }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
66
|
+
{
|
|
67
|
+
provide: NG_VALUE_ACCESSOR,
|
|
68
|
+
multi: true,
|
|
69
|
+
useExisting: forwardRef(() => PasswordSelectionComponent),
|
|
70
|
+
},
|
|
71
|
+
]), i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 7, vars: 9, consts: [[3, "formGroup"], [1, "passwords"], ["autocomplete", "new-password", "label", "password", "formControlName", "password", 3, "translateLabel", "required"], ["autocomplete", "new-password", "label", "passwordConfirmation", "formControlName", "confirmation", 3, "translateLabel", "required"], [1, "errors"], [3, "disabled", "passwordValidation"]], template: function PasswordSelectionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵprojectionDef();
|
|
73
|
+
i0.ɵɵelementStart(0, "form", 0)(1, "div", 1);
|
|
74
|
+
i0.ɵɵelement(2, "app-password-input", 2)(3, "app-password-input", 3);
|
|
75
|
+
i0.ɵɵelementEnd();
|
|
76
|
+
i0.ɵɵelementStart(4, "div", 4);
|
|
77
|
+
i0.ɵɵprojection(5);
|
|
78
|
+
i0.ɵɵelementEnd()();
|
|
79
|
+
i0.ɵɵelement(6, "app-password-criteria-viewer", 5);
|
|
80
|
+
} if (rf & 2) {
|
|
81
|
+
i0.ɵɵclassProp("full-width-form", ctx.direction === "column");
|
|
82
|
+
i0.ɵɵproperty("formGroup", ctx.form);
|
|
83
|
+
i0.ɵɵadvance(2);
|
|
84
|
+
i0.ɵɵproperty("translateLabel", true)("required", true);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵproperty("translateLabel", true)("required", true);
|
|
87
|
+
i0.ɵɵadvance(3);
|
|
88
|
+
i0.ɵɵproperty("disabled", ctx.disabled)("passwordValidation", ctx.passwordValidation);
|
|
89
|
+
} }, dependencies: [PasswordInputComponent, FormsModule, i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.RequiredValidator, ReactiveFormsModule, i1.FormGroupDirective, i1.FormControlName, TranslateModule, PasswordCriteriaViewerComponent], styles: ["[_nghost-%COMP%]{display:flex;gap:20px}form[_ngcontent-%COMP%]{width:50%;display:flex;flex-direction:column}.full-width-form[_ngcontent-%COMP%]{width:100%}.passwords[_ngcontent-%COMP%]{gap:16px;display:flex;flex-direction:column}.criteria[_ngcontent-%COMP%]{flex-grow:1}.disabled[_ngcontent-%COMP%]{opacity:.5}.errors[_ngcontent-%COMP%]{padding:0 16px}"] }); }
|
|
90
|
+
}
|
|
91
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PasswordSelectionComponent, [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'app-password-selection', standalone: true, imports: [PasswordInputComponent, FormsModule, ReactiveFormsModule, TranslateModule, PasswordCriteriaViewerComponent], providers: [
|
|
94
|
+
{
|
|
95
|
+
provide: NG_VALUE_ACCESSOR,
|
|
96
|
+
multi: true,
|
|
97
|
+
useExisting: forwardRef(() => PasswordSelectionComponent),
|
|
98
|
+
},
|
|
99
|
+
], template: "<form [formGroup]=\"form\" [class.full-width-form]=\"direction === 'column'\">\r\n <div class=\"passwords\">\r\n <app-password-input autocomplete=\"new-password\" label=\"password\" [translateLabel]=\"true\" [required]=\"true\" formControlName=\"password\" />\r\n <app-password-input autocomplete=\"new-password\" label=\"passwordConfirmation\" [translateLabel]=\"true\" [required]=\"true\" formControlName=\"confirmation\" />\r\n </div>\r\n <div class=\"errors\">\r\n <ng-content></ng-content>\r\n </div>\r\n</form>\r\n<app-password-criteria-viewer [disabled]=\"disabled\" [passwordValidation]=\"passwordValidation\"></app-password-criteria-viewer>", styles: [":host{display:flex;gap:20px}form{width:50%;display:flex;flex-direction:column}.full-width-form{width:100%}.passwords{gap:16px;display:flex;flex-direction:column}.criteria{flex-grow:1}.disabled{opacity:.5}.errors{padding:0 16px}\n"] }]
|
|
100
|
+
}], () => [{ type: i1.UntypedFormBuilder }], { direction: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}, {
|
|
103
|
+
type: HostBinding,
|
|
104
|
+
args: ['style.flex-direction']
|
|
105
|
+
}], formWidth: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}, {
|
|
108
|
+
type: HostBinding,
|
|
109
|
+
args: ['style.form.width']
|
|
110
|
+
}] }); })();
|
|
111
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PasswordSelectionComponent, { className: "PasswordSelectionComponent", filePath: "lib\\inputs\\password\\password-selection\\password-selection.component.ts", lineNumber: 24 }); })();
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvaW5wdXRzL3Bhc3N3b3JkL3Bhc3N3b3JkLXNlbGVjdGlvbi9wYXNzd29yZC1zZWxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQvcGFzc3dvcmQtc2VsZWN0aW9uL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0ssT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWdCckUsTUFBTSxPQUFPLDBCQUEwQjtJQVVyQyxZQUFtQixXQUErQjtRQVIzQyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFb0IsY0FBUyxHQUFtQixLQUFLLENBQUM7UUFDdEMsY0FBUyxHQUFXLEtBQUssQ0FBQztRQUVuRSwrQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFnRHBDLGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBRTVDLGNBQVMsR0FBRyxHQUFTLEVBQUUsR0FBc0MsQ0FBQyxDQUFDO1FBL0NwRSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDeEMsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFNBQTJCLEVBQTJCLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztvQkFDdkMsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBQyxDQUFDLENBQUM7Z0JBQ2xELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVHLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQzsyRkF0RFUsMEJBQTBCO29FQUExQiwwQkFBMEI7WUFBMUIsK0NBQTBCLGdDQUFBOzRIQVIxQjtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixLQUFLLEVBQUUsSUFBSTtvQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUMxRDthQUNGOztZQ3BCQyxBQURKLCtCQUEwRSxhQUMvQztZQUVuQixBQURBLHdDQUF3SSw0QkFDZ0I7WUFDNUosaUJBQU07WUFDTiw4QkFBb0I7WUFDaEIsa0JBQXlCO1lBRWpDLEFBREksaUJBQU0sRUFDSDtZQUNQLGtEQUE2SDs7WUFUcEcsNkRBQWdEO1lBQW5FLG9DQUFrQjtZQUVpRCxlQUF1QjtZQUFDLEFBQXhCLHFDQUF1QixrQkFBa0I7WUFDN0IsY0FBdUI7WUFBQyxBQUF4QixxQ0FBdUIsa0JBQWtCO1lBTWhHLGVBQXFCO1lBQUMsQUFBdEIsdUNBQXFCLDhDQUEwQzs0QkRHakYsc0JBQXNCLEVBQUUsV0FBVyx1RkFBRSxtQkFBbUIsNkNBQUUsZUFBZSxFQUFFLCtCQUErQjs7aUZBV3pHLDBCQUEwQjtjQWR0QyxTQUFTOzJCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDLGFBRzFHO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3FCQUMxRDtpQkFDRjttREFPb0QsU0FBUztrQkFBN0QsS0FBSzs7a0JBQUksV0FBVzttQkFBQyxzQkFBc0I7WUFDSyxTQUFTO2tCQUF6RCxLQUFLOztrQkFBSSxXQUFXO21CQUFDLGtCQUFrQjs7a0ZBTjdCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXNzd29yZENyaXRlcmlhVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFzc3dvcmQtY3JpdGVyaWEtdmlld2VyL3Bhc3N3b3JkLWNyaXRlcmlhLXZpZXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYXNzd29yZElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFzc3dvcmRWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Bhc3N3b3JkLXZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBQYXNzd29yZFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvcnMvcGFzc3dvcmQtdmFsaWRhdG9yJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBhc3N3b3JkLXNlbGVjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUGFzc3dvcmRJbnB1dENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgUGFzc3dvcmRDcml0ZXJpYVZpZXdlckNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFzc3dvcmRTZWxlY3Rpb25Db21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIHBhc3N3b3JkVmFsaWRhdGlvbjogUGFzc3dvcmRWYWxpZGF0aW9uID0gbmV3IFBhc3N3b3JkVmFsaWRhdGlvbigpO1xyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJykgcHVibGljIGRpcmVjdGlvbjogJ3Jvdyd8J2NvbHVtbicgPSAncm93JztcclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmZvcm0ud2lkdGgnKSBwdWJsaWMgZm9ybVdpZHRoOiBzdHJpbmcgPSAnNTAlJztcclxuXHJcbiAgcHJpdmF0ZSBsYXN0UGFzc3dvcmRWYWxpZGF0aW9uU2VudCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY29uZmlybWF0aW9uOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9LCB7IHZhbGlkYXRvcnM6IChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uID0gUGFzc3dvcmRWYWxpZGF0b3IudmFsaWRhdGUoZm9ybUdyb3VwKTtcclxuICAgICAgaWYgKCF0aGlzLnBhc3N3b3JkVmFsaWRhdGlvbi5pc1ZhbGlkKCkpIHtcclxuICAgICAgICByZXR1cm4gKHsgdmFsaWRhdGlvbjogdGhpcy5wYXNzd29yZFZhbGlkYXRpb259KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH19KTtcclxuXHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKF8gPT4gdGhpcy5mb3JtLnZhbGlkICE9IHRoaXMubGFzdFBhc3N3b3JkVmFsaWRhdGlvblNlbnQpKS5zdWJzY3JpYmUoZm9ybSA9PiB7XHJcbiAgICAgIHRoaXMubGFzdFBhc3N3b3JkVmFsaWRhdGlvblNlbnQgPSB0aGlzLmZvcm0udmFsaWQ7XHJcbiAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGZvcm0ucGFzc3dvcmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB2YWx1ZTtcclxuXHJcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHsvKiBUaGlzIG1ldGhvZCBuZWVkcyB0byBiZSBlbXB0eSAqLyB9O1xyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBbY2xhc3MuZnVsbC13aWR0aC1mb3JtXT1cImRpcmVjdGlvbiA9PT0gJ2NvbHVtbidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYXNzd29yZHNcIj5cclxuICAgICAgICA8YXBwLXBhc3N3b3JkLWlucHV0IGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiIGxhYmVsPVwicGFzc3dvcmRcIiBbdHJhbnNsYXRlTGFiZWxdPVwidHJ1ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiAvPlxyXG4gICAgICAgIDxhcHAtcGFzc3dvcmQtaW5wdXQgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCIgbGFiZWw9XCJwYXNzd29yZENvbmZpcm1hdGlvblwiIFt0cmFuc2xhdGVMYWJlbF09XCJ0cnVlXCIgW3JlcXVpcmVkXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtYXRpb25cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuPGFwcC1wYXNzd29yZC1jcml0ZXJpYS12aWV3ZXIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Bhc3N3b3JkVmFsaWRhdGlvbl09XCJwYXNzd29yZFZhbGlkYXRpb25cIj48L2FwcC1wYXNzd29yZC1jcml0ZXJpYS12aWV3ZXI+Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PasswordValidation } from '../models/password-validation';
|
|
2
|
+
export class PasswordValidator {
|
|
3
|
+
static { this.passwordMinLength = 13; }
|
|
4
|
+
static validate(formGroup) {
|
|
5
|
+
const password = formGroup.controls['password'].value;
|
|
6
|
+
const confirmedPassword = formGroup.controls['confirmation'].value;
|
|
7
|
+
return new PasswordValidation(password.length >= this.passwordMinLength, this.hasNumeric(password), this.hasLowerCaseAndUpperCase(password), this.hasSpecialCharacter(password), password && password === confirmedPassword);
|
|
8
|
+
}
|
|
9
|
+
static hasLowerCaseAndUpperCase(password) {
|
|
10
|
+
return /^(?=.*[a-z])(?=.*[A-Z])/.test(password);
|
|
11
|
+
}
|
|
12
|
+
static hasNumeric(password) {
|
|
13
|
+
return /(?=.*\d)/.test(password);
|
|
14
|
+
}
|
|
15
|
+
static hasSpecialCharacter(password) {
|
|
16
|
+
return new RegExp(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/).test(password);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQvdmFsaWRhdG9ycy9wYXNzd29yZC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkUsTUFBTSxPQUFPLGlCQUFpQjthQUNILHNCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTJCO1FBQzlDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkUsT0FBTyxJQUFJLGtCQUFrQixDQUN6QixRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDekIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQ2xDLFFBQVEsSUFBSSxRQUFRLEtBQUssaUJBQWlCLENBQzdDLENBQUM7SUFDTixDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQWdCO1FBQ25ELE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWE7UUFDbEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBYTtRQUMzQyxPQUFPLElBQUksTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGFzc3dvcmRWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Bhc3N3b3JkLXZhbGlkYXRpb24nO1xuXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRWYWxpZGF0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcGFzc3dvcmRNaW5MZW5ndGggPSAxMztcblxuICAgIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGUoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKTogUGFzc3dvcmRWYWxpZGF0aW9uIHtcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSBmb3JtR3JvdXAuY29udHJvbHNbJ3Bhc3N3b3JkJ10udmFsdWU7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1lZFBhc3N3b3JkID0gZm9ybUdyb3VwLmNvbnRyb2xzWydjb25maXJtYXRpb24nXS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIG5ldyBQYXNzd29yZFZhbGlkYXRpb24oXG4gICAgICAgICAgICBwYXNzd29yZC5sZW5ndGggPj0gdGhpcy5wYXNzd29yZE1pbkxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuaGFzTnVtZXJpYyhwYXNzd29yZCksXG4gICAgICAgICAgICB0aGlzLmhhc0xvd2VyQ2FzZUFuZFVwcGVyQ2FzZShwYXNzd29yZCksXG4gICAgICAgICAgICB0aGlzLmhhc1NwZWNpYWxDaGFyYWN0ZXIocGFzc3dvcmQpLFxuICAgICAgICAgICAgcGFzc3dvcmQgJiYgcGFzc3dvcmQgPT09IGNvbmZpcm1lZFBhc3N3b3JkLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaGFzTG93ZXJDYXNlQW5kVXBwZXJDYXNlKHBhc3N3b3JkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIC9eKD89LipbYS16XSkoPz0uKltBLVpdKS8udGVzdChwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBoYXNOdW1lcmljKHBhc3N3b3JkOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIC8oPz0uKlxcZCkvLnRlc3QocGFzc3dvcmQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaGFzU3BlY2lhbENoYXJhY3RlcihwYXNzd29yZDogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKC9bIUAjJCVeJiooKV8rXFwtPVxcW1xcXXt9Oyc6XCJcXFxcfCwuPD5cXC8/XS8pLnRlc3QocGFzc3dvcmQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { NgForOf, AsyncPipe } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule, FormControl } from '@angular/forms';
|
|
4
|
+
import { MatError, MatFormFieldModule } from '@angular/material/form-field';
|
|
5
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
6
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
7
|
+
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
|
8
|
+
import { ReplaySubject, Subject, takeUntil } from 'rxjs';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/form-field";
|
|
11
|
+
import * as i2 from "@angular/material/select";
|
|
12
|
+
import * as i3 from "@angular/material/core";
|
|
13
|
+
import * as i4 from "@ngx-translate/core";
|
|
14
|
+
import * as i5 from "@angular/forms";
|
|
15
|
+
import * as i6 from "ngx-mat-select-search";
|
|
16
|
+
const _c0 = ["singleSelect"];
|
|
17
|
+
const _c1 = ["*"];
|
|
18
|
+
function SelectWithSearchComponent_mat_option_10_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelementStart(0, "mat-option", 4);
|
|
20
|
+
i0.ɵɵtext(1);
|
|
21
|
+
i0.ɵɵelementEnd();
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
const option_r1 = ctx.$implicit;
|
|
24
|
+
i0.ɵɵproperty("value", option_r1.id);
|
|
25
|
+
i0.ɵɵadvance();
|
|
26
|
+
i0.ɵɵtextInterpolate1(" ", option_r1.name, " ");
|
|
27
|
+
} }
|
|
28
|
+
export class SelectWithSearchComponent {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.selectFirstOptionByDefault = false;
|
|
31
|
+
this.optionFilterControl = new FormControl('');
|
|
32
|
+
this.filteredOptions = new ReplaySubject();
|
|
33
|
+
this.isDisabled = true;
|
|
34
|
+
this.valueChanged = new EventEmitter();
|
|
35
|
+
this._onDestroy = new Subject();
|
|
36
|
+
this.allOptions = [];
|
|
37
|
+
}
|
|
38
|
+
set options(newOptions) {
|
|
39
|
+
if (newOptions) {
|
|
40
|
+
this.allOptions = newOptions;
|
|
41
|
+
this.filteredOptions.next(newOptions.slice());
|
|
42
|
+
this.setInitialSelectedOption();
|
|
43
|
+
this.isDisabled = (this.options.length < 1);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.allOptions = [];
|
|
47
|
+
this.isDisabled = (this.options.length < 1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
get options() {
|
|
51
|
+
return this.allOptions;
|
|
52
|
+
}
|
|
53
|
+
set value(newValue) {
|
|
54
|
+
if (newValue !== this.selectedOptionId) {
|
|
55
|
+
this.selectedOptionId = newValue;
|
|
56
|
+
this.valueChanged.emit(this.value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get value() {
|
|
60
|
+
return this.selectedOptionId;
|
|
61
|
+
}
|
|
62
|
+
ngOnInit() {
|
|
63
|
+
this.optionFilterControl.valueChanges
|
|
64
|
+
.pipe(takeUntil(this._onDestroy))
|
|
65
|
+
.subscribe(() => {
|
|
66
|
+
this.filterCities();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
this._onDestroy.next();
|
|
71
|
+
this._onDestroy.complete();
|
|
72
|
+
}
|
|
73
|
+
filterCities() {
|
|
74
|
+
if (!this.options) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
let filter = this.optionFilterControl.value;
|
|
78
|
+
if (!filter) {
|
|
79
|
+
this.filteredOptions.next(this.options.slice());
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
filter = filter.toLowerCase();
|
|
84
|
+
}
|
|
85
|
+
this.filteredOptions.next(this.options
|
|
86
|
+
.filter(option => option.name.toLowerCase().indexOf(filter) > -1));
|
|
87
|
+
}
|
|
88
|
+
setInitialSelectedOption() {
|
|
89
|
+
if (this.value) {
|
|
90
|
+
const city = this.options.find((c) => c.id === this.value);
|
|
91
|
+
if (!city) {
|
|
92
|
+
this.selectFirstOption();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (this.options.length > 0 && this.selectFirstOptionByDefault) {
|
|
96
|
+
this.selectFirstOption();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
selectFirstOption() {
|
|
100
|
+
this.value = this.options[0].id;
|
|
101
|
+
}
|
|
102
|
+
static { this.ɵfac = function SelectWithSearchComponent_Factory(t) { return new (t || SelectWithSearchComponent)(); }; }
|
|
103
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectWithSearchComponent, selectors: [["app-select-with-search"]], viewQuery: function SelectWithSearchComponent_Query(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵviewQuery(_c0, 7);
|
|
105
|
+
} if (rf & 2) {
|
|
106
|
+
let _t;
|
|
107
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.singleSelect = _t.first);
|
|
108
|
+
} }, inputs: { label: "label", selectFirstOptionByDefault: "selectFirstOptionByDefault", options: "options", value: "value" }, outputs: { valueChanged: "valueChanged" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 12, vars: 15, consts: [["subscriptSizing", "dynamic", 1, "full-width-field", "header", "dense"], [3, "valueChange", "value", "disabled"], [3, "formControl", "placeholderLabel", "noEntriesFoundLabel"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"]], template: function SelectWithSearchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵprojectionDef();
|
|
110
|
+
i0.ɵɵelementStart(0, "mat-form-field", 0);
|
|
111
|
+
i0.ɵɵprojection(1);
|
|
112
|
+
i0.ɵɵelementStart(2, "mat-label");
|
|
113
|
+
i0.ɵɵtext(3);
|
|
114
|
+
i0.ɵɵpipe(4, "translate");
|
|
115
|
+
i0.ɵɵelementEnd();
|
|
116
|
+
i0.ɵɵelementStart(5, "mat-select", 1);
|
|
117
|
+
i0.ɵɵtwoWayListener("valueChange", function SelectWithSearchComponent_Template_mat_select_valueChange_5_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.value, $event) || (ctx.value = $event); return $event; });
|
|
118
|
+
i0.ɵɵelementStart(6, "mat-option");
|
|
119
|
+
i0.ɵɵelement(7, "ngx-mat-select-search", 2);
|
|
120
|
+
i0.ɵɵpipe(8, "translate");
|
|
121
|
+
i0.ɵɵpipe(9, "translate");
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
i0.ɵɵtemplate(10, SelectWithSearchComponent_mat_option_10_Template, 2, 2, "mat-option", 3);
|
|
124
|
+
i0.ɵɵpipe(11, "async");
|
|
125
|
+
i0.ɵɵelementEnd()();
|
|
126
|
+
} if (rf & 2) {
|
|
127
|
+
i0.ɵɵadvance(3);
|
|
128
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, ctx.label));
|
|
129
|
+
i0.ɵɵadvance(2);
|
|
130
|
+
i0.ɵɵtwoWayProperty("value", ctx.value);
|
|
131
|
+
i0.ɵɵproperty("disabled", ctx.isDisabled);
|
|
132
|
+
i0.ɵɵadvance(2);
|
|
133
|
+
i0.ɵɵproperty("formControl", ctx.optionFilterControl)("placeholderLabel", i0.ɵɵpipeBind1(8, 9, "search"))("noEntriesFoundLabel", i0.ɵɵpipeBind1(9, 11, "noResult"));
|
|
134
|
+
i0.ɵɵadvance(3);
|
|
135
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(11, 13, ctx.filteredOptions));
|
|
136
|
+
} }, dependencies: [NgForOf, AsyncPipe, MatSelectModule, i1.MatFormField, i1.MatLabel, i2.MatSelect, i3.MatOption, TranslateModule, i4.TranslatePipe, MatFormFieldModule, ReactiveFormsModule, i5.NgControlStatus, i5.FormControlDirective, FormsModule, NgxMatSelectSearchModule, i6.MatSelectSearchComponent] }); }
|
|
137
|
+
}
|
|
138
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectWithSearchComponent, [{
|
|
139
|
+
type: Component,
|
|
140
|
+
args: [{ selector: 'app-select-with-search', standalone: true, imports: [NgForOf, AsyncPipe, MatError, MatSelectModule, TranslateModule, MatFormFieldModule, ReactiveFormsModule, FormsModule, NgxMatSelectSearchModule], template: "<mat-form-field class=\"full-width-field header dense\" subscriptSizing=\"dynamic\">\r\n <ng-content></ng-content>\r\n <mat-label>{{ label | translate }}</mat-label>\r\n <mat-select [(value)]=\"value\" [disabled]=\"isDisabled\">\r\n <mat-option>\r\n <ngx-mat-select-search [formControl]=\"optionFilterControl\" [placeholderLabel]=\"'search' | translate\"\r\n [noEntriesFoundLabel]=\"'noResult' | translate\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.id\">\r\n {{option.name}}\r\n </mat-option>\r\n </mat-select>\r\n\r\n</mat-form-field>" }]
|
|
141
|
+
}], null, { label: [{
|
|
142
|
+
type: Input,
|
|
143
|
+
args: [{ required: true }]
|
|
144
|
+
}], selectFirstOptionByDefault: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], singleSelect: [{
|
|
147
|
+
type: ViewChild,
|
|
148
|
+
args: ['singleSelect', { static: true }]
|
|
149
|
+
}], valueChanged: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], options: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], value: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}] }); })();
|
|
156
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectWithSearchComponent, { className: "SelectWithSearchComponent", filePath: "lib\\inputs\\select-with-search\\select-with-search.component.ts", lineNumber: 22 }); })();
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXdpdGgtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvaW5wdXRzL3NlbGVjdC13aXRoLXNlYXJjaC9zZWxlY3Qtd2l0aC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvc2VsZWN0LXdpdGgtc2VhcmNoL3NlbGVjdC13aXRoLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7SUNFakQscUNBQStFO0lBQzNFLFlBQ0o7SUFBQSxpQkFBYTs7O0lBRjhDLG9DQUFtQjtJQUMxRSxjQUNKO0lBREksK0NBQ0o7O0FEVVIsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVNrQiwrQkFBMEIsR0FB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RUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixDQUFDO2dCQUt6SCxLQUFLO2tCQUFwQyxLQUFLO21CQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztZQUNQLDBCQUEwQjtrQkFBekMsS0FBSztZQUk4QyxZQUFZO2tCQUEvRCxTQUFTO21CQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFJcEMsWUFBWTtrQkFEbEIsTUFBTTtZQVNJLE9BQU87a0JBRGpCLEtBQUs7WUFpQkssS0FBSztrQkFEZixLQUFLOztrRkFqQ0sseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3JPZiwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRFcnJvciwgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcHRpb24ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zZWxlY3Qtd2l0aC1zZWFyY2gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nRm9yT2YsIEFzeW5jUGlwZSwgTWF0RXJyb3IsIE1hdFNlbGVjdE1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Qtd2l0aC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zZWxlY3Qtd2l0aC1zZWFyY2guY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RXaXRoU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0Rmlyc3RPcHRpb25CeURlZmF1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIG9wdGlvbkZpbHRlckNvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZz4gPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyk7XHJcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUmVwbGF5U3ViamVjdDxPcHRpb25bXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxPcHRpb25bXT4oKTtcclxuICBAVmlld0NoaWxkKCdzaW5nbGVTZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgc2luZ2xlU2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgc2VsZWN0ZWRPcHRpb25JZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgYWxsT3B0aW9uczogT3B0aW9uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG9wdGlvbnMobmV3T3B0aW9uczogT3B0aW9uW10pIHtcclxuICAgIGlmIChuZXdPcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuYWxsT3B0aW9ucyA9IG5ld09wdGlvbnM7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLm5leHQobmV3T3B0aW9ucy5zbGljZSgpKTtcclxuICAgICAgdGhpcy5zZXRJbml0aWFsU2VsZWN0ZWRPcHRpb24oKTtcclxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gKHRoaXMub3B0aW9ucy5sZW5ndGggPCAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxsT3B0aW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSAodGhpcy5vcHRpb25zLmxlbmd0aCA8IDEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogT3B0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWxsT3B0aW9ucztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB2YWx1ZShuZXdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRPcHRpb25JZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uSWQgPSBuZXdWYWx1ZTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25JZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9uRmlsdGVyQ29udHJvbC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQ2l0aWVzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25EZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJDaXRpZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbHRlciA9IHRoaXMub3B0aW9uRmlsdGVyQ29udHJvbC52YWx1ZTtcclxuICAgIGlmICghZmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLm5leHQodGhpcy5vcHRpb25zLnNsaWNlKCkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXIgPSBmaWx0ZXIudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLm5leHQodGhpcy5vcHRpb25zXHJcbiAgICAgIC5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXIpID4gLTEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5pdGlhbFNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgY29uc3QgY2l0eSA9IHRoaXMub3B0aW9ucy5maW5kKChjOiBPcHRpb24pID0+IGMuaWQgPT09IHRoaXMudmFsdWUpO1xyXG4gICAgICBpZiAoIWNpdHkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdEZpcnN0T3B0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbkJ5RGVmYXVsdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdEZpcnN0T3B0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEZpcnN0T3B0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMub3B0aW9uc1swXS5pZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aC1maWVsZCBoZWFkZXIgZGVuc2VcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJ2YWx1ZVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW2Zvcm1Db250cm9sXT1cIm9wdGlvbkZpbHRlckNvbnRyb2xcIiBbcGxhY2Vob2xkZXJMYWJlbF09XCInc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbm9FbnRyaWVzRm91bmRMYWJlbF09XCInbm9SZXN1bHQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdGlvbi5pZFwiPlxyXG4gICAgICAgICAgICB7e29wdGlvbi5uYW1lfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcblxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';
|
|
3
|
+
import { MatIcon } from '@angular/material/icon';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const _c0 = ["*"];
|
|
6
|
+
const DEFAULT_DURATION = 500;
|
|
7
|
+
export class ExpandablePanelComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.isCollapsed = model(false);
|
|
10
|
+
this.title = input('');
|
|
11
|
+
this.subTitle = input('');
|
|
12
|
+
}
|
|
13
|
+
changeState() {
|
|
14
|
+
this.isCollapsed.update(value => !value);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = function ExpandablePanelComponent_Factory(t) { return new (t || ExpandablePanelComponent)(); }; }
|
|
17
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExpandablePanelComponent, selectors: [["app-expandable-panel"]], inputs: { isCollapsed: [1, "isCollapsed"], title: [1, "title"], subTitle: [1, "subTitle"] }, outputs: { isCollapsed: "isCollapsedChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 11, vars: 4, consts: [[1, "expansion-button", 3, "click"], [1, "primary"], [1, "body2"], [1, "expansion-panel"]], template: function ExpandablePanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵprojectionDef();
|
|
19
|
+
i0.ɵɵelementStart(0, "section")(1, "div", 0);
|
|
20
|
+
i0.ɵɵlistener("click", function ExpandablePanelComponent_Template_div_click_1_listener() { return ctx.changeState(); });
|
|
21
|
+
i0.ɵɵelementStart(2, "mat-icon");
|
|
22
|
+
i0.ɵɵtext(3, "expand_less");
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
i0.ɵɵelementStart(4, "div")(5, "div", 1);
|
|
25
|
+
i0.ɵɵtext(6);
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
i0.ɵɵelementStart(7, "div", 2);
|
|
28
|
+
i0.ɵɵtext(8);
|
|
29
|
+
i0.ɵɵelementEnd()()();
|
|
30
|
+
i0.ɵɵelementStart(9, "div", 3);
|
|
31
|
+
i0.ɵɵprojection(10);
|
|
32
|
+
i0.ɵɵelementEnd()();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
i0.ɵɵadvance(2);
|
|
35
|
+
i0.ɵɵproperty("@arrow-collapse", ctx.isCollapsed());
|
|
36
|
+
i0.ɵɵadvance(4);
|
|
37
|
+
i0.ɵɵtextInterpolate(ctx.title());
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵtextInterpolate(ctx.subTitle());
|
|
40
|
+
i0.ɵɵadvance();
|
|
41
|
+
i0.ɵɵproperty("@collapse", ctx.isCollapsed());
|
|
42
|
+
} }, dependencies: [MatIcon], styles: ["section[_ngcontent-%COMP%]{display:flex;padding:16px 0}.primary[_ngcontent-%COMP%]{font-weight:600}.body2[_ngcontent-%COMP%]{width:fit-content;white-space:nowrap}.expansion-button[_ngcontent-%COMP%]{display:flex;gap:4px;width:240px;padding:0 16px 8px 0;cursor:pointer;height:fit-content}.expansion-panel[_ngcontent-%COMP%]{overflow:hidden;flex:1}"], data: { animation: [
|
|
43
|
+
trigger('collapse', [
|
|
44
|
+
state('false', style({ height: AUTO_STYLE, opacity: 1, visibility: AUTO_STYLE })),
|
|
45
|
+
state('true', style({ height: '0', opacity: 0, visibility: 'hidden' })),
|
|
46
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in')),
|
|
47
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-out'))
|
|
48
|
+
]),
|
|
49
|
+
trigger('arrow-collapse', [
|
|
50
|
+
state('false', style({ transform: 'rotate(0deg)' })),
|
|
51
|
+
state('true', style({ transform: 'rotate(180deg)' })),
|
|
52
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in')),
|
|
53
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-out'))
|
|
54
|
+
])
|
|
55
|
+
] }, changeDetection: 0 }); }
|
|
56
|
+
}
|
|
57
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExpandablePanelComponent, [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'app-expandable-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatIcon], animations: [
|
|
60
|
+
trigger('collapse', [
|
|
61
|
+
state('false', style({ height: AUTO_STYLE, opacity: 1, visibility: AUTO_STYLE })),
|
|
62
|
+
state('true', style({ height: '0', opacity: 0, visibility: 'hidden' })),
|
|
63
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in')),
|
|
64
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-out'))
|
|
65
|
+
]),
|
|
66
|
+
trigger('arrow-collapse', [
|
|
67
|
+
state('false', style({ transform: 'rotate(0deg)' })),
|
|
68
|
+
state('true', style({ transform: 'rotate(180deg)' })),
|
|
69
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in')),
|
|
70
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-out'))
|
|
71
|
+
])
|
|
72
|
+
], template: "<section>\r\n <div class=\"expansion-button\" (click)=\"changeState()\">\r\n <mat-icon [@arrow-collapse]=\"isCollapsed()\">expand_less</mat-icon>\r\n <div>\r\n <div class=\"primary\">{{title()}}</div>\r\n <div class=\"body2\">{{subTitle()}}</div>\r\n </div>\r\n </div>\r\n <div class=\"expansion-panel\" [@collapse]=\"isCollapsed()\">\r\n <ng-content></ng-content>\r\n </div>\r\n</section>", styles: ["section{display:flex;padding:16px 0}.primary{font-weight:600}.body2{width:fit-content;white-space:nowrap}.expansion-button{display:flex;gap:4px;width:240px;padding:0 16px 8px 0;cursor:pointer;height:fit-content}.expansion-panel{overflow:hidden;flex:1}\n"] }]
|
|
73
|
+
}], null, null); })();
|
|
74
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExpandablePanelComponent, { className: "ExpandablePanelComponent", filePath: "lib\\layout\\expandable-panel\\expandable-panel.component.ts", lineNumber: 29 }); })();
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1tYXRlcmlhbC9zcmMvbGliL2xheW91dC9leHBhbmRhYmxlLXBhbmVsL2V4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9sYXlvdXQvZXhwYW5kYWJsZS1wYW5lbC9leHBhbmRhYmxlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFakQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUF3QjdCLE1BQU0sT0FBTyx3QkFBd0I7SUF0QnJDO1FBdUJTLGdCQUFXLEdBQXlCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFLLEdBQXdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxhQUFRLEdBQXdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUtsRDtJQUhRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7eUZBUFUsd0JBQXdCO29FQUF4Qix3QkFBd0I7O1lDM0JqQyxBQURKLCtCQUFTLGFBQ2lEO1lBQXhCLGtHQUFTLGlCQUFhLElBQUM7WUFD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QztpQkFDSDs7a0ZBRVUsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVVUT19TVFlMRSwgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0U2lnbmFsLCBNb2RlbFNpZ25hbCwgaW5wdXQsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbmNvbnN0IERFRkFVTFRfRFVSQVRJT04gPSA1MDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1leHBhbmRhYmxlLXBhbmVsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtNYXRJY29uXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2V4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50LnNjc3MnLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2NvbGxhcHNlJywgW1xyXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IGhlaWdodDogQVVUT19TVFlMRSwgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogQVVUT19TVFlMRSB9KSksXHJcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBoZWlnaHQ6ICcwJywgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgYW5pbWF0ZShERUZBVUxUX0RVUkFUSU9OICsgJ21zIGVhc2UtaW4nKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKERFRkFVTFRfRFVSQVRJT04gKyAnbXMgZWFzZS1vdXQnKSlcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcignYXJyb3ctY29sbGFwc2UnLCBbXHJcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyB9KSksXHJcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMTgwZGVnKScgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgYW5pbWF0ZShERUZBVUxUX0RVUkFUSU9OICsgJ21zIGVhc2UtaW4nKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKERFRkFVTFRfRFVSQVRJT04gKyAnbXMgZWFzZS1vdXQnKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwYW5kYWJsZVBhbmVsQ29tcG9uZW50IHtcclxuICBwdWJsaWMgaXNDb2xsYXBzZWQ6IE1vZGVsU2lnbmFsPGJvb2xlYW4+ID0gbW9kZWwoZmFsc2UpO1xyXG4gIHB1YmxpYyB0aXRsZTogSW5wdXRTaWduYWw8c3RyaW5nPiA9IGlucHV0KCcnKTtcclxuICBwdWJsaWMgc3ViVGl0bGU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dCgnJyk7XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNDb2xsYXBzZWQudXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImV4cGFuc2lvbi1idXR0b25cIiAoY2xpY2spPVwiY2hhbmdlU3RhdGUoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbQGFycm93LWNvbGxhcHNlXT1cImlzQ29sbGFwc2VkKClcIj5leHBhbmRfbGVzczwvbWF0LWljb24+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnlcIj57e3RpdGxlKCl9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keTJcIj57e3N1YlRpdGxlKCl9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLXBhbmVsXCIgW0Bjb2xsYXBzZV09XCJpc0NvbGxhcHNlZCgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Component, HostBinding, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
+
import { MenuExpandablePanelItemComponent } from '../menu-expandable-panel-item/menu-expandable-panel-item.component';
|
|
6
|
+
import { NgClass } from '@angular/common';
|
|
7
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/icon";
|
|
10
|
+
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
const _forTrack0 = ($index, $item) => $item.title;
|
|
12
|
+
function MenuExpandablePanelComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
14
|
+
i0.ɵɵtext(1);
|
|
15
|
+
i0.ɵɵpipe(2, "translate");
|
|
16
|
+
i0.ɵɵelementEnd();
|
|
17
|
+
} if (rf & 2) {
|
|
18
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
19
|
+
i0.ɵɵadvance();
|
|
20
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.subTitle()));
|
|
21
|
+
} }
|
|
22
|
+
function MenuExpandablePanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementStart(0, "mat-icon");
|
|
24
|
+
i0.ɵɵtext(1, "arrow_forward_ios");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
28
|
+
i0.ɵɵproperty("@arrow-collapse", ctx_r0.opened());
|
|
29
|
+
} }
|
|
30
|
+
function MenuExpandablePanelComponent_Conditional_9_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
i0.ɵɵelement(0, "app-menu-expandable-panel-item", 3);
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const item_r2 = ctx.$implicit;
|
|
34
|
+
i0.ɵɵproperty("icon", item_r2.icon)("title", item_r2.title)("route", item_r2.route)("isSubItem", true)("action", item_r2.action);
|
|
35
|
+
} }
|
|
36
|
+
function MenuExpandablePanelComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵrepeaterCreate(0, MenuExpandablePanelComponent_Conditional_9_For_1_Template, 1, 5, "app-menu-expandable-panel-item", 3, _forTrack0);
|
|
38
|
+
} if (rf & 2) {
|
|
39
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
40
|
+
i0.ɵɵrepeater(ctx_r0.items());
|
|
41
|
+
} }
|
|
42
|
+
const DEFAULT_DURATION = 200;
|
|
43
|
+
export class MenuExpandablePanelComponent {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.title = input();
|
|
46
|
+
this.isSubItem = input(false);
|
|
47
|
+
this.subTitle = input();
|
|
48
|
+
this.menuIcon = input();
|
|
49
|
+
this.showExpansionIcon = input(true);
|
|
50
|
+
this.addTopBorderRadius = input(false);
|
|
51
|
+
this.bottomBorder = input(false);
|
|
52
|
+
this.addBottomBorderRadius = input(false);
|
|
53
|
+
this.route = input([]);
|
|
54
|
+
this.items = input([]);
|
|
55
|
+
this.opened = signal(false);
|
|
56
|
+
this.router = inject(Router);
|
|
57
|
+
}
|
|
58
|
+
get topLeftRadius() {
|
|
59
|
+
return this.addTopBorderRadius() ? '12px' : '0px';
|
|
60
|
+
}
|
|
61
|
+
get topRightRadius() {
|
|
62
|
+
return this.addTopBorderRadius() ? '12px' : '0px';
|
|
63
|
+
}
|
|
64
|
+
get bottomLeftRadius() {
|
|
65
|
+
return this.addBottomBorderRadius() ? '12px' : '0px';
|
|
66
|
+
}
|
|
67
|
+
get bottomRightRadius() {
|
|
68
|
+
return this.addBottomBorderRadius() ? '12px' : '0px';
|
|
69
|
+
}
|
|
70
|
+
get bottomBorderClass() {
|
|
71
|
+
return this.bottomBorder();
|
|
72
|
+
}
|
|
73
|
+
handleClick() {
|
|
74
|
+
if (this.route().length > 0 && this.items().length === 0) {
|
|
75
|
+
this.router.navigate(this.route());
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.opened.set(!this.opened());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = function MenuExpandablePanelComponent_Factory(t) { return new (t || MenuExpandablePanelComponent)(); }; }
|
|
82
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuExpandablePanelComponent, selectors: [["app-menu-expandable-panel"]], hostVars: 10, hostBindings: function MenuExpandablePanelComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
83
|
+
i0.ɵɵstyleProp("border-top-left-radius", ctx.topLeftRadius)("border-top-right-radius", ctx.topRightRadius)("border-bottom-left-radius", ctx.bottomLeftRadius)("border-bottom-right-radius", ctx.bottomRightRadius);
|
|
84
|
+
i0.ɵɵclassProp("bottom-border", ctx.bottomBorderClass);
|
|
85
|
+
} }, inputs: { title: [1, "title"], isSubItem: [1, "isSubItem"], subTitle: [1, "subTitle"], menuIcon: [1, "menuIcon"], showExpansionIcon: [1, "showExpansionIcon"], addTopBorderRadius: [1, "addTopBorderRadius"], bottomBorder: [1, "bottomBorder"], addBottomBorderRadius: [1, "addBottomBorderRadius"], route: [1, "route"], items: [1, "items"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 10, vars: 8, consts: [[3, "click", "ngClass"], [1, "subtitle1"], [1, "body2"], [3, "icon", "title", "route", "isSubItem", "action"]], template: function MenuExpandablePanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "section", 0);
|
|
87
|
+
i0.ɵɵlistener("click", function MenuExpandablePanelComponent_Template_section_click_0_listener() { return ctx.handleClick(); });
|
|
88
|
+
i0.ɵɵelementStart(1, "mat-icon");
|
|
89
|
+
i0.ɵɵtext(2);
|
|
90
|
+
i0.ɵɵelementEnd();
|
|
91
|
+
i0.ɵɵelementStart(3, "div")(4, "div", 1);
|
|
92
|
+
i0.ɵɵtext(5);
|
|
93
|
+
i0.ɵɵpipe(6, "translate");
|
|
94
|
+
i0.ɵɵelementEnd();
|
|
95
|
+
i0.ɵɵtemplate(7, MenuExpandablePanelComponent_Conditional_7_Template, 3, 3, "div", 2);
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵtemplate(8, MenuExpandablePanelComponent_Conditional_8_Template, 2, 1, "mat-icon");
|
|
98
|
+
i0.ɵɵelementEnd();
|
|
99
|
+
i0.ɵɵtemplate(9, MenuExpandablePanelComponent_Conditional_9_Template, 2, 0);
|
|
100
|
+
} if (rf & 2) {
|
|
101
|
+
i0.ɵɵproperty("ngClass", ctx.opened() ? "bottom-padding" : "");
|
|
102
|
+
i0.ɵɵadvance(2);
|
|
103
|
+
i0.ɵɵtextInterpolate(ctx.menuIcon());
|
|
104
|
+
i0.ɵɵadvance(3);
|
|
105
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, ctx.title()));
|
|
106
|
+
i0.ɵɵadvance(2);
|
|
107
|
+
i0.ɵɵconditional(ctx.subTitle() ? 7 : -1);
|
|
108
|
+
i0.ɵɵadvance();
|
|
109
|
+
i0.ɵɵconditional(ctx.showExpansionIcon() ? 8 : -1);
|
|
110
|
+
i0.ɵɵadvance();
|
|
111
|
+
i0.ɵɵconditional(ctx.opened() ? 9 : -1);
|
|
112
|
+
} }, dependencies: [MatIconModule, i1.MatIcon, TranslateModule, i2.TranslatePipe, MenuExpandablePanelItemComponent, NgClass], styles: ["[_nghost-%COMP%]{padding:10px 12px;background-color:#fff;cursor:pointer;display:block}section[_ngcontent-%COMP%]{display:flex;gap:16px;align-items:center}section.bottom-padding[_ngcontent-%COMP%]{padding-bottom:10px}div[_ngcontent-%COMP%]{flex:1}"], data: { animation: [
|
|
113
|
+
trigger('arrow-collapse', [
|
|
114
|
+
state('false', style({ transform: 'rotate(0deg)' })),
|
|
115
|
+
state('true', style({ transform: 'rotate(-90deg)' })),
|
|
116
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in-out')),
|
|
117
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-in-out'))
|
|
118
|
+
])
|
|
119
|
+
] } }); }
|
|
120
|
+
}
|
|
121
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuExpandablePanelComponent, [{
|
|
122
|
+
type: Component,
|
|
123
|
+
args: [{ selector: 'app-menu-expandable-panel', standalone: true, imports: [MatIconModule, TranslateModule, MenuExpandablePanelItemComponent, NgClass], animations: [
|
|
124
|
+
trigger('arrow-collapse', [
|
|
125
|
+
state('false', style({ transform: 'rotate(0deg)' })),
|
|
126
|
+
state('true', style({ transform: 'rotate(-90deg)' })),
|
|
127
|
+
transition('false => true', animate(DEFAULT_DURATION + 'ms ease-in-out')),
|
|
128
|
+
transition('true => false', animate(DEFAULT_DURATION + 'ms ease-in-out'))
|
|
129
|
+
])
|
|
130
|
+
], template: "<section [ngClass]=\"opened() ? 'bottom-padding' : ''\" (click)=\"handleClick()\">\r\n <mat-icon>{{menuIcon()}}</mat-icon>\r\n <div>\r\n <div class=\"subtitle1\">{{title() | translate}}</div>\r\n @if(subTitle()) {<div class=\"body2\">{{subTitle() | translate}}</div>}\r\n </div>\r\n @if (showExpansionIcon()) {<mat-icon [@arrow-collapse]=\"opened()\">arrow_forward_ios</mat-icon>}\r\n</section>\r\n@if(opened()) {\r\n @for (item of items(); track item.title) {\r\n <app-menu-expandable-panel-item [icon]=\"item.icon\" [title]=\"item.title\" [route]=\"item.route\" [isSubItem]=\"true\" [action]=\"item.action\" />\r\n }\r\n}", styles: [":host{padding:10px 12px;background-color:#fff;cursor:pointer;display:block}section{display:flex;gap:16px;align-items:center}section.bottom-padding{padding-bottom:10px}div{flex:1}\n"] }]
|
|
131
|
+
}], null, { topLeftRadius: [{
|
|
132
|
+
type: HostBinding,
|
|
133
|
+
args: ['style.border-top-left-radius']
|
|
134
|
+
}], topRightRadius: [{
|
|
135
|
+
type: HostBinding,
|
|
136
|
+
args: ['style.border-top-right-radius']
|
|
137
|
+
}], bottomLeftRadius: [{
|
|
138
|
+
type: HostBinding,
|
|
139
|
+
args: ['style.border-bottom-left-radius']
|
|
140
|
+
}], bottomRightRadius: [{
|
|
141
|
+
type: HostBinding,
|
|
142
|
+
args: ['style.border-bottom-right-radius']
|
|
143
|
+
}], bottomBorderClass: [{
|
|
144
|
+
type: HostBinding,
|
|
145
|
+
args: ['class.bottom-border']
|
|
146
|
+
}] }); })();
|
|
147
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuExpandablePanelComponent, { className: "MenuExpandablePanelComponent", filePath: "lib\\layout\\menu-expandable-panel\\menu-expandable-panel.component.ts", lineNumber: 26 }); })();
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1leHBhbmRhYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvbGF5b3V0L21lbnUtZXhwYW5kYWJsZS1wYW5lbC9tZW51LWV4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9sYXlvdXQvbWVudS1leHBhbmRhYmxlLXBhbmVsL21lbnUtZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztJQ0Z4RCw4QkFBbUI7SUFBQSxZQUEwQjs7SUFBQSxpQkFBTTs7O0lBQWhDLGNBQTBCO0lBQTFCLDZEQUEwQjs7O0lBRXZDLGdDQUF1QztJQUFBLGlDQUFpQjtJQUFBLGlCQUFXOzs7SUFBekQsaURBQTRCOzs7SUFJN0Qsb0RBQXlJOzs7SUFBekIsQUFBbkIsQUFBckIsQUFBckIsQUFBbkIsbUNBQWtCLHdC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aUI7a0JBQTVFLFdBQVc7bUJBQUMsa0NBQWtDO1lBR0EsaUJBQWlCO2tCQUEvRCxXQUFXO21CQUFDLHFCQUFxQjs7a0ZBNUJ2Qiw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51RXhwYW5kYWJsZVBhbmVsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUtZXhwYW5kYWJsZS1wYW5lbC1pdGVtL21lbnUtZXhwYW5kYWJsZS1wYW5lbC1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmNvbnN0IERFRkFVTFRfRFVSQVRJT04gPSAyMDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tZW51LWV4cGFuZGFibGUtcGFuZWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWVudUV4cGFuZGFibGVQYW5lbEl0ZW1Db21wb25lbnQsIE5nQ2xhc3NdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWV4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tZW51LWV4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50LnNjc3MnLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2Fycm93LWNvbGxhcHNlJywgW1xyXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScgfSkpLFxyXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoREVGQVVMVF9EVVJBVElPTiArICdtcyBlYXNlLWluLW91dCcpKSxcclxuICAgICAgdHJhbnNpdGlvbigndHJ1ZSA9PiBmYWxzZScsIGFuaW1hdGUoREVGQVVMVF9EVVJBVElPTiArICdtcyBlYXNlLWluLW91dCcpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51RXhwYW5kYWJsZVBhbmVsQ29tcG9uZW50IHtcclxuICBwdWJsaWMgdGl0bGU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dCgpO1xyXG4gIHB1YmxpYyBpc1N1Ykl0ZW06IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UpO1xyXG4gIHB1YmxpYyBzdWJUaXRsZTogSW5wdXRTaWduYWw8c3RyaW5nPiA9IGlucHV0KCk7XHJcbiAgcHVibGljIG1lbnVJY29uOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQoKTtcclxuICBwdWJsaWMgc2hvd0V4cGFuc2lvbkljb246IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XHJcbiAgcHVibGljIGFkZFRvcEJvcmRlclJhZGl1czogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XHJcbiAgcHVibGljIGJvdHRvbUJvcmRlcjogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XHJcbiAgcHVibGljIGFkZEJvdHRvbUJvcmRlclJhZGl1czogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dChmYWxzZSk7XHJcbiAgcHVibGljIHJvdXRlOiBJbnB1dFNpZ25hbDxzdHJpbmdbXT4gPSBpbnB1dChbXSk7XHJcbiAgcHVibGljIGl0ZW1zOiBJbnB1dFNpZ25hbDx7IGljb246IHN0cmluZywgdGl0bGU6IHN0cmluZywgcm91dGU/OiBzdHJpbmdbXSwgYWN0aW9uPzogKCkgPT4gdm9pZCB9W10+ID0gaW5wdXQoW10pO1xyXG5cclxuICBwdWJsaWMgb3BlbmVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycpIHB1YmxpYyBnZXQgdG9wTGVmdFJhZGl1cygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkVG9wQm9yZGVyUmFkaXVzKCkgPyAnMTJweCcgOiAnMHB4JztcclxuICB9XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycpIHB1YmxpYyBnZXQgdG9wUmlnaHRSYWRpdXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmFkZFRvcEJvcmRlclJhZGl1cygpID8gJzEycHgnIDogJzBweCc7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycpIHB1YmxpYyBnZXQgYm90dG9tTGVmdFJhZGl1cygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkQm90dG9tQm9yZGVyUmFkaXVzKCkgPyAnMTJweCcgOiAnMHB4JztcclxuICB9XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycpIHB1YmxpYyBnZXQgYm90dG9tUmlnaHRSYWRpdXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEJvdHRvbUJvcmRlclJhZGl1cygpID8gJzEycHgnIDogJzBweCc7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYm90dG9tLWJvcmRlcicpIHB1YmxpYyBnZXQgYm90dG9tQm9yZGVyQ2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5ib3R0b21Cb3JkZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJvdXRlKCkubGVuZ3RoID4gMCAmJiB0aGlzLml0ZW1zKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMucm91dGUoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5lZC5zZXQoIXRoaXMub3BlbmVkKCkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBbbmdDbGFzc109XCJvcGVuZWQoKSA/ICdib3R0b20tcGFkZGluZycgOiAnJ1wiIChjbGljayk9XCJoYW5kbGVDbGljaygpXCI+XHJcbiAgICA8bWF0LWljb24+e3ttZW51SWNvbigpfX08L21hdC1pY29uPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUxXCI+e3t0aXRsZSgpIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICAgICAgICBAaWYoc3ViVGl0bGUoKSkgezxkaXYgY2xhc3M9XCJib2R5MlwiPnt7c3ViVGl0bGUoKSB8IHRyYW5zbGF0ZX19PC9kaXY+fVxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKHNob3dFeHBhbnNpb25JY29uKCkpIHs8bWF0LWljb24gW0BhcnJvdy1jb2xsYXBzZV09XCJvcGVuZWQoKVwiPmFycm93X2ZvcndhcmRfaW9zPC9tYXQtaWNvbj59XHJcbjwvc2VjdGlvbj5cclxuQGlmKG9wZW5lZCgpKSB7XHJcbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0udGl0bGUpIHtcclxuICAgICAgICA8YXBwLW1lbnUtZXhwYW5kYWJsZS1wYW5lbC1pdGVtIFtpY29uXT1cIml0ZW0uaWNvblwiIFt0aXRsZV09XCJpdGVtLnRpdGxlXCIgW3JvdXRlXT1cIml0ZW0ucm91dGVcIiBbaXNTdWJJdGVtXT1cInRydWVcIiBbYWN0aW9uXT1cIml0ZW0uYWN0aW9uXCIgLz5cclxuICAgIH1cclxufSJdfQ==
|