@wemake4u/form-player-se 1.0.24 → 1.0.25

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 (60) hide show
  1. package/esm2022/lib/dialog/dialog.component.mjs +15 -7
  2. package/esm2022/lib/directives/collapse.directive.mjs +20 -12
  3. package/esm2022/lib/directives/date.directive.mjs +2 -2
  4. package/esm2022/lib/directives/dialog.directive.mjs +2 -1
  5. package/esm2022/lib/directives/dropdown.directive.mjs +23 -5
  6. package/esm2022/lib/directives/formIndex.directive.mjs +25 -0
  7. package/esm2022/lib/directives/grid.directive.mjs +64 -19
  8. package/esm2022/lib/directives/readonly.directive.mjs +101 -0
  9. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +51 -25
  10. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +80 -92
  11. package/esm2022/lib/locale/locale-de.mjs +3 -2
  12. package/esm2022/lib/locale/locale-en.mjs +3 -2
  13. package/esm2022/lib/locale/locale-es.mjs +3 -2
  14. package/esm2022/lib/locale/locale-fr.mjs +3 -2
  15. package/esm2022/lib/locale/locale-it.mjs +3 -2
  16. package/esm2022/lib/locale/locale-pt.mjs +3 -2
  17. package/esm2022/lib/services/chart.service.mjs +62 -56
  18. package/esm2022/lib/services/dialog.service.mjs +1 -1
  19. package/esm2022/lib/services/feel.service.mjs +186 -19
  20. package/esm2022/lib/services/form.service.mjs +76 -12
  21. package/esm2022/lib/services/formatter.service.mjs +68 -54
  22. package/esm2022/lib/services/function.service.mjs +2 -4
  23. package/esm2022/lib/services/grid.service.mjs +163 -51
  24. package/esm2022/lib/services/metadata.service.mjs +1 -8
  25. package/esm2022/lib/services/programmability.service.mjs +318 -64
  26. package/esm2022/lib/services/weak.service.mjs +3 -5
  27. package/esm2022/lib/utils/groupByRow.mjs +3 -1
  28. package/fesm2022/wemake4u-form-player-se.mjs +1254 -566
  29. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  30. package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +1 -0
  31. package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +1 -0
  32. package/lib/components/setFilter/setFilter.component.d.ts +1 -0
  33. package/lib/dialog/dialog.component.d.ts +11 -0
  34. package/lib/directives/collapse.directive.d.ts +7 -4
  35. package/lib/directives/dropdown.directive.d.ts +4 -0
  36. package/lib/directives/formIndex.directive.d.ts +10 -0
  37. package/lib/directives/grid.directive.d.ts +12 -5
  38. package/lib/directives/{disable.directive.d.ts → readonly.directive.d.ts} +7 -4
  39. package/lib/dynamic-fields/dynamic-fields.component.d.ts +27 -4
  40. package/lib/dynamic-form/dynamic-form.component.d.ts +17 -10
  41. package/lib/locale/locale-de.d.ts +1 -0
  42. package/lib/locale/locale-en.d.ts +1 -0
  43. package/lib/locale/locale-es.d.ts +1 -0
  44. package/lib/locale/locale-fr.d.ts +1 -0
  45. package/lib/locale/locale-it.d.ts +1 -0
  46. package/lib/locale/locale-pt.d.ts +1 -0
  47. package/lib/locale/locale.d.ts +7 -0
  48. package/lib/services/chart.service.d.ts +5 -2
  49. package/lib/services/dialog.service.d.ts +0 -1
  50. package/lib/services/feel.service.d.ts +8 -0
  51. package/lib/services/form.service.d.ts +10 -1
  52. package/lib/services/formatter.service.d.ts +8 -6
  53. package/lib/services/grid.service.d.ts +13 -3
  54. package/lib/services/metadata.service.d.ts +0 -3
  55. package/lib/services/programmability.service.d.ts +28 -4
  56. package/lib/utils/groupByRow.d.ts +2 -0
  57. package/package.json +2 -2
  58. package/esm2022/lib/directives/disable.directive.mjs +0 -90
  59. package/esm2022/lib/directives/disable.path.directive.mjs +0 -40
  60. package/lib/directives/disable.path.directive.d.ts +0 -16
@@ -1,5 +1,5 @@
1
1
  import { IEvaluatorProvider } from './programmability.service';
