@magic-xpa/angular-material-core 4.1300.0-dev4130.27 → 4.1300.0-dev4130.271
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,25 +1,27 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, HostListener, Input, Injectable, Component,
|
|
2
|
+
import { inject, ElementRef, Directive, HostListener, Input, Injectable, viewChild, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import * as
|
|
5
|
-
import { FormGroup,
|
|
6
|
-
import
|
|
7
|
-
import { ComboboxMagicDirective, MagicDirective, TableMagicService, basicMagicProviders, TaskBaseMagicComponent, MagicModule } from '@magic-xpa/angular';
|
|
4
|
+
import * as i1 from '@angular/forms';
|
|
5
|
+
import { FormGroup, NgControl, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MagicDirective, TaskMagicService, ComboboxMagicDirective, TableMagicService, ComponentListMagicService, basicMagicProviders, TaskBaseMagicComponent, MagicServices, MagicModule } from '@magic-xpa/angular';
|
|
8
7
|
import { filter } from 'rxjs/operators';
|
|
9
8
|
import { HtmlProperties, CommandType } from '@magic-xpa/gui';
|
|
10
|
-
import
|
|
11
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
9
|
+
import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
|
|
12
10
|
import { getGuiEventObj } from '@magic-xpa/engine';
|
|
13
11
|
import { MatSort } from '@angular/material/sort';
|
|
14
12
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
15
13
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
16
14
|
import { isNullOrUndefined } from '@magic-xpa/mscorelib';
|
|
17
15
|
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
18
|
-
import
|
|
16
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
17
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
18
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
19
|
+
import { Subject } from 'rxjs';
|
|
20
|
+
import * as i2 from '@angular/material/input';
|
|
19
21
|
import { MatInputModule } from '@angular/material/input';
|
|
20
|
-
import * as
|
|
22
|
+
import * as i3 from '@angular/material/select';
|
|
21
23
|
import { MatSelectModule } from '@angular/material/select';
|
|
22
|
-
import * as
|
|
24
|
+
import * as i4 from '@angular/material/autocomplete';
|
|
23
25
|
import { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';
|
|
24
26
|
import { MatButtonModule } from '@angular/material/button';
|
|
25
27
|
import { MatListModule } from '@angular/material/list';
|
|
@@ -31,21 +33,17 @@ import { MatNativeDateModule } from '@angular/material/core';
|
|
|
31
33
|
* Directive for material-design checkboxes not on material-design table
|
|
32
34
|
*/
|
|
33
35
|
class MatCheckboxDirective {
|
|
34
|
-
magicDirective;
|
|
35
|
-
matCheckbox;
|
|
36
|
-
task;
|
|
37
|
-
element;
|
|
38
36
|
threeState = false;
|
|
39
37
|
subscribeRefreshDom = null;
|
|
40
38
|
indeterminate = false;
|
|
39
|
+
magicDirective = inject(MagicDirective);
|
|
40
|
+
matCheckbox = inject(MatCheckbox);
|
|
41
|
+
task = inject(TaskMagicService);
|
|
42
|
+
element = inject(ElementRef);
|
|
41
43
|
/**
|
|
42
44
|
* @ignore
|
|
43
45
|
*/
|
|
44
|
-
constructor(
|
|
45
|
-
this.magicDirective = magicDirective;
|
|
46
|
-
this.matCheckbox = matCheckbox;
|
|
47
|
-
this.task = task;
|
|
48
|
-
this.element = element;
|
|
46
|
+
constructor() {
|
|
49
47
|
}
|
|
50
48
|
/**
|
|
51
49
|
* Handles the Checkbox 'change' event - pass it to the Magic engine
|
|
@@ -113,7 +111,7 @@ class MatCheckboxDirective {
|
|
|
113
111
|
if (this.subscribeRefreshDom !== null)
|
|
114
112
|
this.subscribeRefreshDom.unsubscribe();
|
|
115
113
|
}
|
|
116
|
-
/** @nocollapse */ static ɵfac = function MatCheckboxDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MatCheckboxDirective)(
|
|
114
|
+
/** @nocollapse */ static ɵfac = function MatCheckboxDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MatCheckboxDirective)(); };
|
|
117
115
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MatCheckboxDirective, selectors: [["mat-checkbox", "magic", "", 3, "noFormControl", ""]], hostBindings: function MatCheckboxDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
118
116
|
i0.ɵɵlistener("change", function MatCheckboxDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
119
117
|
} }, inputs: { threeState: "threeState" }, standalone: false });
|
|
@@ -126,7 +124,7 @@ class MatCheckboxDirective {
|
|
|
126
124
|
`,
|
|
127
125
|
standalone: false
|
|
128
126
|
}]
|
|
129
|
-
}], () => [
|
|
127
|
+
}], () => [], { threeState: [{
|
|
130
128
|
type: Input
|
|
131
129
|
}], onChange: [{
|
|
132
130
|
type: HostListener,
|
|
@@ -175,8 +173,6 @@ class MatComboboxDirective extends ComboboxMagicDirective {
|
|
|
175
173
|
* Extends the Magic table service to supply functionality for Material Design tables
|
|
176
174
|
*/
|
|
177
175
|
class MgMatTableService extends TableMagicService {
|
|
178
|
-
componentList;
|
|
179
|
-
task;
|
|
180
176
|
/**
|
|
181
177
|
* Table data source
|
|
182
178
|
*/
|
|
@@ -225,13 +221,13 @@ class MgMatTableService extends TableMagicService {
|
|
|
225
221
|
set Paginator(paginator) {
|
|
226
222
|
this.paginator = paginator;
|
|
227
223
|
}
|
|
224
|
+
componentList = inject(ComponentListMagicService);
|
|
225
|
+
task = inject(TaskMagicService);
|
|
228
226
|
/**
|
|
229
227
|
* @ignore
|
|
230
228
|
*/
|
|
231
|
-
constructor(
|
|
232
|
-
super(
|
|
233
|
-
this.componentList = componentList;
|
|
234
|
-
this.task = task;
|
|
229
|
+
constructor() {
|
|
230
|
+
super();
|
|
235
231
|
}
|
|
236
232
|
/**
|
|
237
233
|
* Connects the service to the elements of the table component
|
|
@@ -390,12 +386,12 @@ class MgMatTableService extends TableMagicService {
|
|
|
390
386
|
getTableTopIndex() {
|
|
391
387
|
return this.task.Records.getGuiTopIndex();
|
|
392
388
|
}
|
|
393
|
-
/** @nocollapse */ static ɵfac = function MgMatTableService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgMatTableService)(
|
|
389
|
+
/** @nocollapse */ static ɵfac = function MgMatTableService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MgMatTableService)(); };
|
|
394
390
|
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: MgMatTableService, factory: MgMatTableService.ɵfac });
|
|
395
391
|
}
|
|
396
392
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgMatTableService, [{
|
|
397
393
|
type: Injectable
|
|
398
|
-
}], () => [
|
|
394
|
+
}], () => [], null); })();
|
|
399
395
|
|
|
400
396
|
/**
|
|
401
397
|
* @ignore
|
|
@@ -409,16 +405,16 @@ const matMagicProviders = [
|
|
|
409
405
|
* This component is the base component for forms which has a material-design table (grid)
|
|
410
406
|
*/
|
|
411
407
|
class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
412
|
-
ref;
|
|
413
|
-
magicService;
|
|
414
408
|
/**
|
|
415
409
|
* Paginator to enable changing pages in the table
|
|
416
410
|
*/
|
|
417
|
-
paginator
|
|
411
|
+
paginator = viewChild.required(MatPaginator, /* @ts-ignore */
|
|
412
|
+
...(ngDevMode ? [{ debugName: "paginator" }] : /* istanbul ignore next */ []));
|
|
418
413
|
/**
|
|
419
414
|
* Provides the table sort capabilities
|
|
420
415
|
*/
|
|
421
|
-
sort
|
|
416
|
+
sort = viewChild.required(MatSort, /* @ts-ignore */
|
|
417
|
+
...(ngDevMode ? [{ debugName: "sort" }] : /* istanbul ignore next */ []));
|
|
422
418
|
/**
|
|
423
419
|
* List of table columns to be displayed
|
|
424
420
|
*/
|
|
@@ -431,13 +427,13 @@ class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
|
431
427
|
* Provides selection options for the table
|
|
432
428
|
*/
|
|
433
429
|
selection;
|
|
430
|
+
ref = inject(ChangeDetectorRef);
|
|
431
|
+
magicService = inject(MagicServices);
|
|
434
432
|
/**
|
|
435
433
|
* @ignore
|
|
436
434
|
*/
|
|
437
|
-
constructor(
|
|
438
|
-
super(
|
|
439
|
-
this.ref = ref;
|
|
440
|
-
this.magicService = magicService;
|
|
435
|
+
constructor() {
|
|
436
|
+
super();
|
|
441
437
|
this.displayedColumns = [];
|
|
442
438
|
this.dataSource = new MatTableDataSource(this.task.Records.list);
|
|
443
439
|
this.selection = new SelectionModel(false, []);
|
|
@@ -447,25 +443,23 @@ class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
|
447
443
|
*/
|
|
448
444
|
ngOnInit() {
|
|
449
445
|
super.ngOnInit();
|
|
450
|
-
this.magicService.tableService.connect(this.dataSource, this.paginator, this.selection);
|
|
446
|
+
this.magicService.tableService.connect(this.dataSource, this.paginator(), this.selection);
|
|
451
447
|
}
|
|
452
448
|
/**
|
|
453
449
|
* AfterContentChecked implementation
|
|
454
450
|
*/
|
|
455
451
|
ngAfterContentChecked() {
|
|
456
|
-
if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&
|
|
457
|
-
this.paginator.pageSize != this.task.oldPageSize) {
|
|
458
|
-
this.magicService.tableService.handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);
|
|
459
|
-
this.task.oldPageSize = this.paginator.pageSize;
|
|
452
|
+
if (!isNullOrUndefined(this.paginator()) && !isNullOrUndefined(this.paginator().pageSize) &&
|
|
453
|
+
this.paginator().pageSize != this.task.oldPageSize) {
|
|
454
|
+
this.magicService.tableService.handleResize(this.paginator().pageIndex, 0, this.paginator().pageSize);
|
|
455
|
+
this.task.oldPageSize = this.paginator().pageSize;
|
|
460
456
|
}
|
|
461
457
|
}
|
|
462
|
-
/** @nocollapse */ static ɵfac = function BaseMatTableMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMatTableMagicComponent)(
|
|
458
|
+
/** @nocollapse */ static ɵfac = function BaseMatTableMagicComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseMatTableMagicComponent)(); };
|
|
463
459
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BaseMatTableMagicComponent, selectors: [["ng-component"]], viewQuery: function BaseMatTableMagicComponent_Query(rf, ctx) { if (rf & 1) {
|
|
464
|
-
i0.ɵɵ
|
|
460
|
+
i0.ɵɵviewQuerySignal(ctx.paginator, MatPaginator, 5)(ctx.sort, MatSort, 5);
|
|
465
461
|
} if (rf & 2) {
|
|
466
|
-
|
|
467
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paginator = _t.first);
|
|
468
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
|
|
462
|
+
i0.ɵɵqueryAdvance(2);
|
|
469
463
|
} }, standalone: false, features: [i0.ɵɵProvidersFeature(matMagicProviders), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BaseMatTableMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
|
470
464
|
}
|
|
471
465
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMatTableMagicComponent, [{
|
|
@@ -475,28 +469,23 @@ class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
|
475
469
|
template: '',
|
|
476
470
|
standalone: false
|
|
477
471
|
}]
|
|
478
|
-
}], () => [{ type: i0.
|
|
479
|
-
type: ViewChild,
|
|
480
|
-
args: [MatPaginator, { static: true }]
|
|
481
|
-
}], sort: [{
|
|
482
|
-
type: ViewChild,
|
|
483
|
-
args: [MatSort, { static: true }]
|
|
484
|
-
}] }); })();
|
|
472
|
+
}], () => [], { paginator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatPaginator), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }] }); })();
|
|
485
473
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMatTableMagicComponent, { className: "BaseMatTableMagicComponent", filePath: "src/components/base-mat-table-magic.component.ts", lineNumber: 19 }); })();
|
|
486
474
|
|
|
487
475
|
const _c0 = ["comboinput"];
|
|
488
|
-
function
|
|
476
|
+
function EditableComboComponent_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
489
477
|
i0.ɵɵelementStart(0, "mat-option", 5);
|
|
490
478
|
i0.ɵɵtext(1);
|
|
491
479
|
i0.ɵɵelementEnd();
|
|
492
480
|
} if (rf & 2) {
|
|
493
|
-
const
|
|
494
|
-
i0.ɵɵproperty("value",
|
|
481
|
+
const o_r1 = ctx.$implicit;
|
|
482
|
+
i0.ɵɵproperty("value", o_r1.displayValue);
|
|
495
483
|
i0.ɵɵadvance();
|
|
496
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
484
|
+
i0.ɵɵtextInterpolate1(" ", o_r1.displayValue, " ");
|
|
497
485
|
} }
|
|
486
|
+
// Added MatFormFieldControl<number> so this component integrates with mat-form-field.
|
|
487
|
+
// Added OnDestroy to clean up stateChanges stream and FocusMonitor when component is destroyed.
|
|
498
488
|
class EditableComboComponent {
|
|
499
|
-
magicServices;
|
|
500
489
|
/**
|
|
501
490
|
* @ignore
|
|
502
491
|
*/
|
|
@@ -516,11 +505,63 @@ class EditableComboComponent {
|
|
|
516
505
|
;
|
|
517
506
|
placeholder = '';
|
|
518
507
|
formGroup = new FormGroup({});
|
|
508
|
+
// Track whether the autocomplete panel is open
|
|
509
|
+
isPanelOpen = false;
|
|
519
510
|
// These are the functions required by ControlValueAccessor
|
|
520
511
|
onChange = () => { };
|
|
521
512
|
onTouched = () => { };
|
|
522
|
-
|
|
523
|
-
|
|
513
|
+
// Required fields for MatFormFieldControl contract.
|
|
514
|
+
// These allow mat-form-field to track id, state changes, focus, and control type.
|
|
515
|
+
static nextId = 0;
|
|
516
|
+
id = `editable-combo-${EditableComboComponent.nextId++}`;
|
|
517
|
+
stateChanges = new Subject();
|
|
518
|
+
focused = false;
|
|
519
|
+
touched = false;
|
|
520
|
+
controlType = 'editable-combo';
|
|
521
|
+
value = -1;
|
|
522
|
+
// Required by MatFormFieldControl. Allows developer to set required attribute on mat-form-field.
|
|
523
|
+
_required = false;
|
|
524
|
+
get required() { return this._required; }
|
|
525
|
+
set required(val) { this._required = coerceBooleanProperty(val); this.stateChanges.next(); }
|
|
526
|
+
// Required by MatFormFieldControl. Keeps the internal FormControl in sync with disabled state.
|
|
527
|
+
_disabled = false;
|
|
528
|
+
get disabled() { return this._disabled; }
|
|
529
|
+
set disabled(val) { this._disabled = coerceBooleanProperty(val); this.stateChanges.next(); }
|
|
530
|
+
// Checks the inner input value to determine if the field is empty.
|
|
531
|
+
// mat-form-field uses this to decide whether the label should float or not.
|
|
532
|
+
get empty() {
|
|
533
|
+
const inputVal = this.formGroup.get('combo_fc')?.value;
|
|
534
|
+
return !inputVal || inputVal === '';
|
|
535
|
+
}
|
|
536
|
+
// Controls whether mat-label floats above the field.
|
|
537
|
+
// Label floats when the field is focused or has a value selected.
|
|
538
|
+
get shouldLabelFloat() {
|
|
539
|
+
return this.focused || !this.empty;
|
|
540
|
+
}
|
|
541
|
+
// Controls when the red error border is shown.
|
|
542
|
+
// Error is shown only after the user has left the field without selecting a value.
|
|
543
|
+
get errorState() {
|
|
544
|
+
return this.touched && this.ngControl?.invalid === true;
|
|
545
|
+
}
|
|
546
|
+
constructor() {
|
|
547
|
+
// Manually assign valueAccessor here instead of using NG_VALUE_ACCESSOR provider.
|
|
548
|
+
// This avoids the circular dependency error (NG0200) that occurs when NgControl
|
|
549
|
+
// and NG_VALUE_ACCESSOR both try to reference each other during injection.
|
|
550
|
+
if (this.ngControl != null) {
|
|
551
|
+
this.ngControl.valueAccessor = this;
|
|
552
|
+
}
|
|
553
|
+
// origin tells you how the element was focused, its values are: 'mouse'/'keyboard'/'touch'/'program'
|
|
554
|
+
// Set touched=true on blur (while leaving the control) to avoid showing error on entering the control when control is with required.
|
|
555
|
+
// otherwise, the error will be shown as soon as user enters the control.
|
|
556
|
+
this.fm.monitor(this.elRef, true).subscribe(origin => {
|
|
557
|
+
this.focused = origin !== null;
|
|
558
|
+
if (origin === null && !this.isPanelOpen) {
|
|
559
|
+
// Only mark touched if panel is closed.
|
|
560
|
+
// If panel is open, user is clicking an option — onClosed() will handle touched.
|
|
561
|
+
this.touched = true;
|
|
562
|
+
}
|
|
563
|
+
this.stateChanges.next();
|
|
564
|
+
});
|
|
524
565
|
}
|
|
525
566
|
/**
|
|
526
567
|
* Returns the Magic accessor service
|
|
@@ -529,6 +570,10 @@ class EditableComboComponent {
|
|
|
529
570
|
get mg() {
|
|
530
571
|
return this.magicServices.mgAccessorService;
|
|
531
572
|
}
|
|
573
|
+
magicServices = inject(MagicServices);
|
|
574
|
+
fm = inject(FocusMonitor);
|
|
575
|
+
elRef = inject(ElementRef);
|
|
576
|
+
ngControl = inject(NgControl, { optional: true, self: true });
|
|
532
577
|
/**
|
|
533
578
|
* Returns the Magic task service
|
|
534
579
|
* @returns
|
|
@@ -538,6 +583,22 @@ class EditableComboComponent {
|
|
|
538
583
|
}
|
|
539
584
|
ngOnInit() {
|
|
540
585
|
this.formGroup.addControl("combo_fc", new FormControl());
|
|
586
|
+
// Notify mat-form-field whenever the inner input value changes.
|
|
587
|
+
// This ensures the label floats correctly as the user types or selects a value.
|
|
588
|
+
this.formGroup.get('combo_fc')?.valueChanges.subscribe(() => {
|
|
589
|
+
this.stateChanges.next();
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
// Clean up stateChanges stream and stop focus monitoring to prevent memory leaks.
|
|
593
|
+
ngOnDestroy() {
|
|
594
|
+
this.stateChanges.complete();
|
|
595
|
+
this.fm.stopMonitoring(this.elRef);
|
|
596
|
+
}
|
|
597
|
+
// Required by MatFormFieldControl. Sets aria-describedby for accessibility.
|
|
598
|
+
setDescribedByIds(ids) { }
|
|
599
|
+
// Required by MatFormFieldControl. Focuses the inner input when the field container is clicked.
|
|
600
|
+
onContainerClick(event) {
|
|
601
|
+
this.combo_input?.nativeElement.focus();
|
|
541
602
|
}
|
|
542
603
|
// Write value method will be called when FormControl value is updated
|
|
543
604
|
writeValue(value) {
|
|
@@ -551,6 +612,8 @@ class EditableComboComponent {
|
|
|
551
612
|
}
|
|
552
613
|
else
|
|
553
614
|
this.formGroup.get("combo_fc")?.setValue("");
|
|
615
|
+
// Notify mat-form-field that the value has changed so it can update label and state.
|
|
616
|
+
this.stateChanges.next();
|
|
554
617
|
}
|
|
555
618
|
// Register onChange function to be triggered when the input value changes
|
|
556
619
|
registerOnChange(fn) {
|
|
@@ -563,6 +626,19 @@ class EditableComboComponent {
|
|
|
563
626
|
// Optional: Handle the touch event when the input is blurred
|
|
564
627
|
onBlur() {
|
|
565
628
|
this.onTouched();
|
|
629
|
+
this.stateChanges.next();
|
|
630
|
+
}
|
|
631
|
+
// Enables or disables the form control based on the provided state
|
|
632
|
+
setDisabledState(isDisabled) {
|
|
633
|
+
const formControl = this.formGroup.get("combo_fc");
|
|
634
|
+
if (formControl) {
|
|
635
|
+
if (isDisabled)
|
|
636
|
+
formControl.disable();
|
|
637
|
+
else
|
|
638
|
+
formControl.enable();
|
|
639
|
+
}
|
|
640
|
+
// Notify mat-form-field so it updates the visual disabled state.
|
|
641
|
+
this.stateChanges.next();
|
|
566
642
|
}
|
|
567
643
|
onOptionSelected(event) {
|
|
568
644
|
const selectedVal = event.option.value;
|
|
@@ -577,11 +653,16 @@ class EditableComboComponent {
|
|
|
577
653
|
this.task.insertEvent(guiEvent);
|
|
578
654
|
}
|
|
579
655
|
onOpened() {
|
|
656
|
+
this.isPanelOpen = true;
|
|
580
657
|
MagicDirective.noOfAutoCompleteBoxesOpened++;
|
|
581
658
|
}
|
|
582
659
|
onClosed() {
|
|
660
|
+
this.isPanelOpen = false;
|
|
583
661
|
this.writeValue(this.mg.getValue(this.controlId, this.rowId));
|
|
584
662
|
MagicDirective.noOfAutoCompleteBoxesOpened--;
|
|
663
|
+
// Mark touched here instead: panel is closed means user truly left the field
|
|
664
|
+
this.touched = true;
|
|
665
|
+
this.stateChanges.next();
|
|
585
666
|
}
|
|
586
667
|
getFilteredListForChoiceControl() {
|
|
587
668
|
const elem = this.combo_input;
|
|
@@ -594,46 +675,53 @@ class EditableComboComponent {
|
|
|
594
675
|
else
|
|
595
676
|
return items;
|
|
596
677
|
}
|
|
597
|
-
/** @nocollapse */ static ɵfac = function EditableComboComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableComboComponent)(
|
|
678
|
+
/** @nocollapse */ static ɵfac = function EditableComboComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditableComboComponent)(); };
|
|
598
679
|
/** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: EditableComboComponent, selectors: [["editable-combo"]], viewQuery: function EditableComboComponent_Query(rf, ctx) { if (rf & 1) {
|
|
599
680
|
i0.ɵɵviewQuery(_c0, 5);
|
|
600
681
|
} if (rf & 2) {
|
|
601
682
|
let _t;
|
|
602
683
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.combo_input = _t.first);
|
|
603
|
-
} }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"], placeholder: "placeholder" }, standalone: false, features: [i0.ɵɵProvidersFeature([
|
|
684
|
+
} }, inputs: { magic: "magic", rowId1: [0, "rowId", "rowId1"], placeholder: "placeholder", required: "required", disabled: "disabled" }, standalone: false, features: [i0.ɵɵProvidersFeature([
|
|
685
|
+
// Registering this component as a MatFormFieldControl so that Angular Material's
|
|
686
|
+
// mat-form-field can recognize it as a valid form control and communicate with it.
|
|
687
|
+
// useExisting tells Angular to use the already created instance of this component
|
|
688
|
+
// instead of creating a new one, so mat-form-field and the component share the same instance.
|
|
604
689
|
{
|
|
605
|
-
provide:
|
|
606
|
-
useExisting:
|
|
607
|
-
multi: true
|
|
690
|
+
provide: MatFormFieldControl,
|
|
691
|
+
useExisting: EditableComboComponent
|
|
608
692
|
}
|
|
609
|
-
])], decls:
|
|
610
|
-
|
|
611
|
-
i0.ɵɵ
|
|
612
|
-
i0.ɵɵlistener("blur", function EditableComboComponent_Template_input_blur_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBlur()); });
|
|
693
|
+
])], 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) {
|
|
694
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "input", 3, 0);
|
|
695
|
+
i0.ɵɵlistener("blur", function EditableComboComponent_Template_input_blur_1_listener() { return ctx.onBlur(); });
|
|
613
696
|
i0.ɵɵelementEnd();
|
|
614
|
-
i0.ɵɵ
|
|
615
|
-
i0.ɵɵ
|
|
616
|
-
i0.ɵɵ
|
|
617
|
-
i0.ɵɵ
|
|
697
|
+
i0.ɵɵcontrolCreate();
|
|
698
|
+
i0.ɵɵelementStart(3, "mat-autocomplete", 4, 1);
|
|
699
|
+
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(); });
|
|
700
|
+
i0.ɵɵrepeaterCreate(5, EditableComboComponent_For_6_Template, 2, 2, "mat-option", 5, i0.ɵɵrepeaterTrackByIdentity);
|
|
701
|
+
i0.ɵɵelementEnd()();
|
|
618
702
|
} if (rf & 2) {
|
|
619
|
-
const
|
|
703
|
+
const Editable_Combo_r2 = i0.ɵɵreference(4);
|
|
620
704
|
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
621
|
-
i0.ɵɵadvance(
|
|
622
|
-
i0.ɵɵproperty("matAutocomplete",
|
|
705
|
+
i0.ɵɵadvance();
|
|
706
|
+
i0.ɵɵproperty("matAutocomplete", Editable_Combo_r2)("placeholder", ctx.placeholder);
|
|
707
|
+
i0.ɵɵcontrol();
|
|
623
708
|
i0.ɵɵadvance(4);
|
|
624
709
|
i0.ɵɵrepeater(ctx.getFilteredListForChoiceControl());
|
|
625
|
-
} }, dependencies: [
|
|
710
|
+
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i2.MatInput, i3.MatOption, i4.MatAutocompleteTrigger, i4.MatAutocomplete, i1.FormGroupDirective, i1.FormControlName], encapsulation: 2, changeDetection: 1 });
|
|
626
711
|
}
|
|
627
712
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditableComboComponent, [{
|
|
628
713
|
type: Component,
|
|
629
|
-
args: [{ selector: 'editable-combo', standalone: false, providers: [
|
|
714
|
+
args: [{ selector: 'editable-combo', standalone: false, changeDetection: ChangeDetectionStrategy.Eager, providers: [
|
|
715
|
+
// Registering this component as a MatFormFieldControl so that Angular Material's
|
|
716
|
+
// mat-form-field can recognize it as a valid form control and communicate with it.
|
|
717
|
+
// useExisting tells Angular to use the already created instance of this component
|
|
718
|
+
// instead of creating a new one, so mat-form-field and the component share the same instance.
|
|
630
719
|
{
|
|
631
|
-
provide:
|
|
632
|
-
useExisting:
|
|
633
|
-
multi: true
|
|
720
|
+
provide: MatFormFieldControl,
|
|
721
|
+
useExisting: EditableComboComponent
|
|
634
722
|
}
|
|
635
|
-
], template: "<div\n novalidate\n [formGroup]=\"formGroup\"\n >\n
|
|
636
|
-
}], () => [
|
|
723
|
+
], 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" }]
|
|
724
|
+
}], () => [], { combo_input: [{
|
|
637
725
|
type: ViewChild,
|
|
638
726
|
args: ['comboinput']
|
|
639
727
|
}], magic: [{
|
|
@@ -644,16 +732,19 @@ class EditableComboComponent {
|
|
|
644
732
|
args: ['rowId']
|
|
645
733
|
}], placeholder: [{
|
|
646
734
|
type: Input
|
|
735
|
+
}], required: [{
|
|
736
|
+
type: Input
|
|
737
|
+
}], disabled: [{
|
|
738
|
+
type: Input
|
|
647
739
|
}] }); })();
|
|
648
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditableComboComponent, { className: "EditableComboComponent", filePath: "src/components/editable-combo-component.ts", lineNumber:
|
|
740
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditableComboComponent, { className: "EditableComboComponent", filePath: "src/components/editable-combo-component.ts", lineNumber: 40 }); })();
|
|
649
741
|
|
|
650
742
|
/**
|
|
651
743
|
* Directive for material-design listboxes not on material-design table
|
|
652
744
|
*/
|
|
653
745
|
class MatListboxDirective {
|
|
654
|
-
magicDirective;
|
|
655
|
-
constructor(
|
|
656
|
-
this.magicDirective = magicDirective;
|
|
746
|
+
magicDirective = inject(MagicDirective);
|
|
747
|
+
constructor() {
|
|
657
748
|
}
|
|
658
749
|
/**
|
|
659
750
|
* Handles the "selectionChange" event - pass it to the "change" event handler
|
|
@@ -662,7 +753,7 @@ class MatListboxDirective {
|
|
|
662
753
|
onChange($event) {
|
|
663
754
|
this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);
|
|
664
755
|
}
|
|
665
|
-
/** @nocollapse */ static ɵfac = function MatListboxDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MatListboxDirective)(
|
|
756
|
+
/** @nocollapse */ static ɵfac = function MatListboxDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MatListboxDirective)(); };
|
|
666
757
|
/** @nocollapse */ static ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MatListboxDirective, selectors: [["mat-selection-list", "magic", ""]], hostBindings: function MatListboxDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
667
758
|
i0.ɵɵlistener("selectionChange", function MatListboxDirective_selectionChange_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
668
759
|
} }, standalone: false });
|
|
@@ -673,7 +764,7 @@ class MatListboxDirective {
|
|
|
673
764
|
selector: `mat-selection-list[magic]`,
|
|
674
765
|
standalone: false
|
|
675
766
|
}]
|
|
676
|
-
}], () => [
|
|
767
|
+
}], () => [], { onChange: [{
|
|
677
768
|
type: HostListener,
|
|
678
769
|
args: ['selectionChange', ['$event']]
|
|
679
770
|
}] }); })();
|
|
@@ -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 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, inject } 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({\r\n selector: `\r\n mat-checkbox[magic]:not([noFormControl])\r\n `,\r\n standalone: false\r\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 protected magicDirective: MagicDirective = inject(MagicDirective);\r\n private matCheckbox: MatCheckbox = inject(MatCheckbox);\r\n protected task: TaskMagicService = inject(TaskMagicService);\r\n protected element: ElementRef = inject(ElementRef);\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor() {\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, inject } 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 protected componentList: ComponentListMagicService = inject(ComponentListMagicService);\n protected task: TaskMagicService = inject(TaskMagicService);\n\n /**\n * @ignore\n */\n constructor() {\n super();\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, inject } 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({\r\n providers: matMagicProviders,\r\n template: '',\r\n standalone: false\r\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 paginator = viewChild.required(MatPaginator);\r\n\r\n /**\r\n * Provides the table sort capabilities\r\n */\r\n sort = viewChild.required(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 protected ref: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n public magicService: MagicServices = inject(MagicServices);\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor() {\r\n super();\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, ViewChild, ChangeDetectionStrategy, inject } 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 changeDetection: ChangeDetectionStrategy.Eager,\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 // Track whether the autocomplete panel is open\n isPanelOpen = false;\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 | string) { 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 | string) { 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 // 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 this.fm.monitor(this.elRef, true).subscribe(origin => {\n this.focused = origin !== null;\n if (origin === null && !this.isPanelOpen) {\n // Only mark touched if panel is closed.\n // If panel is open, user is clicking an option — onClosed() will handle touched.\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 public magicServices: MagicServices = inject(MagicServices);\n private fm: FocusMonitor = inject(FocusMonitor);\n private elRef: ElementRef = inject(ElementRef);\n public ngControl: NgControl = inject(NgControl, { optional: true, self: true });\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 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 this.isPanelOpen = true;\n MagicDirective.noOfAutoCompleteBoxesOpened++;\n }\n\n onClosed() {\n this.isPanelOpen = false;\n this.writeValue(this.mg.getValue(this.controlId, this.rowId));\n MagicDirective.noOfAutoCompleteBoxesOpened--;\n\n // Mark touched here instead: panel is closed means user truly left the field\n this.touched = true;\n this.stateChanges.next();\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, inject } 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({\r\n selector: `mat-selection-list[magic]`,\r\n standalone: false\r\n})\r\nexport class MatListboxDirective{\r\n protected magicDirective: MagicDirective = inject(MagicDirective);\r\n\r\n constructor() {\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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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magic-xpa/angular-material-core",
|
|
3
|
-
"version": "4.1300.0-dev4130.
|
|
3
|
+
"version": "4.1300.0-dev4130.271",
|
|
4
4
|
"license": "SEE LICENSE IN EULA.pdf",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@angular/common": "^
|
|
8
|
-
"@angular/forms": "^
|
|
9
|
-
"@angular/material": "^
|
|
10
|
-
"@magic-xpa/angular": "4.1300.0-dev4130.
|
|
6
|
+
"@angular/core": "^22.1.1",
|
|
7
|
+
"@angular/common": "^22.1.1",
|
|
8
|
+
"@angular/forms": "^22.1.1",
|
|
9
|
+
"@angular/material": "^22.1.1",
|
|
10
|
+
"@magic-xpa/angular": "4.1300.0-dev4130.271"
|
|
11
11
|
},
|
|
12
12
|
"module": "fesm2022/magic-xpa-angular-material-core.mjs",
|
|
13
13
|
"typings": "types/magic-xpa-angular-material-core.d.ts",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"sideEffects": false,
|
|
24
|
+
"type": "module",
|
|
24
25
|
"dependencies": {
|
|
25
26
|
"tslib": "^2.3.0"
|
|
26
27
|
},
|
|
@@ -3,23 +3,24 @@ 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';
|
|
10
|
-
import * as i14 from '@angular/material/checkbox';
|
|
11
|
-
import { MatCheckbox } from '@angular/material/checkbox';
|
|
12
10
|
import { MatSort } from '@angular/material/sort';
|
|
13
11
|
import * as i10 from '@angular/material/paginator';
|
|
14
12
|
import { MatPaginator } from '@angular/material/paginator';
|
|
15
13
|
import * as i8 from '@angular/forms';
|
|
16
|
-
import { ControlValueAccessor, FormGroup } from '@angular/forms';
|
|
14
|
+
import { ControlValueAccessor, FormGroup, NgControl } from '@angular/forms';
|
|
15
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
16
|
+
import { Subject } from 'rxjs';
|
|
17
17
|
import * as i7 from '@angular/common';
|
|
18
18
|
import * as i9 from '@angular/material/table';
|
|
19
19
|
import { MatTableDataSource } from '@angular/material/table';
|
|
20
20
|
import * as i11 from '@angular/material/input';
|
|
21
21
|
import * as i12 from '@angular/material/button';
|
|
22
22
|
import * as i13 from '@angular/material/list';
|
|
23
|
+
import * as i14 from '@angular/material/checkbox';
|
|
23
24
|
import * as i15 from '@angular/material/tabs';
|
|
24
25
|
import * as i16 from '@angular/material/select';
|
|
25
26
|
import * as i17 from '@angular/material/datepicker';
|
|
@@ -29,17 +30,17 @@ import { SelectionModel } from '@angular/cdk/collections';
|
|
|
29
30
|
* Directive for material-design checkboxes not on material-design table
|
|
30
31
|
*/
|
|
31
32
|
declare class MatCheckboxDirective {
|
|
33
|
+
threeState: boolean;
|
|
34
|
+
private subscribeRefreshDom;
|
|
35
|
+
private indeterminate;
|
|
32
36
|
protected magicDirective: MagicDirective;
|
|
33
37
|
private matCheckbox;
|
|
34
38
|
protected task: TaskMagicService;
|
|
35
39
|
protected element: ElementRef;
|
|
36
|
-
threeState: boolean;
|
|
37
|
-
private subscribeRefreshDom;
|
|
38
|
-
private indeterminate;
|
|
39
40
|
/**
|
|
40
41
|
* @ignore
|
|
41
42
|
*/
|
|
42
|
-
constructor(
|
|
43
|
+
constructor();
|
|
43
44
|
/**
|
|
44
45
|
* Handles the Checkbox 'change' event - pass it to the Magic engine
|
|
45
46
|
*/
|
|
@@ -79,7 +80,7 @@ declare class MatComboboxDirective extends ComboboxMagicDirective {
|
|
|
79
80
|
*/
|
|
80
81
|
declare class MatListboxDirective {
|
|
81
82
|
protected magicDirective: MagicDirective;
|
|
82
|
-
constructor(
|
|
83
|
+
constructor();
|
|
83
84
|
/**
|
|
84
85
|
* Handles the "selectionChange" event - pass it to the "change" event handler
|
|
85
86
|
* @param $event
|
|
@@ -103,16 +104,14 @@ declare class MatMagicAutocompleteDirective {
|
|
|
103
104
|
* This component is the base component for forms which has a material-design table (grid)
|
|
104
105
|
*/
|
|
105
106
|
declare class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
106
|
-
protected ref: ChangeDetectorRef;
|
|
107
|
-
magicService: MagicServices;
|
|
108
107
|
/**
|
|
109
108
|
* Paginator to enable changing pages in the table
|
|
110
109
|
*/
|
|
111
|
-
paginator: MatPaginator
|
|
110
|
+
paginator: i0.Signal<MatPaginator>;
|
|
112
111
|
/**
|
|
113
112
|
* Provides the table sort capabilities
|
|
114
113
|
*/
|
|
115
|
-
sort: MatSort
|
|
114
|
+
sort: i0.Signal<MatSort>;
|
|
116
115
|
/**
|
|
117
116
|
* List of table columns to be displayed
|
|
118
117
|
*/
|
|
@@ -125,10 +124,12 @@ declare class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
|
125
124
|
* Provides selection options for the table
|
|
126
125
|
*/
|
|
127
126
|
selection: any;
|
|
127
|
+
protected ref: ChangeDetectorRef;
|
|
128
|
+
magicService: MagicServices;
|
|
128
129
|
/**
|
|
129
130
|
* @ignore
|
|
130
131
|
*/
|
|
131
|
-
constructor(
|
|
132
|
+
constructor();
|
|
132
133
|
/**
|
|
133
134
|
* Initializer
|
|
134
135
|
*/
|
|
@@ -141,8 +142,7 @@ declare class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
|
141
142
|
static ɵcmp: i0.ɵɵComponentDeclaration<BaseMatTableMagicComponent, "ng-component", never, {}, {}, never, never, false, never>;
|
|
142
143
|
}
|
|
143
144
|
|
|
144
|
-
declare class EditableComboComponent implements ControlValueAccessor, OnInit {
|
|
145
|
-
magicServices: MagicServices;
|
|
145
|
+
declare class EditableComboComponent implements ControlValueAccessor, MatFormFieldControl<number>, OnInit, OnDestroy {
|
|
146
146
|
/**
|
|
147
147
|
* @ignore
|
|
148
148
|
*/
|
|
@@ -156,24 +156,49 @@ declare class EditableComboComponent implements ControlValueAccessor, OnInit {
|
|
|
156
156
|
set rowId1(val: string);
|
|
157
157
|
placeholder: string;
|
|
158
158
|
formGroup: FormGroup;
|
|
159
|
+
isPanelOpen: boolean;
|
|
159
160
|
private onChange;
|
|
160
161
|
private onTouched;
|
|
161
|
-
|
|
162
|
+
static nextId: number;
|
|
163
|
+
id: string;
|
|
164
|
+
stateChanges: Subject<void>;
|
|
165
|
+
focused: boolean;
|
|
166
|
+
touched: boolean;
|
|
167
|
+
controlType: string;
|
|
168
|
+
value: number;
|
|
169
|
+
private _required;
|
|
170
|
+
get required(): boolean;
|
|
171
|
+
set required(val: boolean | string);
|
|
172
|
+
private _disabled;
|
|
173
|
+
get disabled(): boolean;
|
|
174
|
+
set disabled(val: boolean | string);
|
|
175
|
+
get empty(): boolean;
|
|
176
|
+
get shouldLabelFloat(): boolean;
|
|
177
|
+
get errorState(): boolean;
|
|
178
|
+
constructor();
|
|
162
179
|
/**
|
|
163
180
|
* Returns the Magic accessor service
|
|
164
181
|
* @returns
|
|
165
182
|
*/
|
|
166
183
|
get mg(): AccessorMagicService;
|
|
184
|
+
magicServices: MagicServices;
|
|
185
|
+
private fm;
|
|
186
|
+
private elRef;
|
|
187
|
+
ngControl: NgControl;
|
|
167
188
|
/**
|
|
168
189
|
* Returns the Magic task service
|
|
169
190
|
* @returns
|
|
170
191
|
*/
|
|
171
192
|
get task(): TaskMagicService;
|
|
172
193
|
ngOnInit(): void;
|
|
194
|
+
ngOnDestroy(): void;
|
|
195
|
+
setDescribedByIds(ids: string[]): void;
|
|
196
|
+
onContainerClick(event: MouseEvent): void;
|
|
173
197
|
writeValue(value: number): void;
|
|
174
198
|
registerOnChange(fn: (value: number) => void): void;
|
|
175
199
|
registerOnTouched(fn: () => void): void;
|
|
176
200
|
onBlur(): void;
|
|
201
|
+
setDisabledState(isDisabled: boolean): void;
|
|
177
202
|
onOptionSelected(event: MatAutocompleteSelectedEvent): void;
|
|
178
203
|
onOpened(): void;
|
|
179
204
|
onClosed(): void;
|
|
@@ -182,7 +207,7 @@ declare class EditableComboComponent implements ControlValueAccessor, OnInit {
|
|
|
182
207
|
displayValue: string;
|
|
183
208
|
}>;
|
|
184
209
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditableComboComponent, never>;
|
|
185
|
-
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 ɵ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>;
|
|
186
211
|
}
|
|
187
212
|
|
|
188
213
|
/**
|
|
@@ -202,8 +227,6 @@ declare class MagicAngularMaterialModule {
|
|
|
202
227
|
* Extends the Magic table service to supply functionality for Material Design tables
|
|
203
228
|
*/
|
|
204
229
|
declare class MgMatTableService extends TableMagicService {
|
|
205
|
-
protected componentList: ComponentListMagicService;
|
|
206
|
-
protected task: TaskMagicService;
|
|
207
230
|
/**
|
|
208
231
|
* Table data source
|
|
209
232
|
*/
|
|
@@ -240,10 +263,12 @@ declare class MgMatTableService extends TableMagicService {
|
|
|
240
263
|
* @ignore
|
|
241
264
|
*/
|
|
242
265
|
set Paginator(paginator: MatPaginator);
|
|
266
|
+
protected componentList: ComponentListMagicService;
|
|
267
|
+
protected task: TaskMagicService;
|
|
243
268
|
/**
|
|
244
269
|
* @ignore
|
|
245
270
|
*/
|
|
246
|
-
constructor(
|
|
271
|
+
constructor();
|
|
247
272
|
/**
|
|
248
273
|
* Connects the service to the elements of the table component
|
|
249
274
|
* @param dataSource Table data source
|