@magic-xpa/angular-material-core 4.1300.0-dev4130.135 → 4.1300.0-dev4130.137

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.
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostListener, Input, Injectable, Component, ViewChild, forwardRef, NgModule } from '@angular/core';
2
+ import { Directive, HostListener, Input, Injectable, Component, ViewChild, Optional, Self, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
- import * as i2$1 from '@angular/forms';
5
- import { FormGroup, FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import * as i3 from '@angular/forms';
5
+ import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
6
  import * as i1 from '@magic-xpa/angular';
7
7
  import { ComboboxMagicDirective, MagicDirective, TableMagicService, basicMagicProviders, TaskBaseMagicComponent, MagicModule } from '@magic-xpa/angular';
8
8
  import { filter } from 'rxjs/operators';
@@ -15,11 +15,15 @@ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
15
15
  import { SelectionModel } from '@angular/cdk/collections';
16
16
  import { isNullOrUndefined } from '@magic-xpa/mscorelib';
17
17
  import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
18
- import * as i3 from '@angular/material/input';
18
+ import { MatFormFieldControl } from '@angular/material/form-field';
19
+ import * as i2$1 from '@angular/cdk/a11y';
20
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
21
+ import { Subject } from 'rxjs';
22
+ import * as i4 from '@angular/material/input';
19
23
  import { MatInputModule } from '@angular/material/input';
20
- import * as i4 from '@angular/material/select';
24
+ import * as i5 from '@angular/material/select';
21
25
  import { MatSelectModule } from '@angular/material/select';
22
- import * as i5 from '@angular/material/autocomplete';
26
+ import * as i6 from '@angular/material/autocomplete';
23
27
  import { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';
24
28
  import { MatButtonModule } from '@angular/material/button';
25
29
  import { MatListModule } from '@angular/material/list';
@@ -485,7 +489,7 @@ class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
485
489
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMatTableMagicComponent, { className: "BaseMatTableMagicComponent", filePath: "src/components/base-mat-table-magic.component.ts", lineNumber: 19 }); })();
486
490
 
487
491
  const _c0 = ["comboinput"];
488
- function EditableComboComponent_For_7_Template(rf, ctx) { if (rf & 1) {
492
+ function EditableComboComponent_For_6_Template(rf, ctx) { if (rf & 1) {
489
493
  i0.ɵɵelementStart(0, "mat-option", 5);
490
494
  i0.ɵɵtext(1);
491
495
  i0.ɵɵelementEnd();
@@ -495,8 +499,13 @@ function EditableComboComponent_For_7_Template(rf, ctx) { if (rf & 1) {
495
499
  i0.ɵɵadvance();
496
500
  i0.ɵɵtextInterpolate1(" ", o_r1.displayValue, " ");
497
501
  } }
502
+ // Added MatFormFieldControl<number> so this component integrates with mat-form-field.
503
+ // Added OnDestroy to clean up stateChanges stream and FocusMonitor when component is destroyed.
498
504
  class EditableComboComponent {
499
505
  magicServices;
506
+ fm;
507
+ elRef;
508
+ ngControl;
500
509
  /**
501
510
  * @ignore
502
511
  */
@@ -519,8 +528,64 @@ class EditableComboComponent {
519
528
  // These are the functions required by ControlValueAccessor
520
529
  onChange = () => { };
521
530
  onTouched = () => { };
522
- constructor(magicServices) {
531
+ // Required fields for MatFormFieldControl contract.
532
+ // These allow mat-form-field to track id, state changes, focus, and control type.
533
+ static nextId = 0;
534
+ id = `editable-combo-${EditableComboComponent.nextId++}`;
535
+ stateChanges = new Subject();
536
+ focused = false;
537
+ touched = false;
538
+ controlType = 'editable-combo';
539
+ value = -1;
540
+ // Required by MatFormFieldControl. Allows developer to set required attribute on mat-form-field.
541
+ _required = false;
542
+ get required() { return this._required; }
543
+ set required(val) { this._required = coerceBooleanProperty(val); this.stateChanges.next(); }
544
+ // Required by MatFormFieldControl. Keeps the internal FormControl in sync with disabled state.
545
+ _disabled = false;
546
+ get disabled() { return this._disabled; }
547
+ set disabled(val) { this._disabled = coerceBooleanProperty(val); this.stateChanges.next(); }
548
+ // Checks the inner input value to determine if the field is empty.
549
+ // mat-form-field uses this to decide whether the label should float or not.
550
+ get empty() {
551
+ const inputVal = this.formGroup.get('combo_fc')?.value;
552
+ return !inputVal || inputVal === '';
553
+ }
554
+ // Controls whether mat-label floats above the field.
555
+ // Label floats when the field is focused or has a value selected.
556
+ get shouldLabelFloat() {
557
+ return this.focused || !this.empty;
558
+ }
559
+ // Controls when the red error border is shown.
560
+ // Error is shown only after the user has left the field without selecting a value.
561
+ get errorState() {
562
+ return this.touched && this.ngControl?.invalid === true;
563
+ }
564
+ constructor(magicServices,
565
+ // FocusMonitor and ElementRef are needed to track focus state on the host element.
566
+ fm, elRef,
567
+ // NgControl gives access to the form control's validation state for errorState.
568
+ ngControl) {
523
569
  this.magicServices = magicServices;
570
+ this.fm = fm;
571
+ this.elRef = elRef;
572
+ this.ngControl = ngControl;
573
+ // Manually assign valueAccessor here instead of using NG_VALUE_ACCESSOR provider.
574
+ // This avoids the circular dependency error (NG0200) that occurs when NgControl
575
+ // and NG_VALUE_ACCESSOR both try to reference each other during injection.
576
+ if (this.ngControl != null) {
577
+ this.ngControl.valueAccessor = this;
578
+ }
579
+ // origin tells you how the element was focused, its values are: 'mouse'/'keyboard'/'touch'/'program'
580
+ // Set touched=true on blur (while leaving the control) to avoid showing error on entering the control when control is with required.
581
+ // otherwise, the error will be shown as soon as user enters the control.
582
+ fm.monitor(elRef, true).subscribe(origin => {
583
+ this.focused = origin !== null;
584
+ if (origin === null) {
585
+ this.touched = true;
586
+ }
587
+ this.stateChanges.next();
588
+ });
524
589
  }
525
590
  /**
526
591
  * Returns the Magic accessor service
@@ -538,6 +603,22 @@ class EditableComboComponent {
538
603
  }
539
604
  ngOnInit() {
540
605
  this.formGroup.addControl("combo_fc", new FormControl());
606
+ // Notify mat-form-field whenever the inner input value changes.
607
+ // This ensures the label floats correctly as the user types or selects a value.
608
+ this.formGroup.get('combo_fc')?.valueChanges.subscribe(() => {
609
+ this.stateChanges.next();
610
+ });
611
+ }
612
+ // Clean up stateChanges stream and stop focus monitoring to prevent memory leaks.
613
+ ngOnDestroy() {
614
+ this.stateChanges.complete();
615
+ this.fm.stopMonitoring(this.elRef);
616
+ }
617
+ // Required by MatFormFieldControl. Sets aria-describedby for accessibility.
618
+ setDescribedByIds(ids) { }
619
+ // Required by MatFormFieldControl. Focuses the inner input when the field container is clicked.
620
+ onContainerClick(event) {
621
+ this.combo_input?.nativeElement.focus();
541
622
  }
542
623
  // Write value method will be called when FormControl value is updated
543
624
  writeValue(value) {
@@ -551,6 +632,8 @@ class EditableComboComponent {
551
632
  }
552
633
  else
553
634
  this.formGroup.get("combo_fc")?.setValue("");
635
+ // Notify mat-form-field that the value has changed so it can update label and state.
636
+ this.stateChanges.next();
554
637
  }
555
638
  // Register onChange function to be triggered when the input value changes
556
639
  registerOnChange(fn) {
@@ -563,6 +646,9 @@ class EditableComboComponent {
563
646
  // Optional: Handle the touch event when the input is blurred
564
647
  onBlur() {
565
648
  this.onTouched();
649
+ // Mark as touched and notify mat-form-field so errorState is re-evaluated after blur.
650
+ this.touched = true;
651
+ this.stateChanges.next();
566
652
  }
567
653
  // Enables or disables the form control based on the provided state
568
654
  setDisabledState(isDisabled) {
@@ -573,6 +659,8 @@ class EditableComboComponent {
573
659
  else
574
660
  formControl.enable();
575
661
  }
662
+ // Notify mat-form-field so it updates the visual disabled state.
663
+ this.stateChanges.next();
576
664
  }
577
665
  onOptionSelected(event) {
578
666
  const selectedVal = event.option.value;
@@ -604,45 +692,55 @@ class EditableComboComponent {
604
692
  else
605
693
  return items;
606
694
  }
607
- /** @nocollapse */ static ɵfac = function EditableComboComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableComboComponent)(i0.ɵɵdirectiveInject(i1.MagicServices)); };
695
+ /** @nocollapse */ static ɵfac = function EditableComboComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableComboComponent)(i0.ɵɵdirectiveInject(i1.MagicServices), i0.ɵɵdirectiveInject(i2$1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.NgControl, 10)); };
608
696
  /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: EditableComboComponent, selectors: [["editable-combo"]], viewQuery: function EditableComboComponent_Query(rf, ctx) { if (rf & 1) {
609
697
  i0.ɵɵviewQuery(_c0, 5);
610
698
  } if (rf & 2) {
611
699
  let _t;
612
700
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.combo_input = _t.first);
613
- } }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"], placeholder: "placeholder" }, standalone: false, features: [i0.ɵɵProvidersFeature([
701
+ } }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"], placeholder: "placeholder", required: "required", disabled: "disabled" }, standalone: false, features: [i0.ɵɵProvidersFeature([
702
+ // Registering this component as a MatFormFieldControl so that Angular Material's
703
+ // mat-form-field can recognize it as a valid form control and communicate with it.
704
+ // useExisting tells Angular to use the already created instance of this component
705
+ // instead of creating a new one, so mat-form-field and the component share the same instance.
614
706
  {
615
- provide: NG_VALUE_ACCESSOR,
616
- useExisting: forwardRef((() => EditableComboComponent)),
617
- multi: true
707
+ provide: MatFormFieldControl,
708
+ useExisting: EditableComboComponent
618
709
  }