2
- import { AbstractControl } from '@angular/forms';
2
+ import { AbstractControl, FormControlStatus } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  export type Path = string | number | Array<string | number>;
5
5
  type ControlType = 'array' | 'group' | 'control';
@@ -20,15 +20,24 @@ export interface PathOptions {
20
20
  export declare class FormService implements IEvaluatorProvider {
21
21
  set(control: AbstractControl, path: Path, value: any, pathOptions?: PathOptions, patchOptions?: PatchOptions): boolean;
22
22
  get(control: AbstractControl, path: Path, pathOptions?: PathOptions): any;
23
+ getControl(control: AbstractControl, path: Path, pathOptions?: PathOptions): AbstractControl | undefined;
23
24
  prepend(control: AbstractControl, path: Path, value: any, pathOptions?: PathOptions, patchOptions?: PatchOptions): boolean;
24
25
  append(control: AbstractControl, path: Path, value: any, pathOptions?: PathOptions, patchOptions?: PatchOptions): boolean;
25
26
  insert(control: AbstractControl, path: Path, index: number, value: any, pathOptions?: PathOptions, patchOptions?: PatchOptions): boolean;
26
27
  remove(control: AbstractControl, path: Path, index: number): boolean;
27
28
  moveUp(control: AbstractControl, path: Path, index: number): boolean;
28
29
  moveDown(control: AbstractControl, path: Path, index: number): boolean;
30
+ status(control: AbstractControl, path: Path, pathOptions?: PathOptions): FormControlStatus | undefined;
31
+ getInvalidControls(control: AbstractControl): {
32
+ path: string;
33
+ control: AbstractControl;
34
+ }[];
29
35
  patch(control: AbstractControl, value: any, options?: PatchOptions): void;
36
+ getPath(control: AbstractControl): (string | number)[];
30
37
  getContext(formGroup: any): Record<string, any>;
31
38
  private applyPath;
39
+ private asObject;
40
+ private asArray;
32
41
  private insertIntoArray;
33
42
  private removeFromArray;
34
43
  private createArrayItem;
@@ -1,11 +1,13 @@
1
+ import { IEvaluatorProvider } from '../services/programmability.service';
1
2
  import * as i0 from "@angular/core";
2
- export declare class FormatterService {
3
+ export declare class FormatterService implements IEvaluatorProvider {
3
4
  constructor();
4
- formatCurrency(value: any, symbol?: string | null): string;
5
- formatDate(value: any): string;
6
- formatDateTime(value: any): string;
7
- formatInteger(value: any): string;
8
- formatExpression(value: any, expression: string): string;
5
+ formatDate(isoDate: string | null | undefined, options?: Intl.DateTimeFormatOptions, locale?: string): string;
6
+ formatTime(isoDate: string | null | undefined, options?: Intl.DateTimeFormatOptions, locale?: string): string;
7
+ formatDateTime(isoDate: string | null | undefined, options?: Intl.DateTimeFormatOptions, locale?: string): string;
8
+ formatCurrency(value: number, currency?: string, locale?: string): string;
9
+ formatNumber(value: number, decimals?: number, locale?: string): string;
10
+ getContext(): Record<string, any>;
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<FormatterService, never>;
10
12
  static ɵprov: i0.ɵɵInjectableDeclaration<FormatterService>;
11
13
  }
@@ -2,17 +2,27 @@ import { Module, ColDef, GridOptions } from 'ag-grid-community';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { FormatterService } from '../services/formatter.service';
4
4
  import { ProgrammabilityService } from '../services/programmability.service';
5
+ import { LanguageService } from '@wemake4u/interact';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class GridService {
7
8
  private formatter;
9
+ private languageService;
8
10
  private programmability;
9
- constructor(formatter: FormatterService, programmability: ProgrammabilityService);
11
+ constructor(formatter: FormatterService, languageService: LanguageService, programmability: ProgrammabilityService);
10
12
  getModules(): Module[];
11
- getOptions(component: any, formGroup: FormGroup, language: string): GridOptions;
12
- getColumnDefs(component: any, columns: any, formGroup: FormGroup, language: string): ColDef[];
13
+ getOptions(component: any, formGroup: FormGroup): GridOptions;
14
+ getColumnDefs(component: any, columns: any, formGroup: FormGroup): ColDef[];
13
15
  onSelectionChanged(component: any, formGroup: FormGroup, event: any): any;
16
+ private get language();
14
17
  private locale;
15
18
  private resizeGrid;
19
+ private hasActions;
20
+ private hasRowNumbers;
21
+ private createColumnDefs;
22
+ private addActionColumnDef;
23
+ private addRowNumbersColumnDef;
24
+ private groupColumns;
25
+ private groupsToColumnDefs;
16
26
  private setCellDataType;
17
27
  private setCellRenderer;
18
28
  private setAutoHeight;
@@ -7,11 +7,8 @@ export declare class MetadataService {
7
7
  getTemplateByName(name: string): any;
8
8
  getForms(): any[];
9
9
  getFormByName(name: string): any;
10
- setLanguage(language: string): void;
11
- getLanguage(): string;
12
10
  private schema;
13
11
  private forms;
14
- private language;
15
12
  static ɵfac: i0.ɵɵFactoryDeclaration<MetadataService, never>;
16
13
  static ɵprov: i0.ɵɵInjectableDeclaration<MetadataService>;
17
14
  }
@@ -1,12 +1,14 @@
1
1
  import { OnDestroy } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
2
+ import { AbstractControl, FormGroup, ValidatorFn } from '@angular/forms';
3
3
  import { FeelService } from '../services/feel.service';
4
4
  import { ScopeService } from '../services/scope.service';
5
5
  import { RegisterService } from '../services/register.service';
6
6
  import { ToastService } from '../services/toast.service';
7
7
  import { FunctionService } from '../services/function.service';
8
+ import { GlobalService } from '../services/global.service';
8
9
  import { FormService } from './form.service';
9
10
  import { DialogService } from '../services/dialog.service';
11
+ import { FormatterService } from '../services/formatter.service';
10
12
  import { WeakService } from '../services/weak.service';
11
13
  import * as i0 from "@angular/core";
12
14
  export declare class ProgrammabilityService implements OnDestroy {
@@ -14,17 +16,18 @@ export declare class ProgrammabilityService implements OnDestroy {
14
16
  private weakService;
15
17
  private toastService;
16
18
  private dialogService;
19
+ private formatterService;
17
20
  private functionService;
18
21
  private formService;
22
+ private globalService;
19
23
  private register;
20
24
  private scope;
21
- constructor(feelService: FeelService, weakService: WeakService, toastService: ToastService, dialogService: DialogService, functionService: FunctionService, formService: FormService, register: RegisterService, scope: ScopeService);
25
+ constructor(feelService: FeelService, weakService: WeakService, toastService: ToastService, dialogService: DialogService, formatterService: FormatterService, functionService: FunctionService, formService: FormService, globalService: GlobalService, register: RegisterService, scope: ScopeService);
22
26
  private readonly predefinedFunctions;
23
27
  private destroy$;
24
28
  ngOnDestroy(): void;
25
29
  isExpression(text: string | null): boolean;
26
30
  getExpression(text: string | null): string;
27
- watchExpression(formGroup: FormGroup, value: string | null, callback: (value: any) => void): void;
28
31
  evaluateString(formGroup: FormGroup, value: string | null): string;
29
32
  evaluateBoolean(formGroup: FormGroup, value: boolean | string | null, options?: EvaluateOptions): boolean | null;
30
33
  evaluateNumber(formGroup: FormGroup, value: number | string | null): number | null;
@@ -32,10 +35,18 @@ export declare class ProgrammabilityService implements OnDestroy {
32
35
  evaluateTemplate(formGroup: FormGroup, value: string | null): any;
33
36
  evaluateUnary(formGroup: FormGroup, value: string | null, input: any): any;
34
37
  invalidate(value: string | null): void;
38
+ watch(formGroup: FormGroup, dependencies: (string | string[])[], callback: () => void): void;
39
+ getDependencies(expression: string): (string | string[])[];
40
+ disable(formGroup: FormGroup, control: AbstractControl, value: boolean | string | null): void;
41
+ validate(formGroup: FormGroup, key: string, required?: boolean, validations?: ValidationRule[]): [ValidatorFn[], (control: AbstractControl) => void];
35
42
  private cacheable;
43
+ private verbose;
44
+ private onErrorHandler;
45
+ private Init;
36
46
  private evalUnaryTest;
37
47
  private evalExpression;
38
48
  private evalTemplate;
49
+ private onError;
39
50
  private getPredefinedFunctions;
40
51
  private getFormFunctions;
41
52
  private getParentContext;
@@ -43,8 +54,16 @@ export declare class ProgrammabilityService implements OnDestroy {
43
54
  private getParent;
44
55
  private getContext;
45
56
  private watchingExpression;
57
+ private watchingTemplateExpression;
46
58
  private watchingDependencies;
47
- static ɵfac: i0.ɵɵFactoryDeclaration<ProgrammabilityService, [null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
59
+ private invalidateExpression;
60
+ private processDependencies;
61
+ private getPath;
62
+ private validateFn;
63
+ private invalidateFn;
64
+ private validateRule;
65
+ private watchForValidation;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProgrammabilityService, [null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
48
67
  static ɵprov: i0.ɵɵInjectableDeclaration<ProgrammabilityService>;
49
68
  }
50
69
  export interface IEvaluatorProvider {
@@ -55,3 +74,8 @@ export interface EvaluateOptions {
55
74
  extendContext?: ExtendContextFn;
56
75
  }
57
76
  export type ExtendContextFn = () => Record<string, any>;
77
+ export interface ValidationRule {
78
+ expression: string;
79
+ type: "validate" | "invalidate";
80
+ message: string;
81
+ }
@@ -4,7 +4,9 @@ interface Form {
4
4
  name: string;
5
5
  title: string;
6
6
  disabled: string | boolean | null;
7
+ inactive: string | boolean | null;
7
8
  path: string | null;
9
+ verticalAlignment: string | null;
8
10
  isTemplate: boolean | null;
9
11
  i18n: any;
10
12
  components: Component[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wemake4u/form-player-se",
3
- "version": "1.0.24",
3
+ "version": "1.0.25",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^18.2.0",
6
6
  "@angular/common": "^18.2.0",
@@ -15,7 +15,7 @@
15
15
  "ag-charts-community": "^11.3.2",
16
16
  "ngx-sirio-lib": "^1.2.6-A16",
17
17
  "util": "^0.12.5",
18
- "@wemake4u/interact": "^1.0.0"
18
+ "@wemake4u/interact": "^1.0.3"
19
19
  },
20
20
  "dependencies": {
21
21
  "tslib": "^2.3.0",
@@ -1,90 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/forms";
4
- import * as i2 from "../services/global.service";
5
- export class DisableDirective {
6
- ngControl;
7
- global;
8
- el;
9
- renderer;
10
- disableControl = null;
11
- readonly = null;
12
- placeholder = null;
13
- componentRef;
14
- properties;
15
- constructor(ngControl, global, el, renderer) {
16
- this.ngControl = ngControl;
17
- this.global = global;
18
- this.el = el;
19
- this.renderer = renderer;
20
- }
21
- disableClass = "is-disabled";
22
- readonlyClass = "is-readonly";
23
- lightReadonlyClass = "light-readonly";
24
- ngOnChanges(changes) {
25
- if (changes["disableControl"] || changes["readonly"]) {
26
- if (this.ngControl.control) {
27
- if (this.disableControl) {
28
- this.ngControl.control.disable();
29
- this.toggleClass(true, this.disableClass);
30
- this.overridePlaceholder(false);
31
- }
32
- else {
33
- this.ngControl.control.enable();
34
- this.toggleClass(false, this.disableClass);
35
- const disabled = this.readonly === true;
36
- this.ngControl.valueAccessor?.setDisabledState(disabled);
37
- if (this.useLightReadonly()) {
38
- this.toggleClass(disabled, this.lightReadonlyClass);
39
- this.overridePlaceholder(disabled);
40
- }
41
- else {
42
- this.toggleClass(disabled, this.readonlyClass);
43
- }
44
- }
45
- }
46
- }
47
- }
48
- toggleClass(value, className) {
49
- if (value) {
50
- this.renderer.addClass(this.el.nativeElement, className);
51
- }
52
- else {
53
- this.renderer.removeClass(this.el.nativeElement, className);
54
- }
55
- }
56
- overridePlaceholder(value) {
57
- if ('placeholder' in this.componentRef) {
58
- this.componentRef.placeholder = value
59
- ? "-"
60
- : this.placeholder;
61
- }
62
- }
63
- useLightReadonly() {
64
- const value = this.properties?.useLightReadonly
65
- || this.global.getProperty("useLightReadonly", "yes");
66
- if (value !== "yes" && value !== "no")
67
- return true;
68
- return (value === "yes");
69
- }
70
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, deps: [{ token: i1.NgControl }, { token: i2.GlobalService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
71
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DisableDirective, isStandalone: true, selector: "[disableControl], [readonly]", inputs: { disableControl: "disableControl", readonly: "readonly", placeholder: "placeholder", componentRef: "componentRef", properties: "properties" }, usesOnChanges: true, ngImport: i0 });
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, decorators: [{
74
- type: Directive,
75
- args: [{
76
- selector: '[disableControl], [readonly]',
77
- standalone: true
78
- }]
79
- }], ctorParameters: () => [{ type: i1.NgControl }, { type: i2.GlobalService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disableControl: [{
80
- type: Input
81
- }], readonly: [{
82
- type: Input
83
- }], placeholder: [{
84
- type: Input
85
- }], componentRef: [{
86
- type: Input
87
- }], properties: [{
88
- type: Input
89
- }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2Rpc2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQzs7OztBQVFsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBT1A7SUFDUjtJQUNBO0lBQ0E7SUFUSCxjQUFjLEdBQW1CLElBQUksQ0FBQztJQUN0QyxRQUFRLEdBQW1CLElBQUksQ0FBQztJQUNoQyxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxZQUFZLENBQU07SUFDbEIsVUFBVSxDQUFNO0lBRXpCLFlBQW9CLFNBQW9CLEVBQzVCLE1BQXFCLEVBQ3JCLEVBQWMsRUFDZCxRQUFtQjtRQUhYLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUMvQixDQUFDO0lBRU8sWUFBWSxHQUFXLGFBQWEsQ0FBQztJQUNyQyxhQUFhLEdBQVcsYUFBYSxDQUFDO0lBQ3RDLGtCQUFrQixHQUFXLGdCQUFnQixDQUFDO0lBR3RELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO29CQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQXFCLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDckMsQ0FBQzt5QkFDSSxDQUFDO3dCQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDakQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWMsRUFBRSxTQUFpQjtRQUNuRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWM7UUFDeEMsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLEtBQUs7Z0JBQ25DLENBQUMsQ0FBQyxHQUFHO2dCQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCO2VBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSTtZQUNuQyxPQUFPLElBQUksQ0FBQztRQUNkLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0FoRVUsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzJKQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgR2xvYmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rpc2FibGVDb250cm9sXSwgW3JlYWRvbmx5XScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZGlzYWJsZUNvbnRyb2w6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBjb21wb25lbnRSZWY6IGFueTtcclxuICBASW5wdXQoKSBwcm9wZXJ0aWVzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2xcclxuICAgICwgcHJpdmF0ZSBnbG9iYWw6IEdsb2JhbFNlcnZpY2VcclxuICAgICwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxyXG4gICAgLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzYWJsZUNsYXNzOiBzdHJpbmcgPSBcImlzLWRpc2FibGVkXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seUNsYXNzOiBzdHJpbmcgPSBcImlzLXJlYWRvbmx5XCI7XHJcbiAgcHJpdmF0ZSBsaWdodFJlYWRvbmx5Q2xhc3M6IHN0cmluZyA9IFwibGlnaHQtcmVhZG9ubHlcIjtcclxuICBcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJkaXNhYmxlQ29udHJvbFwiXSB8fCBjaGFuZ2VzW1wicmVhZG9ubHlcIl0pIHtcclxuICAgICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlQ29udHJvbCkge1xyXG4gICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNsYXNzKHRydWUsIHRoaXMuZGlzYWJsZUNsYXNzKTtcclxuICAgICAgICAgIHRoaXMub3ZlcnJpZGVQbGFjZWhvbGRlcihmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNsYXNzKGZhbHNlLCB0aGlzLmRpc2FibGVDbGFzcyk7XHJcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMucmVhZG9ubHkgPT09IHRydWU7XHJcbiAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciBhcyBhbnkpPy5zZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcclxuICAgICAgICAgIGlmICh0aGlzLnVzZUxpZ2h0UmVhZG9ubHkoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNsYXNzKGRpc2FibGVkLCB0aGlzLmxpZ2h0UmVhZG9ubHlDbGFzcyk7XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVQbGFjZWhvbGRlcihkaXNhYmxlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2dnbGVDbGFzcyhkaXNhYmxlZCwgdGhpcy5yZWFkb25seUNsYXNzKTtcclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvZ2dsZUNsYXNzKHZhbHVlOiBib29sZWFuLCBjbGFzc05hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG92ZXJyaWRlUGxhY2Vob2xkZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICgncGxhY2Vob2xkZXInIGluIHRoaXMuY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLnBsYWNlaG9sZGVyID0gdmFsdWVcclxuICAgICAgICA/IFwiLVwiXHJcbiAgICAgICAgOiB0aGlzLnBsYWNlaG9sZGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1c2VMaWdodFJlYWRvbmx5KCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnByb3BlcnRpZXM/LnVzZUxpZ2h0UmVhZG9ubHlcclxuICAgICAgfHwgdGhpcy5nbG9iYWwuZ2V0UHJvcGVydHkoXCJ1c2VMaWdodFJlYWRvbmx5XCIsIFwieWVzXCIpO1xyXG4gICAgaWYgKHZhbHVlICE9PSBcInllc1wiICYmIHZhbHVlICE9PSBcIm5vXCIpXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuICh2YWx1ZSA9PT0gXCJ5ZXNcIik7XHJcbiAgfVxyXG5cclxuICBcclxufVxyXG4iXX0=
@@ -1,40 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export class DisablePathDirective {
5
- viewContainer;
6
- config;
7
- constructor(viewContainer) {
8
- this.viewContainer = viewContainer;
9
- }
10
- ngOnChanges(changes) {
11
- if (this.hasValue(this.config.path) && this.config.formGroup) {
12
- var formGroup = this.config.formGroup.get(this.config.path);
13
- if (formGroup instanceof FormGroup) {
14
- if (this.config.disabled) {
15
- formGroup.disable();
16
- }
17
- else {
18
- formGroup.enable();
19
- }
20
- }
21
- }
22
- this.viewContainer.clear();
23
- }
24
- hasValue(value) {
25
- return value != null && value.trim().length > 0;
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisablePathDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
28
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DisablePathDirective, isStandalone: true, selector: "[disablePath]", inputs: { config: ["disablePath", "config"] }, usesOnChanges: true, ngImport: i0 });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisablePathDirective, decorators: [{
31
- type: Directive,
32
- args: [{
33
- selector: '[disablePath]',
34
- standalone: true
35
- }]
36
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { config: [{
37
- type: Input,
38
- args: ['disablePath']
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5wYXRoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvZGlzYWJsZS5wYXRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU0zQyxNQUFNLE9BQU8sb0JBQW9CO0lBUXJCO0lBUFksTUFBTSxDQUkxQjtJQUVGLFlBQ1UsYUFBK0I7UUFBL0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQ3JDLENBQUM7SUFFTCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLFNBQVMsWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN6QixTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNuQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzt3R0E3QlUsb0JBQW9COzRGQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtxRkFFdUIsTUFBTTtzQkFBM0IsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rpc2FibGVQYXRoXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlzYWJsZVBhdGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgnZGlzYWJsZVBhdGgnKSBjb25maWchOiB7XHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbiB8IG51bGw7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIHBhdGg6IHN0cmluZztcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNWYWx1ZSh0aGlzLmNvbmZpZy5wYXRoKSAmJiB0aGlzLmNvbmZpZy5mb3JtR3JvdXApIHtcclxuICAgICAgdmFyIGZvcm1Hcm91cCA9IHRoaXMuY29uZmlnLmZvcm1Hcm91cC5nZXQodGhpcy5jb25maWcucGF0aCk7XHJcbiAgICAgIGlmIChmb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICBpZiAodGhpcy5jb25maWcuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIGZvcm1Hcm91cC5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZvcm1Hcm91cC5lbmFibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,16 +0,0 @@
1
- import { ViewContainerRef, OnChanges, SimpleChanges } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class DisablePathDirective implements OnChanges {
5
- private viewContainer;
6
- config: {
7
- disabled: boolean | null;
8
- formGroup: FormGroup;
9
- path: string;
10
- };
11
- constructor(viewContainer: ViewContainerRef);
12
- ngOnChanges(changes: SimpleChanges): void;
13
- private hasValue;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<DisablePathDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<DisablePathDirective, "[disablePath]", never, { "config": { "alias": "disablePath"; "required": false; }; }, {}, never, never, true, never>;
16
- }