@intellegens/cornerstone-client-angular-material 0.0.9999-alpha-41 → 0.0.9999-alpha-43
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,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, input, Directive, contentChild, TemplateRef, output, signal, effect, Component } from '@angular/core';
|
|
2
|
+
import { Injectable, inject, input, Directive, contentChild, TemplateRef, output, signal, computed, effect, Component, untracked } from '@angular/core';
|
|
3
3
|
import { MatPaginatorIntl, MatPaginator } from '@angular/material/paginator';
|
|
4
4
|
import { MatSort } from '@angular/material/sort';
|
|
5
5
|
import { ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';
|
|
@@ -29,9 +29,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
29
29
|
}] });
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
* Directive used to pass data to the `
|
|
32
|
+
* Directive used to pass data to the `AngularCollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.
|
|
33
33
|
*/
|
|
34
|
-
class
|
|
34
|
+
class MatTablePagination {
|
|
35
35
|
_matPaginator = inject(MatPaginator);
|
|
36
36
|
adapter = input(...(ngDevMode ? [undefined, { debugName: "adapter" }] : []));
|
|
37
37
|
_subscription;
|
|
@@ -40,22 +40,21 @@ class MatTablePaginationDirective {
|
|
|
40
40
|
const adapter = this.adapter();
|
|
41
41
|
if (!adapter)
|
|
42
42
|
return;
|
|
43
|
-
|
|
44
|
-
if (event.pageSize !== adapter.pageSize) {
|
|
43
|
+
if (event.pageSize !== adapter.pageSize()) {
|
|
45
44
|
adapter.setPageSize(event.pageSize);
|
|
46
45
|
}
|
|
47
|
-
else if (
|
|
48
|
-
adapter.
|
|
46
|
+
else if (event.pageIndex !== adapter.pageIndex()) {
|
|
47
|
+
adapter.setPageIndex(event.pageIndex);
|
|
49
48
|
}
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
ngOnDestroy() {
|
|
53
52
|
this._subscription?.unsubscribe();
|
|
54
53
|
}
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
56
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type:
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MatTablePagination, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: MatTablePagination, isStandalone: true, selector: "mat-paginator", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }], ngImport: i0 });
|
|
57
56
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MatTablePagination, decorators: [{
|
|
59
58
|
type: Directive,
|
|
60
59
|
args: [{
|
|
61
60
|
selector: 'mat-paginator',
|
|
@@ -65,9 +64,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
65
64
|
}], propDecorators: { adapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "adapter", required: false }] }] } });
|
|
66
65
|
|
|
67
66
|
/**
|
|
68
|
-
* Directive used to pass data to the `
|
|
67
|
+
* Directive used to pass data to the `AngularCollectionViewAdapter` and reverse the default direction of shown table header sorting arrows
|
|
69
68
|
*/
|
|
70
|
-
class
|
|
69
|
+
class MatTableSort {
|
|
71
70
|
_matSort = inject(MatSort);
|
|
72
71
|
adapter = input(...(ngDevMode ? [undefined, { debugName: "adapter" }] : []));
|
|
73
72
|
ngOnInit() {
|
|
@@ -76,9 +75,11 @@ class MatTableSortDirective {
|
|
|
76
75
|
const adapter = this.adapter();
|
|
77
76
|
if (adapter) {
|
|
78
77
|
// TODO: handle multiple columns - for now it only supports ordering by one column
|
|
79
|
-
const initialSort = adapter.
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
const initialSort = adapter.ordering()[0];
|
|
79
|
+
if (initialSort) {
|
|
80
|
+
this._matSort.active = initialSort.path[0] || '';
|
|
81
|
+
this._matSort.direction = initialSort.direction === ReadSelectedOrderingDirection.Ascending ? 'desc' : 'asc'; // show reverse arrows
|
|
82
|
+
}
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
_subscription = this._matSort.sortChange.subscribe((event) => {
|
|
@@ -91,10 +92,10 @@ class MatTableSortDirective {
|
|
|
91
92
|
ngOnDestroy() {
|
|
92
93
|
this._subscription.unsubscribe();
|
|
93
94
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
95
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type:
|
|
95
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MatTableSort, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
96
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: MatTableSort, isStandalone: true, selector: "mat-table[matSort], table[mat-table][matSort]", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
96
97
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MatTableSort, decorators: [{
|
|
98
99
|
type: Directive,
|
|
99
100
|
args: [{
|
|
100
101
|
selector: 'mat-table[matSort], table[mat-table][matSort]',
|
|
@@ -252,135 +253,114 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
252
253
|
}]
|
|
253
254
|
}] });
|
|
254
255
|
|
|
255
|
-
class
|
|
256
|
+
class SearchInput {
|
|
256
257
|
searchAdapter = input.required(...(ngDevMode ? [{ debugName: "searchAdapter" }] : []));
|
|
257
258
|
_inputTemplate = contentChild.required(TemplateRef);
|
|
258
259
|
isFocused = output();
|
|
259
260
|
_inputValue = signal('', ...(ngDevMode ? [{ debugName: "_inputValue" }] : []));
|
|
260
|
-
_showInputField =
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
this.searchAdapter().searchText = this._inputValue();
|
|
273
|
-
}, ...(ngDevMode ? [{ debugName: "_onInput" }] : []));
|
|
274
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
275
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchInputComponent, isStandalone: true, selector: "app-search-input-component", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isFocused: "isFocused" }, queries: [{ propertyName: "_inputTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container\n *ngIf=\"_showInputField\"\n [ngTemplateOutlet]=\"_inputTemplate()\"\n [ngTemplateOutletContext]=\"{ inputValue: _inputValue, onFocus: isFocused }\"\n></ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
261
|
+
_showInputField = computed(() => {
|
|
262
|
+
const adapter = this.searchAdapter();
|
|
263
|
+
return adapter.options.multiselect || adapter.selection().length === 0;
|
|
264
|
+
}, ...(ngDevMode ? [{ debugName: "_showInputField" }] : []));
|
|
265
|
+
_syncFromAdapter = effect(() => {
|
|
266
|
+
this._inputValue.set(this.searchAdapter().text() ?? '');
|
|
267
|
+
}, ...(ngDevMode ? [{ debugName: "_syncFromAdapter" }] : []));
|
|
268
|
+
_syncToAdapter = effect(() => {
|
|
269
|
+
this.searchAdapter().setText(this._inputValue());
|
|
270
|
+
}, ...(ngDevMode ? [{ debugName: "_syncToAdapter" }] : []));
|
|
271
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
272
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchInput, isStandalone: true, selector: "app-search-input", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isFocused: "isFocused" }, queries: [{ propertyName: "_inputTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container\n *ngIf=\"_showInputField()\"\n [ngTemplateOutlet]=\"_inputTemplate()\"\n [ngTemplateOutletContext]=\"{ inputValue: _inputValue, onFocus: isFocused }\"\n></ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
276
273
|
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchInput, decorators: [{
|
|
278
275
|
type: Component,
|
|
279
|
-
args: [{ selector: 'app-search-input
|
|
276
|
+
args: [{ selector: 'app-search-input', standalone: true, imports: [CommonModule], template: "<ng-container\n *ngIf=\"_showInputField()\"\n [ngTemplateOutlet]=\"_inputTemplate()\"\n [ngTemplateOutletContext]=\"{ inputValue: _inputValue, onFocus: isFocused }\"\n></ng-container>\n" }]
|
|
280
277
|
}], propDecorators: { searchAdapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAdapter", required: true }] }], _inputTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], isFocused: [{ type: i0.Output, args: ["isFocused"] }] } });
|
|
281
278
|
|
|
282
|
-
class
|
|
279
|
+
class SearchClearButton {
|
|
283
280
|
searchAdapter = input.required(...(ngDevMode ? [{ debugName: "searchAdapter" }] : []));
|
|
284
281
|
_buttonTemplate = contentChild.required(TemplateRef);
|
|
285
|
-
_showButton =
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
this._showButton = false;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
else
|
|
297
|
-
this._showButton = false;
|
|
298
|
-
});
|
|
299
|
-
}
|
|
282
|
+
_showButton = computed(() => {
|
|
283
|
+
const adapter = this.searchAdapter();
|
|
284
|
+
if (!adapter.text()?.length)
|
|
285
|
+
return false;
|
|
286
|
+
if (adapter.selection().length > 0 && !adapter.options.multiselect)
|
|
287
|
+
return false;
|
|
288
|
+
return true;
|
|
289
|
+
}, ...(ngDevMode ? [{ debugName: "_showButton" }] : []));
|
|
300
290
|
_clearAll() {
|
|
301
|
-
this.searchAdapter().
|
|
302
|
-
this.searchAdapter().
|
|
291
|
+
this.searchAdapter().selectionClear();
|
|
292
|
+
this.searchAdapter().setText('');
|
|
303
293
|
}
|
|
304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
305
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type:
|
|
294
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchClearButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
295
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchClearButton, isStandalone: true, selector: "app-search-clear-button", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "_buttonTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *ngIf=\"_showButton()\" [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClear: _clearAll.bind(this) }\"></ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }] });
|
|
306
296
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchClearButton, decorators: [{
|
|
308
298
|
type: Component,
|
|
309
|
-
args: [{ selector: 'app-search-clear-button
|
|
299
|
+
args: [{ selector: 'app-search-clear-button', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: "<ng-container *ngIf=\"_showButton()\" [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClear: _clearAll.bind(this) }\"></ng-container>\n" }]
|
|
310
300
|
}], propDecorators: { searchAdapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAdapter", required: true }] }], _buttonTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
311
301
|
|
|
312
|
-
class
|
|
302
|
+
class SearchShowResultsButton {
|
|
313
303
|
searchAdapter = input.required(...(ngDevMode ? [{ debugName: "searchAdapter" }] : []));
|
|
314
304
|
showResults = output();
|
|
315
305
|
_buttonTemplate = contentChild.required(TemplateRef);
|
|
316
|
-
_showButton =
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
else
|
|
324
|
-
this._showButton = false;
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchShowResultsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchShowResultsButtonComponent, isStandalone: true, selector: "app-search-show-results-button-component", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { showResults: "showResults" }, queries: [{ propertyName: "_buttonTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<div *ngIf=\"_showButton\" style=\"position: relative; display: inline-block\">\n <div class=\"hover-area\" (mouseleave)=\"showResults.emit(false)\"></div>\n <ng-container [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClick: showResults }\"></ng-container>\n</div>\n", styles: [".hover-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500%;height:500%}.hover-area:hover{pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }] });
|
|
306
|
+
_showButton = computed(() => {
|
|
307
|
+
const adapter = this.searchAdapter();
|
|
308
|
+
return adapter.selection().length > 0 && !adapter.options.multiselect;
|
|
309
|
+
}, ...(ngDevMode ? [{ debugName: "_showButton" }] : []));
|
|
310
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchShowResultsButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
311
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchShowResultsButton, isStandalone: true, selector: "app-search-show-results-button", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { showResults: "showResults" }, queries: [{ propertyName: "_buttonTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<div *ngIf=\"_showButton()\" style=\"position: relative; display: inline-block\">\n <div class=\"hover-area\" (mouseleave)=\"showResults.emit(false)\"></div>\n <ng-container [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClick: showResults }\"></ng-container>\n</div>\n", styles: [".hover-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500%;height:500%}.hover-area:hover{pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }] });
|
|
329
312
|
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchShowResultsButton, decorators: [{
|
|
331
314
|
type: Component,
|
|
332
|
-
args: [{ selector: 'app-search-show-results-button
|
|
315
|
+
args: [{ selector: 'app-search-show-results-button', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: "<div *ngIf=\"_showButton()\" style=\"position: relative; display: inline-block\">\n <div class=\"hover-area\" (mouseleave)=\"showResults.emit(false)\"></div>\n <ng-container [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClick: showResults }\"></ng-container>\n</div>\n", styles: [".hover-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500%;height:500%}.hover-area:hover{pointer-events:auto}\n"] }]
|
|
333
316
|
}], propDecorators: { searchAdapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAdapter", required: true }] }], showResults: [{ type: i0.Output, args: ["showResults"] }], _buttonTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
334
317
|
|
|
335
|
-
class
|
|
318
|
+
class SearchResultList {
|
|
336
319
|
searchAdapter = input.required(...(ngDevMode ? [{ debugName: "searchAdapter" }] : []));
|
|
337
320
|
isHovering = output();
|
|
338
321
|
_itemTemplate = contentChild.required(TemplateRef);
|
|
339
|
-
|
|
340
|
-
|
|
322
|
+
_hasReceivedResults = signal(false, ...(ngDevMode ? [{ debugName: "_hasReceivedResults" }] : []));
|
|
323
|
+
_searchResults = computed(() => this.searchAdapter().searchData(), ...(ngDevMode ? [{ debugName: "_searchResults" }] : []));
|
|
324
|
+
_beforeFirstResults = computed(() => !this._hasReceivedResults(), ...(ngDevMode ? [{ debugName: "_beforeFirstResults" }] : []));
|
|
341
325
|
_beforeFirstResultsMessage = 'Type at least 3 characters to search ...';
|
|
342
|
-
|
|
343
|
-
this.searchAdapter().
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
326
|
+
_trackResults = effect(() => {
|
|
327
|
+
const searchText = this.searchAdapter().text();
|
|
328
|
+
const isLoading = this.searchAdapter().isLoading();
|
|
329
|
+
untracked(() => {
|
|
330
|
+
const minLength = this.searchAdapter().searchTriggerMinLength;
|
|
331
|
+
const textLength = searchText?.length ?? 0;
|
|
332
|
+
if (textLength >= minLength && !isLoading) {
|
|
333
|
+
this._hasReceivedResults.set(true);
|
|
348
334
|
}
|
|
349
|
-
if (
|
|
350
|
-
|
|
351
|
-
this._beforeFirstResults = true;
|
|
335
|
+
if (textLength === 0) {
|
|
336
|
+
this._hasReceivedResults.set(false);
|
|
352
337
|
}
|
|
353
338
|
});
|
|
354
|
-
}
|
|
339
|
+
}, ...(ngDevMode ? [{ debugName: "_trackResults" }] : []));
|
|
355
340
|
_onItemClick(item) {
|
|
356
|
-
this.searchAdapter().
|
|
341
|
+
this.searchAdapter().selectionAdd(item);
|
|
357
342
|
}
|
|
358
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
359
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type:
|
|
343
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchResultList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
344
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchResultList, isStandalone: true, selector: "app-search-result-list", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isHovering: "isHovering" }, queries: [{ propertyName: "_itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<div (mouseenter)=\"isHovering.emit(true)\" (mouseleave)=\"isHovering.emit(false)\">\n <ng-container\n [ngTemplateOutlet]=\"_itemTemplate()\"\n [ngTemplateOutletContext]=\"{\n searchResults: _searchResults(),\n beforeFirstResults: _beforeFirstResults,\n beforeFirstResultsMessage: _beforeFirstResultsMessage,\n onItemClick: _onItemClick.bind(this)\n }\"\n ></ng-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatCardModule }] });
|
|
360
345
|
}
|
|
361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
346
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchResultList, decorators: [{
|
|
362
347
|
type: Component,
|
|
363
|
-
args: [{ selector: 'app-search-result-list
|
|
348
|
+
args: [{ selector: 'app-search-result-list', standalone: true, imports: [CommonModule, MatIconModule, MatCardModule], template: "<div (mouseenter)=\"isHovering.emit(true)\" (mouseleave)=\"isHovering.emit(false)\">\n <ng-container\n [ngTemplateOutlet]=\"_itemTemplate()\"\n [ngTemplateOutletContext]=\"{\n searchResults: _searchResults(),\n beforeFirstResults: _beforeFirstResults,\n beforeFirstResultsMessage: _beforeFirstResultsMessage,\n onItemClick: _onItemClick.bind(this)\n }\"\n ></ng-container>\n</div>\n" }]
|
|
364
349
|
}], propDecorators: { searchAdapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAdapter", required: true }] }], isHovering: [{ type: i0.Output, args: ["isHovering"] }], _itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
365
350
|
|
|
366
|
-
class
|
|
351
|
+
class SearchSelectionList {
|
|
367
352
|
searchAdapter = input.required(...(ngDevMode ? [{ debugName: "searchAdapter" }] : []));
|
|
368
353
|
_itemTemplate = contentChild.required(TemplateRef);
|
|
369
|
-
_selectedItems =
|
|
370
|
-
ngOnInit() {
|
|
371
|
-
this.searchAdapter().onChange.addEventListener(() => {
|
|
372
|
-
this._selectedItems.set(this.searchAdapter().selectedItems);
|
|
373
|
-
});
|
|
374
|
-
}
|
|
354
|
+
_selectedItems = computed(() => this.searchAdapter().selection(), ...(ngDevMode ? [{ debugName: "_selectedItems" }] : []));
|
|
375
355
|
_onRemoveClick(item) {
|
|
376
|
-
this.searchAdapter().
|
|
356
|
+
this.searchAdapter().selectionRemove(item);
|
|
377
357
|
}
|
|
378
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
379
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type:
|
|
358
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchSelectionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
359
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: SearchSelectionList, isStandalone: true, selector: "app-search-selection-list", inputs: { searchAdapter: { classPropertyName: "searchAdapter", publicName: "searchAdapter", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "_itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<div *ngFor=\"let item of _selectedItems()\" [style.width]=\"!searchAdapter().options.multiselect ? '100%' : 'auto'\">\n <ng-container [ngTemplateOutlet]=\"_itemTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: item, onRemove: _onRemoveClick.bind(this) }\"></ng-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }] });
|
|
380
360
|
}
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type:
|
|
361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SearchSelectionList, decorators: [{
|
|
382
362
|
type: Component,
|
|
383
|
-
args: [{ selector: 'app-search-selection-list
|
|
363
|
+
args: [{ selector: 'app-search-selection-list', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: "<div *ngFor=\"let item of _selectedItems()\" [style.width]=\"!searchAdapter().options.multiselect ? '100%' : 'auto'\">\n <ng-container [ngTemplateOutlet]=\"_itemTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: item, onRemove: _onRemoveClick.bind(this) }\"></ng-container>\n</div>\n" }]
|
|
384
364
|
}], propDecorators: { searchAdapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchAdapter", required: true }] }], _itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
385
365
|
|
|
386
366
|
/*
|
|
@@ -391,5 +371,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
391
371
|
* Generated bundle index. Do not edit.
|
|
392
372
|
*/
|
|
393
373
|
|
|
394
|
-
export { MatPaginatorIntlOverrides,
|
|
374
|
+
export { MatPaginatorIntlOverrides, MatTablePagination, MatTableSort, ModalService, SearchClearButton, SearchInput, SearchResultList, SearchSelectionList, SearchShowResultsButton };
|
|
395
375
|
//# sourceMappingURL=intellegens-cornerstone-client-angular-material.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intellegens-cornerstone-client-angular-material.mjs","sources":["../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/overrides/MatPaginatorIntlOverrides/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTablePaginationDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTableSortDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/services/ModalService/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchInput/SearchInputComponent.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchInput/SearchInputComponent.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchClearButton/SearchClearButtonComponent.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchClearButton/SearchClearButtonComponent.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchShowResultsButton/SearchShowResultsButtonComponent.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchShowResultsButton/SearchShowResultsButtonComponent.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchResultList/SearchResultListComponent.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchResultList/SearchResultListComponent.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchSelectionList/SearchSelectionListComponent.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/Search/SearchSelectionList/SearchSelectionListComponent.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/public-api.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/intellegens-cornerstone-client-angular-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\n\n/**\n * Custom paginator service to adjust the label for the paginator.\n */\n@Injectable()\nexport class MatPaginatorIntlOverrides extends MatPaginatorIntl {\n override getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0) {\n return 'Page 1 of 1';\n }\n const isLengthValid = length && length !== -1;\n return isLengthValid ? `Page ${page + 1} of ${Math.ceil(length / pageSize)}` : `Page ${page + 1}`;\n };\n}\n","import { Directive, InputSignal, inject, input } from '@angular/core';\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from '@angular/material/paginator';\nimport { MatPaginatorIntlOverrides } from '../../overrides'; // using path alias results in `Could not resolve \"@overrides\"` in app\nimport { Subscription } from 'rxjs';\nimport { CollectionViewAdapter } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.\n */\n@Directive({\n selector: 'mat-paginator',\n providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }],\n standalone: true,\n})\nexport class MatTablePaginationDirective {\n private _matPaginator = inject(MatPaginator);\n public adapter: InputSignal<CollectionViewAdapter<any, any, any> | undefined> = input();\n private _subscription?: Subscription;\n ngOnInit() {\n this._subscription = this._matPaginator.page.subscribe((event: PageEvent) => {\n const adapter = this.adapter();\n if (!adapter) return;\n const targetPage = event.pageIndex + 1;\n if (event.pageSize !== adapter.pageSize) {\n adapter.setPageSize(event.pageSize);\n } else if (targetPage !== adapter.currentPage) {\n adapter.jumpToPage(targetPage);\n }\n });\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n}\n","import { Directive, inject, input, InputSignal } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { CollectionViewAdapter, ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter` and reverse the default direction of shown table header sorting arrows\n */\n@Directive({\n selector: 'mat-table[matSort], table[mat-table][matSort]',\n standalone: true,\n})\nexport class MatTableSortDirective {\n private _matSort = inject(MatSort);\n public adapter: InputSignal<CollectionViewAdapter<any, any, any> | undefined> = input();\n ngOnInit() {\n this._matSort.disableClear = true; // removes \"unsorted\" option, syncs column header arrows with actual current sort direction\n // tell MatSort our starting sort direction\n const adapter = this.adapter();\n if (adapter) {\n // TODO: handle multiple columns - for now it only supports ordering by one column\n const initialSort = adapter.getCurrentOrdering()[0];\n this._matSort.active = (initialSort.orderByPath && initialSort.orderByPath[0]) || '';\n this._matSort.direction = initialSort.orderDirection === ReadSelectedOrderingDirection.Ascending ? 'desc' : 'asc'; // show reverse arrows\n }\n }\n private _subscription = this._matSort.sortChange.subscribe((event: Sort) => {\n const adapter = this.adapter();\n if (adapter && event?.active) {\n const newDirection = event.direction == 'desc' ? ReadSelectedOrderingDirection.Ascending : ReadSelectedOrderingDirection.Descending; // show reverse arrows\n adapter.setOrdering([event.active], newDirection);\n }\n });\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","import { Injectable, inject, Type, InputSignal } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type IModalComponent } from '../../interfaces';\n\ntype ModalStackItem = {\n id: string;\n resolve: (value: any) => void;\n dialogRef: MatDialogRef<any>;\n componentRef: IModalComponent;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _matDialog = inject(MatDialog);\n private _modalsStack: ModalStackItem[] = [];\n private _nextModalStackId = 0;\n\n public openModal<TComponent extends IModalComponent, TResult>(\n Component: Type<TComponent>,\n inputs?: Partial<{ [key in keyof TComponent]: TComponent[key] extends InputSignal<infer T> ? T : never }>,\n ): Promise<TResult | undefined> {\n return new Promise<TResult | undefined>(resolve => {\n // hide parent modal backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = 'none';\n }\n }\n\n // new dialog using configured container component\n const dialogRef = this._matDialog.open(Component, {\n maxWidth: 'none',\n });\n const componentRef = dialogRef.componentRef;\n const componentInstance = componentRef!.instance as TComponent;\n\n const closeOnBackdrop = componentInstance.closeOnBackdrop ?? true;\n const closeOnEscapeKey = componentInstance.closeOnEscapeKey ?? true;\n\n // disable MatDialog default closing backdrop-click/escape-key behavior\n if (!closeOnBackdrop || !closeOnEscapeKey) {\n dialogRef.disableClose = true;\n }\n\n // set modal component stack Id\n const id = `${this._nextModalStackId++}`;\n componentInstance.modalStackId = id;\n // set modal component inputs\n if (inputs !== undefined) {\n for (const key of Object.keys(inputs) as (keyof Partial<TComponent>)[]) {\n if (key in componentInstance && componentInstance[key] instanceof Function) {\n componentRef?.setInput(key as string, inputs[key]);\n }\n }\n }\n\n // add to stack\n this._modalsStack.push({\n id,\n resolve,\n dialogRef,\n componentRef: dialogRef.componentRef?.instance as IModalComponent,\n });\n\n // handle dialog closed via backdrop click\n dialogRef.backdropClick().subscribe(() => {\n if (closeOnBackdrop) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n });\n // handle dialog closed via Esc key-press\n dialogRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n if (closeOnEscapeKey) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n }\n });\n });\n }\n\n public submitModal<T>(data: T): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(data);\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public closeModal(): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(undefined);\n if (currentItem.dialogRef.disableClose) {\n currentItem.dialogRef.disableClose = false;\n }\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public getModalConfig(modalStackId: string | undefined): IModalComponent | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef;\n }\n\n public getBreadcrumbs(modalStackId: string | undefined): string[] {\n const breadcrumbs: string[] = [];\n for (const item of this._modalsStack) {\n const breadcrumb = item.componentRef.breadcrumb;\n if (breadcrumb) breadcrumbs.push(breadcrumb());\n if (item.id === modalStackId) break;\n }\n return breadcrumbs;\n }\n\n public closeOnButton(modalStackId: string | undefined): boolean | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.closeOnButton;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChild, effect, input, output, signal, TemplateRef } from '@angular/core';\nimport { IGlobalSearchable, SearchAdapter } from '@intellegens/cornerstone-client-angular';\n\n@Component({\n selector: 'app-search-input-component',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './SearchInputComponent.html',\n})\nexport class SearchInputComponent<TKey, TDto extends IGlobalSearchable<TKey>> {\n public searchAdapter = input.required<SearchAdapter<TKey, TDto>>();\n protected _inputTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n public isFocused = output<boolean>();\n\n protected _inputValue = signal<string>('');\n protected _showInputField = true;\n\n public ngOnInit() {\n this.searchAdapter().onChange.addEventListener(() => {\n this._inputValue.set(this.searchAdapter().searchText); // updates input field on change\n\n if (!this.searchAdapter().multiselect && this.searchAdapter().selectedItems.length > 0) {\n this._showInputField = false;\n } else this._showInputField = true;\n });\n }\n\n private _onInput = effect(() => {\n this.searchAdapter().searchText = this._inputValue();\n });\n}\n","<ng-container\n *ngIf=\"_showInputField\"\n [ngTemplateOutlet]=\"_inputTemplate()\"\n [ngTemplateOutletContext]=\"{ inputValue: _inputValue, onFocus: isFocused }\"\n></ng-container>\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChild, input, TemplateRef } from '@angular/core';\nimport { IGlobalSearchable, SearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-clear-button-component',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './SearchClearButtonComponent.html',\n})\nexport class SearchClearButtonComponent<TKey, TDto extends IGlobalSearchable<TKey>> {\n public searchAdapter = input.required<SearchAdapter<TKey, TDto>>();\n protected _buttonTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _showButton = false;\n public ngOnInit() {\n this.searchAdapter().onChange.addEventListener(() => {\n // show button when there is text in the input field\n if (this.searchAdapter().searchText.length > 0) {\n this._showButton = true;\n\n // if single-select mode and an item is selected\n if (this.searchAdapter().selectedItems.length > 0 && !this.searchAdapter().multiselect) {\n this._showButton = false;\n }\n } else this._showButton = false;\n });\n }\n\n protected _clearAll() {\n this.searchAdapter().searchText = '';\n this.searchAdapter().selectedItems = [];\n }\n}\n","<ng-container *ngIf=\"_showButton\" [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClear: _clearAll.bind(this) }\"></ng-container>\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChild, input, output, TemplateRef } from '@angular/core';\nimport { IGlobalSearchable, SearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-show-results-button-component',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './SearchShowResultsButtonComponent.html',\n styleUrl: './SearchShowResultsButtonComponent.css',\n})\nexport class SearchShowResultsButtonComponent<TKey, TDto extends IGlobalSearchable<TKey>> {\n public searchAdapter = input.required<SearchAdapter<TKey, TDto>>();\n public showResults = output<boolean>();\n protected _buttonTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _showButton = false;\n public ngOnInit() {\n this.searchAdapter().onChange.addEventListener(() => {\n // if single-select mode and an item is selected\n if (this.searchAdapter().selectedItems.length > 0 && !this.searchAdapter().multiselect) {\n this._showButton = true;\n } else this._showButton = false;\n });\n }\n}\n","<div *ngIf=\"_showButton\" style=\"position: relative; display: inline-block\">\n <div class=\"hover-area\" (mouseleave)=\"showResults.emit(false)\"></div>\n <ng-container [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClick: showResults }\"></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChild, input, output, signal, TemplateRef } from '@angular/core';\nimport { IGlobalSearchable, SearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\n\n@Component({\n selector: 'app-search-result-list-component',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatCardModule],\n templateUrl: './SearchResultListComponent.html',\n})\nexport class SearchResultListComponent<TKey, TDto extends IGlobalSearchable<TKey>> {\n public searchAdapter = input.required<SearchAdapter<TKey, TDto>>();\n public isHovering = output<boolean>();\n protected _itemTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _searchResults = signal<TDto[]>([]);\n protected _beforeFirstResults = true;\n protected _beforeFirstResultsMessage = 'Type at least 3 characters to search ...';\n\n public ngOnInit() {\n this.searchAdapter().onChange.addEventListener(() => {\n this._searchResults.set(this.searchAdapter().searchResults);\n if (this.searchAdapter().searchResults.length > 0 && this._beforeFirstResults) {\n // stop showing _beforeFirstResultsMessage\n this._beforeFirstResults = false;\n }\n if (this._beforeFirstResults === false && this.searchAdapter().searchText.length === 0) {\n // restore _beforeFirstResultsMessage\n this._beforeFirstResults = true;\n }\n });\n }\n\n protected _onItemClick(item: TDto) {\n this.searchAdapter().addToSelection(item);\n }\n}\n","<div (mouseenter)=\"isHovering.emit(true)\" (mouseleave)=\"isHovering.emit(false)\">\n <ng-container\n [ngTemplateOutlet]=\"_itemTemplate()\"\n [ngTemplateOutletContext]=\"{\n searchResults: _searchResults(),\n beforeFirstResults: _beforeFirstResults,\n beforeFirstResultsMessage: _beforeFirstResultsMessage,\n onItemClick: _onItemClick.bind(this)\n }\"\n ></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChild, input, signal, TemplateRef } from '@angular/core';\nimport { IGlobalSearchable, SearchAdapter } from '@intellegens/cornerstone-client';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-selection-list-component',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './SearchSelectionListComponent.html',\n})\nexport class SearchSelectionListComponent<TKey, TDto extends IGlobalSearchable<TKey>> {\n public searchAdapter = input.required<SearchAdapter<TKey, TDto>>();\n protected _itemTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _selectedItems = signal<TDto[]>([]);\n\n public ngOnInit() {\n this.searchAdapter().onChange.addEventListener(() => {\n this._selectedItems.set(this.searchAdapter().selectedItems);\n });\n }\n\n protected _onRemoveClick(item: TDto) {\n this.searchAdapter().removeFromSelection(item);\n }\n}\n","<div *ngFor=\"let item of _selectedItems()\" [style.width]=\"!searchAdapter().multiselect ? '100%' : 'auto'\">\n <ng-container [ngTemplateOutlet]=\"_itemTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: item, onRemove: _onRemoveClick.bind(this) }\"></ng-container>\n</div>\n","/*\n * Public API Surface of cornerstone-client-angular-material\n */\n\nexport * from './lib/';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intellegens-cornerstone-client-angular-material.mjs","sources":["../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/overrides/mat-paginator-intl-overrides.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/mat-table-pagination/mat-table-pagination.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/mat-table-sort/mat-table-sort.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/services/modal-service.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-input/search-input.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-input/search-input.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-clear-button/search-clear-button.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-clear-button/search-clear-button.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-show-results-button/search-show-results-button.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-show-results-button/search-show-results-button.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-result-list/search-result-list.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-result-list/search-result-list.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-selection-list/search-selection-list.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/components/search/search-selection-list/search-selection-list.html","../../../../projects/intellegens/cornerstone-client-angular-material/src/public-api.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/intellegens-cornerstone-client-angular-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\n\n/**\n * Custom paginator service to adjust the label for the paginator.\n */\n@Injectable()\nexport class MatPaginatorIntlOverrides extends MatPaginatorIntl {\n override getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0) {\n return 'Page 1 of 1';\n }\n const isLengthValid = length && length !== -1;\n return isLengthValid ? `Page ${page + 1} of ${Math.ceil(length / pageSize)}` : `Page ${page + 1}`;\n };\n}\n","import { Directive, InputSignal, inject, input } from '@angular/core';\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from '@angular/material/paginator';\nimport { MatPaginatorIntlOverrides } from '../../overrides'; // using path alias results in `Could not resolve \"@overrides\"` in app\nimport { Subscription } from 'rxjs';\nimport { AngularCollectionViewAdapter } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `AngularCollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.\n */\n@Directive({\n selector: 'mat-paginator',\n providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }],\n standalone: true,\n})\nexport class MatTablePagination {\n private _matPaginator = inject(MatPaginator);\n public adapter: InputSignal<AngularCollectionViewAdapter<any> | undefined> = input();\n private _subscription?: Subscription;\n ngOnInit() {\n this._subscription = this._matPaginator.page.subscribe((event: PageEvent) => {\n const adapter = this.adapter();\n if (!adapter) return;\n if (event.pageSize !== adapter.pageSize()) {\n adapter.setPageSize(event.pageSize);\n } else if (event.pageIndex !== adapter.pageIndex()) {\n adapter.setPageIndex(event.pageIndex);\n }\n });\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n}\n","import { Directive, inject, input, InputSignal } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { AngularCollectionViewAdapter, ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `AngularCollectionViewAdapter` and reverse the default direction of shown table header sorting arrows\n */\n@Directive({\n selector: 'mat-table[matSort], table[mat-table][matSort]',\n standalone: true,\n})\nexport class MatTableSort {\n private _matSort = inject(MatSort);\n public adapter: InputSignal<AngularCollectionViewAdapter<any> | undefined> = input();\n ngOnInit() {\n this._matSort.disableClear = true; // removes \"unsorted\" option, syncs column header arrows with actual current sort direction\n // tell MatSort our starting sort direction\n const adapter = this.adapter();\n if (adapter) {\n // TODO: handle multiple columns - for now it only supports ordering by one column\n const initialSort = adapter.ordering()[0];\n if (initialSort) {\n this._matSort.active = initialSort.path[0] || '';\n this._matSort.direction = initialSort.direction === ReadSelectedOrderingDirection.Ascending ? 'desc' : 'asc'; // show reverse arrows\n }\n }\n }\n private _subscription = this._matSort.sortChange.subscribe((event: Sort) => {\n const adapter = this.adapter();\n if (adapter && event?.active) {\n const newDirection = event.direction == 'desc' ? ReadSelectedOrderingDirection.Ascending : ReadSelectedOrderingDirection.Descending; // show reverse arrows\n adapter.setOrdering([event.active], newDirection);\n }\n });\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","import { inject, Injectable, InputSignal, Type } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type IModalComponent } from '../';\n\ntype ModalStackItem = {\n id: string;\n resolve: (value: any) => void;\n dialogRef: MatDialogRef<any>;\n componentRef: IModalComponent;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _matDialog = inject(MatDialog);\n private _modalsStack: ModalStackItem[] = [];\n private _nextModalStackId = 0;\n\n public openModal<TComponent extends IModalComponent, TResult>(\n Component: Type<TComponent>,\n inputs?: Partial<{ [key in keyof TComponent]: TComponent[key] extends InputSignal<infer T> ? T : never }>,\n ): Promise<TResult | undefined> {\n return new Promise<TResult | undefined>(resolve => {\n // hide parent modal backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = 'none';\n }\n }\n\n // new dialog using configured container component\n const dialogRef = this._matDialog.open(Component, {\n maxWidth: 'none',\n });\n const componentRef = dialogRef.componentRef;\n const componentInstance = componentRef!.instance as TComponent;\n\n const closeOnBackdrop = componentInstance.closeOnBackdrop ?? true;\n const closeOnEscapeKey = componentInstance.closeOnEscapeKey ?? true;\n\n // disable MatDialog default closing backdrop-click/escape-key behavior\n if (!closeOnBackdrop || !closeOnEscapeKey) {\n dialogRef.disableClose = true;\n }\n\n // set modal component stack Id\n const id = `${this._nextModalStackId++}`;\n componentInstance.modalStackId = id;\n // set modal component inputs\n if (inputs !== undefined) {\n for (const key of Object.keys(inputs) as (keyof Partial<TComponent>)[]) {\n if (key in componentInstance && componentInstance[key] instanceof Function) {\n componentRef?.setInput(key as string, inputs[key]);\n }\n }\n }\n\n // add to stack\n this._modalsStack.push({\n id,\n resolve,\n dialogRef,\n componentRef: dialogRef.componentRef?.instance as IModalComponent,\n });\n\n // handle dialog closed via backdrop click\n dialogRef.backdropClick().subscribe(() => {\n if (closeOnBackdrop) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n });\n // handle dialog closed via Esc key-press\n dialogRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n if (closeOnEscapeKey) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n }\n });\n });\n }\n\n public submitModal<T>(data: T): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(data);\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public closeModal(): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(undefined);\n if (currentItem.dialogRef.disableClose) {\n currentItem.dialogRef.disableClose = false;\n }\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public getModalConfig(modalStackId: string | undefined): IModalComponent | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef;\n }\n\n public getBreadcrumbs(modalStackId: string | undefined): string[] {\n const breadcrumbs: string[] = [];\n for (const item of this._modalsStack) {\n const breadcrumb = item.componentRef.breadcrumb;\n if (breadcrumb) breadcrumbs.push(breadcrumb());\n if (item.id === modalStackId) break;\n }\n return breadcrumbs;\n }\n\n public closeOnButton(modalStackId: string | undefined): boolean | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.closeOnButton;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, effect, input, output, signal, TemplateRef } from '@angular/core';\nimport { AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';\n\n@Component({\n selector: 'app-search-input',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './search-input.html',\n})\nexport class SearchInput<TDto> {\n public searchAdapter = input.required<AngularSearchAdapter<TDto>>();\n protected _inputTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n public isFocused = output<boolean>();\n\n protected _inputValue = signal<string>('');\n\n protected _showInputField = computed(() => {\n const adapter = this.searchAdapter();\n return adapter.options.multiselect || adapter.selection().length === 0;\n });\n\n private _syncFromAdapter = effect(() => {\n this._inputValue.set(this.searchAdapter().text() ?? '');\n });\n\n private _syncToAdapter = effect(() => {\n this.searchAdapter().setText(this._inputValue());\n });\n}\n","<ng-container\n *ngIf=\"_showInputField()\"\n [ngTemplateOutlet]=\"_inputTemplate()\"\n [ngTemplateOutletContext]=\"{ inputValue: _inputValue, onFocus: isFocused }\"\n></ng-container>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, input, TemplateRef } from '@angular/core';\nimport { AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-clear-button',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './search-clear-button.html',\n})\nexport class SearchClearButton<TDto> {\n public searchAdapter = input.required<AngularSearchAdapter<TDto>>();\n protected _buttonTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _showButton = computed(() => {\n const adapter = this.searchAdapter();\n if (!adapter.text()?.length) return false;\n if (adapter.selection().length > 0 && !adapter.options.multiselect) return false;\n return true;\n });\n\n protected _clearAll() {\n this.searchAdapter().selectionClear();\n this.searchAdapter().setText('');\n }\n}\n","<ng-container *ngIf=\"_showButton()\" [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClear: _clearAll.bind(this) }\"></ng-container>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, input, output, TemplateRef } from '@angular/core';\nimport { AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-show-results-button',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './search-show-results-button.html',\n styleUrl: './search-show-results-button.css',\n})\nexport class SearchShowResultsButton<TDto> {\n public searchAdapter = input.required<AngularSearchAdapter<TDto>>();\n public showResults = output<boolean>();\n protected _buttonTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _showButton = computed(() => {\n const adapter = this.searchAdapter();\n return adapter.selection().length > 0 && !adapter.options.multiselect;\n });\n}\n","<div *ngIf=\"_showButton()\" style=\"position: relative; display: inline-block\">\n <div class=\"hover-area\" (mouseleave)=\"showResults.emit(false)\"></div>\n <ng-container [ngTemplateOutlet]=\"_buttonTemplate()\" [ngTemplateOutletContext]=\"{ onClick: showResults }\"></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, effect, input, output, signal, TemplateRef, untracked } from '@angular/core';\nimport { AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\n\n@Component({\n selector: 'app-search-result-list',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatCardModule],\n templateUrl: './search-result-list.html',\n})\nexport class SearchResultList<TDto> {\n public searchAdapter = input.required<AngularSearchAdapter<TDto>>();\n public isHovering = output<boolean>();\n protected _itemTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n private _hasReceivedResults = signal(false);\n\n protected _searchResults = computed(() => this.searchAdapter().searchData());\n protected _beforeFirstResults = computed(() => !this._hasReceivedResults());\n protected _beforeFirstResultsMessage = 'Type at least 3 characters to search ...';\n\n private _trackResults = effect(() => {\n const searchText = this.searchAdapter().text();\n const isLoading = this.searchAdapter().isLoading();\n\n untracked(() => {\n const minLength = this.searchAdapter().searchTriggerMinLength;\n const textLength = searchText?.length ?? 0;\n if (textLength >= minLength && !isLoading) {\n this._hasReceivedResults.set(true);\n }\n if (textLength === 0) {\n this._hasReceivedResults.set(false);\n }\n });\n });\n\n protected _onItemClick(item: TDto) {\n this.searchAdapter().selectionAdd(item);\n }\n}\n","<div (mouseenter)=\"isHovering.emit(true)\" (mouseleave)=\"isHovering.emit(false)\">\n <ng-container\n [ngTemplateOutlet]=\"_itemTemplate()\"\n [ngTemplateOutletContext]=\"{\n searchResults: _searchResults(),\n beforeFirstResults: _beforeFirstResults,\n beforeFirstResultsMessage: _beforeFirstResultsMessage,\n onItemClick: _onItemClick.bind(this)\n }\"\n ></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, input, TemplateRef } from '@angular/core';\nimport { AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-search-selection-list',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule],\n templateUrl: './search-selection-list.html',\n})\nexport class SearchSelectionList<TDto> {\n public searchAdapter = input.required<AngularSearchAdapter<TDto>>();\n protected _itemTemplate = contentChild.required<TemplateRef<any>>(TemplateRef);\n\n protected _selectedItems = computed(() => this.searchAdapter().selection());\n\n protected _onRemoveClick(item: TDto) {\n this.searchAdapter().selectionRemove(item);\n }\n}\n","<div *ngFor=\"let item of _selectedItems()\" [style.width]=\"!searchAdapter().options.multiselect ? '100%' : 'auto'\">\n <ng-container [ngTemplateOutlet]=\"_itemTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: item, onRemove: _onRemoveClick.bind(this) }\"></ng-container>\n</div>\n","/*\n * Public API Surface of cornerstone-client-angular-material\n */\n\nexport * from './lib/';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InputSignal, Type, TemplateRef } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { AngularCollectionViewAdapter, AngularSearchAdapter } from '@intellegens/cornerstone-client-angular';
|
|
4
4
|
import { MatPaginatorIntl } from '@angular/material/paginator';
|
|
5
|
-
import { IGlobalSearchable as IGlobalSearchable$1, SearchAdapter as SearchAdapter$1 } from '@intellegens/cornerstone-client';
|
|
6
5
|
|
|
7
6
|
interface IModalComponent {
|
|
8
7
|
modalStackId?: string;
|
|
@@ -13,29 +12,29 @@ interface IModalComponent {
|
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
|
-
* Directive used to pass data to the `
|
|
15
|
+
* Directive used to pass data to the `AngularCollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.
|
|
17
16
|
*/
|
|
18
|
-
declare class
|
|
17
|
+
declare class MatTablePagination {
|
|
19
18
|
private _matPaginator;
|
|
20
|
-
adapter: InputSignal<
|
|
19
|
+
adapter: InputSignal<AngularCollectionViewAdapter<any> | undefined>;
|
|
21
20
|
private _subscription?;
|
|
22
21
|
ngOnInit(): void;
|
|
23
22
|
ngOnDestroy(): void;
|
|
24
|
-
static ɵfac:
|
|
25
|
-
static ɵdir:
|
|
23
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatTablePagination, never>;
|
|
24
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MatTablePagination, "mat-paginator", never, { "adapter": { "alias": "adapter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
/**
|
|
29
|
-
* Directive used to pass data to the `
|
|
28
|
+
* Directive used to pass data to the `AngularCollectionViewAdapter` and reverse the default direction of shown table header sorting arrows
|
|
30
29
|
*/
|
|
31
|
-
declare class
|
|
30
|
+
declare class MatTableSort {
|
|
32
31
|
private _matSort;
|
|
33
|
-
adapter: InputSignal<
|
|
32
|
+
adapter: InputSignal<AngularCollectionViewAdapter<any> | undefined>;
|
|
34
33
|
ngOnInit(): void;
|
|
35
34
|
private _subscription;
|
|
36
35
|
ngOnDestroy(): void;
|
|
37
|
-
static ɵfac:
|
|
38
|
-
static ɵdir:
|
|
36
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatTableSort, never>;
|
|
37
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MatTableSort, "mat-table[matSort], table[mat-table][matSort]", never, { "adapter": { "alias": "adapter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
/**
|
|
@@ -43,8 +42,8 @@ declare class MatTableSortDirective {
|
|
|
43
42
|
*/
|
|
44
43
|
declare class MatPaginatorIntlOverrides extends MatPaginatorIntl {
|
|
45
44
|
getRangeLabel: (page: number, pageSize: number, length: number) => string;
|
|
46
|
-
static ɵfac:
|
|
47
|
-
static ɵprov:
|
|
45
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatPaginatorIntlOverrides, never>;
|
|
46
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MatPaginatorIntlOverrides>;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
declare class ModalService {
|
|
@@ -59,64 +58,62 @@ declare class ModalService {
|
|
|
59
58
|
getModalConfig(modalStackId: string | undefined): IModalComponent | undefined;
|
|
60
59
|
getBreadcrumbs(modalStackId: string | undefined): string[];
|
|
61
60
|
closeOnButton(modalStackId: string | undefined): boolean | undefined;
|
|
62
|
-
static ɵfac:
|
|
63
|
-
static ɵprov:
|
|
61
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
|
|
62
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
|
|
64
63
|
}
|
|
65
64
|
|
|
66
|
-
declare class
|
|
67
|
-
searchAdapter:
|
|
68
|
-
protected _inputTemplate:
|
|
69
|
-
isFocused:
|
|
70
|
-
protected _inputValue:
|
|
71
|
-
protected _showInputField: boolean
|
|
72
|
-
|
|
73
|
-
private
|
|
74
|
-
static ɵfac:
|
|
75
|
-
static ɵcmp:
|
|
65
|
+
declare class SearchInput<TDto> {
|
|
66
|
+
searchAdapter: _angular_core.InputSignal<AngularSearchAdapter<TDto>>;
|
|
67
|
+
protected _inputTemplate: _angular_core.Signal<TemplateRef<any>>;
|
|
68
|
+
isFocused: _angular_core.OutputEmitterRef<boolean>;
|
|
69
|
+
protected _inputValue: _angular_core.WritableSignal<string>;
|
|
70
|
+
protected _showInputField: _angular_core.Signal<boolean>;
|
|
71
|
+
private _syncFromAdapter;
|
|
72
|
+
private _syncToAdapter;
|
|
73
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchInput<any>, never>;
|
|
74
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchInput<any>, "app-search-input", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, { "isFocused": "isFocused"; }, ["_inputTemplate"], never, true, never>;
|
|
76
75
|
}
|
|
77
76
|
|
|
78
|
-
declare class
|
|
79
|
-
searchAdapter:
|
|
80
|
-
protected _buttonTemplate:
|
|
81
|
-
protected _showButton: boolean
|
|
82
|
-
ngOnInit(): void;
|
|
77
|
+
declare class SearchClearButton<TDto> {
|
|
78
|
+
searchAdapter: _angular_core.InputSignal<AngularSearchAdapter<TDto>>;
|
|
79
|
+
protected _buttonTemplate: _angular_core.Signal<TemplateRef<any>>;
|
|
80
|
+
protected _showButton: _angular_core.Signal<boolean>;
|
|
83
81
|
protected _clearAll(): void;
|
|
84
|
-
static ɵfac:
|
|
85
|
-
static ɵcmp:
|
|
82
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchClearButton<any>, never>;
|
|
83
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchClearButton<any>, "app-search-clear-button", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, {}, ["_buttonTemplate"], never, true, never>;
|
|
86
84
|
}
|
|
87
85
|
|
|
88
|
-
declare class
|
|
89
|
-
searchAdapter:
|
|
90
|
-
showResults:
|
|
91
|
-
protected _buttonTemplate:
|
|
92
|
-
protected _showButton: boolean
|
|
93
|
-
|
|
94
|
-
static
|
|
95
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchShowResultsButtonComponent<any, any>, "app-search-show-results-button-component", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, { "showResults": "showResults"; }, ["_buttonTemplate"], never, true, never>;
|
|
86
|
+
declare class SearchShowResultsButton<TDto> {
|
|
87
|
+
searchAdapter: _angular_core.InputSignal<AngularSearchAdapter<TDto>>;
|
|
88
|
+
showResults: _angular_core.OutputEmitterRef<boolean>;
|
|
89
|
+
protected _buttonTemplate: _angular_core.Signal<TemplateRef<any>>;
|
|
90
|
+
protected _showButton: _angular_core.Signal<boolean>;
|
|
91
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchShowResultsButton<any>, never>;
|
|
92
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchShowResultsButton<any>, "app-search-show-results-button", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, { "showResults": "showResults"; }, ["_buttonTemplate"], never, true, never>;
|
|
96
93
|
}
|
|
97
94
|
|
|
98
|
-
declare class
|
|
99
|
-
searchAdapter:
|
|
100
|
-
isHovering:
|
|
101
|
-
protected _itemTemplate:
|
|
102
|
-
|
|
103
|
-
protected
|
|
95
|
+
declare class SearchResultList<TDto> {
|
|
96
|
+
searchAdapter: _angular_core.InputSignal<AngularSearchAdapter<TDto>>;
|
|
97
|
+
isHovering: _angular_core.OutputEmitterRef<boolean>;
|
|
98
|
+
protected _itemTemplate: _angular_core.Signal<TemplateRef<any>>;
|
|
99
|
+
private _hasReceivedResults;
|
|
100
|
+
protected _searchResults: _angular_core.Signal<readonly TDto[]>;
|
|
101
|
+
protected _beforeFirstResults: _angular_core.Signal<boolean>;
|
|
104
102
|
protected _beforeFirstResultsMessage: string;
|
|
105
|
-
|
|
103
|
+
private _trackResults;
|
|
106
104
|
protected _onItemClick(item: TDto): void;
|
|
107
|
-
static ɵfac:
|
|
108
|
-
static ɵcmp:
|
|
105
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchResultList<any>, never>;
|
|
106
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchResultList<any>, "app-search-result-list", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, { "isHovering": "isHovering"; }, ["_itemTemplate"], never, true, never>;
|
|
109
107
|
}
|
|
110
108
|
|
|
111
|
-
declare class
|
|
112
|
-
searchAdapter:
|
|
113
|
-
protected _itemTemplate:
|
|
114
|
-
protected _selectedItems:
|
|
115
|
-
ngOnInit(): void;
|
|
109
|
+
declare class SearchSelectionList<TDto> {
|
|
110
|
+
searchAdapter: _angular_core.InputSignal<AngularSearchAdapter<TDto>>;
|
|
111
|
+
protected _itemTemplate: _angular_core.Signal<TemplateRef<any>>;
|
|
112
|
+
protected _selectedItems: _angular_core.Signal<readonly TDto[]>;
|
|
116
113
|
protected _onRemoveClick(item: TDto): void;
|
|
117
|
-
static ɵfac:
|
|
118
|
-
static ɵcmp:
|
|
114
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchSelectionList<any>, never>;
|
|
115
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchSelectionList<any>, "app-search-selection-list", never, { "searchAdapter": { "alias": "searchAdapter"; "required": true; "isSignal": true; }; }, {}, ["_itemTemplate"], never, true, never>;
|
|
119
116
|
}
|
|
120
117
|
|
|
121
|
-
export { MatPaginatorIntlOverrides,
|
|
118
|
+
export { MatPaginatorIntlOverrides, MatTablePagination, MatTableSort, ModalService, SearchClearButton, SearchInput, SearchResultList, SearchSelectionList, SearchShowResultsButton };
|
|
122
119
|
export type { IModalComponent };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intellegens/cornerstone-client-angular-material",
|
|
3
|
-
"version": "0.0.9999-alpha-
|
|
3
|
+
"version": "0.0.9999-alpha-43",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishable": true,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"@angular/material": "^21.2.0",
|
|
21
21
|
"@angular/router": "^21.2.0",
|
|
22
22
|
"rxjs": "~7.8.2",
|
|
23
|
-
"@intellegens/cornerstone-client": "0.0.9999-alpha-
|
|
24
|
-
"@intellegens/cornerstone-client-angular": "0.0.9999-alpha-
|
|
23
|
+
"@intellegens/cornerstone-client": "0.0.9999-alpha-43",
|
|
24
|
+
"@intellegens/cornerstone-client-angular": "0.0.9999-alpha-43"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"tslib": "^2.8.1"
|