imm-element-ui 1.0.7 → 1.0.9

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 (40) hide show
  1. package/esm2022/lib/form/form/form.component.mjs +9 -6
  2. package/esm2022/lib/form/form-field/field-control.mjs +5 -5
  3. package/esm2022/lib/form/form-field/field-utils.mjs +4 -5
  4. package/esm2022/lib/form/form-field/form-field.mjs +107 -107
  5. package/esm2022/lib/form/form-type/autocomplete.type.mjs +160 -151
  6. package/esm2022/lib/form/form-type/codemirror.type.mjs +5 -4
  7. package/esm2022/lib/form/form-type/datepicker.type.mjs +4 -4
  8. package/esm2022/lib/form/form-type/image.type.mjs +147 -146
  9. package/esm2022/lib/form/form-type/inputnumber.type.mjs +100 -91
  10. package/esm2022/lib/form/form-type/inputtext.type.mjs +28 -19
  11. package/esm2022/lib/form/form-type/multiselect.type.mjs +172 -163
  12. package/esm2022/lib/form/form-type/radio.type.mjs +81 -80
  13. package/esm2022/lib/form/form-type/rowselector.type.mjs +31 -28
  14. package/esm2022/lib/form/form-type/select.type.mjs +136 -136
  15. package/esm2022/lib/form/form-type/textarea.type.mjs +10 -1
  16. package/esm2022/lib/form/form-type/treeselect.type.mjs +4 -4
  17. package/esm2022/lib/form/form-type/upload.type.mjs +135 -134
  18. package/esm2022/lib/grid/actions/actions.component.mjs +3 -3
  19. package/esm2022/lib/page-form/page-form.component.mjs +12 -3
  20. package/esm2022/lib/share/utils.mjs +10 -1
  21. package/fesm2022/imm-element-ui.mjs +1143 -1071
  22. package/fesm2022/imm-element-ui.mjs.map +1 -1
  23. package/lib/form/form/form.component.d.ts +3 -1
  24. package/lib/form/form-field/field-control.d.ts +2 -2
  25. package/lib/form/form-field/field-utils.d.ts +1 -1
  26. package/lib/form/form-field/form-field.d.ts +2 -0
  27. package/lib/form/form-type/autocomplete.type.d.ts +1 -0
  28. package/lib/form/form-type/codemirror.type.d.ts +1 -1
  29. package/lib/form/form-type/datepicker.type.d.ts +1 -1
  30. package/lib/form/form-type/image.type.d.ts +1 -1
  31. package/lib/form/form-type/inputnumber.type.d.ts +1 -0
  32. package/lib/form/form-type/inputtext.type.d.ts +1 -0
  33. package/lib/form/form-type/multiselect.type.d.ts +1 -0
  34. package/lib/form/form-type/radio.type.d.ts +1 -1
  35. package/lib/form/form-type/rowselector.type.d.ts +1 -1
  36. package/lib/form/form-type/select.type.d.ts +1 -2
  37. package/lib/form/form-type/textarea.type.d.ts +1 -0
  38. package/lib/form/form-type/treeselect.type.d.ts +1 -1
  39. package/lib/form/form-type/upload.type.d.ts +1 -1
  40. package/package.json +1 -1
@@ -617,13 +617,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
617
617
  class FieldControl extends FormControl {
618
618
  constructor() {
619
619
  super(...arguments);
620
- this.modelChange = new BehaviorSubject(null);
620
+ this.hookChange = new BehaviorSubject(null);
621
621
  this.submitChange = new BehaviorSubject(false);
622
622
  }
623
- setValue(value, options = {}, detectModelChange = false) {
623
+ setValue(value, options = {}, emitHook = false) {
624
624
  super.setValue(value, options);
625
- if (detectModelChange) {
626
- this.modelChange.next(value);
625
+ if (emitHook) {
626
+ this.hookChange.next(value);
627
627
  }
628
628
  }
629
629
  afterSubmit() {
@@ -1113,20 +1113,19 @@ const _fieldUtils = {
1113
1113
  ? _fieldUtils.props(field).options
1114
1114
  : undefined;
1115
1115
  },
1116
- triggerHookAndSetValue: (field, value, emitEvent, detectModelChange, hookObservers, callback, datePipe) => {
1116
+ triggerHookAndSetValue: (field, value, emitEvent, emitHook, hookObservers, callback, datePipe) => {
1117
1117
  if (field.hook && isObservable(field.hook)) {
1118
1118
  const sub = field.hook
1119
1119
  .pipe(tap((func) => {
1120
1120
  func(field);
1121
1121
  }))
1122
1122
  .subscribe(() => {
1123
- field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { emitEvent }, detectModelChange),
1124
- callback && callback();
1123
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { emitEvent }, emitHook), callback && callback();
1125
1124
  });
1126
1125
  hookObservers.push(() => sub.unsubscribe());
1127
1126
  }
1128
1127
  else {
1129
- field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { emitEvent }, detectModelChange);
1128
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { emitEvent }, emitHook);
1130
1129
  callback && callback();
1131
1130
  }
1132
1131
  },
@@ -1451,6 +1450,7 @@ class InputTextComponent {
1451
1450
  effect(() => {
1452
1451
  if (this.field()) {
1453
1452
  this.props = this.field().inputTextProps;
1453
+ this.handleHookChange();
1454
1454
  this.handleDisabled();
1455
1455
  }
1456
1456
  });
@@ -1476,34 +1476,42 @@ class InputTextComponent {
1476
1476
  }
1477
1477
  });
1478
1478
  }
1479
+ handleHookChange() {
1480
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
1481
+ if (!value) {
1482
+ return;
1483
+ }
1484
+ this.props.onHookChange?.(this.field(), { value });
1485
+ });
1486
+ }
1479
1487
  handleDisabled() {
1480
1488
  if (this.props?.disabled) {
1481
1489
  this.field().fieldControl.disable({ emitEvent: false });
1482
1490
  }
1483
1491
  }
1484
1492
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputTextComponent, isStandalone: true, selector: "form-inputtext", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], ngImport: i0, template: `<input
1486
- #inputRef
1487
- type="text"
1488
- pInputText
1489
- [id]="field()?.uuid"
1490
- [variant]="props.variant"
1491
- [fluid]="props.fluid ?? true"
1492
- [pSize]="props.size"
1493
- [class]="props.class"
1493
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputTextComponent, isStandalone: true, selector: "form-inputtext", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, read: ElementRef }], ngImport: i0, template: `<input
1494
+ #inputRef
1495
+ type="text"
1496
+ pInputText
1497
+ [id]="field()?.uuid"
1498
+ [variant]="props.variant"
1499
+ [fluid]="props.fluid ?? true"
1500
+ [pSize]="props.size"
1501
+ [class]="props.class"
1494
1502
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1495
1503
  }