619
- ])], decls: 8, vars: 3, consts: [["comboinput", ""], ["Editable_Combo", "matAutocomplete"], ["novalidate", "", 3, "formGroup"], ["matInput", "", "formControlName", "combo_fc", 3, "blur", "matAutocomplete", "placeholder"], ["requireSelection", "true", "autoActiveFirstOption", "true", 3, "optionSelected", "closed", "opened"], [3, "value"]], template: function EditableComboComponent_Template(rf, ctx) { if (rf & 1) {
620
- i0.ɵɵelementStart(0, "div", 2)(1, "mat-form-field")(2, "input", 3, 0);
621
- i0.ɵɵlistener("blur", function EditableComboComponent_Template_input_blur_2_listener() { return ctx.onBlur(); });
710
+ ])], decls: 7, vars: 3, consts: [["comboinput", ""], ["Editable_Combo", "matAutocomplete"], ["novalidate", "", 3, "formGroup"], ["matInput", "", "formControlName", "combo_fc", 3, "blur", "matAutocomplete", "placeholder"], ["requireSelection", "true", "autoActiveFirstOption", "true", 3, "optionSelected", "closed", "opened"], [3, "value"]], template: function EditableComboComponent_Template(rf, ctx) { if (rf & 1) {
711
+ i0.ɵɵelementStart(0, "div", 2)(1, "input", 3, 0);
712
+ i0.ɵɵlistener("blur", function EditableComboComponent_Template_input_blur_1_listener() { return ctx.onBlur(); });
622
713
  i0.ɵɵelementEnd();
623
- i0.ɵɵelementStart(4, "mat-autocomplete", 4, 1);
624
- i0.ɵɵlistener("optionSelected", function EditableComboComponent_Template_mat_autocomplete_optionSelected_4_listener($event) { return ctx.onOptionSelected($event); })("closed", function EditableComboComponent_Template_mat_autocomplete_closed_4_listener() { return ctx.onClosed(); })("opened", function EditableComboComponent_Template_mat_autocomplete_opened_4_listener() { return ctx.onOpened(); });
625
- i0.ɵɵrepeaterCreate(6, EditableComboComponent_For_7_Template, 2, 2, "mat-option", 5, i0.ɵɵrepeaterTrackByIdentity);
626
- i0.ɵɵelementEnd()()();
714
+ i0.ɵɵelementStart(3, "mat-autocomplete", 4, 1);
715
+ i0.ɵɵlistener("optionSelected", function EditableComboComponent_Template_mat_autocomplete_optionSelected_3_listener($event) { return ctx.onOptionSelected($event); })("closed", function EditableComboComponent_Template_mat_autocomplete_closed_3_listener() { return ctx.onClosed(); })("opened", function EditableComboComponent_Template_mat_autocomplete_opened_3_listener() { return ctx.onOpened(); });
716
+ i0.ɵɵrepeaterCreate(5, EditableComboComponent_For_6_Template, 2, 2, "mat-option", 5, i0.ɵɵrepeaterTrackByIdentity);
717
+ i0.ɵɵelementEnd()();
627
718
  } if (rf & 2) {
628
- const Editable_Combo_r2 = i0.ɵɵreference(5);
719
+ const Editable_Combo_r2 = i0.ɵɵreference(4);
629
720
  i0.ɵɵproperty("formGroup", ctx.formGroup);
630
- i0.ɵɵadvance(2);
721
+ i0.ɵɵadvance();
631
722
  i0.ɵɵproperty("matAutocomplete", Editable_Combo_r2)("placeholder", ctx.placeholder);
632
723
  i0.ɵɵadvance(4);
633
724
  i0.ɵɵrepeater(ctx.getFilteredListForChoiceControl());
634
- } }, dependencies: [i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i3.MatInput, i3.MatFormField, i4.MatOption, i5.MatAutocompleteTrigger, i5.MatAutocomplete, i2$1.FormGroupDirective, i2$1.FormControlName], encapsulation: 2 });
725
+ } }, dependencies: [i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i4.MatInput, i5.MatOption, i6.MatAutocompleteTrigger, i6.MatAutocomplete, i3.FormGroupDirective, i3.FormControlName], encapsulation: 2 });
635
726
  }
636
727
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditableComboComponent, [{
637
728
  type: Component,
638
729
  args: [{ selector: 'editable-combo', standalone: false, providers: [
730
+ // Registering this component as a MatFormFieldControl so that Angular Material's
731
+ // mat-form-field can recognize it as a valid form control and communicate with it.
732
+ // useExisting tells Angular to use the already created instance of this component
733
+ // instead of creating a new one, so mat-form-field and the component share the same instance.
639
734
  {
640
- provide: NG_VALUE_ACCESSOR,
641
- useExisting: forwardRef((() => EditableComboComponent)),
642
- multi: true
735
+ provide: MatFormFieldControl,
736
+ useExisting: EditableComboComponent
643
737
  }
644
- ], template: "<div\n novalidate\n [formGroup]=\"formGroup\"\n >\n <mat-form-field>\n <input\n #comboinput\n matInput\n formControlName=\"combo_fc\"\n [matAutocomplete]=\"Editable_Combo\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n >\n <!-- <mat-icon matSuffix>arrow_drop_down</mat-icon>-->\n <mat-autocomplete\n #Editable_Combo=\"matAutocomplete\"\n requireSelection=\"true\"\n autoActiveFirstOption=\"true\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n >\n @for (o of getFilteredListForChoiceControl(); track o) {\n <mat-option\n [value]=\"o.displayValue\"\n >\n {{o.displayValue}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n </div>\n" }]
645
- }], () => [{ type: i1.MagicServices }], { combo_input: [{
738
+ ], template: "<div\n novalidate\n [formGroup]=\"formGroup\"\n >\n <input\n #comboinput\n matInput\n formControlName=\"combo_fc\"\n [matAutocomplete]=\"Editable_Combo\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n >\n <!-- <mat-icon matSuffix>arrow_drop_down</mat-icon>-->\n <mat-autocomplete\n #Editable_Combo=\"matAutocomplete\"\n requireSelection=\"true\"\n autoActiveFirstOption=\"true\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n >\n @for (o of getFilteredListForChoiceControl(); track o) {\n <mat-option\n [value]=\"o.displayValue\"\n >\n {{o.displayValue}}\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n" }]
739
+ }], () => [{ type: i1.MagicServices }, { type: i2$1.FocusMonitor }, { type: i0.ElementRef }, { type: i3.NgControl, decorators: [{
740
+ type: Optional
741
+ }, {
742
+ type: Self
743
+ }] }], { combo_input: [{
646
744
  type: ViewChild,
647
745
  args: ['comboinput']
648
746
  }], magic: [{
@@ -653,8 +751,12 @@ class EditableComboComponent {
653
751
  args: ['rowId']
654
752
  }], placeholder: [{
655
753
  type: Input
754
+ }], required: [{
755
+ type: Input
756
+ }], disabled: [{
757
+ type: Input
656
758
  }] }); })();
