@cauca-911/material 18.0.1-beta6 → 18.0.1

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.
Files changed (82) hide show
  1. package/esm2022/lib/cauca-date-time-picker/cauca-date-time-picker.component.mjs +184 -0
  2. package/esm2022/lib/{inputs/cauca-date-time-picker → cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.mjs +2 -2
  3. package/esm2022/lib/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +365 -0
  4. package/esm2022/lib/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +74 -0
  5. package/esm2022/lib/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +2 -0
  6. package/esm2022/lib/cauca-input-file/cauca-input-file.component.mjs +148 -0
  7. package/esm2022/lib/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +87 -0
  8. package/esm2022/lib/cauca-material.component.mjs +5 -6
  9. package/esm2022/lib/cauca-material.module.mjs +52 -14
  10. package/esm2022/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.mjs +10 -14
  11. package/esm2022/lib/cauca-menu-vertical/cauca-menu-vertical.component.mjs +8 -16
  12. package/esm2022/lib/cauca-simple-dialog/cauca-simple-dialog.component.mjs +10 -14
  13. package/esm2022/lib/cauca-slideshow/cauca-slideshow.component.mjs +6 -6
  14. package/esm2022/public-api.mjs +4 -21
  15. package/fesm2022/cauca-911-material.mjs +822 -2125
  16. package/fesm2022/cauca-911-material.mjs.map +1 -1
  17. package/lib/cauca-date-time-picker/cauca-date-time-picker.component.d.ts +40 -0
  18. package/lib/{inputs/cauca-date-time-picker → cauca-date-time-picker}/components/dialog-date-time-picker/dialog-date-time-picker.component.d.ts +2 -1
  19. package/lib/{inputs/cauca-date-time-picker → cauca-date-time-picker}/models/dialog-date-time-picker-data.d.ts +3 -2
  20. package/lib/{inputs/cauca-input-file → cauca-input-file}/cauca-input-file.component.d.ts +1 -1
  21. package/lib/{inputs/cauca-input-multiple-langue → cauca-input-multiple-langue}/cauca-input-multiple-langue.component.d.ts +1 -1
  22. package/lib/cauca-material.component.d.ts +1 -1
  23. package/lib/cauca-material.module.d.ts +14 -4
  24. package/lib/cauca-menu-sidebar/cauca-menu-sidebar.component.d.ts +1 -1
  25. package/lib/cauca-menu-vertical/cauca-menu-vertical.component.d.ts +1 -1
  26. package/lib/cauca-simple-dialog/cauca-simple-dialog.component.d.ts +1 -1
  27. package/lib/cauca-slideshow/cauca-slideshow.component.d.ts +1 -1
  28. package/package.json +2 -3
  29. package/public-api.d.ts +3 -20
  30. package/esm2022/lib/buttons/base-button.mjs +0 -33
  31. package/esm2022/lib/buttons/basic-button/basic-button.component.mjs +0 -64
  32. package/esm2022/lib/buttons/flat-button/flat-button.component.mjs +0 -64
  33. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +0 -28
  34. package/esm2022/lib/buttons/menu-item/menu-item.component.mjs +0 -68
  35. package/esm2022/lib/buttons/raised-button/raised-button.component.mjs +0 -78
  36. package/esm2022/lib/buttons/stroked-button/stroked-button.component.mjs +0 -71
  37. package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +0 -57
  38. package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -69
  39. package/esm2022/lib/dialogs/services/dialog.service.mjs +0 -52
  40. package/esm2022/lib/inputs/cauca-date-time-picker/cauca-date-time-picker.component.mjs +0 -137
  41. package/esm2022/lib/inputs/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.mjs +0 -358
  42. package/esm2022/lib/inputs/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.mjs +0 -74
  43. package/esm2022/lib/inputs/cauca-date-time-picker/models/dialog-date-time-picker-data.mjs +0 -2
  44. package/esm2022/lib/inputs/cauca-input-file/cauca-input-file.component.mjs +0 -147
  45. package/esm2022/lib/inputs/cauca-input-multiple-langue/cauca-input-multiple-langue.component.mjs +0 -99
  46. package/esm2022/lib/inputs/password/models/password-validation.mjs +0 -13
  47. package/esm2022/lib/inputs/password/password-criteria/password-criteria.component.mjs +0 -49
  48. package/esm2022/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.mjs +0 -29
  49. package/esm2022/lib/inputs/password/password-input/password-input.component.mjs +0 -112
  50. package/esm2022/lib/inputs/password/password-selection/password-selection.component.mjs +0 -112
  51. package/esm2022/lib/inputs/password/validators/password-validator.mjs +0 -19
  52. package/esm2022/lib/inputs/select-with-search/select-with-search.component.mjs +0 -157
  53. package/esm2022/lib/layout/expandable-panel/expandable-panel.component.mjs +0 -75
  54. package/esm2022/lib/layout/menu-expandable-panel/menu-expandable-panel.component.mjs +0 -148
  55. package/esm2022/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.mjs +0 -50
  56. package/esm2022/lib/layout/page-title/page-title.component.mjs +0 -86
  57. package/esm2022/lib/notifications/snack-bar/snack-bar.component.mjs +0 -75
  58. package/lib/buttons/base-button.d.ts +0 -21
  59. package/lib/buttons/basic-button/basic-button.component.d.ts +0 -6
  60. package/lib/buttons/flat-button/flat-button.component.d.ts +0 -6
  61. package/lib/buttons/icon-button/icon-button.component.d.ts +0 -6
  62. package/lib/buttons/menu-item/menu-item.component.d.ts +0 -9
  63. package/lib/buttons/raised-button/raised-button.component.d.ts +0 -17
  64. package/lib/buttons/stroked-button/stroked-button.component.d.ts +0 -6
  65. package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +0 -18
  66. package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +0 -17
  67. package/lib/dialogs/services/dialog.service.d.ts +0 -26
  68. package/lib/inputs/cauca-date-time-picker/cauca-date-time-picker.component.d.ts +0 -29
  69. package/lib/inputs/password/models/password-validation.d.ts +0 -9
  70. package/lib/inputs/password/password-criteria/password-criteria.component.d.ts +0 -9
  71. package/lib/inputs/password/password-criteria-viewer/password-criteria-viewer.component.d.ts +0 -9
  72. package/lib/inputs/password/password-input/password-input.component.d.ts +0 -25
  73. package/lib/inputs/password/password-selection/password-selection.component.d.ts +0 -20
  74. package/lib/inputs/password/validators/password-validator.d.ts +0 -9
  75. package/lib/inputs/select-with-search/select-with-search.component.d.ts +0 -32
  76. package/lib/layout/expandable-panel/expandable-panel.component.d.ts +0 -10
  77. package/lib/layout/menu-expandable-panel/menu-expandable-panel.component.d.ts +0 -29
  78. package/lib/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.d.ts +0 -13
  79. package/lib/layout/page-title/page-title.component.d.ts +0 -11
  80. package/lib/notifications/snack-bar/snack-bar.component.d.ts +0 -17
  81. /package/lib/{inputs/cauca-date-time-picker → cauca-date-time-picker}/components/desktop-time-picker/desktop-time-picker.component.d.ts +0 -0
  82. /package/lib/{inputs/cauca-date-time-picker → cauca-date-time-picker}/components/mobile-time-picker/mobile-time-picker.component.d.ts +0 -0
@@ -1,112 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLW1hdGVyaWFsL3NyYy9saWIvaW5wdXRzL3Bhc3N3b3JkL3Bhc3N3b3JkLXNlbGVjdGlvbi9wYXNzd29yZC1zZWxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtbWF0ZXJpYWwvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQvcGFzc3dvcmQtc2VsZWN0aW9uL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0ssT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWdCckUsTUFBTSxPQUFPLDBCQUEwQjtJQVVyQyxZQUFtQixXQUErQjtRQVIzQyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFb0IsY0FBUyxHQUFtQixLQUFLLENB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QUUsaUJBQWlCO29CQUMxQixLQUFLLEVBQUUsSUFBSTtvQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUMxRDthQUNGOztZQ3BCQyxBQURKLCtCQUEwRSxhQUMvQztZQUVuQixBQURBLHdDQUF3SSw0QkFDZ0I7WUFDNUosaUJBQU07WUFDTiw4QkFBb0I7WUFDaEIsa0JBQXlCO1lBRWpDLEFBREksaUJBQU0sRUFDSDtZQUNQLGtEQUE2SDs7WUFUcEcsNkRBQWdEO1lBQW5FLG9DQUFrQjtZQUVpRCxlQUF1QjtZQUFDLEFBQXhCLHFDQUF1QixrQkFBa0I7WUFDN0IsY0FBdUI7WUFBQyxBQUF4QixxQ0FBdUIsa0JBQWtCO1lBTWhHLGVBQXFCO1lBQUMsQUFBdEIsdUNBQXFCLDhDQUEwQzs0QkRHakYsc0JBQXNCLEVBQUUsV0FBVyx1RkFBRSxtQkFBbUIsNkNBQUUsZUFBZSxFQUFFLCtCQUErQjs7aUZBV3pHLDBCQUEwQjtjQWR0QyxTQUFTOzJCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDLGFBRzFHO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3FCQUMxRDtpQkFDRjttREFPb0QsU0FBUztrQkFBN0QsS0FBSzs7a0JBQUksV0FBVzttQkFBQyxzQkFBc0I7WUFDSyxTQUFTO2tCQUF6RCxLQUFLOztrQkFBSSxXQUFXO21CQUFDLGtCQUFrQjs7a0ZBTjdCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXNzd29yZENyaXRlcmlhVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFzc3dvcmQtY3JpdGVyaWEtdmlld2VyL3Bhc3N3b3JkLWNyaXRlcmlhLXZpZXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYXNzd29yZElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFzc3dvcmRWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Bhc3N3b3JkLXZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBQYXNzd29yZFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvcnMvcGFzc3dvcmQtdmFsaWRhdG9yJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBhc3N3b3JkLXNlbGVjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUGFzc3dvcmRJbnB1dENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgUGFzc3dvcmRDcml0ZXJpYVZpZXdlckNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Bhc3N3b3JkLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFzc3dvcmRTZWxlY3Rpb25Db21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIHBhc3N3b3JkVmFsaWRhdGlvbjogUGFzc3dvcmRWYWxpZGF0aW9uID0gbmV3IFBhc3N3b3JkVmFsaWRhdGlvbigpO1xyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJykgcHVibGljIGRpcmVjdGlvbjogJ3Jvdyd8J2NvbHVtbicgPSAncm93JztcclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmZvcm0ud2lkdGgnKSBwdWJsaWMgZm9ybVdpZHRoOiBzdHJpbmcgPSAnNTAlJztcclxuXHJcbiAgcHJpdmF0ZSBsYXN0UGFzc3dvcmRWYWxpZGF0aW9uU2VudCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY29uZmlybWF0aW9uOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9LCB7IHZhbGlkYXRvcnM6IChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uID0gUGFzc3dvcmRWYWxpZGF0b3IudmFsaWRhdGUoZm9ybUdyb3VwKTtcclxuICAgICAgaWYgKCF0aGlzLnBhc3N3b3JkVmFsaWRhdGlvbi5pc1ZhbGlkKCkpIHtcclxuICAgICAgICByZXR1cm4gKHsgdmFsaWRhdGlvbjogdGhpcy5wYXNzd29yZFZhbGlkYXRpb259KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH19KTtcclxuXHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKF8gPT4gdGhpcy5mb3JtLnZhbGlkICE9IHRoaXMubGFzdFBhc3N3b3JkVmFsaWRhdGlvblNlbnQpKS5zdWJzY3JpYmUoZm9ybSA9PiB7XHJcbiAgICAgIHRoaXMubGFzdFBhc3N3b3JkVmFsaWRhdGlvblNlbnQgPSB0aGlzLmZvcm0udmFsaWQ7XHJcbiAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGZvcm0ucGFzc3dvcmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29uZmlybWF0aW9uJykuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB2YWx1ZTtcclxuXHJcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHsvKiBUaGlzIG1ldGhvZCBuZWVkcyB0byBiZSBlbXB0eSAqLyB9O1xyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBbY2xhc3MuZnVsbC13aWR0aC1mb3JtXT1cImRpcmVjdGlvbiA9PT0gJ2NvbHVtbidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYXNzd29yZHNcIj5cclxuICAgICAgICA8YXBwLXBhc3N3b3JkLWlucHV0IGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiIGxhYmVsPVwicGFzc3dvcmRcIiBbdHJhbnNsYXRlTGFiZWxdPVwidHJ1ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiAvPlxyXG4gICAgICAgIDxhcHAtcGFzc3dvcmQtaW5wdXQgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCIgbGFiZWw9XCJwYXNzd29yZENvbmZpcm1hdGlvblwiIFt0cmFuc2xhdGVMYWJlbF09XCJ0cnVlXCIgW3JlcXVpcmVkXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtYXRpb25cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuPGFwcC1wYXNzd29yZC1jcml0ZXJpYS12aWV3ZXIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Bhc3N3b3JkVmFsaWRhdGlvbl09XCJwYXNzd29yZFZhbGlkYXRpb25cIj48L2FwcC1wYXNzd29yZC1jcml0ZXJpYS12aWV3ZXI+Il19
@@ -1,19 +0,0 @@
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==
@@ -1,157 +0,0 @@
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==
@@ -1,75 +0,0 @@
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=
@@ -1,148 +0,0 @@
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==