1496
1504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextComponent, decorators: [{
1497
1505
  type: Component,
1498
- args: [{ selector: 'form-inputtext', standalone: true, imports: [InputTextModule, ReactiveFormsModule], template: `<input
1499
- #inputRef
1500
- type="text"
1501
- pInputText
1502
- [id]="field()?.uuid"
1503
- [variant]="props.variant"
1504
- [fluid]="props.fluid ?? true"
1505
- [pSize]="props.size"
1506
- [class]="props.class"
1506
+ args: [{ selector: 'form-inputtext', standalone: true, imports: [InputTextModule, ReactiveFormsModule], template: `<input
1507
+ #inputRef
1508
+ type="text"
1509
+ pInputText
1510
+ [id]="field()?.uuid"
1511
+ [variant]="props.variant"
1512
+ [fluid]="props.fluid ?? true"
1513
+ [pSize]="props.size"
1514
+ [class]="props.class"
1507
1515
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
1508
1516
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { inputRef: [{
1509
1517
  type: ViewChild,
@@ -1519,6 +1527,7 @@ class InputNumberComponent {
1519
1527
  effect(() => {
1520
1528
  if (this.field()) {
1521
1529
  this.props = this.field().inputNumberProps;
1530
+ this.handleHookChange();
1522
1531
  this.handleDisabled();
1523
1532
  }
1524
1533
  });
@@ -1538,106 +1547,114 @@ class InputNumberComponent {
1538
1547
  }
1539
1548
  }, { allowSignalWrites: true });
1540
1549
  }
1550
+ handleHookChange() {
1551
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
1552
+ if (!value) {
1553
+ return;
1554
+ }
1555
+ this.props.onHookChange?.(this.field(), { value });
1556
+ });
1557
+ }
1541
1558
  handleDisabled() {
1542
1559
  if (this.props?.disabled) {
1543
1560
  this.field().fieldControl.disable({ emitEvent: false });
1544
1561
  }
1545
1562
  }
1546
1563
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputNumberComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1547
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputNumberComponent, isStandalone: true, selector: "form-inputnumber", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputNumber", first: true, predicate: InputNumber, descendants: true }, { propertyName: "inputNumberRef", first: true, predicate: InputNumber, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-inputnumber
1548
- [id]="field()?.uuid"
1549
- [inputId]="field()?.uuid"
1550
- [variant]="props.variant ?? 'outlined'"
1551
- [fluid]="props.fluid"
1552
- [size]="props.size"
1553
- [showButtons]="props.showButtons"
1554
- [format]="props.format ?? true"
1555
- [buttonLayout]="props.buttonLayout ?? 'stacked'"
1556
- [styleClass]="props.styleClass"
1557
- [maxlength]="props.maxlength ?? null"
1558
- [ariaLabelledBy]="props.ariaLabelledBy"
1559
- [ariaLabel]="props.ariaLabel"
1560
- [ariaRequired]="props.ariaRequired"
1561
- [autocomplete]="props.autocomplete"
1562
- [min]="props.min"
1563
- [max]="props.max"
1564
- [incrementButtonClass]="props.incrementButtonClass"
1565
- [decrementButtonClass]="props.decrementButtonClass"
1566
- [incrementButtonIcon]="props.incrementButtonIcon"
1567
- [decrementButtonIcon]="props.decrementButtonIcon"
1568
- [step]="props.step"
1569
- [allowEmpty]="props.allowEmpty ?? true"
1570
- [locale]="props.locale"
1571
- [localeMatcher]="props.localeMatcher"
1572
- [mode]="props.mode"
1573
- [currency]="props.currency"
1574
- [currencyDisplay]="props.currencyDisplay"
1575
- [useGrouping]="props.useGrouping"
1576
- [variant]="props.variant"
1577
- [minFractionDigits]="props.minFractionDigits"
1578
- [maxFractionDigits]="props.maxFractionDigits"
1579
- [prefix]="props.prefix"
1580
- [suffix]="props.suffix"
1581
- [inputStyle]="props.inputStyle"
1582
- [inputStyleClass]="props.inputStyleClass"
1583
- [showClear]="props.showClear"
1584
- [autofocus]="props.autofocus"
1585
- [fluid]="props.fluid == undefined ? true : props.fluid"
1586
- (onInput)="props.onInput?.(field()!, $event)"
1587
- (onFocus)="props.onFocus?.(field()!, $event)"
1588
- (onBlur)="props.onBlur?.(field()!, $event)"
1589
- (onKeyDown)="props.onKeyDown?.(field()!, $event)"
1590
- (onClear)="props.onClear?.(field()!, $event)"
1591
- [class]="props.class ?? 'field-vvvv'"
1564
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputNumberComponent, isStandalone: true, selector: "form-inputnumber", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputNumber", first: true, predicate: InputNumber, descendants: true }, { propertyName: "inputNumberRef", first: true, predicate: InputNumber, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-inputnumber
1565
+ [id]="field()?.uuid"
1566
+ [inputId]="field()?.uuid"
1567
+ [variant]="props.variant ?? 'outlined'"
1568
+ [fluid]="props.fluid"
1569
+ [size]="props.size"
1570
+ [showButtons]="props.showButtons"
1571
+ [format]="props.format ?? true"
1572
+ [buttonLayout]="props.buttonLayout ?? 'stacked'"
1573
+ [styleClass]="props.styleClass"
1574
+ [maxlength]="props.maxlength ?? null"
1575
+ [ariaLabelledBy]="props.ariaLabelledBy"
1576
+ [ariaLabel]="props.ariaLabel"
1577
+ [ariaRequired]="props.ariaRequired"
1578
+ [autocomplete]="props.autocomplete"
1579
+ [min]="props.min"
1580
+ [max]="props.max"
1581
+ [incrementButtonClass]="props.incrementButtonClass"
1582
+ [decrementButtonClass]="props.decrementButtonClass"
1583
+ [incrementButtonIcon]="props.incrementButtonIcon"
1584
+ [decrementButtonIcon]="props.decrementButtonIcon"
1585
+ [step]="props.step"
1586
+ [allowEmpty]="props.allowEmpty ?? true"
1587
+ [locale]="props.locale"
1588
+ [localeMatcher]="props.localeMatcher"
1589
+ [mode]="props.mode"
1590
+ [currency]="props.currency"
1591
+ [currencyDisplay]="props.currencyDisplay"
1592
+ [useGrouping]="props.useGrouping"
1593
+ [variant]="props.variant"
1594
+ [minFractionDigits]="props.minFractionDigits"
1595
+ [maxFractionDigits]="props.maxFractionDigits"
1596
+ [prefix]="props.prefix"
1597
+ [suffix]="props.suffix"
1598
+ [inputStyle]="props.inputStyle"
1599
+ [inputStyleClass]="props.inputStyleClass"
1600
+ [showClear]="props.showClear"
1601
+ [autofocus]="props.autofocus"
1602
+ [fluid]="props.fluid == undefined ? true : props.fluid"
1603
+ (onInput)="props.onInput?.(field()!, $event)"
1604
+ (onFocus)="props.onFocus?.(field()!, $event)"
1605
+ (onBlur)="props.onBlur?.(field()!, $event)"
1606
+ (onKeyDown)="props.onKeyDown?.(field()!, $event)"
1607
+ (onClear)="props.onClear?.(field()!, $event)"
1608
+ [class]="props.class ?? 'field-vvvv'"
1592
1609
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".field-vvvv{background:red}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1593
1610
  }
1594
1611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputNumberComponent, decorators: [{
1595
1612
  type: Component,
1596
- args: [{ selector: 'form-inputnumber', standalone: true, imports: [InputTextModule, InputNumber, ReactiveFormsModule], template: `<p-inputnumber
1597
- [id]="field()?.uuid"
1598
- [inputId]="field()?.uuid"
1599
- [variant]="props.variant ?? 'outlined'"
1600
- [fluid]="props.fluid"
1601
- [size]="props.size"
1602
- [showButtons]="props.showButtons"
1603
- [format]="props.format ?? true"
1604
- [buttonLayout]="props.buttonLayout ?? 'stacked'"
1605
- [styleClass]="props.styleClass"
1606
- [maxlength]="props.maxlength ?? null"
1607
- [ariaLabelledBy]="props.ariaLabelledBy"
1608
- [ariaLabel]="props.ariaLabel"
1609
- [ariaRequired]="props.ariaRequired"
1610
- [autocomplete]="props.autocomplete"
1611
- [min]="props.min"
1612
- [max]="props.max"
1613
- [incrementButtonClass]="props.incrementButtonClass"
1614
- [decrementButtonClass]="props.decrementButtonClass"
1615
- [incrementButtonIcon]="props.incrementButtonIcon"
1616
- [decrementButtonIcon]="props.decrementButtonIcon"
1617
- [step]="props.step"
1618
- [allowEmpty]="props.allowEmpty ?? true"
1619
- [locale]="props.locale"
1620
- [localeMatcher]="props.localeMatcher"
1621
- [mode]="props.mode"
1622
- [currency]="props.currency"
1623
- [currencyDisplay]="props.currencyDisplay"
1624
- [useGrouping]="props.useGrouping"
1625
- [variant]="props.variant"
1626
- [minFractionDigits]="props.minFractionDigits"
1627
- [maxFractionDigits]="props.maxFractionDigits"
1628
- [prefix]="props.prefix"
1629
- [suffix]="props.suffix"
1630
- [inputStyle]="props.inputStyle"
1631
- [inputStyleClass]="props.inputStyleClass"
1632
- [showClear]="props.showClear"
1633
- [autofocus]="props.autofocus"
1634
- [fluid]="props.fluid == undefined ? true : props.fluid"
1635
- (onInput)="props.onInput?.(field()!, $event)"
1636
- (onFocus)="props.onFocus?.(field()!, $event)"
1637
- (onBlur)="props.onBlur?.(field()!, $event)"
1638
- (onKeyDown)="props.onKeyDown?.(field()!, $event)"
1639
- (onClear)="props.onClear?.(field()!, $event)"
1640
- [class]="props.class ?? 'field-vvvv'"
1613
+ args: [{ selector: 'form-inputnumber', standalone: true, imports: [InputTextModule, InputNumber, ReactiveFormsModule], template: `<p-inputnumber
1614
+ [id]="field()?.uuid"
1615
+ [inputId]="field()?.uuid"
1616
+ [variant]="props.variant ?? 'outlined'"
1617
+ [fluid]="props.fluid"
1618
+ [size]="props.size"
1619
+ [showButtons]="props.showButtons"
1620
+ [format]="props.format ?? true"
1621
+ [buttonLayout]="props.buttonLayout ?? 'stacked'"
1622
+ [styleClass]="props.styleClass"
1623
+ [maxlength]="props.maxlength ?? null"
1624
+ [ariaLabelledBy]="props.ariaLabelledBy"
1625
+ [ariaLabel]="props.ariaLabel"
1626
+ [ariaRequired]="props.ariaRequired"
1627
+ [autocomplete]="props.autocomplete"
1628
+ [min]="props.min"
1629
+ [max]="props.max"
1630
+ [incrementButtonClass]="props.incrementButtonClass"
1631
+ [decrementButtonClass]="props.decrementButtonClass"
1632
+ [incrementButtonIcon]="props.incrementButtonIcon"
1633
+ [decrementButtonIcon]="props.decrementButtonIcon"
1634
+ [step]="props.step"
1635
+ [allowEmpty]="props.allowEmpty ?? true"
1636
+ [locale]="props.locale"
1637
+ [localeMatcher]="props.localeMatcher"
1638
+ [mode]="props.mode"
1639
+ [currency]="props.currency"
1640
+ [currencyDisplay]="props.currencyDisplay"
1641
+ [useGrouping]="props.useGrouping"
1642
+ [variant]="props.variant"
1643
+ [minFractionDigits]="props.minFractionDigits"
1644
+ [maxFractionDigits]="props.maxFractionDigits"
1645
+ [prefix]="props.prefix"
1646
+ [suffix]="props.suffix"
1647
+ [inputStyle]="props.inputStyle"
1648
+ [inputStyleClass]="props.inputStyleClass"
1649
+ [showClear]="props.showClear"
1650
+ [autofocus]="props.autofocus"
1651
+ [fluid]="props.fluid == undefined ? true : props.fluid"
1652
+ (onInput)="props.onInput?.(field()!, $event)"
1653
+ (onFocus)="props.onFocus?.(field()!, $event)"
1654
+ (onBlur)="props.onBlur?.(field()!, $event)"
1655
+ (onKeyDown)="props.onKeyDown?.(field()!, $event)"
1656
+ (onClear)="props.onClear?.(field()!, $event)"
1657
+ [class]="props.class ?? 'field-vvvv'"
1641
1658
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".field-vvvv{background:red}\n"] }]
1642
1659
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { inputNumber: [{
1643
1660
  type: ViewChild,
@@ -1656,7 +1673,7 @@ class SelectComponent {
1656
1673
  effect(() => {
1657
1674
  if (this.field()) {
1658
1675
  this.props = this.field().selectProps;
1659
- this.handleModelChange();
1676
+ this.handleHookChange();
1660
1677
  this.handleDisabled();
1661
1678
  }
1662
1679
  });
@@ -1678,8 +1695,8 @@ class SelectComponent {
1678
1695
  }
1679
1696
  }, { allowSignalWrites: true });
1680
1697
  }
1681
- handleModelChange() {
1682
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
1698
+ handleHookChange() {
1699
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
1683
1700
  if (!value) {
1684
1701
  return;
1685
1702
  }
@@ -1692,142 +1709,142 @@ class SelectComponent {
1692
1709
  }
1693
1710
  }
1694
1711
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1695
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SelectComponent, isStandalone: true, selector: "form-select", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "select", first: true, predicate: Select, descendants: true }, { propertyName: "selectRef", first: true, predicate: Select, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-select
1696
- [id]="field()?.uuid"
1697
- [inputId]="field()?.uuid"
1698
- [scrollHeight]="props.scrollHeight ?? '200px'"
1699
- [filter]="props.filter"
1700
- [name]="props.name"
1701
- [options]="props.options"
1702
- [optionLabel]="props.optionLabel"
1703
- [optionValue]="props.optionValue"
1704
- [placeholder]="props.placeholder"
1705
- [class]="props.class"
1706
- [style]="props.style"
1707
- [panelStyle]="props.panelStyle"
1708
- [panelStyleClass]="props.panelStyleClass"
1709
- [readonly]="props.readonly"
1710
- [editable]="props.editable"
1711
- [appendTo]="props.appendTo ?? 'body'"
1712
- [tabindex]="props.tabindex"
1713
- [placeholder]="props.placeholder"
1714
- [loadingIcon]="props.loadingIcon"
1715
- [filterPlaceholder]="props.filterPlaceholder"
1716
- [filterLocale]="props.filterLocale"
1717
- [variant]="props.variant"
1718
- [dataKey]="props.dataKey"
1719
- [filterBy]="props.filterBy"
1720
- [filterFields]="props.filterFields"
1721
- [autofocus]="props.autofocus"
1722
- [resetFilterOnHide]="props.resetFilterOnHide"
1723
- [checkmark]="props.checkmark"
1724
- [dropdownIcon]="props.dropdownIcon"
1725
- [loading]="props.loading"
1726
- [optionDisabled]="props.optionDisabled"
1727
- [optionGroupLabel]="props.optionGroupLabel"
1728
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
1729
- [group]="props.group"
1730
- [showClear]="props.showClear"
1731
- [emptyFilterMessage]="props.emptyFilterMessage"
1732
- [emptyMessage]="props.emptyMessage"
1733
- [lazy]="props.lazy"
1734
- [virtualScroll]="props.virtualScroll"
1735
- [virtualScrollItemSize]="props.virtualScrollItemSize"
1736
- [virtualScrollOptions]="props.virtualScrollOptions"
1737
- [overlayOptions]="props.overlayOptions"
1738
- [size]="props.size"
1739
- [ariaFilterLabel]="props.ariaFilterLabel"
1740
- [ariaLabel]="props.ariaLabel"
1741
- [ariaLabelledBy]="props.ariaLabelledBy"
1742
- [filterMatchMode]="props.filterMatchMode"
1743
- [maxlength]="props.maxlength"
1744
- [tooltip]="props.tooltip"
1745
- [tooltipPosition]="props.tooltipPosition ?? 'right'"
1746
- [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
1747
- [tooltipStyleClass]="props.tooltipStyleClass"
1748
- [focusOnHover]="props.focusOnHover ?? true"
1749
- [fluid]="props.fluid ?? true"
1750
- [filterValue]="props.filterValue"
1751
- (onChange)="props.onChange?.(field()!, $event)"
1752
- (onFilter)="props.onFilter?.(field()!, $event)"
1753
- (onFocus)="props.onFocus?.(field()!, $event)"
1754
- (onBlur)="props.onBlur?.(field()!, $event)"
1755
- (onClick)="props.onClick?.(field()!, $event)"
1756
- (onShow)="props.onShow?.(field()!, $event)"
1757
- (onHide)="props.onHide?.(field()!, $event)"
1758
- (onClear)="props.onClear?.(field()!, $event)"
1759
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
1760
- [class]="props.class"
1712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SelectComponent, isStandalone: true, selector: "form-select", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "select", first: true, predicate: Select, descendants: true }, { propertyName: "selectRef", first: true, predicate: Select, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-select
1713
+ [id]="field()?.uuid"
1714
+ [inputId]="field()?.uuid"
1715
+ [scrollHeight]="props.scrollHeight ?? '200px'"
1716
+ [filter]="props.filter"
1717
+ [name]="props.name"
1718
+ [options]="props.options"
1719
+ [optionLabel]="props.optionLabel"
1720
+ [optionValue]="props.optionValue"
1721
+ [placeholder]="props.placeholder"
1722
+ [class]="props.class"
1723
+ [style]="props.style"
1724
+ [panelStyle]="props.panelStyle"
1725
+ [panelStyleClass]="props.panelStyleClass"
1726
+ [readonly]="props.readonly"
1727
+ [editable]="props.editable"
1728
+ [appendTo]="props.appendTo ?? 'body'"
1729
+ [tabindex]="props.tabindex"
1730
+ [placeholder]="props.placeholder"
1731
+ [loadingIcon]="props.loadingIcon"
1732
+ [filterPlaceholder]="props.filterPlaceholder"
1733
+ [filterLocale]="props.filterLocale"
1734
+ [variant]="props.variant"
1735
+ [dataKey]="props.dataKey"
1736
+ [filterBy]="props.filterBy"
1737
+ [filterFields]="props.filterFields"
1738
+ [autofocus]="props.autofocus"
1739
+ [resetFilterOnHide]="props.resetFilterOnHide"
1740
+ [checkmark]="props.checkmark"
1741
+ [dropdownIcon]="props.dropdownIcon"
1742
+ [loading]="props.loading"
1743
+ [optionDisabled]="props.optionDisabled"
1744
+ [optionGroupLabel]="props.optionGroupLabel"
1745
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
1746
+ [group]="props.group"
1747
+ [showClear]="props.showClear"
1748
+ [emptyFilterMessage]="props.emptyFilterMessage"
1749
+ [emptyMessage]="props.emptyMessage"
1750
+ [lazy]="props.lazy"
1751
+ [virtualScroll]="props.virtualScroll"
1752
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
1753
+ [virtualScrollOptions]="props.virtualScrollOptions"
1754
+ [overlayOptions]="props.overlayOptions"
1755
+ [size]="props.size"
1756
+ [ariaFilterLabel]="props.ariaFilterLabel"
1757
+ [ariaLabel]="props.ariaLabel"
1758
+ [ariaLabelledBy]="props.ariaLabelledBy"
1759
+ [filterMatchMode]="props.filterMatchMode"
1760
+ [maxlength]="props.maxlength"
1761
+ [tooltip]="props.tooltip"
1762
+ [tooltipPosition]="props.tooltipPosition ?? 'right'"
1763
+ [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
1764
+ [tooltipStyleClass]="props.tooltipStyleClass"
1765
+ [focusOnHover]="props.focusOnHover ?? true"
1766
+ [fluid]="props.fluid ?? true"
1767
+ [filterValue]="props.filterValue"
1768
+ (onChange)="props.onChange?.(field()!, $event)"
1769
+ (onFilter)="props.onFilter?.(field()!, $event)"
1770
+ (onFocus)="props.onFocus?.(field()!, $event)"
1771
+ (onBlur)="props.onBlur?.(field()!, $event)"
1772
+ (onClick)="props.onClick?.(field()!, $event)"
1773
+ (onShow)="props.onShow?.(field()!, $event)"
1774
+ (onHide)="props.onHide?.(field()!, $event)"
1775
+ (onClear)="props.onClear?.(field()!, $event)"
1776
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
1777
+ [class]="props.class"
1761
1778
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1762
1779
  }
1763
1780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, decorators: [{
1764
1781
  type: Component,
1765
- args: [{ selector: 'form-select', standalone: true, imports: [Select, ReactiveFormsModule], template: `<p-select
1766
- [id]="field()?.uuid"
1767
- [inputId]="field()?.uuid"
1768
- [scrollHeight]="props.scrollHeight ?? '200px'"
1769
- [filter]="props.filter"
1770
- [name]="props.name"
1771
- [options]="props.options"
1772
- [optionLabel]="props.optionLabel"
1773
- [optionValue]="props.optionValue"
1774
- [placeholder]="props.placeholder"
1775
- [class]="props.class"
1776
- [style]="props.style"
1777
- [panelStyle]="props.panelStyle"
1778
- [panelStyleClass]="props.panelStyleClass"
1779
- [readonly]="props.readonly"
1780
- [editable]="props.editable"
1781
- [appendTo]="props.appendTo ?? 'body'"
1782
- [tabindex]="props.tabindex"
1783
- [placeholder]="props.placeholder"
1784
- [loadingIcon]="props.loadingIcon"
1785
- [filterPlaceholder]="props.filterPlaceholder"
1786
- [filterLocale]="props.filterLocale"
1787
- [variant]="props.variant"
1788
- [dataKey]="props.dataKey"
1789
- [filterBy]="props.filterBy"
1790
- [filterFields]="props.filterFields"
1791
- [autofocus]="props.autofocus"
1792
- [resetFilterOnHide]="props.resetFilterOnHide"
1793
- [checkmark]="props.checkmark"
1794
- [dropdownIcon]="props.dropdownIcon"
1795
- [loading]="props.loading"
1796
- [optionDisabled]="props.optionDisabled"
1797
- [optionGroupLabel]="props.optionGroupLabel"
1798
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
1799
- [group]="props.group"
1800
- [showClear]="props.showClear"
1801
- [emptyFilterMessage]="props.emptyFilterMessage"
1802
- [emptyMessage]="props.emptyMessage"
1803
- [lazy]="props.lazy"
1804
- [virtualScroll]="props.virtualScroll"
1805
- [virtualScrollItemSize]="props.virtualScrollItemSize"
1806
- [virtualScrollOptions]="props.virtualScrollOptions"
1807
- [overlayOptions]="props.overlayOptions"
1808
- [size]="props.size"
1809
- [ariaFilterLabel]="props.ariaFilterLabel"
1810
- [ariaLabel]="props.ariaLabel"
1811
- [ariaLabelledBy]="props.ariaLabelledBy"
1812
- [filterMatchMode]="props.filterMatchMode"
1813
- [maxlength]="props.maxlength"
1814
- [tooltip]="props.tooltip"
1815
- [tooltipPosition]="props.tooltipPosition ?? 'right'"
1816
- [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
1817
- [tooltipStyleClass]="props.tooltipStyleClass"
1818
- [focusOnHover]="props.focusOnHover ?? true"
1819
- [fluid]="props.fluid ?? true"
1820
- [filterValue]="props.filterValue"
1821
- (onChange)="props.onChange?.(field()!, $event)"
1822
- (onFilter)="props.onFilter?.(field()!, $event)"
1823
- (onFocus)="props.onFocus?.(field()!, $event)"
1824
- (onBlur)="props.onBlur?.(field()!, $event)"
1825
- (onClick)="props.onClick?.(field()!, $event)"
1826
- (onShow)="props.onShow?.(field()!, $event)"
1827
- (onHide)="props.onHide?.(field()!, $event)"
1828
- (onClear)="props.onClear?.(field()!, $event)"
1829
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
1830
- [class]="props.class"
1782
+ args: [{ selector: 'form-select', standalone: true, imports: [Select, ReactiveFormsModule], template: `<p-select
1783
+ [id]="field()?.uuid"
1784
+ [inputId]="field()?.uuid"
1785
+ [scrollHeight]="props.scrollHeight ?? '200px'"
1786
+ [filter]="props.filter"
1787
+ [name]="props.name"
1788
+ [options]="props.options"
1789
+ [optionLabel]="props.optionLabel"
1790
+ [optionValue]="props.optionValue"
1791
+ [placeholder]="props.placeholder"
1792
+ [class]="props.class"
1793
+ [style]="props.style"
1794
+ [panelStyle]="props.panelStyle"
1795
+ [panelStyleClass]="props.panelStyleClass"
1796
+ [readonly]="props.readonly"
1797
+ [editable]="props.editable"
1798
+ [appendTo]="props.appendTo ?? 'body'"
1799
+ [tabindex]="props.tabindex"
1800
+ [placeholder]="props.placeholder"
1801
+ [loadingIcon]="props.loadingIcon"
1802
+ [filterPlaceholder]="props.filterPlaceholder"
1803
+ [filterLocale]="props.filterLocale"
1804
+ [variant]="props.variant"
1805
+ [dataKey]="props.dataKey"
1806
+ [filterBy]="props.filterBy"
1807
+ [filterFields]="props.filterFields"
1808
+ [autofocus]="props.autofocus"
1809
+ [resetFilterOnHide]="props.resetFilterOnHide"
1810
+ [checkmark]="props.checkmark"
1811
+ [dropdownIcon]="props.dropdownIcon"
1812
+ [loading]="props.loading"
1813
+ [optionDisabled]="props.optionDisabled"
1814
+ [optionGroupLabel]="props.optionGroupLabel"
1815
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
1816
+ [group]="props.group"
1817
+ [showClear]="props.showClear"
1818
+ [emptyFilterMessage]="props.emptyFilterMessage"
1819
+ [emptyMessage]="props.emptyMessage"
1820
+ [lazy]="props.lazy"
1821
+ [virtualScroll]="props.virtualScroll"
1822
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
1823
+ [virtualScrollOptions]="props.virtualScrollOptions"
1824
+ [overlayOptions]="props.overlayOptions"
1825
+ [size]="props.size"
1826
+ [ariaFilterLabel]="props.ariaFilterLabel"
1827
+ [ariaLabel]="props.ariaLabel"
1828
+ [ariaLabelledBy]="props.ariaLabelledBy"
1829
+ [filterMatchMode]="props.filterMatchMode"
1830
+ [maxlength]="props.maxlength"
1831
+ [tooltip]="props.tooltip"
1832
+ [tooltipPosition]="props.tooltipPosition ?? 'right'"
1833
+ [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
1834
+ [tooltipStyleClass]="props.tooltipStyleClass"
1835
+ [focusOnHover]="props.focusOnHover ?? true"
1836
+ [fluid]="props.fluid ?? true"
1837
+ [filterValue]="props.filterValue"
1838
+ (onChange)="props.onChange?.(field()!, $event)"
1839
+ (onFilter)="props.onFilter?.(field()!, $event)"
1840
+ (onFocus)="props.onFocus?.(field()!, $event)"
1841
+ (onBlur)="props.onBlur?.(field()!, $event)"
1842
+ (onClick)="props.onClick?.(field()!, $event)"
1843
+ (onShow)="props.onShow?.(field()!, $event)"
1844
+ (onHide)="props.onHide?.(field()!, $event)"
1845
+ (onClear)="props.onClear?.(field()!, $event)"
1846
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
1847
+ [class]="props.class"
1831
1848
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
1832
1849
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { select: [{
1833
1850
  type: ViewChild,
@@ -1846,7 +1863,7 @@ class TreeSelectComponent {
1846
1863
  effect(() => {
1847
1864
  if (this.field()) {
1848
1865
  this.props = this.field().treeSelectProps;
1849
- this.handleModelChange();
1866
+ this.handleHookChange();
1850
1867
  this.handleDisabled();
1851
1868
  }
1852
1869
  });
@@ -1871,8 +1888,8 @@ class TreeSelectComponent {
1871
1888
  }
1872
1889
  }, { allowSignalWrites: true });
1873
1890
  }
1874
- handleModelChange() {
1875
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
1891
+ handleHookChange() {
1892
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
1876
1893
  if (!value) {
1877
1894
  return;
1878
1895
  }
@@ -2024,7 +2041,7 @@ class DatePickerComponent {
2024
2041
  effect(() => {
2025
2042
  if (this.field()) {
2026
2043
  this.props = this.field().datePickerProps;
2027
- this.handleModelChange();
2044
+ this.handleHookChange();
2028
2045
  this.handleDisabled();
2029
2046
  }
2030
2047
  });
@@ -2047,8 +2064,8 @@ class DatePickerComponent {
2047
2064
  }, { allowSignalWrites: true });
2048
2065
  }
2049
2066
  ngOnInit() { }
2050
- handleModelChange() {
2051
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
2067
+ handleHookChange() {
2068
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
2052
2069
  if (!value) {
2053
2070
  return;
2054
2071
  }
@@ -2281,6 +2298,7 @@ class AutoCompleteComponent {
2281
2298
  effect(() => {
2282
2299
  if (this.field()) {
2283
2300
  this.props = this.field().autoCompleteProps;
2301
+ this.handleHookChange();
2284
2302
  this.handleDisabled();
2285
2303
  }
2286
2304
  });
@@ -2300,166 +2318,174 @@ class AutoCompleteComponent {
2300
2318
  }
2301
2319
  });
2302
2320
  }
2321
+ handleHookChange() {
2322
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
2323
+ if (!value) {
2324
+ return;
2325
+ }
2326
+ this.props.onHookChange?.(this.field(), { value });
2327
+ });
2328
+ }
2303
2329
  handleDisabled() {
2304
2330
  if (this.props?.disabled) {
2305
2331
  this.field().fieldControl.disable({ emitEvent: false });
2306
2332
  }
2307
2333
  }
2308
2334
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
2309
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AutoCompleteComponent, isStandalone: true, selector: "form-autocomplete", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-autocomplete
2310
- [id]="field()?.uuid"
2311
- [inputId]="field()?.uuid"
2312
- [minLength]="props.minLength ?? 1"
2313
- [delay]="props.delay ?? 300"
2314
- [panelStyle]="props.panelStyle"
2315
- [panelStyleClass]="props.panelStyleClass"
2316
- [styleClass]="props.styleClass"
2317
- [inputStyle]="props.inputStyle"
2318
- [inputStyleClass]="props.inputStyleClass"
2319
- [placeholder]="props.placeholder"
2320
- [readonly]="props.readonly"
2321
- [scrollHeight]="props.scrollHeight ?? '200px'"
2322
- [lazy]="props.lazy"
2323
- [virtualScroll]="props.virtualScroll"
2324
- [virtualScrollItemSize]="props.virtualScrollItemSize"
2325
- [virtualScrollOptions]="props.virtualScrollOptions"
2326
- [maxlength]="props.maxlength"
2327
- [name]="props.name"
2328
- [size]="props.size"
2329
- [appendTo]="props.appendTo ?? 'body'"
2330
- [autoHighlight]="props.autoHighlight"
2331
- [forceSelection]="props.forceSelection"
2332
- [type]="props.type ?? 'text'"
2333
- [autoZIndex]="props.autoZIndex ?? true"
2334
- [baseZIndex]="props.baseZIndex ?? 0"
2335
- [ariaLabel]="props.ariaLabel"
2336
- [ariaLabelledBy]="props.ariaLabelledBy"
2337
- [dropdownAriaLabel]="props.dropdownAriaLabel"
2338
- [dropdownIcon]="props.dropdownIcon"
2339
- [unique]="props.unique ?? true"
2340
- [group]="props.group"
2341
- [completeOnFocus]="props.completeOnFocus"
2342
- [showClear]="props.showClear"
2343
- [dropdown]="props.dropdown"
2344
- [showEmptyMessage]="props.showEmptyMessage ?? true"
2345
- [dropdownMode]="props.dropdownMode ?? 'blank'"
2346
- [multiple]="props.multiple"
2347
- [tabindex]="props.tabindex"
2348
- [dataKey]="props.dataKey"
2349
- [emptyMessage]="props.emptyMessage"
2350
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
2351
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
2352
- [autofocus]="props.autofocus"
2353
- [autocomplete]="props.autocomplete ?? 'off'"
2354
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2355
- [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
2356
- [overlayOptions]="props.overlayOptions"
2357
- [suggestions]="props.suggestions ?? []"
2358
- [optionLabel]="props.optionLabel"
2359
- [optionValue]="props.optionValue"
2360
- [searchMessage]="props.searchMessage ?? '{0} results are available'"
2361
- [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
2362
- [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
2363
- [autoOptionFocus]="props.autoOptionFocus"
2364
- [selectOnFocus]="props.selectOnFocus"
2365
- [searchLocale]="props.searchLocale"
2366
- [optionDisabled]="props.optionDisabled"
2367
- [focusOnHover]="props.focusOnHover ?? true"
2368
- [typeahead]="props.typeahead ?? true"
2369
- [variant]="props.variant"
2370
- [fluid]="props.fluid ?? true"
2371
- [class]="props.class"
2372
- [style]="props.style"
2373
- (completeMethod)="props.completeMethod?.(field()!, $event)"
2374
- (onSelect)="props.onSelect?.(field()!, $event)"
2375
- (onUnselect)="props.onUnselect?.(field()!, $event)"
2376
- (onFocus)="props.onFocus?.(field()!, $event)"
2377
- (onBlur)="props.onBlur?.(field()!, $event)"
2378
- (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
2379
- (onClear)="props.onClear?.(field()!, $event)"
2380
- (onKeyUp)="props.onKeyUp?.(field()!, $event)"
2381
- (onShow)="props.onShow?.(field()!, $event)"
2382
- (onHide)="props.onHide?.(field()!, $event)"
2383
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2335
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AutoCompleteComponent, isStandalone: true, selector: "form-autocomplete", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-autocomplete
2336
+ [id]="field()?.uuid"
2337
+ [inputId]="field()?.uuid"
2338
+ [minLength]="props.minLength ?? 1"
2339
+ [delay]="props.delay ?? 300"
2340
+ [panelStyle]="props.panelStyle"
2341
+ [panelStyleClass]="props.panelStyleClass"
2342
+ [styleClass]="props.styleClass"
2343
+ [inputStyle]="props.inputStyle"
2344
+ [inputStyleClass]="props.inputStyleClass"
2345
+ [placeholder]="props.placeholder"
2346
+ [readonly]="props.readonly"
2347
+ [scrollHeight]="props.scrollHeight ?? '200px'"
2348
+ [lazy]="props.lazy"
2349
+ [virtualScroll]="props.virtualScroll"
2350
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
2351
+ [virtualScrollOptions]="props.virtualScrollOptions"
2352
+ [maxlength]="props.maxlength"
2353
+ [name]="props.name"
2354
+ [size]="props.size"
2355
+ [appendTo]="props.appendTo ?? 'body'"
2356
+ [autoHighlight]="props.autoHighlight"
2357
+ [forceSelection]="props.forceSelection"
2358
+ [type]="props.type ?? 'text'"
2359
+ [autoZIndex]="props.autoZIndex ?? true"
2360
+ [baseZIndex]="props.baseZIndex ?? 0"
2361
+ [ariaLabel]="props.ariaLabel"
2362
+ [ariaLabelledBy]="props.ariaLabelledBy"
2363
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
2364
+ [dropdownIcon]="props.dropdownIcon"
2365
+ [unique]="props.unique ?? true"
2366
+ [group]="props.group"
2367
+ [completeOnFocus]="props.completeOnFocus"
2368
+ [showClear]="props.showClear"
2369
+ [dropdown]="props.dropdown"
2370
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
2371
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
2372
+ [multiple]="props.multiple"
2373
+ [tabindex]="props.tabindex"
2374
+ [dataKey]="props.dataKey"
2375
+ [emptyMessage]="props.emptyMessage"
2376
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
2377
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
2378
+ [autofocus]="props.autofocus"
2379
+ [autocomplete]="props.autocomplete ?? 'off'"
2380
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2381
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
2382
+ [overlayOptions]="props.overlayOptions"
2383
+ [suggestions]="props.suggestions ?? []"
2384
+ [optionLabel]="props.optionLabel"
2385
+ [optionValue]="props.optionValue"
2386
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
2387
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
2388
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
2389
+ [autoOptionFocus]="props.autoOptionFocus"
2390
+ [selectOnFocus]="props.selectOnFocus"
2391
+ [searchLocale]="props.searchLocale"
2392
+ [optionDisabled]="props.optionDisabled"
2393
+ [focusOnHover]="props.focusOnHover ?? true"
2394
+ [typeahead]="props.typeahead ?? true"
2395
+ [variant]="props.variant"
2396
+ [fluid]="props.fluid ?? true"
2397
+ [class]="props.class"
2398
+ [style]="props.style"
2399
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
2400
+ (onSelect)="props.onSelect?.(field()!, $event)"
2401
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
2402
+ (onFocus)="props.onFocus?.(field()!, $event)"
2403
+ (onBlur)="props.onBlur?.(field()!, $event)"
2404
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
2405
+ (onClear)="props.onClear?.(field()!, $event)"
2406
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
2407
+ (onShow)="props.onShow?.(field()!, $event)"
2408
+ (onHide)="props.onHide?.(field()!, $event)"
2409
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2384
2410
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2385
2411
  }
2386
2412
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, decorators: [{
2387
2413
  type: Component,
2388
- args: [{ selector: 'form-autocomplete', standalone: true, imports: [AutoComplete, ReactiveFormsModule], template: `<p-autocomplete
2389
- [id]="field()?.uuid"
2390
- [inputId]="field()?.uuid"
2391
- [minLength]="props.minLength ?? 1"
2392
- [delay]="props.delay ?? 300"
2393
- [panelStyle]="props.panelStyle"
2394
- [panelStyleClass]="props.panelStyleClass"
2395
- [styleClass]="props.styleClass"
2396
- [inputStyle]="props.inputStyle"
2397
- [inputStyleClass]="props.inputStyleClass"
2398
- [placeholder]="props.placeholder"
2399
- [readonly]="props.readonly"
2400
- [scrollHeight]="props.scrollHeight ?? '200px'"
2401
- [lazy]="props.lazy"
2402
- [virtualScroll]="props.virtualScroll"
2403
- [virtualScrollItemSize]="props.virtualScrollItemSize"
2404
- [virtualScrollOptions]="props.virtualScrollOptions"
2405
- [maxlength]="props.maxlength"
2406
- [name]="props.name"
2407
- [size]="props.size"
2408
- [appendTo]="props.appendTo ?? 'body'"
2409
- [autoHighlight]="props.autoHighlight"
2410
- [forceSelection]="props.forceSelection"
2411
- [type]="props.type ?? 'text'"
2412
- [autoZIndex]="props.autoZIndex ?? true"
2413
- [baseZIndex]="props.baseZIndex ?? 0"
2414
- [ariaLabel]="props.ariaLabel"
2415
- [ariaLabelledBy]="props.ariaLabelledBy"
2416
- [dropdownAriaLabel]="props.dropdownAriaLabel"
2417
- [dropdownIcon]="props.dropdownIcon"
2418
- [unique]="props.unique ?? true"
2419
- [group]="props.group"
2420
- [completeOnFocus]="props.completeOnFocus"
2421
- [showClear]="props.showClear"
2422
- [dropdown]="props.dropdown"
2423
- [showEmptyMessage]="props.showEmptyMessage ?? true"
2424
- [dropdownMode]="props.dropdownMode ?? 'blank'"
2425
- [multiple]="props.multiple"
2426
- [tabindex]="props.tabindex"
2427
- [dataKey]="props.dataKey"
2428
- [emptyMessage]="props.emptyMessage"
2429
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
2430
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
2431
- [autofocus]="props.autofocus"
2432
- [autocomplete]="props.autocomplete ?? 'off'"
2433
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2434
- [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
2435
- [overlayOptions]="props.overlayOptions"
2436
- [suggestions]="props.suggestions ?? []"
2437
- [optionLabel]="props.optionLabel"
2438
- [optionValue]="props.optionValue"
2439
- [searchMessage]="props.searchMessage ?? '{0} results are available'"
2440
- [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
2441
- [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
2442
- [autoOptionFocus]="props.autoOptionFocus"
2443
- [selectOnFocus]="props.selectOnFocus"
2444
- [searchLocale]="props.searchLocale"
2445
- [optionDisabled]="props.optionDisabled"
2446
- [focusOnHover]="props.focusOnHover ?? true"
2447
- [typeahead]="props.typeahead ?? true"
2448
- [variant]="props.variant"
2449
- [fluid]="props.fluid ?? true"
2450
- [class]="props.class"
2451
- [style]="props.style"
2452
- (completeMethod)="props.completeMethod?.(field()!, $event)"
2453
- (onSelect)="props.onSelect?.(field()!, $event)"
2454
- (onUnselect)="props.onUnselect?.(field()!, $event)"
2455
- (onFocus)="props.onFocus?.(field()!, $event)"
2456
- (onBlur)="props.onBlur?.(field()!, $event)"
2457
- (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
2458
- (onClear)="props.onClear?.(field()!, $event)"
2459
- (onKeyUp)="props.onKeyUp?.(field()!, $event)"
2460
- (onShow)="props.onShow?.(field()!, $event)"
2461
- (onHide)="props.onHide?.(field()!, $event)"
2462
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2414
+ args: [{ selector: 'form-autocomplete', standalone: true, imports: [AutoComplete, ReactiveFormsModule], template: `<p-autocomplete
2415
+ [id]="field()?.uuid"
2416
+ [inputId]="field()?.uuid"
2417
+ [minLength]="props.minLength ?? 1"
2418
+ [delay]="props.delay ?? 300"
2419
+ [panelStyle]="props.panelStyle"
2420
+ [panelStyleClass]="props.panelStyleClass"
2421
+ [styleClass]="props.styleClass"
2422
+ [inputStyle]="props.inputStyle"
2423
+ [inputStyleClass]="props.inputStyleClass"
2424
+ [placeholder]="props.placeholder"
2425
+ [readonly]="props.readonly"
2426
+ [scrollHeight]="props.scrollHeight ?? '200px'"
2427
+ [lazy]="props.lazy"
2428
+ [virtualScroll]="props.virtualScroll"
2429
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
2430
+ [virtualScrollOptions]="props.virtualScrollOptions"
2431
+ [maxlength]="props.maxlength"
2432
+ [name]="props.name"
2433
+ [size]="props.size"
2434
+ [appendTo]="props.appendTo ?? 'body'"
2435
+ [autoHighlight]="props.autoHighlight"
2436
+ [forceSelection]="props.forceSelection"
2437
+ [type]="props.type ?? 'text'"
2438
+ [autoZIndex]="props.autoZIndex ?? true"
2439
+ [baseZIndex]="props.baseZIndex ?? 0"
2440
+ [ariaLabel]="props.ariaLabel"
2441
+ [ariaLabelledBy]="props.ariaLabelledBy"
2442
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
2443
+ [dropdownIcon]="props.dropdownIcon"
2444
+ [unique]="props.unique ?? true"
2445
+ [group]="props.group"
2446
+ [completeOnFocus]="props.completeOnFocus"
2447
+ [showClear]="props.showClear"
2448
+ [dropdown]="props.dropdown"
2449
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
2450
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
2451
+ [multiple]="props.multiple"
2452
+ [tabindex]="props.tabindex"
2453
+ [dataKey]="props.dataKey"
2454
+ [emptyMessage]="props.emptyMessage"
2455
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
2456
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
2457
+ [autofocus]="props.autofocus"
2458
+ [autocomplete]="props.autocomplete ?? 'off'"
2459
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2460
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
2461
+ [overlayOptions]="props.overlayOptions"
2462
+ [suggestions]="props.suggestions ?? []"
2463
+ [optionLabel]="props.optionLabel"
2464
+ [optionValue]="props.optionValue"
2465
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
2466
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
2467
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
2468
+ [autoOptionFocus]="props.autoOptionFocus"
2469
+ [selectOnFocus]="props.selectOnFocus"
2470
+ [searchLocale]="props.searchLocale"
2471
+ [optionDisabled]="props.optionDisabled"
2472
+ [focusOnHover]="props.focusOnHover ?? true"
2473
+ [typeahead]="props.typeahead ?? true"
2474
+ [variant]="props.variant"
2475
+ [fluid]="props.fluid ?? true"
2476
+ [class]="props.class"
2477
+ [style]="props.style"
2478
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
2479
+ (onSelect)="props.onSelect?.(field()!, $event)"
2480
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
2481
+ (onFocus)="props.onFocus?.(field()!, $event)"
2482
+ (onBlur)="props.onBlur?.(field()!, $event)"
2483
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
2484
+ (onClear)="props.onClear?.(field()!, $event)"
2485
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
2486
+ (onShow)="props.onShow?.(field()!, $event)"
2487
+ (onHide)="props.onHide?.(field()!, $event)"
2488
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2463
2489
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
2464
2490
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { autoCompleteRef: [{
2465
2491
  type: ViewChild,
@@ -2475,6 +2501,7 @@ class MultiSelectComponent {
2475
2501
  effect(() => {
2476
2502
  if (this.field()) {
2477
2503
  this.props = this.field().multiSelectProps;
2504
+ this.handleHookChange();
2478
2505
  this.handleDisabled();
2479
2506
  }
2480
2507
  });
@@ -2496,6 +2523,14 @@ class MultiSelectComponent {
2496
2523
  }
2497
2524
  }, { allowSignalWrites: true });
2498
2525
  }
2526
+ handleHookChange() {
2527
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
2528
+ if (!value) {
2529
+ return;
2530
+ }
2531
+ this.props.onHookChange?.(this.field(), { value });
2532
+ });
2533
+ }
2499
2534
  handleDisabled() {
2500
2535
  setTimeout(() => {
2501
2536
  if (this.props?.disabled) {
@@ -2504,172 +2539,172 @@ class MultiSelectComponent {
2504
2539
  });
2505
2540
  }
2506
2541
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiSelectComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
2507
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: MultiSelectComponent, isStandalone: true, selector: "form-multiselect", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "multiselect", first: true, predicate: MultiSelect, descendants: true }, { propertyName: "multiselectRef", first: true, predicate: MultiSelect, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-multiselect
2508
- [id]="field()?.uuid"
2509
- [inputId]="field()?.uuid"
2510
- [optionLabel]="props.optionLabel"
2511
- [optionValue]="props.optionValue"
2512
- [ariaLabel]="props.ariaLabel"
2513
- [style]="props.style"
2514
- [styleClass]="props.styleClass"
2515
- [panelStyle]="props.panelStyle"
2516
- [panelStyleClass]="props.panelStyleClass"
2517
- [fluid]="props.fluid ?? true"
2518
- [readonly]="props.readonly"
2519
- [appendTo]="props.appendTo ?? 'body'"
2520
- [options]="props.options"
2521
- [dataKey]="props.dataKey"
2522
- [group]="props.group"
2523
- [filter]="props.filter"
2524
- [filterPlaceHolder]="props.filterPlaceHolder"
2525
- [filterLocale]="props.filterLocale"
2526
- [overlayVisible]="props.overlayVisible"
2527
- [variant]="props.variant"
2528
- [name]="props.name"
2529
- [tabindex]="props.tabindex"
2530
- [ariaLabelledBy]="props.ariaLabelledBy"
2531
- [displaySelectedLabel]="props.displaySelectedLabel ?? true"
2532
- [maxSelectedLabels]="props.maxSelectedLabels"
2533
- [selectionLimit]="props.selectionLimit"
2534
- [selectedItemsLabel]="props.selectedItemsLabel"
2535
- [showToggleAll]="props.showToggleAll ?? true"
2536
- [emptyFilterMessage]="props.emptyFilterMessage"
2537
- [emptyMessage]="props.emptyMessage"
2538
- [resetFilterOnHide]="props.resetFilterOnHide"
2539
- [dropdownIcon]="props.dropdownIcon"
2540
- [chipIcon]="props.chipIcon"
2541
- [optionDisabled]="props.optionDisabled"
2542
- [optionGroupLabel]="props.optionGroupLabel"
2543
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2544
- [showHeader]="props.showHeader ?? true"
2545
- [filterBy]="props.filterBy"
2546
- [scrollHeight]="props.scrollHeight ?? '200px'"
2547
- [lazy]="props.lazy"
2548
- [virtualScroll]="props.virtualScroll"
2549
- [loading]="props.loading"
2550
- [virtualScrollItemSize]="props.virtualScrollItemSize"
2551
- [loadingIcon]="props.loadingIcon"
2552
- [virtualScrollOptions]="props.virtualScrollOptions"
2553
- [overlayOptions]="props.overlayOptions"
2554
- [ariaFilterLabel]="props.ariaFilterLabel"
2555
- [filterMatchMode]="props.filterMatchMode"
2556
- [tooltip]="props.tooltip"
2557
- [tooltipPosition]="props.tooltipPosition ?? 'right'"
2558
- [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
2559
- [tooltipStyleClass]="props.tooltipStyleClass"
2560
- [autofocusFilter]="props.autofocusFilter"
2561
- [display]="props.display ?? 'comma'"
2562
- [autocomplete]="props.autocomplete ?? 'off'"
2563
- [size]="props.size"
2564
- [showClear]="props.showClear"
2565
- [autofocus]="props.autofocus"
2566
- [placeholder]="props.placeholder"
2567
- [filterValue]="props.filterValue"
2568
- [selectAll]="props.selectAll ?? null"
2569
- [focusOnHover]="props.focusOnHover ?? true"
2570
- [filterFields]="props.filterFields"
2571
- [selectOnFocus]="props.selectOnFocus"
2572
- [autoOptionFocus]="props.autoOptionFocus"
2573
- [class]="props.class"
2574
- [placeholder]="props.placeholder"
2575
- [maxlength]="props.maxlength"
2576
- (onChange)="props.onChange?.(field()!, $event)"
2577
- (onFilter)="props.onFilter?.(field()!, $event)"
2578
- (onFocus)="props.onFocus?.(field()!, $event)"
2579
- (onBlur)="props.onBlur?.(field()!, $event)"
2580
- (onClick)="props.onClick?.(field()!, $event)"
2581
- (onClear)="props.onClear?.(field()!, $event)"
2582
- (onPanelShow)="props.onPanelShow?.(field()!, $event)"
2583
- (onPanelHide)="props.onPanelHide?.(field()!, $event)"
2584
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2585
- (onRemove)="props.onRemove?.(field()!, $event)"
2586
- (onSelectAllChange)="props.onSelectAllChange?.(field()!, $event)"
2587
- [class]="props.class"
2542
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: MultiSelectComponent, isStandalone: true, selector: "form-multiselect", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "multiselect", first: true, predicate: MultiSelect, descendants: true }, { propertyName: "multiselectRef", first: true, predicate: MultiSelect, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-multiselect
2543
+ [id]="field()?.uuid"
2544
+ [inputId]="field()?.uuid"
2545
+ [optionLabel]="props.optionLabel"
2546
+ [optionValue]="props.optionValue"
2547
+ [ariaLabel]="props.ariaLabel"
2548
+ [style]="props.style"
2549
+ [styleClass]="props.styleClass"
2550
+ [panelStyle]="props.panelStyle"
2551
+ [panelStyleClass]="props.panelStyleClass"
2552
+ [fluid]="props.fluid ?? true"
2553
+ [readonly]="props.readonly"
2554
+ [appendTo]="props.appendTo ?? 'body'"
2555
+ [options]="props.options"
2556
+ [dataKey]="props.dataKey"
2557
+ [group]="props.group"
2558
+ [filter]="props.filter"
2559
+ [filterPlaceHolder]="props.filterPlaceHolder"
2560
+ [filterLocale]="props.filterLocale"
2561
+ [overlayVisible]="props.overlayVisible"
2562
+ [variant]="props.variant"
2563
+ [name]="props.name"
2564
+ [tabindex]="props.tabindex"
2565
+ [ariaLabelledBy]="props.ariaLabelledBy"
2566
+ [displaySelectedLabel]="props.displaySelectedLabel ?? true"
2567
+ [maxSelectedLabels]="props.maxSelectedLabels"
2568
+ [selectionLimit]="props.selectionLimit"
2569
+ [selectedItemsLabel]="props.selectedItemsLabel"
2570
+ [showToggleAll]="props.showToggleAll ?? true"
2571
+ [emptyFilterMessage]="props.emptyFilterMessage"
2572
+ [emptyMessage]="props.emptyMessage"
2573
+ [resetFilterOnHide]="props.resetFilterOnHide"
2574
+ [dropdownIcon]="props.dropdownIcon"
2575
+ [chipIcon]="props.chipIcon"
2576
+ [optionDisabled]="props.optionDisabled"
2577
+ [optionGroupLabel]="props.optionGroupLabel"
2578
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2579
+ [showHeader]="props.showHeader ?? true"
2580
+ [filterBy]="props.filterBy"
2581
+ [scrollHeight]="props.scrollHeight ?? '200px'"
2582
+ [lazy]="props.lazy"
2583
+ [virtualScroll]="props.virtualScroll"
2584
+ [loading]="props.loading"
2585
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
2586
+ [loadingIcon]="props.loadingIcon"
2587
+ [virtualScrollOptions]="props.virtualScrollOptions"
2588
+ [overlayOptions]="props.overlayOptions"
2589
+ [ariaFilterLabel]="props.ariaFilterLabel"
2590
+ [filterMatchMode]="props.filterMatchMode"
2591
+ [tooltip]="props.tooltip"
2592
+ [tooltipPosition]="props.tooltipPosition ?? 'right'"
2593
+ [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
2594
+ [tooltipStyleClass]="props.tooltipStyleClass"
2595
+ [autofocusFilter]="props.autofocusFilter"
2596
+ [display]="props.display ?? 'comma'"
2597
+ [autocomplete]="props.autocomplete ?? 'off'"
2598
+ [size]="props.size"
2599
+ [showClear]="props.showClear"
2600
+ [autofocus]="props.autofocus"
2601
+ [placeholder]="props.placeholder"
2602
+ [filterValue]="props.filterValue"
2603
+ [selectAll]="props.selectAll ?? null"
2604
+ [focusOnHover]="props.focusOnHover ?? true"
2605
+ [filterFields]="props.filterFields"
2606
+ [selectOnFocus]="props.selectOnFocus"
2607
+ [autoOptionFocus]="props.autoOptionFocus"
2608
+ [class]="props.class"
2609
+ [placeholder]="props.placeholder"
2610
+ [maxlength]="props.maxlength"
2611
+ (onChange)="props.onChange?.(field()!, $event)"
2612
+ (onFilter)="props.onFilter?.(field()!, $event)"
2613
+ (onFocus)="props.onFocus?.(field()!, $event)"
2614
+ (onBlur)="props.onBlur?.(field()!, $event)"
2615
+ (onClick)="props.onClick?.(field()!, $event)"
2616
+ (onClear)="props.onClear?.(field()!, $event)"
2617
+ (onPanelShow)="props.onPanelShow?.(field()!, $event)"
2618
+ (onPanelHide)="props.onPanelHide?.(field()!, $event)"
2619
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2620
+ (onRemove)="props.onRemove?.(field()!, $event)"
2621
+ (onSelectAllChange)="props.onSelectAllChange?.(field()!, $event)"
2622
+ [class]="props.class"
2588
2623
  [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2589
2624
  }
2590
2625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiSelectComponent, decorators: [{
2591
2626
  type: Component,
2592
- args: [{ selector: 'form-multiselect', standalone: true, imports: [MultiSelect, ReactiveFormsModule], template: `<p-multiselect
2593
- [id]="field()?.uuid"
2594
- [inputId]="field()?.uuid"
2595
- [optionLabel]="props.optionLabel"
2596
- [optionValue]="props.optionValue"
2597
- [ariaLabel]="props.ariaLabel"
2598
- [style]="props.style"
2599
- [styleClass]="props.styleClass"
2600
- [panelStyle]="props.panelStyle"
2601
- [panelStyleClass]="props.panelStyleClass"
2602
- [fluid]="props.fluid ?? true"
2603
- [readonly]="props.readonly"
2604
- [appendTo]="props.appendTo ?? 'body'"
2605
- [options]="props.options"
2606
- [dataKey]="props.dataKey"
2607
- [group]="props.group"
2608
- [filter]="props.filter"
2609
- [filterPlaceHolder]="props.filterPlaceHolder"
2610
- [filterLocale]="props.filterLocale"
2611
- [overlayVisible]="props.overlayVisible"
2612
- [variant]="props.variant"
2613
- [name]="props.name"
2614
- [tabindex]="props.tabindex"
2615
- [ariaLabelledBy]="props.ariaLabelledBy"
2616
- [displaySelectedLabel]="props.displaySelectedLabel ?? true"
2617
- [maxSelectedLabels]="props.maxSelectedLabels"
2618
- [selectionLimit]="props.selectionLimit"
2619
- [selectedItemsLabel]="props.selectedItemsLabel"
2620
- [showToggleAll]="props.showToggleAll ?? true"
2621
- [emptyFilterMessage]="props.emptyFilterMessage"
2622
- [emptyMessage]="props.emptyMessage"
2623
- [resetFilterOnHide]="props.resetFilterOnHide"
2624
- [dropdownIcon]="props.dropdownIcon"
2625
- [chipIcon]="props.chipIcon"
2626
- [optionDisabled]="props.optionDisabled"
2627
- [optionGroupLabel]="props.optionGroupLabel"
2628
- [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2629
- [showHeader]="props.showHeader ?? true"
2630
- [filterBy]="props.filterBy"
2631
- [scrollHeight]="props.scrollHeight ?? '200px'"
2632
- [lazy]="props.lazy"
2633
- [virtualScroll]="props.virtualScroll"
2634
- [loading]="props.loading"
2635
- [virtualScrollItemSize]="props.virtualScrollItemSize"
2636
- [loadingIcon]="props.loadingIcon"
2637
- [virtualScrollOptions]="props.virtualScrollOptions"
2638
- [overlayOptions]="props.overlayOptions"
2639
- [ariaFilterLabel]="props.ariaFilterLabel"
2640
- [filterMatchMode]="props.filterMatchMode"
2641
- [tooltip]="props.tooltip"
2642
- [tooltipPosition]="props.tooltipPosition ?? 'right'"
2643
- [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
2644
- [tooltipStyleClass]="props.tooltipStyleClass"
2645
- [autofocusFilter]="props.autofocusFilter"
2646
- [display]="props.display ?? 'comma'"
2647
- [autocomplete]="props.autocomplete ?? 'off'"
2648
- [size]="props.size"
2649
- [showClear]="props.showClear"
2650
- [autofocus]="props.autofocus"
2651
- [placeholder]="props.placeholder"
2652
- [filterValue]="props.filterValue"
2653
- [selectAll]="props.selectAll ?? null"
2654
- [focusOnHover]="props.focusOnHover ?? true"
2655
- [filterFields]="props.filterFields"
2656
- [selectOnFocus]="props.selectOnFocus"
2657
- [autoOptionFocus]="props.autoOptionFocus"
2658
- [class]="props.class"
2659
- [placeholder]="props.placeholder"
2660
- [maxlength]="props.maxlength"
2661
- (onChange)="props.onChange?.(field()!, $event)"
2662
- (onFilter)="props.onFilter?.(field()!, $event)"
2663
- (onFocus)="props.onFocus?.(field()!, $event)"
2664
- (onBlur)="props.onBlur?.(field()!, $event)"
2665
- (onClick)="props.onClick?.(field()!, $event)"
2666
- (onClear)="props.onClear?.(field()!, $event)"
2667
- (onPanelShow)="props.onPanelShow?.(field()!, $event)"
2668
- (onPanelHide)="props.onPanelHide?.(field()!, $event)"
2669
- (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2670
- (onRemove)="props.onRemove?.(field()!, $event)"
2671
- (onSelectAllChange)="props.onSelectAllChange?.(field()!, $event)"
2672
- [class]="props.class"
2627
+ args: [{ selector: 'form-multiselect', standalone: true, imports: [MultiSelect, ReactiveFormsModule], template: `<p-multiselect
2628
+ [id]="field()?.uuid"
2629
+ [inputId]="field()?.uuid"
2630
+ [optionLabel]="props.optionLabel"
2631
+ [optionValue]="props.optionValue"
2632
+ [ariaLabel]="props.ariaLabel"
2633
+ [style]="props.style"
2634
+ [styleClass]="props.styleClass"
2635
+ [panelStyle]="props.panelStyle"
2636
+ [panelStyleClass]="props.panelStyleClass"
2637
+ [fluid]="props.fluid ?? true"
2638
+ [readonly]="props.readonly"
2639
+ [appendTo]="props.appendTo ?? 'body'"
2640
+ [options]="props.options"
2641
+ [dataKey]="props.dataKey"
2642
+ [group]="props.group"
2643
+ [filter]="props.filter"
2644
+ [filterPlaceHolder]="props.filterPlaceHolder"
2645
+ [filterLocale]="props.filterLocale"
2646
+ [overlayVisible]="props.overlayVisible"
2647
+ [variant]="props.variant"
2648
+ [name]="props.name"
2649
+ [tabindex]="props.tabindex"
2650
+ [ariaLabelledBy]="props.ariaLabelledBy"
2651
+ [displaySelectedLabel]="props.displaySelectedLabel ?? true"
2652
+ [maxSelectedLabels]="props.maxSelectedLabels"
2653
+ [selectionLimit]="props.selectionLimit"
2654
+ [selectedItemsLabel]="props.selectedItemsLabel"
2655
+ [showToggleAll]="props.showToggleAll ?? true"
2656
+ [emptyFilterMessage]="props.emptyFilterMessage"
2657
+ [emptyMessage]="props.emptyMessage"
2658
+ [resetFilterOnHide]="props.resetFilterOnHide"
2659
+ [dropdownIcon]="props.dropdownIcon"
2660
+ [chipIcon]="props.chipIcon"
2661
+ [optionDisabled]="props.optionDisabled"
2662
+ [optionGroupLabel]="props.optionGroupLabel"
2663
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
2664
+ [showHeader]="props.showHeader ?? true"
2665
+ [filterBy]="props.filterBy"
2666
+ [scrollHeight]="props.scrollHeight ?? '200px'"
2667
+ [lazy]="props.lazy"
2668
+ [virtualScroll]="props.virtualScroll"
2669
+ [loading]="props.loading"
2670
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
2671
+ [loadingIcon]="props.loadingIcon"
2672
+ [virtualScrollOptions]="props.virtualScrollOptions"
2673
+ [overlayOptions]="props.overlayOptions"
2674
+ [ariaFilterLabel]="props.ariaFilterLabel"
2675
+ [filterMatchMode]="props.filterMatchMode"
2676
+ [tooltip]="props.tooltip"
2677
+ [tooltipPosition]="props.tooltipPosition ?? 'right'"
2678
+ [tooltipPositionStyle]="props.tooltipPositionStyle ?? 'absolute'"
2679
+ [tooltipStyleClass]="props.tooltipStyleClass"
2680
+ [autofocusFilter]="props.autofocusFilter"
2681
+ [display]="props.display ?? 'comma'"
2682
+ [autocomplete]="props.autocomplete ?? 'off'"
2683
+ [size]="props.size"
2684
+ [showClear]="props.showClear"
2685
+ [autofocus]="props.autofocus"
2686
+ [placeholder]="props.placeholder"
2687
+ [filterValue]="props.filterValue"
2688
+ [selectAll]="props.selectAll ?? null"
2689
+ [focusOnHover]="props.focusOnHover ?? true"
2690
+ [filterFields]="props.filterFields"
2691
+ [selectOnFocus]="props.selectOnFocus"
2692
+ [autoOptionFocus]="props.autoOptionFocus"
2693
+ [class]="props.class"
2694
+ [placeholder]="props.placeholder"
2695
+ [maxlength]="props.maxlength"
2696
+ (onChange)="props.onChange?.(field()!, $event)"
2697
+ (onFilter)="props.onFilter?.(field()!, $event)"
2698
+ (onFocus)="props.onFocus?.(field()!, $event)"
2699
+ (onBlur)="props.onBlur?.(field()!, $event)"
2700
+ (onClick)="props.onClick?.(field()!, $event)"
2701
+ (onClear)="props.onClear?.(field()!, $event)"
2702
+ (onPanelShow)="props.onPanelShow?.(field()!, $event)"
2703
+ (onPanelHide)="props.onPanelHide?.(field()!, $event)"
2704
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
2705
+ (onRemove)="props.onRemove?.(field()!, $event)"
2706
+ (onSelectAllChange)="props.onSelectAllChange?.(field()!, $event)"
2707
+ [class]="props.class"
2673
2708
  [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
2674
2709
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { multiselect: [{
2675
2710
  type: ViewChild,
@@ -2694,8 +2729,8 @@ class RadioComponent {
2694
2729
  if (this.props.options !== undefined && !Array.isArray(this.props.options)) {
2695
2730
  this.props.options = [];
2696
2731
  }
2732
+ this.handleHookChange();
2697
2733
  this.handleDisabled();
2698
- this.handleModelChange();
2699
2734
  }
2700
2735
  }, { allowSignalWrites: true });
2701
2736
  effect(() => {
@@ -2741,11 +2776,12 @@ class RadioComponent {
2741
2776
  this.field().fieldControl.disable({ emitEvent: false });
2742
2777
  }
2743
2778
  }
2744
- handleModelChange() {
2745
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
2779
+ handleHookChange() {
2780
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
2746
2781
  if (value == null) {
2747
2782
  return;
2748
2783
  }
2784
+ this.props.onHookChange?.(this.field(), { value });
2749
2785
  this.props.onChange?.(this.field(), { value });
2750
2786
  });
2751
2787
  }
@@ -2769,86 +2805,86 @@ class RadioComponent {
2769
2805
  });
2770
2806
  }
2771
2807
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioComponent, deps: [{ token: ActionService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2772
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RadioComponent, isStandalone: true, selector: "form-radio", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "radioContainer", first: true, predicate: ["radioContainer"], descendants: true }], ngImport: i0, template: ` <div
2773
- #radioContainer
2774
- style="width: 100%; height: 100%"
2775
- class="radio-container">
2776
- @if (isEnter) {
2777
- <div
2778
- [id]="field()?.uuid"
2779
- class="flex flex-wrap gap-4">
2780
- @for (op of props.options; track op) {
2781
- <div class="flex items-center">
2782
- <p-radiobutton
2783
- [value]="op.value"
2784
- [name]="op.name"
2785
- [tabindex]="op.tabindex"
2786
- [inputId]="field()?.uuid"
2787
- [ariaLabelledBy]="op.ariaLabelledBy"
2788
- [ariaLabel]="op.ariaLabel"
2789
- [style]="op.style"
2790
- [styleClass]="op.styleClass"
2791
- [autofocus]="op.autofocus"
2792
- [variant]="op.variant"
2793
- [class]="op.class ?? props.class"
2794
- [binary]="!!props.binary"
2795
- (onClick)="onClick(field()!, $event)"
2796
- (onFocus)="props.onFocus?.(field()!, $event)"
2797
- (onBlur)="props.onBlur?.(field()!, $event)"
2798
- [formControl]="field()!.fieldControl!" />
2799
- <label
2800
- [for]="field()?.key"
2801
- class="radio-label ml-2"
2802
- >{{ op.label }}</label
2803
- >
2804
- </div>
2805
- }
2806
- </div>
2807
- } @else {
2808
- <div class="radio-label">{{ currentLabel() }}</div>
2809
- }
2808
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RadioComponent, isStandalone: true, selector: "form-radio", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "radioContainer", first: true, predicate: ["radioContainer"], descendants: true }], ngImport: i0, template: ` <div
2809
+ #radioContainer
2810
+ style="width: 100%; height: 100%"
2811
+ class="radio-container">
2812
+ @if (isEnter) {
2813
+ <div
2814
+ [id]="field()?.uuid"
2815
+ class="flex flex-wrap gap-4">
2816
+ @for (op of props.options; track op) {
2817
+ <div class="flex items-center">
2818
+ <p-radiobutton
2819
+ [value]="op.value"
2820
+ [name]="op.name"
2821
+ [tabindex]="op.tabindex"
2822
+ [inputId]="field()?.uuid"
2823
+ [ariaLabelledBy]="op.ariaLabelledBy"
2824
+ [ariaLabel]="op.ariaLabel"
2825
+ [style]="op.style"
2826
+ [styleClass]="op.styleClass"
2827
+ [autofocus]="op.autofocus"
2828
+ [variant]="op.variant"
2829
+ [class]="op.class ?? props.class"
2830
+ [binary]="!!props.binary"
2831
+ (onClick)="onClick(field()!, $event)"
2832
+ (onFocus)="props.onFocus?.(field()!, $event)"
2833
+ (onBlur)="props.onBlur?.(field()!, $event)"
2834
+ [formControl]="field()!.fieldControl!" />
2835
+ <label
2836
+ [for]="field()?.key"
2837
+ class="radio-label ml-2"
2838
+ >{{ op.label }}</label
2839
+ >
2840
+ </div>
2841
+ }
2842
+ </div>
2843
+ } @else {
2844
+ <div class="radio-label">{{ currentLabel() }}</div>
2845
+ }
2810
2846
  </div>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".radio-label{color:#334155}\n"], dependencies: [{ kind: "component", type: RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "formControlName", "name", "disabled", "variant", "size", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "autofocus", "binary"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2811
2847
  }
2812
2848
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioComponent, decorators: [{
2813
2849
  type: Component,
2814
- args: [{ selector: 'form-radio', standalone: true, imports: [RadioButton, ReactiveFormsModule], template: ` <div
2815
- #radioContainer
2816
- style="width: 100%; height: 100%"
2817
- class="radio-container">
2818
- @if (isEnter) {
2819
- <div
2820
- [id]="field()?.uuid"
2821
- class="flex flex-wrap gap-4">
2822
- @for (op of props.options; track op) {
2823
- <div class="flex items-center">
2824
- <p-radiobutton
2825
- [value]="op.value"
2826
- [name]="op.name"
2827
- [tabindex]="op.tabindex"
2828
- [inputId]="field()?.uuid"
2829
- [ariaLabelledBy]="op.ariaLabelledBy"
2830
- [ariaLabel]="op.ariaLabel"
2831
- [style]="op.style"
2832
- [styleClass]="op.styleClass"
2833
- [autofocus]="op.autofocus"
2834
- [variant]="op.variant"
2835
- [class]="op.class ?? props.class"
2836
- [binary]="!!props.binary"
2837
- (onClick)="onClick(field()!, $event)"
2838
- (onFocus)="props.onFocus?.(field()!, $event)"
2839
- (onBlur)="props.onBlur?.(field()!, $event)"
2840
- [formControl]="field()!.fieldControl!" />
2841
- <label
2842
- [for]="field()?.key"
2843
- class="radio-label ml-2"
2844
- >{{ op.label }}</label
2845
- >
2846
- </div>
2847
- }
2848
- </div>
2849
- } @else {
2850
- <div class="radio-label">{{ currentLabel() }}</div>
2851
- }
2850
+ args: [{ selector: 'form-radio', standalone: true, imports: [RadioButton, ReactiveFormsModule], template: ` <div
2851
+ #radioContainer
2852
+ style="width: 100%; height: 100%"
2853
+ class="radio-container">
2854
+ @if (isEnter) {
2855
+ <div
2856
+ [id]="field()?.uuid"
2857
+ class="flex flex-wrap gap-4">
2858
+ @for (op of props.options; track op) {
2859
+ <div class="flex items-center">
2860
+ <p-radiobutton
2861
+ [value]="op.value"
2862
+ [name]="op.name"
2863
+ [tabindex]="op.tabindex"
2864
+ [inputId]="field()?.uuid"
2865
+ [ariaLabelledBy]="op.ariaLabelledBy"
2866
+ [ariaLabel]="op.ariaLabel"
2867
+ [style]="op.style"
2868
+ [styleClass]="op.styleClass"
2869
+ [autofocus]="op.autofocus"
2870
+ [variant]="op.variant"
2871
+ [class]="op.class ?? props.class"
2872
+ [binary]="!!props.binary"
2873
+ (onClick)="onClick(field()!, $event)"
2874
+ (onFocus)="props.onFocus?.(field()!, $event)"
2875
+ (onBlur)="props.onBlur?.(field()!, $event)"
2876
+ [formControl]="field()!.fieldControl!" />
2877
+ <label
2878
+ [for]="field()?.key"
2879
+ class="radio-label ml-2"
2880
+ >{{ op.label }}</label
2881
+ >
2882
+ </div>
2883
+ }
2884
+ </div>
2885
+ } @else {
2886
+ <div class="radio-label">{{ currentLabel() }}</div>
2887
+ }
2852
2888
  </div>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".radio-label{color:#334155}\n"] }]
2853
2889
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.NgZone }], propDecorators: { radioContainer: [{
2854
2890
  type: ViewChild,
@@ -2865,6 +2901,7 @@ class TextAreaComponent {
2865
2901
  effect(() => {
2866
2902
  if (this.field()) {
2867
2903
  this.props = this.field().textAreaProps;
2904
+ this.handleHookChange();
2868
2905
  this.handleDisabled();
2869
2906
  }
2870
2907
  });
@@ -2890,6 +2927,14 @@ class TextAreaComponent {
2890
2927
  }
2891
2928
  }, { allowSignalWrites: true });
2892
2929
  }
2930
+ handleHookChange() {
2931
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
2932
+ if (!value) {
2933
+ return;
2934
+ }
2935
+ this.props.onHookChange?.(this.field(), { value });
2936
+ });
2937
+ }
2893
2938
  handleDisabled() {
2894
2939
  if (this.props?.disabled) {
2895
2940
  this.field().fieldControl.disable({ emitEvent: false });
@@ -2942,8 +2987,8 @@ class UploadComponent {
2942
2987
  effect(() => {
2943
2988
  if (this.field()) {
2944
2989
  this.props = this.field().uploadProps;
2990
+ this.handleHookChange();
2945
2991
  this.handleDisabled();
2946
- this.handleModelChange();
2947
2992
  this.afterSubmit();
2948
2993
  }
2949
2994
  });
@@ -2996,11 +3041,12 @@ class UploadComponent {
2996
3041
  this.fileList = this.fileList?.filter((value, i) => index != i);
2997
3042
  this.field()?.fieldControl?.setValue(this.fileList);
2998
3043
  }
2999
- handleModelChange() {
3000
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
3044
+ handleHookChange() {
3045
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
3001
3046
  if (value == null) {
3002
3047
  return;
3003
3048
  }
3049
+ this.props.onHookChange?.(this.field(), { value });
3004
3050
  this.fileList = [...value];
3005
3051
  });
3006
3052
  }
@@ -3017,140 +3063,140 @@ class UploadComponent {
3017
3063
  }
3018
3064
  }
3019
3065
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1$3.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3020
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3021
- #fu
3022
- auto
3023
- [id]="field()?.uuid"
3024
- [name]="props.name"
3025
- [url]="props.url"
3026
- [method]="props.method ?? 'post'"
3027
- [multiple]="props.multiple ?? true"
3028
- [accept]="props.accept"
3029
- [withCredentials]="props.withCredentials"
3030
- [maxFileSize]="props.maxFileSize"
3031
- [styleClass]="props.styleClass"
3032
- [previewWidth]="props.previewWidth ?? 50"
3033
- [mode]="props.mode ?? 'advanced'"
3034
- [headers]="props.headers"
3035
- [fileLimit]="props.fileLimit"
3036
- [customUpload]="props.customUpload ?? true"
3037
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3038
- (onSend)="props.onSend?.(field()!, $event)"
3039
- (onUpload)="props.onUpload?.(field()!, $event)"
3040
- (onError)="props.onError?.(field()!, $event)"
3041
- (onClear)="props.onClear?.(field()!, $event)"
3042
- (onRemove)="props.onRemove?.(field()!, $event)"
3043
- (onSelect)="props.onSelect?.(field()!, $event)"
3044
- (onProgress)="props.onProgress?.(field()!, $event)"
3045
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
3046
- <ng-template
3047
- #header
3048
- let-chooseCallback="chooseCallback">
3049
- <div
3050
- #uploadComp
3051
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3052
- (click)="choose($event, chooseCallback)">
3053
- <span
3054
- ><span
3055
- style="font-size: 12px; margin-right: 2.5px"
3056
- class="pi pi-upload"></span
3057
- >上传</span
3058
- >
3059
- </div>
3060
- </ng-template>
3061
- <ng-template #content>
3062
- @if (fileList.length > 0) {
3063
- @for (file of fileList; track file; let index = $index) {
3064
- <div class="flex justify-between items-center file-item">
3065
- <span class="file-name"
3066
- ><a
3067
- [href]="'https://hrimage.myfoodiepet.com//' + file"
3068
- [download]="file"
3069
- >{{ file }}</a
3070
- ></span
3071
- >
3072
- @if (!field()?.fieldControl?.disabled) {
3073
- <p-button
3074
- icon="pi pi-times"
3075
- severity="danger"
3076
- size="small"
3077
- (onClick)="deleteHandler(file, index)"
3078
- [text]="true" />
3079
- }
3080
- </div>
3081
- }
3082
- }
3083
- </ng-template>
3084
- <ng-template #file> </ng-template>
3066
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3067
+ #fu
3068
+ auto
3069
+ [id]="field()?.uuid"
3070
+ [name]="props.name"
3071
+ [url]="props.url"
3072
+ [method]="props.method ?? 'post'"
3073
+ [multiple]="props.multiple ?? true"
3074
+ [accept]="props.accept"
3075
+ [withCredentials]="props.withCredentials"
3076
+ [maxFileSize]="props.maxFileSize"
3077
+ [styleClass]="props.styleClass"
3078
+ [previewWidth]="props.previewWidth ?? 50"
3079
+ [mode]="props.mode ?? 'advanced'"
3080
+ [headers]="props.headers"
3081
+ [fileLimit]="props.fileLimit"
3082
+ [customUpload]="props.customUpload ?? true"
3083
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3084
+ (onSend)="props.onSend?.(field()!, $event)"
3085
+ (onUpload)="props.onUpload?.(field()!, $event)"
3086
+ (onError)="props.onError?.(field()!, $event)"
3087
+ (onClear)="props.onClear?.(field()!, $event)"
3088
+ (onRemove)="props.onRemove?.(field()!, $event)"
3089
+ (onSelect)="props.onSelect?.(field()!, $event)"
3090
+ (onProgress)="props.onProgress?.(field()!, $event)"
3091
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
3092
+ <ng-template
3093
+ #header
3094
+ let-chooseCallback="chooseCallback">
3095
+ <div
3096
+ #uploadComp
3097
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3098
+ (click)="choose($event, chooseCallback)">
3099
+ <span
3100
+ ><span
3101
+ style="font-size: 12px; margin-right: 2.5px"
3102
+ class="pi pi-upload"></span
3103
+ >上传</span
3104
+ >
3105
+ </div>
3106
+ </ng-template>
3107
+ <ng-template #content>
3108
+ @if (fileList.length > 0) {
3109
+ @for (file of fileList; track file; let index = $index) {
3110
+ <div class="flex justify-between items-center file-item">
3111
+ <span class="file-name"
3112
+ ><a
3113
+ [href]="'https://hrimage.myfoodiepet.com//' + file"
3114
+ [download]="file"
3115
+ >{{ file }}</a
3116
+ ></span
3117
+ >
3118
+ @if (!field()?.fieldControl?.disabled) {
3119
+ <p-button
3120
+ icon="pi pi-times"
3121
+ severity="danger"
3122
+ size="small"
3123
+ (onClick)="deleteHandler(file, index)"
3124
+ [text]="true" />
3125
+ }
3126
+ </div>
3127
+ }
3128
+ }
3129
+ </ng-template>
3130
+ <ng-template #file> </ng-template>
3085
3131
  </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
3086
3132
  }
3087
3133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
3088
3134
  type: Component,
3089
- args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
3090
- #fu
3091
- auto
3092
- [id]="field()?.uuid"
3093
- [name]="props.name"
3094
- [url]="props.url"
3095
- [method]="props.method ?? 'post'"
3096
- [multiple]="props.multiple ?? true"
3097
- [accept]="props.accept"
3098
- [withCredentials]="props.withCredentials"
3099
- [maxFileSize]="props.maxFileSize"
3100
- [styleClass]="props.styleClass"
3101
- [previewWidth]="props.previewWidth ?? 50"
3102
- [mode]="props.mode ?? 'advanced'"
3103
- [headers]="props.headers"
3104
- [fileLimit]="props.fileLimit"
3105
- [customUpload]="props.customUpload ?? true"
3106
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3107
- (onSend)="props.onSend?.(field()!, $event)"
3108
- (onUpload)="props.onUpload?.(field()!, $event)"
3109
- (onError)="props.onError?.(field()!, $event)"
3110
- (onClear)="props.onClear?.(field()!, $event)"
3111
- (onRemove)="props.onRemove?.(field()!, $event)"
3112
- (onSelect)="props.onSelect?.(field()!, $event)"
3113
- (onProgress)="props.onProgress?.(field()!, $event)"
3114
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
3115
- <ng-template
3116
- #header
3117
- let-chooseCallback="chooseCallback">
3118
- <div
3119
- #uploadComp
3120
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3121
- (click)="choose($event, chooseCallback)">
3122
- <span
3123
- ><span
3124
- style="font-size: 12px; margin-right: 2.5px"
3125
- class="pi pi-upload"></span
3126
- >上传</span
3127
- >
3128
- </div>
3129
- </ng-template>
3130
- <ng-template #content>
3131
- @if (fileList.length > 0) {
3132
- @for (file of fileList; track file; let index = $index) {
3133
- <div class="flex justify-between items-center file-item">
3134
- <span class="file-name"
3135
- ><a
3136
- [href]="'https://hrimage.myfoodiepet.com//' + file"
3137
- [download]="file"
3138
- >{{ file }}</a
3139
- ></span
3140
- >
3141
- @if (!field()?.fieldControl?.disabled) {
3142
- <p-button
3143
- icon="pi pi-times"
3144
- severity="danger"
3145
- size="small"
3146
- (onClick)="deleteHandler(file, index)"
3147
- [text]="true" />
3148
- }
3149
- </div>
3150
- }
3151
- }
3152
- </ng-template>
3153
- <ng-template #file> </ng-template>
3135
+ args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
3136
+ #fu
3137
+ auto
3138
+ [id]="field()?.uuid"
3139
+ [name]="props.name"
3140
+ [url]="props.url"
3141
+ [method]="props.method ?? 'post'"
3142
+ [multiple]="props.multiple ?? true"
3143
+ [accept]="props.accept"
3144
+ [withCredentials]="props.withCredentials"
3145
+ [maxFileSize]="props.maxFileSize"
3146
+ [styleClass]="props.styleClass"
3147
+ [previewWidth]="props.previewWidth ?? 50"
3148
+ [mode]="props.mode ?? 'advanced'"
3149
+ [headers]="props.headers"
3150
+ [fileLimit]="props.fileLimit"
3151
+ [customUpload]="props.customUpload ?? true"
3152
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3153
+ (onSend)="props.onSend?.(field()!, $event)"
3154
+ (onUpload)="props.onUpload?.(field()!, $event)"
3155
+ (onError)="props.onError?.(field()!, $event)"
3156
+ (onClear)="props.onClear?.(field()!, $event)"
3157
+ (onRemove)="props.onRemove?.(field()!, $event)"
3158
+ (onSelect)="props.onSelect?.(field()!, $event)"
3159
+ (onProgress)="props.onProgress?.(field()!, $event)"
3160
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
3161
+ <ng-template
3162
+ #header
3163
+ let-chooseCallback="chooseCallback">
3164
+ <div
3165
+ #uploadComp
3166
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3167
+ (click)="choose($event, chooseCallback)">
3168
+ <span
3169
+ ><span
3170
+ style="font-size: 12px; margin-right: 2.5px"
3171
+ class="pi pi-upload"></span
3172
+ >上传</span
3173
+ >
3174
+ </div>
3175
+ </ng-template>
3176
+ <ng-template #content>
3177
+ @if (fileList.length > 0) {
3178
+ @for (file of fileList; track file; let index = $index) {
3179
+ <div class="flex justify-between items-center file-item">
3180
+ <span class="file-name"
3181
+ ><a
3182
+ [href]="'https://hrimage.myfoodiepet.com//' + file"
3183
+ [download]="file"
3184
+ >{{ file }}</a
3185
+ ></span
3186
+ >
3187
+ @if (!field()?.fieldControl?.disabled) {
3188
+ <p-button
3189
+ icon="pi pi-times"
3190
+ severity="danger"
3191
+ size="small"
3192
+ (onClick)="deleteHandler(file, index)"
3193
+ [text]="true" />
3194
+ }
3195
+ </div>
3196
+ }
3197
+ }
3198
+ </ng-template>
3199
+ <ng-template #file> </ng-template>
3154
3200
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"] }]
3155
3201
  }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }], propDecorators: { uploadCompRef: [{
3156
3202
  type: ViewChild,
@@ -3170,7 +3216,7 @@ class ImageComponent {
3170
3216
  if (this.field()) {
3171
3217
  this.props = this.field().imageProps;
3172
3218
  this.handleDisabled();
3173
- this.handleModelChange();
3219
+ this.handleHookChange();
3174
3220
  this.afterSubmit();
3175
3221
  }
3176
3222
  });
@@ -3222,14 +3268,6 @@ class ImageComponent {
3222
3268
  this.imageList = this.imageList?.filter((value, i) => index != i);
3223
3269
  this.field()?.fieldControl?.setValue(this.imageList);
3224
3270
  }
3225
- handleModelChange() {
3226
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
3227
- if (value == null) {
3228
- return;
3229
- }
3230
- this.imageList = [...value];
3231
- });
3232
- }
3233
3271
  afterSubmit() {
3234
3272
  this.field()?.fieldControl?.submitChange.subscribe((value) => {
3235
3273
  if (Boolean(value)) {
@@ -3237,6 +3275,15 @@ class ImageComponent {
3237
3275
  }
3238
3276
  });
3239
3277
  }
3278
+ handleHookChange() {
3279
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
3280
+ if (value == null) {
3281
+ return;
3282
+ }
3283
+ this.props.onHookChange?.(this.field(), { value });
3284
+ this.imageList = [...value];
3285
+ });
3286
+ }
3240
3287
  handleDisabled() {
3241
3288
  if (this.props?.disabled) {
3242
3289
  this.field().fieldControl.disable({ emitEvent: false });
@@ -3255,146 +3302,146 @@ class ImageComponent {
3255
3302
  }
3256
3303
  }
3257
3304
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1$3.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3259
- #fu
3260
- auto
3261
- [name]="props.name"
3262
- [url]="props.url"
3263
- [method]="props.method ?? 'post'"
3264
- accept="image/*"
3265
- [withCredentials]="props.withCredentials"
3266
- [maxFileSize]="props.maxFileSize"
3267
- [styleClass]="props.styleClass"
3268
- [previewWidth]="props.previewWidth ?? 50"
3269
- [mode]="props.mode ?? 'advanced'"
3270
- [headers]="props.headers"
3271
- [fileLimit]="props.fileLimit"
3272
- [customUpload]="props.customUpload ?? true"
3273
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3274
- (onSend)="props.onSend?.(field()!, $event)"
3275
- (onUpload)="props.onUpload?.(field()!, $event)"
3276
- (onError)="props.onError?.(field()!, $event)"
3277
- (onClear)="props.onClear?.(field()!, $event)"
3278
- (onRemove)="props.onRemove?.(field()!, $event)"
3279
- (onSelect)="props.onSelect?.(field()!, $event)"
3280
- (onProgress)="props.onProgress?.(field()!, $event)"
3281
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
3282
- <ng-template
3283
- #header
3284
- let-chooseCallback="chooseCallback">
3285
- <div
3286
- #imageComp
3287
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3288
- (click)="choose($event, chooseCallback)">
3289
- <span
3290
- ><span
3291
- style="font-size: 12px; margin-right: 2.5px"
3292
- class="pi pi-upload"></span
3293
- >上传</span
3294
- >
3295
- </div>
3296
- </ng-template>
3297
- <ng-template #content>
3298
- @if (imageList.length > 0) {
3299
- @for (image of imageList; track image; let index = $index) {
3300
- <div class="flex justify-between items-center file-item">
3301
- <p-image
3302
- [src]="'https://hrimage.myfoodiepet.com//' + image"
3303
- [preview]="true"
3304
- (onShow)="ajustedImage($event)"
3305
- alt="Image">
3306
- <ng-template #indicator>
3307
- <span class="file-name">{{ image }}</span>
3308
- </ng-template>
3309
- <ng-template #image>
3310
- <span class="file-name">{{ image }}</span>
3311
- </ng-template>
3312
- </p-image>
3313
- @if (!field()?.fieldControl?.disabled) {
3314
- <p-button
3315
- icon="pi pi-times"
3316
- severity="danger"
3317
- size="small"
3318
- (onClick)="deleteHandler(image, index)"
3319
- [text]="true" />
3320
- }
3321
- </div>
3322
- }
3323
- }
3324
- </ng-template>
3325
- <ng-template #file> </ng-template>
3305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3306
+ #fu
3307
+ auto
3308
+ [name]="props.name"
3309
+ [url]="props.url"
3310
+ [method]="props.method ?? 'post'"
3311
+ accept="image/*"
3312
+ [withCredentials]="props.withCredentials"
3313
+ [maxFileSize]="props.maxFileSize"
3314
+ [styleClass]="props.styleClass"
3315
+ [previewWidth]="props.previewWidth ?? 50"
3316
+ [mode]="props.mode ?? 'advanced'"
3317
+ [headers]="props.headers"
3318
+ [fileLimit]="props.fileLimit"
3319
+ [customUpload]="props.customUpload ?? true"
3320
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3321
+ (onSend)="props.onSend?.(field()!, $event)"
3322
+ (onUpload)="props.onUpload?.(field()!, $event)"
3323
+ (onError)="props.onError?.(field()!, $event)"
3324
+ (onClear)="props.onClear?.(field()!, $event)"
3325
+ (onRemove)="props.onRemove?.(field()!, $event)"
3326
+ (onSelect)="props.onSelect?.(field()!, $event)"
3327
+ (onProgress)="props.onProgress?.(field()!, $event)"
3328
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
3329
+ <ng-template
3330
+ #header
3331
+ let-chooseCallback="chooseCallback">
3332
+ <div
3333
+ #imageComp
3334
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3335
+ (click)="choose($event, chooseCallback)">
3336
+ <span
3337
+ ><span
3338
+ style="font-size: 12px; margin-right: 2.5px"
3339
+ class="pi pi-upload"></span
3340
+ >上传</span
3341
+ >
3342
+ </div>
3343
+ </ng-template>
3344
+ <ng-template #content>
3345
+ @if (imageList.length > 0) {
3346
+ @for (image of imageList; track image; let index = $index) {
3347
+ <div class="flex justify-between items-center file-item">
3348
+ <p-image
3349
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
3350
+ [preview]="true"
3351
+ (onShow)="ajustedImage($event)"
3352
+ alt="Image">
3353
+ <ng-template #indicator>
3354
+ <span class="file-name">{{ image }}</span>
3355
+ </ng-template>
3356
+ <ng-template #image>
3357
+ <span class="file-name">{{ image }}</span>
3358
+ </ng-template>
3359
+ </p-image>
3360
+ @if (!field()?.fieldControl?.disabled) {
3361
+ <p-button
3362
+ icon="pi pi-times"
3363
+ severity="danger"
3364
+ size="small"
3365
+ (onClick)="deleteHandler(image, index)"
3366
+ [text]="true" />
3367
+ }
3368
+ </div>
3369
+ }
3370
+ }
3371
+ </ng-template>
3372
+ <ng-template #file> </ng-template>
3326
3373
  </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}// .file-name:hover{// cursor: pointer;// color: var(--p-primary-color);//}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Image, selector: "p-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
3327
3374
  }
3328
3375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, decorators: [{
3329
3376
  type: Component,
3330
- args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
3331
- #fu
3332
- auto
3333
- [name]="props.name"
3334
- [url]="props.url"
3335
- [method]="props.method ?? 'post'"
3336
- accept="image/*"
3337
- [withCredentials]="props.withCredentials"
3338
- [maxFileSize]="props.maxFileSize"
3339
- [styleClass]="props.styleClass"
3340
- [previewWidth]="props.previewWidth ?? 50"
3341
- [mode]="props.mode ?? 'advanced'"
3342
- [headers]="props.headers"
3343
- [fileLimit]="props.fileLimit"
3344
- [customUpload]="props.customUpload ?? true"
3345
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3346
- (onSend)="props.onSend?.(field()!, $event)"
3347
- (onUpload)="props.onUpload?.(field()!, $event)"
3348
- (onError)="props.onError?.(field()!, $event)"
3349
- (onClear)="props.onClear?.(field()!, $event)"
3350
- (onRemove)="props.onRemove?.(field()!, $event)"
3351
- (onSelect)="props.onSelect?.(field()!, $event)"
3352
- (onProgress)="props.onProgress?.(field()!, $event)"
3353
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
3354
- <ng-template
3355
- #header
3356
- let-chooseCallback="chooseCallback">
3357
- <div
3358
- #imageComp
3359
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3360
- (click)="choose($event, chooseCallback)">
3361
- <span
3362
- ><span
3363
- style="font-size: 12px; margin-right: 2.5px"
3364
- class="pi pi-upload"></span
3365
- >上传</span
3366
- >
3367
- </div>
3368
- </ng-template>
3369
- <ng-template #content>
3370
- @if (imageList.length > 0) {
3371
- @for (image of imageList; track image; let index = $index) {
3372
- <div class="flex justify-between items-center file-item">
3373
- <p-image
3374
- [src]="'https://hrimage.myfoodiepet.com//' + image"
3375
- [preview]="true"
3376
- (onShow)="ajustedImage($event)"
3377
- alt="Image">
3378
- <ng-template #indicator>
3379
- <span class="file-name">{{ image }}</span>
3380
- </ng-template>
3381
- <ng-template #image>
3382
- <span class="file-name">{{ image }}</span>
3383
- </ng-template>
3384
- </p-image>
3385
- @if (!field()?.fieldControl?.disabled) {
3386
- <p-button
3387
- icon="pi pi-times"
3388
- severity="danger"
3389
- size="small"
3390
- (onClick)="deleteHandler(image, index)"
3391
- [text]="true" />
3392
- }
3393
- </div>
3394
- }
3395
- }
3396
- </ng-template>
3397
- <ng-template #file> </ng-template>
3377
+ args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
3378
+ #fu
3379
+ auto
3380
+ [name]="props.name"
3381
+ [url]="props.url"
3382
+ [method]="props.method ?? 'post'"
3383
+ accept="image/*"
3384
+ [withCredentials]="props.withCredentials"
3385
+ [maxFileSize]="props.maxFileSize"
3386
+ [styleClass]="props.styleClass"
3387
+ [previewWidth]="props.previewWidth ?? 50"
3388
+ [mode]="props.mode ?? 'advanced'"
3389
+ [headers]="props.headers"
3390
+ [fileLimit]="props.fileLimit"
3391
+ [customUpload]="props.customUpload ?? true"
3392
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
3393
+ (onSend)="props.onSend?.(field()!, $event)"
3394
+ (onUpload)="props.onUpload?.(field()!, $event)"
3395
+ (onError)="props.onError?.(field()!, $event)"
3396
+ (onClear)="props.onClear?.(field()!, $event)"
3397
+ (onRemove)="props.onRemove?.(field()!, $event)"
3398
+ (onSelect)="props.onSelect?.(field()!, $event)"
3399
+ (onProgress)="props.onProgress?.(field()!, $event)"
3400
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
3401
+ <ng-template
3402
+ #header
3403
+ let-chooseCallback="chooseCallback">
3404
+ <div
3405
+ #imageComp
3406
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
3407
+ (click)="choose($event, chooseCallback)">
3408
+ <span
3409
+ ><span
3410
+ style="font-size: 12px; margin-right: 2.5px"
3411
+ class="pi pi-upload"></span
3412
+ >上传</span
3413
+ >
3414
+ </div>
3415
+ </ng-template>
3416
+ <ng-template #content>
3417
+ @if (imageList.length > 0) {
3418
+ @for (image of imageList; track image; let index = $index) {
3419
+ <div class="flex justify-between items-center file-item">
3420
+ <p-image
3421
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
3422
+ [preview]="true"
3423
+ (onShow)="ajustedImage($event)"
3424
+ alt="Image">
3425
+ <ng-template #indicator>
3426
+ <span class="file-name">{{ image }}</span>
3427
+ </ng-template>
3428
+ <ng-template #image>
3429
+ <span class="file-name">{{ image }}</span>
3430
+ </ng-template>
3431
+ </p-image>
3432
+ @if (!field()?.fieldControl?.disabled) {
3433
+ <p-button
3434
+ icon="pi pi-times"
3435
+ severity="danger"
3436
+ size="small"
3437
+ (onClick)="deleteHandler(image, index)"
3438
+ [text]="true" />
3439
+ }
3440
+ </div>
3441
+ }
3442
+ }
3443
+ </ng-template>
3444
+ <ng-template #file> </ng-template>
3398
3445
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}// .file-name:hover{// cursor: pointer;// color: var(--p-primary-color);//}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"] }]
3399
3446
  }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }], propDecorators: { imageCompRef: [{
3400
3447
  type: ViewChild,
@@ -3411,7 +3458,7 @@ class CodeMirrorComponent {
3411
3458
  effect(() => {
3412
3459
  if (this.field()) {
3413
3460
  this.props = this.field().codeMirrorProps;
3414
- this.handleModelChange();
3461
+ this.handleHookChange();
3415
3462
  this.handleExtensions();
3416
3463
  }
3417
3464
  });
@@ -3505,11 +3552,12 @@ class CodeMirrorComponent {
3505
3552
  effects: StateEffect.reconfigure.of(extendsions),
3506
3553
  });
3507
3554
  }
3508
- handleModelChange() {
3509
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
3555
+ handleHookChange() {
3556
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
3510
3557
  if (!this.editorView.state.doc.length && value == null) {
3511
3558
  return;
3512
3559
  }
3560
+ this.props.onHookChange?.(this.field(), { value });
3513
3561
  const transaction = this.editorView.state.update({
3514
3562
  changes: { from: 0, to: this.editorView.state.doc.length, insert: value },
3515
3563
  });
@@ -4007,6 +4055,11 @@ const gridOptionsHooker = (gridOptions, selectContent) => {
4007
4055
  col.hide = col.hideCol;
4008
4056
  delete col.hideCol;
4009
4057
  }
4058
+ // @ts-ignore
4059
+ const isI18n = window.appIsI18n;
4060
+ if (isI18n && (!col.hasOwnProperty('i18nKey') || col.i18nKey == '')) {
4061
+ col.i18nKey = `tables.${gridOptions.modelName}.${col.field}`;
4062
+ }
4010
4063
  if (col.hasOwnProperty('textWrap') && col.textWrap) {
4011
4064
  col.autoHeight = true;
4012
4065
  col.cellClass = 'cell-wrap-text';
@@ -4042,6 +4095,10 @@ const convertGrid = (thisArg, gridList, fiterPreloads) => {
4042
4095
  subDataKey,
4043
4096
  mainField,
4044
4097
  };
4098
+ // @ts-ignore
4099
+ if (window.appIsI18n && (!item.hasOwnProperty('i18nKey') || item.i18nKey == '')) {
4100
+ grid.i18nKey = `tables.${thisArg.getPrm.modelName}.${subDataKey}`;
4101
+ }
4045
4102
  if (gridOptions.rowModelType == 'clientSide') {
4046
4103
  gridOptions.suppressRowVirtualisation = true;
4047
4104
  }
@@ -6659,8 +6716,8 @@ class RowSelectorComponent extends AmComponent {
6659
6716
  effect(() => {
6660
6717
  if (this.field()) {
6661
6718
  this.props = this.field().rowSelectorProps;
6719
+ this.handleHookChange();
6662
6720
  this.handleDisabled();
6663
- this.handleModelChange();
6664
6721
  }
6665
6722
  });
6666
6723
  effect(() => {
@@ -6681,15 +6738,18 @@ class RowSelectorComponent extends AmComponent {
6681
6738
  this.field().fieldControl.disable({ emitEvent: false });
6682
6739
  }
6683
6740
  }
6684
- handleModelChange() {
6685
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
6741
+ handleHookChange() {
6742
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
6686
6743
  if (value == null) {
6687
6744
  return;
6688
6745
  }
6746
+ this.props.onHookChange?.(this.field(), { value });
6689
6747
  this.text = value;
6690
6748
  });
6691
6749
  }
6692
6750
  onSelectorShow() {
6751
+ if (this.props.disabled || this.field()?.fieldControl?.disabled)
6752
+ return;
6693
6753
  this.createRowSelector();
6694
6754
  }
6695
6755
  createRowSelector() {
@@ -6729,34 +6789,34 @@ class RowSelectorComponent extends AmComponent {
6729
6789
  }
6730
6790
  }
6731
6791
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, deps: [{ token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
6732
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "form-rowselector", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }, { propertyName: "selectorRef", first: true, predicate: ["selector"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
6733
- <div #container></div>
6734
- <div
6735
- #selector
6736
- class="flex gap-2 items-center selector-text">
6737
- <span class="selector-text-content">{{ text }}</span>
6738
- @if (props && !props.disabled) {
6739
- <span
6740
- class="selector-icon pi pi-pen-to-square"
6741
- (click)="onSelectorShow()"></span>
6742
- }
6743
- </div>
6792
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "form-rowselector", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }, { propertyName: "selectorRef", first: true, predicate: ["selector"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
6793
+ <div #container></div>
6794
+ <div
6795
+ #selector
6796
+ class="flex gap-2 items-center selector-text">
6797
+ <span class="selector-text-content">{{ text }}</span>
6798
+ @if (props && !props.disabled) {
6799
+ <span
6800
+ class="selector-icon pi pi-pen-to-square"
6801
+ (click)="onSelectorShow()"></span>
6802
+ }
6803
+ </div>
6744
6804
  `, isInline: true, styles: [".selector-text{width:100%;height:20px;color:#334155}.selector-text .selector-icon{font-size:12px}.selector-text .selector-icon:hover{cursor:pointer;color:var(--p-primary-color)}.selector-text .selector-text-content{min-width:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selector-text:hover .selector-icon,.selector-text.ng-hovered .selector-icon{color:var(--p-primary-color)}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
6745
6805
  }
6746
6806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, decorators: [{
6747
6807
  type: Component,
6748
- args: [{ selector: 'form-rowselector', standalone: true, imports: [ButtonModule, ReactiveFormsModule], template: `
6749
- <div #container></div>
6750
- <div
6751
- #selector
6752
- class="flex gap-2 items-center selector-text">
6753
- <span class="selector-text-content">{{ text }}</span>
6754
- @if (props && !props.disabled) {
6755
- <span
6756
- class="selector-icon pi pi-pen-to-square"
6757
- (click)="onSelectorShow()"></span>
6758
- }
6759
- </div>
6808
+ args: [{ selector: 'form-rowselector', standalone: true, imports: [ButtonModule, ReactiveFormsModule], template: `
6809
+ <div #container></div>
6810
+ <div
6811
+ #selector
6812
+ class="flex gap-2 items-center selector-text">
6813
+ <span class="selector-text-content">{{ text }}</span>
6814
+ @if (props && !props.disabled) {
6815
+ <span
6816
+ class="selector-icon pi pi-pen-to-square"
6817
+ (click)="onSelectorShow()"></span>
6818
+ }
6819
+ </div>
6760
6820
  `, styles: [".selector-text{width:100%;height:20px;color:#334155}.selector-text .selector-icon{font-size:12px}.selector-text .selector-icon:hover{cursor:pointer;color:var(--p-primary-color)}.selector-text .selector-text-content{min-width:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selector-text:hover .selector-icon,.selector-text.ng-hovered .selector-icon{color:var(--p-primary-color)}\n"] }]
6761
6821
  }], ctorParameters: () => [{ type: ActionService }, { type: i0.Renderer2 }], propDecorators: { container: [{
6762
6822
  type: ViewChild,
@@ -6908,116 +6968,116 @@ class FormFieldComponent {
6908
6968
  return this.fieldLabel;
6909
6969
  }
6910
6970
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6911
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "form-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldLabel", first: true, predicate: ["fieldLabelRef"], descendants: true }, { propertyName: "fieldComponents", predicate: FormFieldComponent, descendants: true }], ngImport: i0, template: `
6912
- @if (field()?.group) {
6913
- <div [class]="field()?.groupClass">
6914
- @for (fchild of field()!.group; track fchild) {
6915
- @if (!fchild.hide) {
6916
- <div [class]="fchild.groupClass || fchild.class">
6917
- <form-field
6918
- class="w-full"
6919
- [field]="fchild">
6920
- </form-field>
6921
- </div>
6922
- }
6923
- }
6924
- </div>
6925
- } @else {
6926
- <div [class]="field()?.innerClass || 'px-4 my-1'">
6927
- <div class="flex flex-row flex-nowrap items-start">
6928
- <div
6929
- class="flex-none p-field field-label min-h-8 pt-[1.5px] flex items-center"
6930
- [style]="getStyle()">
6931
- <label
6932
- #label
6933
- [class]="labelClass()"
6934
- fieldLabel
6935
- [field]="field()!"
6936
- [contextMenu]="contextMenu">
6937
- <span
6938
- style="user-select: none"
6939
- #fieldLabelRef
6940
- >{{ props(field()!).i18nKey ? (props(field()!).i18nKey! | translate) : props(field()!).label! }}</span
6941
- >
6942
- @if (props(field()!).required) {
6943
- <span class="field-required">*</span>
6944
- }
6945
- @if (!field()?.fieldControl?.disabled) {
6946
- <span class="iconfont icon-edit-flag field-editable"></span>
6947
- }
6948
- </label>
6949
- </div>
6950
- <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
6951
- <div
6952
- #fieldTypeRef
6953
- class="w-full">
6954
- <form-type [field]="field()!"></form-type>
6955
- </div>
6956
- </div>
6957
- </div>
6958
- </div>
6959
- <app-context-menu
6960
- #contextMenu
6961
- [target]="label"
6962
- [field]="field()!"></app-context-menu>
6963
- }
6971
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "form-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldLabel", first: true, predicate: ["fieldLabelRef"], descendants: true }, { propertyName: "fieldComponents", predicate: FormFieldComponent, descendants: true }], ngImport: i0, template: `
6972
+ @if (field()?.group) {
6973
+ <div [class]="field()?.groupClass">
6974
+ @for (fchild of field()!.group; track fchild) {
6975
+ @if (!fchild.hide) {
6976
+ <div [class]="fchild.groupClass || fchild.class">
6977
+ <form-field
6978
+ class="w-full"
6979
+ [field]="fchild">
6980
+ </form-field>
6981
+ </div>
6982
+ }
6983
+ }
6984
+ </div>
6985
+ } @else {
6986
+ <div [class]="field()?.innerClass || 'px-4 my-1'">
6987
+ <div class="flex flex-row flex-nowrap items-start">
6988
+ <div
6989
+ class="flex-none p-field field-label min-h-8 pt-[1.5px] flex items-center"
6990
+ [style]="getStyle()">
6991
+ <label
6992
+ #label
6993
+ [class]="labelClass()"
6994
+ fieldLabel
6995
+ [field]="field()!"
6996
+ [contextMenu]="contextMenu">
6997
+ <span
6998
+ style="user-select: none"
6999
+ #fieldLabelRef
7000
+ >{{ props(field()!).i18nKey ? (props(field()!).i18nKey! | translate) : props(field()!).label! }}</span
7001
+ >
7002
+ @if (props(field()!).required) {
7003
+ <span class="field-required">*</span>
7004
+ }
7005
+ @if (!field()?.fieldControl?.disabled) {
7006
+ <span class="iconfont icon-edit-flag field-editable"></span>
7007
+ }
7008
+ </label>
7009
+ </div>
7010
+ <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
7011
+ <div
7012
+ #fieldTypeRef
7013
+ class="w-full">
7014
+ <form-type [field]="field()!"></form-type>
7015
+ </div>
7016
+ </div>
7017
+ </div>
7018
+ </div>
7019
+ <app-context-menu
7020
+ #contextMenu
7021
+ [target]="label"
7022
+ [field]="field()!"></app-context-menu>
7023
+ }
6964
7024
  `, isInline: true, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.p-field>label:not(.ng-valid).ng-dirty>.field-editable{color:var(--p-red-500)!important}.field-editable{padding-left:1px;font-size:6px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"], dependencies: [{ kind: "component", type: FormFieldComponent, selector: "form-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FormTypeComponent, selector: "form-type", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: LabelDirective, selector: "[fieldLabel], [fieldLabel][field], [fieldLabel][contextMenu]", inputs: ["field", "contextMenu"] }, { kind: "component", type: ContextMenuComponent, selector: "app-context-menu", inputs: ["target", "field"] }] }); }
6965
7025
  }
6966
7026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
6967
7027
  type: Component,
6968
- args: [{ selector: 'form-field', standalone: true, imports: [ReactiveFormsModule, FormTypeComponent, TranslatePipe, LabelDirective, ContextMenuComponent], template: `
6969
- @if (field()?.group) {
6970
- <div [class]="field()?.groupClass">
6971
- @for (fchild of field()!.group; track fchild) {
6972
- @if (!fchild.hide) {
6973
- <div [class]="fchild.groupClass || fchild.class">
6974
- <form-field
6975
- class="w-full"
6976
- [field]="fchild">
6977
- </form-field>
6978
- </div>
6979
- }
6980
- }
6981
- </div>
6982
- } @else {
6983
- <div [class]="field()?.innerClass || 'px-4 my-1'">
6984
- <div class="flex flex-row flex-nowrap items-start">
6985
- <div
6986
- class="flex-none p-field field-label min-h-8 pt-[1.5px] flex items-center"
6987
- [style]="getStyle()">
6988
- <label
6989
- #label
6990
- [class]="labelClass()"
6991
- fieldLabel
6992
- [field]="field()!"
6993
- [contextMenu]="contextMenu">
6994
- <span
6995
- style="user-select: none"
6996
- #fieldLabelRef
6997
- >{{ props(field()!).i18nKey ? (props(field()!).i18nKey! | translate) : props(field()!).label! }}</span
6998
- >
6999
- @if (props(field()!).required) {
7000
- <span class="field-required">*</span>
7001
- }
7002
- @if (!field()?.fieldControl?.disabled) {
7003
- <span class="iconfont icon-edit-flag field-editable"></span>
7004
- }
7005
- </label>
7006
- </div>
7007
- <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
7008
- <div
7009
- #fieldTypeRef
7010
- class="w-full">
7011
- <form-type [field]="field()!"></form-type>
7012
- </div>
7013
- </div>
7014
- </div>
7015
- </div>
7016
- <app-context-menu
7017
- #contextMenu
7018
- [target]="label"
7019
- [field]="field()!"></app-context-menu>
7020
- }
7028
+ args: [{ selector: 'form-field', standalone: true, imports: [ReactiveFormsModule, FormTypeComponent, TranslatePipe, LabelDirective, ContextMenuComponent], template: `
7029
+ @if (field()?.group) {
7030
+ <div [class]="field()?.groupClass">
7031
+ @for (fchild of field()!.group; track fchild) {
7032
+ @if (!fchild.hide) {
7033
+ <div [class]="fchild.groupClass || fchild.class">
7034
+ <form-field
7035
+ class="w-full"
7036
+ [field]="fchild">
7037
+ </form-field>
7038
+ </div>
7039
+ }
7040
+ }
7041
+ </div>
7042
+ } @else {
7043
+ <div [class]="field()?.innerClass || 'px-4 my-1'">
7044
+ <div class="flex flex-row flex-nowrap items-start">
7045
+ <div
7046
+ class="flex-none p-field field-label min-h-8 pt-[1.5px] flex items-center"
7047
+ [style]="getStyle()">
7048
+ <label
7049
+ #label
7050
+ [class]="labelClass()"
7051
+ fieldLabel
7052
+ [field]="field()!"
7053
+ [contextMenu]="contextMenu">
7054
+ <span
7055
+ style="user-select: none"
7056
+ #fieldLabelRef
7057
+ >{{ props(field()!).i18nKey ? (props(field()!).i18nKey! | translate) : props(field()!).label! }}</span
7058
+ >
7059
+ @if (props(field()!).required) {
7060
+ <span class="field-required">*</span>
7061
+ }
7062
+ @if (!field()?.fieldControl?.disabled) {
7063
+ <span class="iconfont icon-edit-flag field-editable"></span>
7064
+ }
7065
+ </label>
7066
+ </div>
7067
+ <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
7068
+ <div
7069
+ #fieldTypeRef
7070
+ class="w-full">
7071
+ <form-type [field]="field()!"></form-type>
7072
+ </div>
7073
+ </div>
7074
+ </div>
7075
+ </div>
7076
+ <app-context-menu
7077
+ #contextMenu
7078
+ [target]="label"
7079
+ [field]="field()!"></app-context-menu>
7080
+ }
7021
7081
  `, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.p-field>label:not(.ng-valid).ng-dirty>.field-editable{color:var(--p-red-500)!important}.field-editable{padding-left:1px;font-size:6px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"] }]
7022
7082
  }], ctorParameters: () => [], propDecorators: { fieldComponents: [{
7023
7083
  type: ViewChildren,
@@ -7061,7 +7121,6 @@ class FormComponent {
7061
7121
  if (!this.model()) {
7062
7122
  return;
7063
7123
  }
7064
- // 默认值仅在表单新建时生效
7065
7124
  if (this.isNew) {
7066
7125
  this.fieldList.forEach((field) => {
7067
7126
  if (!field.default)
@@ -7121,7 +7180,6 @@ class FormComponent {
7121
7180
  field.uuid = `${generateUniqueId()}${index}`;
7122
7181
  field.labelMinWidth = this.labelMinWidth;
7123
7182
  field.interactiveLabel = this.options().interactiveLabel ?? true;
7124
- // console.log('options-----',this.options().modelName)
7125
7183
  if (isI18n && (!fieldUtils.props(field).i18nKey || fieldUtils.props(field).i18nKey == '')) {
7126
7184
  fieldUtils.props(field).i18nKey = `tables.${this.options().modelName}.${field.key}`;
7127
7185
  }
@@ -7156,6 +7214,9 @@ class FormComponent {
7156
7214
  if (fieldUtils.isFakedChange(targetValue, this.model()[field.key], field)) {
7157
7215
  return;
7158
7216
  }
7217
+ if (fieldUtils.props(field)?.onModelChange && typeof fieldUtils.props(field)?.onModelChange === 'function') {
7218
+ fieldUtils.props(field)?.onModelChange(field, { value });
7219
+ }
7159
7220
  this.handleValueChange(targetValue, field);
7160
7221
  });
7161
7222
  }
@@ -7217,7 +7278,7 @@ class FormComponent {
7217
7278
  }
7218
7279
  triggerHook() {
7219
7280
  this.fieldList.forEach((field) => {
7220
- fieldUtils.triggerHookAndSetValue(field, this.model()?.[field.key], false, ['upload', 'image', 'codemirror', 'radio', 'select', 'treeselect', 'rowselector', 'datepicker'].includes(field.type), this.hookObservers, () => {
7281
+ fieldUtils.triggerHookAndSetValue(field, this.model()?.[field.key], false, true, this.hookObservers, () => {
7221
7282
  this.handleHideExpression();
7222
7283
  }, this.datePipe);
7223
7284
  });
@@ -7253,13 +7314,15 @@ class FormComponent {
7253
7314
  /**
7254
7315
  * 触发模型变动,针对表单字段数据
7255
7316
  * @param model 需要变动的数据
7317
+ * @param emitEvent 是否触发事件
7318
+ * @param detectModelChange 是否触发detectModelChange
7256
7319
  */
7257
- triggerModelEffect(model) {
7320
+ triggerModelEffect(model, emitEvent, emitHook) {
7258
7321
  Object.keys(model).forEach((key) => {
7259
7322
  const field = this.getField(key);
7260
7323
  if (!field)
7261
7324
  return;
7262
- fieldUtils.triggerHookAndSetValue(field, model[key], true, ['upload', 'image', 'codemirror', 'radio', 'select', 'treeselect', 'rowselector', 'datepicker'].includes(field.type), this.hookObservers, () => {
7325
+ fieldUtils.triggerHookAndSetValue(field, model[key], emitEvent ?? true, emitHook ?? true, this.hookObservers, () => {
7263
7326
  this.handleHideExpression();
7264
7327
  }, this.datePipe);
7265
7328
  });
@@ -7566,11 +7629,11 @@ class ActionsComponent {
7566
7629
  this.doAction(event, action);
7567
7630
  }
7568
7631
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsComponent, deps: [{ token: i1$8.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component }); }
7569
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ActionsComponent, isStandalone: true, selector: "custom-actions", inputs: { grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, isCancel: { classPropertyName: "isCancel", publicName: "isCancel", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<p-toast />\r\n<div class=\"flex flex-wrap gap-4 justify-center\">\r\n\t@if (isCancel()) {\r\n\t\t<p-button\r\n\t\t\t[severity]=\"'secondary'\"\r\n\t\t\t[label]=\"('primeng.cancel' | translate) + ' ' + selectedRows.length\"\r\n\t\t\tsize=\"small\"\r\n\t\t\t(click)=\"doCancelAction()\">\r\n\t\t</p-button>\r\n\t}\r\n\r\n\t@for (action of actions(); track action) {\r\n\t\t<p-button\r\n\t\t\tsize=\"small\"\r\n\t\t\t[variant]=\"action.variant\"\r\n\t\t\t[icon]=\"action.icon\"\r\n\t\t\t[severity]=\"action.severity\"\r\n\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t[styleClass]=\"getClass(action)\"\r\n\t\t\t[disabled]=\"action.btnDisabled?.({ action: action, rows: selectedRows, grid: grid() }) ?? false\"\r\n\t\t\t(onClick)=\"onActionClick($event, action)\"></p-button>\r\n\t}\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
7632
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ActionsComponent, isStandalone: true, selector: "custom-actions", inputs: { grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, isCancel: { classPropertyName: "isCancel", publicName: "isCancel", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<p-toast />\r\n<div class=\"flex flex-wrap gap-4 justify-center\">\r\n\t@if (isCancel()) {\r\n\t\t<p-button\r\n\t\t\t[severity]=\"'secondary'\"\r\n\t\t\t[label]=\"('primeng.cancel' | translate) + ' ' + selectedRows.length\"\r\n\t\t\tsize=\"small\"\r\n\t\t\t(click)=\"doCancelAction()\">\r\n\t\t</p-button>\r\n\t}\r\n\r\n\t@for (action of actions(); track action) {\r\n\t\t<p-button\r\n\t\t\tsize=\"small\"\r\n\t\t\t[variant]=\"action.variant\"\r\n\t\t\t[icon]=\"action.icon\"\r\n\t\t\t[loading]=\"action.loading\"\r\n\t\t\t[severity]=\"action.severity\"\r\n\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t[styleClass]=\"getClass(action)\"\r\n\t\t\t[disabled]=\"action.btnDisabled?.({ action: action, rows: selectedRows, grid: grid() }) ?? false\"\r\n\t\t\t(onClick)=\"onActionClick($event, action)\"></p-button>\r\n\t}\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
7570
7633
  }
7571
7634
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsComponent, decorators: [{
7572
7635
  type: Component,
7573
- args: [{ selector: 'custom-actions', standalone: true, imports: [ButtonModule, Toast, TranslatePipe], template: "<p-toast />\r\n<div class=\"flex flex-wrap gap-4 justify-center\">\r\n\t@if (isCancel()) {\r\n\t\t<p-button\r\n\t\t\t[severity]=\"'secondary'\"\r\n\t\t\t[label]=\"('primeng.cancel' | translate) + ' ' + selectedRows.length\"\r\n\t\t\tsize=\"small\"\r\n\t\t\t(click)=\"doCancelAction()\">\r\n\t\t</p-button>\r\n\t}\r\n\r\n\t@for (action of actions(); track action) {\r\n\t\t<p-button\r\n\t\t\tsize=\"small\"\r\n\t\t\t[variant]=\"action.variant\"\r\n\t\t\t[icon]=\"action.icon\"\r\n\t\t\t[severity]=\"action.severity\"\r\n\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t[styleClass]=\"getClass(action)\"\r\n\t\t\t[disabled]=\"action.btnDisabled?.({ action: action, rows: selectedRows, grid: grid() }) ?? false\"\r\n\t\t\t(onClick)=\"onActionClick($event, action)\"></p-button>\r\n\t}\r\n</div>\r\n" }]
7636
+ args: [{ selector: 'custom-actions', standalone: true, imports: [ButtonModule, Toast, TranslatePipe], template: "<p-toast />\r\n<div class=\"flex flex-wrap gap-4 justify-center\">\r\n\t@if (isCancel()) {\r\n\t\t<p-button\r\n\t\t\t[severity]=\"'secondary'\"\r\n\t\t\t[label]=\"('primeng.cancel' | translate) + ' ' + selectedRows.length\"\r\n\t\t\tsize=\"small\"\r\n\t\t\t(click)=\"doCancelAction()\">\r\n\t\t</p-button>\r\n\t}\r\n\r\n\t@for (action of actions(); track action) {\r\n\t\t<p-button\r\n\t\t\tsize=\"small\"\r\n\t\t\t[variant]=\"action.variant\"\r\n\t\t\t[icon]=\"action.icon\"\r\n\t\t\t[loading]=\"action.loading\"\r\n\t\t\t[severity]=\"action.severity\"\r\n\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t[styleClass]=\"getClass(action)\"\r\n\t\t\t[disabled]=\"action.btnDisabled?.({ action: action, rows: selectedRows, grid: grid() }) ?? false\"\r\n\t\t\t(onClick)=\"onActionClick($event, action)\"></p-button>\r\n\t}\r\n</div>\r\n" }]
7574
7637
  }], ctorParameters: () => [{ type: i1$8.ConfirmationService }] });
7575
7638
 
7576
7639
  class HeadComponent {
@@ -8173,6 +8236,14 @@ class PageFormComponent extends AmComponent {
8173
8236
  console.log(typeof this.formDetail(), 'form----');
8174
8237
  typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
8175
8238
  }
8239
+ else {
8240
+ this.getPrm.data = {};
8241
+ this.gridList().forEach(v => {
8242
+ if (v.type == 'grid') {
8243
+ this.getPrm.data[v.subDataKey] = [];
8244
+ }
8245
+ });
8246
+ }
8176
8247
  }, { allowSignalWrites: true });
8177
8248
  effect(() => {
8178
8249
  this.formOptions = { ...this.form() };
@@ -8199,6 +8270,7 @@ class PageFormComponent extends AmComponent {
8199
8270
  }
8200
8271
  submitForm() {
8201
8272
  // this.tabForm.validate()
8273
+ console.log('getPrm------', this.getPrm);
8202
8274
  let subForm = true;
8203
8275
  if (this.tabForm.length > 0) {
8204
8276
  this.tabForm.forEach(item => {
@@ -8439,7 +8511,7 @@ class PageFormComponent extends AmComponent {
8439
8511
  }, 0);
8440
8512
  }
8441
8513
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8442
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
8514
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
8443
8515
  }
8444
8516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
8445
8517
  type: Component,
@@ -8455,7 +8527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8455
8527
  RowSelectorComponent$1,
8456
8528
  TranslatePipe,
8457
8529
  HrefBtnListComponent,
8458
- ], providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"] }]
8530
+ ], providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"] }]
8459
8531
  }], ctorParameters: () => [], propDecorators: { cForm: [{
8460
8532
  type: ViewChild,
8461
8533
  args: ['cForm']