657
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditableComboComponent, { className: "EditableComboComponent", filePath: "src/components/editable-combo-component.ts", lineNumber: 25 }); })();
759
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditableComboComponent, { className: "EditableComboComponent", filePath: "src/components/editable-combo-component.ts", lineNumber: 39 }); })();
658
760
 
659
761
  /**
660
762
  * Directive for material-design listboxes not on material-design table
@@ -1 +1 @@
1
- {"version":3,"file":"magic-xpa-angular-material-core.mjs","sources":["../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-checkbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-combobox.directive.ts","../../../../projects/angular-material-core/src/services/mattable.magic.service.ts","../../../../projects/angular-material-core/src/services/mat.magic.providers.ts","../../../../projects/angular-material-core/src/components/base-mat-table-magic.component.ts","../../../../projects/angular-material-core/src/components/editable-combo.component.html","../../../../projects/angular-material-core/src/components/editable-combo-component.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-listbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-autocomplete.directive.ts","../../../../projects/angular-material-core/src/angular-material.module.ts","../../../../projects/angular-material-core/index.ts","../../../../projects/angular-material-core/magic-xpa-angular-material-core.ts"],"sourcesContent":["import {Directive, ElementRef, HostListener, Input} from \"@angular/core\";\r\nimport {MagicDirective, TaskMagicService} from \"@magic-xpa/angular\";\r\nimport {filter} from \"rxjs/operators\";\r\nimport {CommandType, GuiCommand, HtmlProperties} from \"@magic-xpa/gui\";\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {getGuiEventObj, IGuiEvent} from \"@magic-xpa/engine\";\r\n\r\n\r\n/**\r\n * Directive for material-design checkboxes not on material-design table\r\n */\r\n@Directive({\n selector: `\r\n mat-checkbox[magic]:not([noFormControl])\r\n `,\n standalone: false\n})\r\nexport class MatCheckboxDirective {\r\n @Input() threeState: boolean = false;\r\n private subscribeRefreshDom: any = null;\r\n private indeterminate : boolean = false;\r\n /**\r\n * @ignore\r\n */\r\n constructor( protected magicDirective: MagicDirective,\r\n private matCheckbox: MatCheckbox,\r\n protected task: TaskMagicService,\r\n protected element: ElementRef) {\r\n }\r\n /**\r\n * Handles the Checkbox 'change' event - pass it to the Magic engine\r\n */\r\n @HostListener('change', ['$event'])\r\n onChange($event: Event) {\r\n if(this.threeState) {\r\n this.handleThreeState();\r\n }\r\n else {\r\n this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);\r\n }\r\n }\r\n ngOnInit() {\r\n if(this.threeState){\r\n let guiEvent: IGuiEvent = getGuiEventObj(\"setAsThreeState\",this.magicDirective.id, +this.magicDirective.rowId);\r\n this.task.insertEvent(guiEvent);\r\n this.matCheckbox.indeterminate = this.indeterminate = this.task.getProperty(this.magicDirective.id, HtmlProperties.CheckBoxIndeterminate, this.magicDirective.rowId);\r\n this.regUpdatesUI();\r\n }\r\n }\r\n private regUpdatesUI() {\r\n this.subscribeRefreshDom = this.task\r\n .refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c)))\r\n .subscribe(a => {\r\n let command: GuiCommand = a;\r\n try {\r\n this.handleCommand(command);\r\n } catch (ex) {\r\n console.dir(ex);\r\n }\r\n }\r\n );\r\n }\r\n handleCommand(command: GuiCommand){\r\n if (command.CommandType == CommandType.SET_PROPERTY &&\r\n command.Operation == HtmlProperties.CheckBoxIndeterminate) {\r\n this.indeterminate = this.matCheckbox.indeterminate = command.obj1;\r\n }\r\n }\r\n private handleThreeState() {\r\n let value : string = '';\r\n let prevCheckedValue = this.task.getValue(this.magicDirective.id, this.magicDirective.rowId);\r\n if(this.indeterminate) {\r\n this.indeterminate = this.matCheckbox.indeterminate = false;\r\n this.matCheckbox.checked = false;\r\n value = 'unchecked';\r\n }\r\n else if(prevCheckedValue) {\r\n this.indeterminate = this.matCheckbox.indeterminate = true;\r\n this.matCheckbox.checked = false;\r\n value = 'indeterminate';\r\n }\r\n else if(!prevCheckedValue) {\r\n this.indeterminate = this.matCheckbox.indeterminate = false;\r\n this.matCheckbox.checked = true;\r\n value = 'checked';\r\n }\r\n // @ts-ignore\r\n this.magicDirective.task.onCheckChanged(value, this.magicDirective.id, +this.magicDirective.rowId);\r\n }\r\n /**\r\n * Cleanup\r\n */\r\n ngOnDestroy(): void {\r\n if(this.subscribeRefreshDom !== null)\r\n this.subscribeRefreshDom.unsubscribe();\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport {ComboboxMagicDirective, MagicDirective} from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design comboboxes not on material-design table\r\n */\r\n@Directive({\n selector: `mat-select[magic]`,\n standalone: false\n})\r\nexport class MatComboboxDirective extends ComboboxMagicDirective {\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n super.onChange($event);\r\n }\r\n\r\n @HostListener('openedChange', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.opened = $event;\r\n }\r\n\r\n /**\r\n * For mat-select do nothing\r\n */\r\n onComboboxItemsListChanged(): void {\r\n }\r\n}\r\n","\nimport { Injectable } from '@angular/core';\nimport { SelectionModel } from \"@angular/cdk/collections\";\n\nimport { TaskMagicService, ComponentListMagicService, ControlsMetadata } from \"@magic-xpa/angular\";\nimport {IGuiEvent, getGuiEventObj} from \"@magic-xpa/engine\";\nimport { TableMagicService } from \"@magic-xpa/angular\";\nimport {isNullOrUndefined} from \"@magic-xpa/mscorelib\";\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\n\n\n/**\n * Extends the Magic table service to supply functionality for Material Design tables\n */\n@Injectable()\nexport class MgMatTableService extends TableMagicService {\n /**\n * Table data source\n */\n dataSource: MatTableDataSource<Element>;\n\n /**\n * @ignore\n */\n get DataSource(): MatTableDataSource<Element> {\n return this.dataSource;\n }\n\n /**\n * @ignore\n */\n set DataSource(dataSource: MatTableDataSource<Element>) {\n this.dataSource = dataSource;\n }\n\n /**\n * Provides selection options for the table\n */\n selection: SelectionModel<Element>;\n\n /**\n * @ignore\n */\n get Selection(): SelectionModel<Element> {\n return this.selection;\n }\n\n /**\n * @ignore\n */\n set Selection(selection: SelectionModel<Element>) {\n this.selection = selection;\n }\n\n /**\n * Paginator to enable changing pages in the table\n */\n paginator: MatPaginator;\n\n /**\n * @ignore\n */\n get Paginator(): MatPaginator {\n return this.paginator;\n }\n\n /**\n * @ignore\n */\n set Paginator(paginator: MatPaginator) {\n this.paginator = paginator;\n }\n\n /**\n * @ignore\n */\n constructor(protected componentList: ComponentListMagicService, protected task: TaskMagicService ) {\n super(componentList, task);\n }\n\n /**\n * Connects the service to the elements of the table component\n * @param dataSource Table data source\n * @param paginator Table paginator\n * @param selection table SelectionModel\n */\n connect(dataSource: MatTableDataSource<Element> , paginator: MatPaginator, selection: SelectionModel<Element>) {\n this.dataSource = dataSource;\n this.paginator = paginator;\n this.selection = selection;\n }\n\n /**\n * @ignore\n */\n refreshDataSource() {\n if (!isNullOrUndefined(this.paginator))\n this.dataSource.paginator = this.paginator;\n\n this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);\n }\n\n /**\n * returns the page size of the table\n * @returns\n */\n getPageSize(): number {\n if (isNullOrUndefined(this.paginator))\n return 10;\n return this.paginator.pageSize;\n }\n\n /**\n * Selects a table row\n * @param guiRowid Id of row to be selected\n */\n selectRow(guiRowid: string): void {\n super.selectRow(guiRowid);\n this.selection.select(this.task.Records.list[guiRowid]);\n this.refreshDataSource();\n }\n\n /**\n * Displays the requested table page\n * @param pageId Id of page to be selected\n */\n selectPage(pageId: number): void {\n if (!isNullOrUndefined(this.paginator))\n this.paginator.pageIndex = pageId;\n\n this.refreshDataSource();\n }\n\n /**\n * Returns the currently seleted row\n * @returns\n */\n selectedRow(): any {\n return this.selection.selected[0];\n }\n\n /**\n * Handle the paginator's \"page\" event\n * @param e The event received from the UI\n * @param changeSelectedRow The flag true or false to indicate change the row\n */\n mgOnPaginateChange(e, changeSelectedRow?: boolean)\n {\n if (this.task.oldPageSize != e.pageSize) {\n this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);\n this.task.oldPageSize = e.pageSize;\n }\n else {\n if (changeSelectedRow)\n {\n let evt: string;\n if (e.pageIndex > e.previousPageIndex) {\n evt = (e.pageIndex - e.previousPageIndex === 1) ? \"next-page\" : \"end-table\";\n } else {\n evt = (e.previousPageIndex - e.pageIndex === 1) ? \"previous-page\" : \"begin-table\";\n }\n\n let guiEvent: IGuiEvent = getGuiEventObj(\"navigateInTable\", \"magicRow\",0);\n guiEvent.Value = evt;\n this.task.insertEvent(guiEvent);\n }\n else\n this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);\n }\n }\n\n /**\n * Handle resize and set table top index.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n handleResize(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let requiredGuiRowId = pageIndex * pageSize;\n this.task.resize(pageSize, requiredGuiRowId);\n }\n\n /**\n * Execute getRows to fetch required chunk of records.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n getRowsIfNeeded(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let guiEvent: IGuiEvent = getGuiEventObj(\"getRows\", \"\",0);\n guiEvent.Line = pageIndex * pageSize;\n this.task.insertEvent(guiEvent);\n this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));\n }\n\n /**\n * Handles the \"matSortChange\" event\n * @param e The event received from the UI\n */\n sortData(e) {\n let direction: number = 0;\n if (e.direction === 'asc')\n direction = 0;\n else if (e.direction === 'desc')\n direction = 1;\n\n let guiEvent: IGuiEvent = getGuiEventObj(\"columnSort\", e.active, direction);\n this.task.insertEvent(guiEvent);\n }\n\n /**\n * Change the number of lines in a table\n * @param size New number of lines in table\n */\n updateTableSize(size: number) {\n if (size === 0) // never remove row 0 for now\n {\n size = 1;\n this.task.Records.clearFirstTableRecord(this.task.template);\n }\n\n else if (isNullOrUndefined(this.paginator))\n size = this.getPageSize();\n\n this.task.formGroups.length = size;\n this.task.Records.updateSize(size);\n this.task.setIncludesFirst(false);\n }\n\n /**\n * Handle the selection of row and if needed move to respective page.\n * @param guiRowId New number of lines in table\n */\n protected selectPageForGuiRowId(guiRowId: number): void {\n let pageToBeSelected: number = 0;\n let prevSelectedRow: ControlsMetadata = <ControlsMetadata>this.selectedRow();\n\n pageToBeSelected = Math.floor(guiRowId / this.getPageSize());\n\n // Explicitly handle selection of page when it's not raised by using pagination\n if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))\n this.selectPage(pageToBeSelected);\n }\n\n /**\n * @ignore\n */\n setTableTopIndex(value: number) {\n this.task.Records.setGuiTopIndex(value);\n\n if (value >= 0)\n this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));\n }\n\n /**\n * @ignore\n */\n getTableTopIndex():number\n {\n return this.task.Records.getGuiTopIndex();\n }\n}\n\n","\r\nimport { basicMagicProviders, TableMagicService} from \"@magic-xpa/angular\";\r\n\r\nimport { MgMatTableService } from \"./mattable.magic.service\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const matMagicProviders = [\r\n ...basicMagicProviders, // - created error Exported variable 'matMagicProviders' has or is using name 'MagicServices' from external module \"D:/magicxpaproject/_Trunk/Sources/Webclient/dist/angular/src/services/magic.services\" but cannot be named.\r\n { provide: TableMagicService, useClass: MgMatTableService }\r\n];\r\n\r\n","import { MagicServices, TaskBaseMagicComponent } from '@magic-xpa/angular';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { MgMatTableService } from '../services/mattable.magic.service';\r\nimport { matMagicProviders } from '../services/mat.magic.providers';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { isNullOrUndefined } from '@magic-xpa/mscorelib';\r\n\r\n/**\r\n * This component is the base component for forms which has a material-design table (grid)\r\n */\r\n@Component({\n providers: matMagicProviders,\n template: '',\n standalone: false\n})\r\n export class BaseMatTableMagicComponent extends TaskBaseMagicComponent {\r\n\r\n /**\r\n * Paginator to enable changing pages in the table\r\n */\r\n @ViewChild(MatPaginator, {static:true}) paginator: MatPaginator;\r\n\r\n /**\r\n * Provides the table sort capabilities\r\n */\r\n @ViewChild(MatSort, {static:true}) sort: MatSort;\r\n\r\n /**\r\n * List of table columns to be displayed\r\n */\r\n displayedColumns;\r\n\r\n /**\r\n * Table data source\r\n */\r\n dataSource;\r\n\r\n /**\r\n * Provides selection options for the table\r\n */\r\n selection;\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n protected ref: ChangeDetectorRef,\r\n public magicService: MagicServices,\r\n ) {\r\n\r\n super(ref, magicService);\r\n\r\n this.displayedColumns = [];\r\n this.dataSource = new MatTableDataSource < Element > (this.task.Records.list);\r\n this.selection = new SelectionModel < Element > (false, []);\r\n }\r\n\r\n /**\r\n * Initializer\r\n */\r\n ngOnInit() {\r\n super.ngOnInit();\r\n (this.magicService.tableService as MgMatTableService).connect(this.dataSource, this.paginator, this.selection);\r\n }\r\n\r\n /**\r\n * AfterContentChecked implementation\r\n */\r\n ngAfterContentChecked() {\r\n if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&\r\n this.paginator.pageSize != this.task.oldPageSize) {\r\n (this.magicService.tableService as MgMatTableService).handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);\r\n this.task.oldPageSize = this.paginator.pageSize;\r\n }\r\n }\r\n}\r\n","<div\n novalidate\n [formGroup]=\"formGroup\"\n >\n <mat-form-field>\n <input\n #comboinput\n matInput\n formControlName=\"combo_fc\"\n [matAutocomplete]=\"Editable_Combo\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n >\n <!-- <mat-icon matSuffix>arrow_drop_down</mat-icon>-->\n <mat-autocomplete\n #Editable_Combo=\"matAutocomplete\"\n requireSelection=\"true\"\n autoActiveFirstOption=\"true\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n >\n @for (o of getFilteredListForChoiceControl(); track o) {\n <mat-option\n [value]=\"o.displayValue\"\n >\n {{o.displayValue}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n </div>\n","import {Component, ElementRef, forwardRef, Input, OnInit, ViewChild} from '@angular/core';\nimport {ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {\n AccessorMagicService,\n MagicDirective,\n MagicServices,\n TaskMagicService\n} from \"@magic-xpa/angular\";\n\nimport {MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\nimport {getGuiEventObj, IGuiEvent} from \"@magic-xpa/engine\";\n\n@Component({\n selector: 'editable-combo',\n standalone: false,\n templateUrl: './editable-combo.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditableComboComponent),\n multi: true\n }\n ]\n})\nexport class EditableComboComponent implements ControlValueAccessor, OnInit {\n /**\n * @ignore\n */\n controlId: string = \"\";\n rowId: string = \"0\";\n @ViewChild('comboinput') combo_input!: ElementRef;\n\n /**\n * @ignore\n */\n @Input('magic') set magic(val: string) {\n this.controlId = val;\n };\n\n @Input('rowId') set rowId1(val: string) {\n this.rowId = val;\n };\n\n @Input() placeholder: string = '';\n\n formGroup: FormGroup = new FormGroup({});\n\n // These are the functions required by ControlValueAccessor\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor(public magicServices: MagicServices) {\n }\n\n /**\n * Returns the Magic accessor service\n * @returns\n */\n get mg(): AccessorMagicService {\n return this.magicServices.mgAccessorService;\n }\n\n /**\n * Returns the Magic task service\n * @returns\n */\n get task(): TaskMagicService {\n return this.magicServices.task;\n }\n\n ngOnInit(): void {\n this.formGroup.addControl(\"combo_fc\", new FormControl());\n }\n\n // Write value method will be called when FormControl value is updated\n writeValue(value: number): void {\n if (typeof value == 'number' && value >= 0) {\n const options = this.mg.getItemListValues(this.controlId, this.rowId);\n const matchingOption = options.find(option => option.index === value);\n\n if (matchingOption != undefined)\n this.formGroup.get(\"combo_fc\")?.setValue(matchingOption.displayValue);\n else\n this.formGroup.get(\"combo_fc\")?.setValue(\"\");\n }\n else\n this.formGroup.get(\"combo_fc\")?.setValue(\"\");\n }\n\n // Register onChange function to be triggered when the input value changes\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n // Register onTouched function to be triggered when the input is touched\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Optional: Handle the touch event when the input is blurred\n onBlur(): void {\n this.onTouched();\n }\n\n // Enables or disables the form control based on the provided state\n setDisabledState(isDisabled: boolean): void {\n const formControl = this.formGroup.get(\"combo_fc\");\n if (formControl) {\n if (isDisabled)\n formControl.disable();\n else\n formControl.enable();\n }\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const selectedVal = event.option.value;\n\n const options = this.mg.getItemListValues(this.controlId, this.rowId);\n const matchingOption = options.find(option => option.displayValue === selectedVal);\n let selectedIndex = -1;\n\n if (matchingOption != undefined)\n selectedIndex = matchingOption.index;\n\n this.onChange(selectedIndex);\n\n let guiEvent: IGuiEvent = getGuiEventObj('selectionchanged', this.controlId, +this.rowId);\n guiEvent.Value = selectedIndex.toString();\n this.task.insertEvent(guiEvent);\n }\n\n onOpened() {\n MagicDirective.noOfAutoCompleteBoxesOpened++;\n }\n\n onClosed() {\n this.writeValue(this.mg.getValue(this.controlId, this.rowId));\n MagicDirective.noOfAutoCompleteBoxesOpened--;\n }\n\n getFilteredListForChoiceControl(): Array<{index: number, displayValue: string}> {\n const elem = this.combo_input;\n let value = elem ? elem.nativeElement.value : \"\";\n\n let items = this.mg.getItemListValues(this.controlId, this.rowId);\n if (value !== null && value !== \"\" && items instanceof Array) {\n value = value.toLowerCase();\n return items.filter(option => option.displayValue.toLowerCase().includes(value));\n }\n else\n return items;\n }\n}\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { MagicDirective } from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design listboxes not on material-design table\r\n */\r\n@Directive({\n selector: `mat-selection-list[magic]`,\n standalone: false\n})\r\nexport class MatListboxDirective{\r\n\r\n constructor(protected magicDirective: MagicDirective) {\r\n }\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { MagicDirective } from '@magic-xpa/angular';\r\n\r\n/**\r\n * Directive for material-design autocomplete not on material-design table\r\n */\r\n@Directive({\n selector: 'mat-autocomplete[magic]',\n standalone: false\n})\r\nexport class MatMagicAutocompleteDirective {\r\n\r\n @HostListener('opened', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened++;\r\n }\r\n\r\n @HostListener('closed', ['$event'])\r\n onClosedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened--;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxDirective } from './directives/magic/form-controls/mat-magic-checkbox.directive';\r\nimport { MatComboboxDirective } from './directives/magic/form-controls/mat-magic-combobox.directive';\r\nimport { BaseMatTableMagicComponent } from './components/base-mat-table-magic.component';\r\nimport { EditableComboComponent } from './components/editable-combo-component';\r\nimport { MatListboxDirective } from './directives/magic/form-controls/mat-magic-listbox.directive';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MagicModule } from '@magic-xpa/angular';\r\nimport { MatMagicAutocompleteDirective } from './directives/magic/form-controls/mat-magic-autocomplete.directive';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const materialModules = [\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatAutocompleteTrigger,\r\n MatAutocomplete\r\n];\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n declarations: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent,\r\n EditableComboComponent\r\n ],\r\n exports: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent,\r\n EditableComboComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ...materialModules,\r\n MagicModule,\r\n ReactiveFormsModule,\r\n ]\r\n})\r\nexport class MagicAngularMaterialModule {\r\n\r\n}\r\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./src/angular-material.module\";\nexport * from \"./src/components/base-mat-table-magic.component\";\nexport * from \"./src/components/editable-combo-component\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-autocomplete.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-checkbox.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-combobox.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-listbox.directive\";\nexport * from \"./src/services/mat.magic.providers\";\nexport * from \"./src/services/mattable.magic.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"magic-xpa-angular-material-core.mjs","sources":["../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-checkbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-combobox.directive.ts","../../../../projects/angular-material-core/src/services/mattable.magic.service.ts","../../../../projects/angular-material-core/src/services/mat.magic.providers.ts","../../../../projects/angular-material-core/src/components/base-mat-table-magic.component.ts","../../../../projects/angular-material-core/src/components/editable-combo.component.html","../../../../projects/angular-material-core/src/components/editable-combo-component.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-listbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-autocomplete.directive.ts","../../../../projects/angular-material-core/src/angular-material.module.ts","../../../../projects/angular-material-core/index.ts","../../../../projects/angular-material-core/magic-xpa-angular-material-core.ts"],"sourcesContent":["import {Directive, ElementRef, HostListener, Input} from \"@angular/core\";\r\nimport {MagicDirective, TaskMagicService} from \"@magic-xpa/angular\";\r\nimport {filter} from \"rxjs/operators\";\r\nimport {CommandType, GuiCommand, HtmlProperties} from \"@magic-xpa/gui\";\r\nimport {MatCheckbox} from \"@angular/material/checkbox\";\r\nimport {getGuiEventObj, IGuiEvent} from \"@magic-xpa/engine\";\r\n\r\n\r\n/**\r\n * Directive for material-design checkboxes not on material-design table\r\n */\r\n@Directive({\n selector: `\r\n mat-checkbox[magic]:not([noFormControl])\r\n `,\n standalone: false\n})\r\nexport class MatCheckboxDirective {\r\n @Input() threeState: boolean = false;\r\n private subscribeRefreshDom: any = null;\r\n private indeterminate : boolean = false;\r\n /**\r\n * @ignore\r\n */\r\n constructor( protected magicDirective: MagicDirective,\r\n private matCheckbox: MatCheckbox,\r\n protected task: TaskMagicService,\r\n protected element: ElementRef) {\r\n }\r\n /**\r\n * Handles the Checkbox 'change' event - pass it to the Magic engine\r\n */\r\n @HostListener('change', ['$event'])\r\n onChange($event: Event) {\r\n if(this.threeState) {\r\n this.handleThreeState();\r\n }\r\n else {\r\n this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);\r\n }\r\n }\r\n ngOnInit() {\r\n if(this.threeState){\r\n let guiEvent: IGuiEvent = getGuiEventObj(\"setAsThreeState\",this.magicDirective.id, +this.magicDirective.rowId);\r\n this.task.insertEvent(guiEvent);\r\n this.matCheckbox.indeterminate = this.indeterminate = this.task.getProperty(this.magicDirective.id, HtmlProperties.CheckBoxIndeterminate, this.magicDirective.rowId);\r\n this.regUpdatesUI();\r\n }\r\n }\r\n private regUpdatesUI() {\r\n this.subscribeRefreshDom = this.task\r\n .refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c)))\r\n .subscribe(a => {\r\n let command: GuiCommand = a;\r\n try {\r\n this.handleCommand(command);\r\n } catch (ex) {\r\n console.dir(ex);\r\n }\r\n }\r\n );\r\n }\r\n handleCommand(command: GuiCommand){\r\n if (command.CommandType == CommandType.SET_PROPERTY &&\r\n command.Operation == HtmlProperties.CheckBoxIndeterminate) {\r\n this.indeterminate = this.matCheckbox.indeterminate = command.obj1;\r\n }\r\n }\r\n private handleThreeState() {\r\n let value : string = '';\r\n let prevCheckedValue = this.task.getValue(this.magicDirective.id, this.magicDirective.rowId);\r\n if(this.indeterminate) {\r\n this.indeterminate = this.matCheckbox.indeterminate = false;\r\n this.matCheckbox.checked = false;\r\n value = 'unchecked';\r\n }\r\n else if(prevCheckedValue) {\r\n this.indeterminate = this.matCheckbox.indeterminate = true;\r\n this.matCheckbox.checked = false;\r\n value = 'indeterminate';\r\n }\r\n else if(!prevCheckedValue) {\r\n this.indeterminate = this.matCheckbox.indeterminate = false;\r\n this.matCheckbox.checked = true;\r\n value = 'checked';\r\n }\r\n // @ts-ignore\r\n this.magicDirective.task.onCheckChanged(value, this.magicDirective.id, +this.magicDirective.rowId);\r\n }\r\n /**\r\n * Cleanup\r\n */\r\n ngOnDestroy(): void {\r\n if(this.subscribeRefreshDom !== null)\r\n this.subscribeRefreshDom.unsubscribe();\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport {ComboboxMagicDirective, MagicDirective} from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design comboboxes not on material-design table\r\n */\r\n@Directive({\n selector: `mat-select[magic]`,\n standalone: false\n})\r\nexport class MatComboboxDirective extends ComboboxMagicDirective {\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n super.onChange($event);\r\n }\r\n\r\n @HostListener('openedChange', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.opened = $event;\r\n }\r\n\r\n /**\r\n * For mat-select do nothing\r\n */\r\n onComboboxItemsListChanged(): void {\r\n }\r\n}\r\n","\nimport { Injectable } from '@angular/core';\nimport { SelectionModel } from \"@angular/cdk/collections\";\n\nimport { TaskMagicService, ComponentListMagicService, ControlsMetadata } from \"@magic-xpa/angular\";\nimport {IGuiEvent, getGuiEventObj} from \"@magic-xpa/engine\";\nimport { TableMagicService } from \"@magic-xpa/angular\";\nimport {isNullOrUndefined} from \"@magic-xpa/mscorelib\";\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\n\n\n/**\n * Extends the Magic table service to supply functionality for Material Design tables\n */\n@Injectable()\nexport class MgMatTableService extends TableMagicService {\n /**\n * Table data source\n */\n dataSource: MatTableDataSource<Element>;\n\n /**\n * @ignore\n */\n get DataSource(): MatTableDataSource<Element> {\n return this.dataSource;\n }\n\n /**\n * @ignore\n */\n set DataSource(dataSource: MatTableDataSource<Element>) {\n this.dataSource = dataSource;\n }\n\n /**\n * Provides selection options for the table\n */\n selection: SelectionModel<Element>;\n\n /**\n * @ignore\n */\n get Selection(): SelectionModel<Element> {\n return this.selection;\n }\n\n /**\n * @ignore\n */\n set Selection(selection: SelectionModel<Element>) {\n this.selection = selection;\n }\n\n /**\n * Paginator to enable changing pages in the table\n */\n paginator: MatPaginator;\n\n /**\n * @ignore\n */\n get Paginator(): MatPaginator {\n return this.paginator;\n }\n\n /**\n * @ignore\n */\n set Paginator(paginator: MatPaginator) {\n this.paginator = paginator;\n }\n\n /**\n * @ignore\n */\n constructor(protected componentList: ComponentListMagicService, protected task: TaskMagicService ) {\n super(componentList, task);\n }\n\n /**\n * Connects the service to the elements of the table component\n * @param dataSource Table data source\n * @param paginator Table paginator\n * @param selection table SelectionModel\n */\n connect(dataSource: MatTableDataSource<Element> , paginator: MatPaginator, selection: SelectionModel<Element>) {\n this.dataSource = dataSource;\n this.paginator = paginator;\n this.selection = selection;\n }\n\n /**\n * @ignore\n */\n refreshDataSource() {\n if (!isNullOrUndefined(this.paginator))\n this.dataSource.paginator = this.paginator;\n\n this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);\n }\n\n /**\n * returns the page size of the table\n * @returns\n */\n getPageSize(): number {\n if (isNullOrUndefined(this.paginator))\n return 10;\n return this.paginator.pageSize;\n }\n\n /**\n * Selects a table row\n * @param guiRowid Id of row to be selected\n */\n selectRow(guiRowid: string): void {\n super.selectRow(guiRowid);\n this.selection.select(this.task.Records.list[guiRowid]);\n this.refreshDataSource();\n }\n\n /**\n * Displays the requested table page\n * @param pageId Id of page to be selected\n */\n selectPage(pageId: number): void {\n if (!isNullOrUndefined(this.paginator))\n this.paginator.pageIndex = pageId;\n\n this.refreshDataSource();\n }\n\n /**\n * Returns the currently seleted row\n * @returns\n */\n selectedRow(): any {\n return this.selection.selected[0];\n }\n\n /**\n * Handle the paginator's \"page\" event\n * @param e The event received from the UI\n * @param changeSelectedRow The flag true or false to indicate change the row\n */\n mgOnPaginateChange(e, changeSelectedRow?: boolean)\n {\n if (this.task.oldPageSize != e.pageSize) {\n this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);\n this.task.oldPageSize = e.pageSize;\n }\n else {\n if (changeSelectedRow)\n {\n let evt: string;\n if (e.pageIndex > e.previousPageIndex) {\n evt = (e.pageIndex - e.previousPageIndex === 1) ? \"next-page\" : \"end-table\";\n } else {\n evt = (e.previousPageIndex - e.pageIndex === 1) ? \"previous-page\" : \"begin-table\";\n }\n\n let guiEvent: IGuiEvent = getGuiEventObj(\"navigateInTable\", \"magicRow\",0);\n guiEvent.Value = evt;\n this.task.insertEvent(guiEvent);\n }\n else\n this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);\n }\n }\n\n /**\n * Handle resize and set table top index.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n handleResize(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let requiredGuiRowId = pageIndex * pageSize;\n this.task.resize(pageSize, requiredGuiRowId);\n }\n\n /**\n * Execute getRows to fetch required chunk of records.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n getRowsIfNeeded(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let guiEvent: IGuiEvent = getGuiEventObj(\"getRows\", \"\",0);\n guiEvent.Line = pageIndex * pageSize;\n this.task.insertEvent(guiEvent);\n this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));\n }\n\n /**\n * Handles the \"matSortChange\" event\n * @param e The event received from the UI\n */\n sortData(e) {\n let direction: number = 0;\n if (e.direction === 'asc')\n direction = 0;\n else if (e.direction === 'desc')\n direction = 1;\n\n let guiEvent: IGuiEvent = getGuiEventObj(\"columnSort\", e.active, direction);\n this.task.insertEvent(guiEvent);\n }\n\n /**\n * Change the number of lines in a table\n * @param size New number of lines in table\n */\n updateTableSize(size: number) {\n if (size === 0) // never remove row 0 for now\n {\n size = 1;\n this.task.Records.clearFirstTableRecord(this.task.template);\n }\n\n else if (isNullOrUndefined(this.paginator))\n size = this.getPageSize();\n\n this.task.formGroups.length = size;\n this.task.Records.updateSize(size);\n this.task.setIncludesFirst(false);\n }\n\n /**\n * Handle the selection of row and if needed move to respective page.\n * @param guiRowId New number of lines in table\n */\n protected selectPageForGuiRowId(guiRowId: number): void {\n let pageToBeSelected: number = 0;\n let prevSelectedRow: ControlsMetadata = <ControlsMetadata>this.selectedRow();\n\n pageToBeSelected = Math.floor(guiRowId / this.getPageSize());\n\n // Explicitly handle selection of page when it's not raised by using pagination\n if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))\n this.selectPage(pageToBeSelected);\n }\n\n /**\n * @ignore\n */\n setTableTopIndex(value: number) {\n this.task.Records.setGuiTopIndex(value);\n\n if (value >= 0)\n this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));\n }\n\n /**\n * @ignore\n */\n getTableTopIndex():number\n {\n return this.task.Records.getGuiTopIndex();\n }\n}\n\n","\r\nimport { basicMagicProviders, TableMagicService} from \"@magic-xpa/angular\";\r\n\r\nimport { MgMatTableService } from \"./mattable.magic.service\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const matMagicProviders = [\r\n ...basicMagicProviders, // - created error Exported variable 'matMagicProviders' has or is using name 'MagicServices' from external module \"D:/magicxpaproject/_Trunk/Sources/Webclient/dist/angular/src/services/magic.services\" but cannot be named.\r\n { provide: TableMagicService, useClass: MgMatTableService }\r\n];\r\n\r\n","import { MagicServices, TaskBaseMagicComponent } from '@magic-xpa/angular';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { MgMatTableService } from '../services/mattable.magic.service';\r\nimport { matMagicProviders } from '../services/mat.magic.providers';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { isNullOrUndefined } from '@magic-xpa/mscorelib';\r\n\r\n/**\r\n * This component is the base component for forms which has a material-design table (grid)\r\n */\r\n@Component({\n providers: matMagicProviders,\n template: '',\n standalone: false\n})\r\n export class BaseMatTableMagicComponent extends TaskBaseMagicComponent {\r\n\r\n /**\r\n * Paginator to enable changing pages in the table\r\n */\r\n @ViewChild(MatPaginator, {static:true}) paginator: MatPaginator;\r\n\r\n /**\r\n * Provides the table sort capabilities\r\n */\r\n @ViewChild(MatSort, {static:true}) sort: MatSort;\r\n\r\n /**\r\n * List of table columns to be displayed\r\n */\r\n displayedColumns;\r\n\r\n /**\r\n * Table data source\r\n */\r\n dataSource;\r\n\r\n /**\r\n * Provides selection options for the table\r\n */\r\n selection;\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n protected ref: ChangeDetectorRef,\r\n public magicService: MagicServices,\r\n ) {\r\n\r\n super(ref, magicService);\r\n\r\n this.displayedColumns = [];\r\n this.dataSource = new MatTableDataSource < Element > (this.task.Records.list);\r\n this.selection = new SelectionModel < Element > (false, []);\r\n }\r\n\r\n /**\r\n * Initializer\r\n */\r\n ngOnInit() {\r\n super.ngOnInit();\r\n (this.magicService.tableService as MgMatTableService).connect(this.dataSource, this.paginator, this.selection);\r\n }\r\n\r\n /**\r\n * AfterContentChecked implementation\r\n */\r\n ngAfterContentChecked() {\r\n if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&\r\n this.paginator.pageSize != this.task.oldPageSize) {\r\n (this.magicService.tableService as MgMatTableService).handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);\r\n this.task.oldPageSize = this.paginator.pageSize;\r\n }\r\n }\r\n}\r\n","<div\n novalidate\n [formGroup]=\"formGroup\"\n >\n <input\n #comboinput\n matInput\n formControlName=\"combo_fc\"\n [matAutocomplete]=\"Editable_Combo\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n >\n <!-- <mat-icon matSuffix>arrow_drop_down</mat-icon>-->\n <mat-autocomplete\n #Editable_Combo=\"matAutocomplete\"\n requireSelection=\"true\"\n autoActiveFirstOption=\"true\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n >\n @for (o of getFilteredListForChoiceControl(); track o) {\n <mat-option\n [value]=\"o.displayValue\"\n >\n {{o.displayValue}}\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n","import {Component, ElementRef, Input, OnInit, OnDestroy, Optional, Self, ViewChild} from '@angular/core';\nimport {ControlValueAccessor, FormControl, FormGroup, NgControl} from '@angular/forms';\nimport {\n AccessorMagicService,\n MagicDirective,\n MagicServices,\n TaskMagicService\n} from \"@magic-xpa/angular\";\n\nimport {MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\nimport {getGuiEventObj, IGuiEvent} from \"@magic-xpa/engine\";\n// MatFormFieldControl allows this component to act as a native Material form field control,\n// enabling support for mat-label, mat-hint, mat-error\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\n// FocusMonitor tracks when the user enters or leaves the field, used to update focused state.\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\n// coerceBooleanProperty converts various truthy/falsy values into a strict boolean.\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\n// Subject is used for stateChanges stream to notify mat-form-field when component state changes.\nimport {Subject} from \"rxjs\";\n\n@Component({\n selector: 'editable-combo',\n standalone: false,\n templateUrl: './editable-combo.component.html',\n providers: [\n // Registering this component as a MatFormFieldControl so that Angular Material's\n // mat-form-field can recognize it as a valid form control and communicate with it.\n // useExisting tells Angular to use the already created instance of this component\n // instead of creating a new one, so mat-form-field and the component share the same instance.\n {\n provide: MatFormFieldControl,\n useExisting: EditableComboComponent\n }\n ]\n})\n// Added MatFormFieldControl<number> so this component integrates with mat-form-field.\n// Added OnDestroy to clean up stateChanges stream and FocusMonitor when component is destroyed.\nexport class EditableComboComponent implements ControlValueAccessor, MatFormFieldControl<number>, OnInit, OnDestroy {\n /**\n * @ignore\n */\n controlId: string = \"\";\n rowId: string = \"0\";\n @ViewChild('comboinput') combo_input!: ElementRef;\n\n /**\n * @ignore\n */\n @Input('magic') set magic(val: string) {\n this.controlId = val;\n };\n\n @Input('rowId') set rowId1(val: string) {\n this.rowId = val;\n };\n\n @Input() placeholder: string = '';\n\n formGroup: FormGroup = new FormGroup({});\n\n // These are the functions required by ControlValueAccessor\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n // Required fields for MatFormFieldControl contract.\n // These allow mat-form-field to track id, state changes, focus, and control type.\n static nextId = 0;\n id = `editable-combo-${EditableComboComponent.nextId++}`;\n stateChanges = new Subject<void>();\n focused = false;\n touched = false;\n controlType = 'editable-combo';\n value: number = -1;\n\n // Required by MatFormFieldControl. Allows developer to set required attribute on mat-form-field.\n private _required = false;\n @Input()\n get required(): boolean { return this._required; }\n set required(val: boolean) { this._required = coerceBooleanProperty(val); this.stateChanges.next(); }\n\n // Required by MatFormFieldControl. Keeps the internal FormControl in sync with disabled state.\n private _disabled = false;\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(val: boolean) { this._disabled = coerceBooleanProperty(val); this.stateChanges.next(); }\n\n // Checks the inner input value to determine if the field is empty.\n // mat-form-field uses this to decide whether the label should float or not.\n get empty(): boolean {\n const inputVal = this.formGroup.get('combo_fc')?.value;\n return !inputVal || inputVal === '';\n }\n\n // Controls whether mat-label floats above the field.\n // Label floats when the field is focused or has a value selected.\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n // Controls when the red error border is shown.\n // Error is shown only after the user has left the field without selecting a value.\n get errorState(): boolean {\n return this.touched && this.ngControl?.invalid === true;\n }\n\n constructor(\n public magicServices: MagicServices,\n // FocusMonitor and ElementRef are needed to track focus state on the host element.\n private fm: FocusMonitor,\n private elRef: ElementRef,\n // NgControl gives access to the form control's validation state for errorState.\n @Optional() @Self() public ngControl: NgControl\n ) {\n // Manually assign valueAccessor here instead of using NG_VALUE_ACCESSOR provider.\n // This avoids the circular dependency error (NG0200) that occurs when NgControl\n // and NG_VALUE_ACCESSOR both try to reference each other during injection.\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n // origin tells you how the element was focused, its values are: 'mouse'/'keyboard'/'touch'/'program'\n // Set touched=true on blur (while leaving the control) to avoid showing error on entering the control when control is with required.\n // otherwise, the error will be shown as soon as user enters the control.\n fm.monitor(elRef, true).subscribe(origin => {\n this.focused = origin !== null;\n if (origin === null) {\n this.touched = true;\n }\n this.stateChanges.next();\n });\n }\n\n /**\n * Returns the Magic accessor service\n * @returns\n */\n get mg(): AccessorMagicService {\n return this.magicServices.mgAccessorService;\n }\n\n /**\n * Returns the Magic task service\n * @returns\n */\n get task(): TaskMagicService {\n return this.magicServices.task;\n }\n\n ngOnInit(): void {\n this.formGroup.addControl(\"combo_fc\", new FormControl());\n\n // Notify mat-form-field whenever the inner input value changes.\n // This ensures the label floats correctly as the user types or selects a value.\n this.formGroup.get('combo_fc')?.valueChanges.subscribe(() => {\n this.stateChanges.next();\n });\n }\n\n // Clean up stateChanges stream and stop focus monitoring to prevent memory leaks.\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef);\n }\n\n // Required by MatFormFieldControl. Sets aria-describedby for accessibility.\n setDescribedByIds(ids: string[]): void {}\n\n // Required by MatFormFieldControl. Focuses the inner input when the field container is clicked.\n onContainerClick(event: MouseEvent): void {\n this.combo_input?.nativeElement.focus();\n }\n\n // Write value method will be called when FormControl value is updated\n writeValue(value: number): void {\n if (typeof value == 'number' && value >= 0) {\n const options = this.mg.getItemListValues(this.controlId, this.rowId);\n const matchingOption = options.find(option => option.index === value);\n\n if (matchingOption != undefined)\n this.formGroup.get(\"combo_fc\")?.setValue(matchingOption.displayValue);\n else\n this.formGroup.get(\"combo_fc\")?.setValue(\"\");\n }\n else\n this.formGroup.get(\"combo_fc\")?.setValue(\"\");\n\n // Notify mat-form-field that the value has changed so it can update label and state.\n this.stateChanges.next();\n }\n\n // Register onChange function to be triggered when the input value changes\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n // Register onTouched function to be triggered when the input is touched\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Optional: Handle the touch event when the input is blurred\n onBlur(): void {\n this.onTouched();\n // Mark as touched and notify mat-form-field so errorState is re-evaluated after blur.\n this.touched = true;\n this.stateChanges.next();\n }\n\n // Enables or disables the form control based on the provided state\n setDisabledState(isDisabled: boolean): void {\n const formControl = this.formGroup.get(\"combo_fc\");\n if (formControl) {\n if (isDisabled)\n formControl.disable();\n else\n formControl.enable();\n }\n // Notify mat-form-field so it updates the visual disabled state.\n this.stateChanges.next();\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const selectedVal = event.option.value;\n\n const options = this.mg.getItemListValues(this.controlId, this.rowId);\n const matchingOption = options.find(option => option.displayValue === selectedVal);\n let selectedIndex = -1;\n\n if (matchingOption != undefined)\n selectedIndex = matchingOption.index;\n\n this.onChange(selectedIndex);\n\n let guiEvent: IGuiEvent = getGuiEventObj('selectionchanged', this.controlId, +this.rowId);\n guiEvent.Value = selectedIndex.toString();\n this.task.insertEvent(guiEvent);\n }\n\n onOpened() {\n MagicDirective.noOfAutoCompleteBoxesOpened++;\n }\n\n onClosed() {\n this.writeValue(this.mg.getValue(this.controlId, this.rowId));\n MagicDirective.noOfAutoCompleteBoxesOpened--;\n }\n\n getFilteredListForChoiceControl(): Array<{index: number, displayValue: string}> {\n const elem = this.combo_input;\n let value = elem ? elem.nativeElement.value : \"\";\n\n let items = this.mg.getItemListValues(this.controlId, this.rowId);\n if (value !== null && value !== \"\" && items instanceof Array) {\n value = value.toLowerCase();\n return items.filter(option => option.displayValue.toLowerCase().includes(value));\n }\n else\n return items;\n }\n}\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { MagicDirective } from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design listboxes not on material-design table\r\n */\r\n@Directive({\n selector: `mat-selection-list[magic]`,\n standalone: false\n})\r\nexport class MatListboxDirective{\r\n\r\n constructor(protected magicDirective: MagicDirective) {\r\n }\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { MagicDirective } from '@magic-xpa/angular';\r\n\r\n/**\r\n * Directive for material-design autocomplete not on material-design table\r\n */\r\n@Directive({\n selector: 'mat-autocomplete[magic]',\n standalone: false\n})\r\nexport class MatMagicAutocompleteDirective {\r\n\r\n @HostListener('opened', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened++;\r\n }\r\n\r\n @HostListener('closed', ['$event'])\r\n onClosedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened--;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxDirective } from './directives/magic/form-controls/mat-magic-checkbox.directive';\r\nimport { MatComboboxDirective } from './directives/magic/form-controls/mat-magic-combobox.directive';\r\nimport { BaseMatTableMagicComponent } from './components/base-mat-table-magic.component';\r\nimport { EditableComboComponent } from './components/editable-combo-component';\r\nimport { MatListboxDirective } from './directives/magic/form-controls/mat-magic-listbox.directive';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MagicModule } from '@magic-xpa/angular';\r\nimport { MatMagicAutocompleteDirective } from './directives/magic/form-controls/mat-magic-autocomplete.directive';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const materialModules = [\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatAutocompleteTrigger,\r\n MatAutocomplete\r\n];\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n declarations: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent,\r\n EditableComboComponent\r\n ],\r\n exports: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent,\r\n EditableComboComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ...materialModules,\r\n MagicModule,\r\n ReactiveFormsModule,\r\n ]\r\n})\r\nexport class MagicAngularMaterialModule {\r\n\r\n}\r\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./src/angular-material.module\";\nexport * from \"./src/components/base-mat-table-magic.component\";\nexport * from \"./src/components/editable-combo-component\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-autocomplete.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-checkbox.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-combobox.directive\";\nexport * from \"./src/directives/magic/form-controls/mat-magic-listbox.directive\";\nexport * from \"./src/services/mat.magic.providers\";\nexport * from \"./src/services/mattable.magic.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@magic-xpa/angular-material-core",
3
- "version": "4.1300.0-dev4130.135",
3
+ "version": "4.1300.0-dev4130.137",
4
4
  "license": "SEE LICENSE IN EULA.pdf",
5
5
  "peerDependencies": {
6
6
  "@angular/core": "^21.1.4",
7
7
  "@angular/common": "^21.1.4",
8
8
  "@angular/forms": "^21.1.4",
9
9
  "@angular/material": "^21.1.4",
10
- "@magic-xpa/angular": "4.1300.0-dev4130.135"
10
+ "@magic-xpa/angular": "4.1300.0-dev4130.137"
11
11
  },
12
12
  "module": "fesm2022/magic-xpa-angular-material-core.mjs",
13
13
  "typings": "types/magic-xpa-angular-material-core.d.ts",
@@ -3,7 +3,7 @@ import { MatNativeDateModule } from '@angular/material/core';
3
3
  import * as i19 from '@angular/material/autocomplete';
4
4
  import { MatAutocompleteSelectedEvent, MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
5
  import * as i0 from '@angular/core';
6
- import { ElementRef, ChangeDetectorRef, OnInit } from '@angular/core';
6
+ import { ElementRef, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
7
7
  import * as _magic_xpa_angular from '@magic-xpa/angular';
8
8
  import { MagicDirective, TaskMagicService, ComboboxMagicDirective, TaskBaseMagicComponent, MagicServices, AccessorMagicService, TableMagicService, ComponentListMagicService } from '@magic-xpa/angular';
9
9
  import { GuiCommand } from '@magic-xpa/gui';
@@ -13,7 +13,10 @@ import { MatSort } from '@angular/material/sort';
13
13
  import * as i10 from '@angular/material/paginator';
14
14
  import { MatPaginator } from '@angular/material/paginator';
15
15
  import * as i8 from '@angular/forms';
16
- import { ControlValueAccessor, FormGroup } from '@angular/forms';
16
+ import { ControlValueAccessor, NgControl, FormGroup } from '@angular/forms';
17
+ import { MatFormFieldControl } from '@angular/material/form-field';
18
+ import { FocusMonitor } from '@angular/cdk/a11y';
19
+ import { Subject } from 'rxjs';
17
20
  import * as i7 from '@angular/common';
18
21
  import * as i9 from '@angular/material/table';
19
22
  import { MatTableDataSource } from '@angular/material/table';
@@ -141,8 +144,11 @@ declare class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
141
144
  static ɵcmp: i0.ɵɵComponentDeclaration<BaseMatTableMagicComponent, "ng-component", never, {}, {}, never, never, false, never>;
142
145
  }
143
146
 
144
- declare class EditableComboComponent implements ControlValueAccessor, OnInit {
147
+ declare class EditableComboComponent implements ControlValueAccessor, MatFormFieldControl<number>, OnInit, OnDestroy {
145
148
  magicServices: MagicServices;
149
+ private fm;
150
+ private elRef;
151
+ ngControl: NgControl;
146
152
  /**
147
153
  * @ignore
148
154
  */
@@ -158,7 +164,23 @@ declare class EditableComboComponent implements ControlValueAccessor, OnInit {
158
164
  formGroup: FormGroup;
159
165
  private onChange;
160
166
  private onTouched;
161
- constructor(magicServices: MagicServices);
167
+ static nextId: number;
168
+ id: string;
169
+ stateChanges: Subject<void>;
170
+ focused: boolean;
171
+ touched: boolean;
172
+ controlType: string;
173
+ value: number;
174
+ private _required;
175
+ get required(): boolean;
176
+ set required(val: boolean);
177
+ private _disabled;
178
+ get disabled(): boolean;
179
+ set disabled(val: boolean);
180
+ get empty(): boolean;
181
+ get shouldLabelFloat(): boolean;
182
+ get errorState(): boolean;
183
+ constructor(magicServices: MagicServices, fm: FocusMonitor, elRef: ElementRef, ngControl: NgControl);
162
184
  /**
163
185
  * Returns the Magic accessor service
164
186
  * @returns
@@ -170,6 +192,9 @@ declare class EditableComboComponent implements ControlValueAccessor, OnInit {
170
192
  */
171
193
  get task(): TaskMagicService;
172
194
  ngOnInit(): void;
195
+ ngOnDestroy(): void;
196
+ setDescribedByIds(ids: string[]): void;
197
+ onContainerClick(event: MouseEvent): void;
173
198
  writeValue(value: number): void;
174
199
  registerOnChange(fn: (value: number) => void): void;
175
200
  registerOnTouched(fn: () => void): void;
@@ -182,8 +207,8 @@ declare class EditableComboComponent implements ControlValueAccessor, OnInit {
182
207
  index: number;
183
208
  displayValue: string;
184
209
  }>;
185
- static ɵfac: i0.ɵɵFactoryDeclaration<EditableComboComponent, never>;
186
- static ɵcmp: i0.ɵɵComponentDeclaration<EditableComboComponent, "editable-combo", never, { "magic": { "alias": "magic"; "required": false; }; "rowId1": { "alias": "rowId"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, false, never>;
210
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditableComboComponent, [null, null, null, { optional: true; self: true; }]>;
211
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditableComboComponent, "editable-combo", never, { "magic": { "alias": "magic"; "required": false; }; "rowId1": { "alias": "rowId"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
187
212
  }
188
213
 
189
214
  /**