@masterteam/components 0.0.126 → 0.0.127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/assets/common.css +172 -2
  2. package/fesm2022/masterteam-components-entities.mjs +2 -2
  3. package/fesm2022/masterteam-components-entities.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/types/masterteam-components-table.d.ts +1 -1
  6. package/fesm2022/masterteam-components-dialog.mjs +0 -33
  7. package/fesm2022/masterteam-components-dialog.mjs.map +0 -1
  8. package/fesm2022/masterteam-components-dynamic-drawer.mjs +0 -321
  9. package/fesm2022/masterteam-components-dynamic-drawer.mjs.map +0 -1
  10. package/fesm2022/masterteam-components-formula.mjs +0 -3116
  11. package/fesm2022/masterteam-components-formula.mjs.map +0 -1
  12. package/fesm2022/masterteam-components-icon-field.mjs +0 -63
  13. package/fesm2022/masterteam-components-icon-field.mjs.map +0 -1
  14. package/fesm2022/masterteam-components-list.mjs +0 -31
  15. package/fesm2022/masterteam-components-list.mjs.map +0 -1
  16. package/fesm2022/masterteam-components-menu.mjs +0 -135
  17. package/fesm2022/masterteam-components-menu.mjs.map +0 -1
  18. package/fesm2022/masterteam-components-modal.mjs +0 -50
  19. package/fesm2022/masterteam-components-modal.mjs.map +0 -1
  20. package/fesm2022/masterteam-components-module-summary-card.mjs +0 -32
  21. package/fesm2022/masterteam-components-module-summary-card.mjs.map +0 -1
  22. package/fesm2022/masterteam-components-page-header.mjs +0 -42
  23. package/fesm2022/masterteam-components-page-header.mjs.map +0 -1
  24. package/fesm2022/masterteam-components-page.mjs +0 -35
  25. package/fesm2022/masterteam-components-page.mjs.map +0 -1
  26. package/fesm2022/masterteam-components-pick-list-field.mjs +0 -204
  27. package/fesm2022/masterteam-components-pick-list-field.mjs.map +0 -1
  28. package/fesm2022/masterteam-components-property-filter-builder.mjs +0 -386
  29. package/fesm2022/masterteam-components-property-filter-builder.mjs.map +0 -1
  30. package/fesm2022/masterteam-components-radio-button-field.mjs +0 -85
  31. package/fesm2022/masterteam-components-radio-button-field.mjs.map +0 -1
  32. package/fesm2022/masterteam-components-radio-cards-field.mjs +0 -123
  33. package/fesm2022/masterteam-components-radio-cards-field.mjs.map +0 -1
  34. package/fesm2022/masterteam-components-radio-cards.mjs +0 -74
  35. package/fesm2022/masterteam-components-radio-cards.mjs.map +0 -1
  36. package/fesm2022/masterteam-components-sidebar.mjs +0 -36
  37. package/fesm2022/masterteam-components-sidebar.mjs.map +0 -1
  38. package/fesm2022/masterteam-components-slider-field.mjs +0 -104
  39. package/fesm2022/masterteam-components-slider-field.mjs.map +0 -1
  40. package/fesm2022/masterteam-components-statistic-card.mjs +0 -22
  41. package/fesm2022/masterteam-components-statistic-card.mjs.map +0 -1
  42. package/fesm2022/masterteam-components-textarea-field.mjs +0 -100
  43. package/fesm2022/masterteam-components-textarea-field.mjs.map +0 -1
  44. package/fesm2022/masterteam-components-toast.mjs +0 -75
  45. package/fesm2022/masterteam-components-toast.mjs.map +0 -1
  46. package/fesm2022/masterteam-components-topbar.mjs +0 -28
  47. package/fesm2022/masterteam-components-topbar.mjs.map +0 -1
  48. package/fesm2022/masterteam-components-tree.mjs +0 -219
  49. package/fesm2022/masterteam-components-tree.mjs.map +0 -1
  50. package/types/masterteam-components-dialog.d.ts +0 -12
  51. package/types/masterteam-components-dynamic-drawer.d.ts +0 -93
  52. package/types/masterteam-components-formula.d.ts +0 -654
  53. package/types/masterteam-components-icon-field.d.ts +0 -27
  54. package/types/masterteam-components-list.d.ts +0 -18
  55. package/types/masterteam-components-menu.d.ts +0 -55
  56. package/types/masterteam-components-modal.d.ts +0 -18
  57. package/types/masterteam-components-module-summary-card.d.ts +0 -17
  58. package/types/masterteam-components-page-header.d.ts +0 -30
  59. package/types/masterteam-components-page.d.ts +0 -26
  60. package/types/masterteam-components-pick-list-field.d.ts +0 -60
  61. package/types/masterteam-components-property-filter-builder.d.ts +0 -90
  62. package/types/masterteam-components-radio-button-field.d.ts +0 -41
  63. package/types/masterteam-components-radio-cards-field.d.ts +0 -34
  64. package/types/masterteam-components-radio-cards.d.ts +0 -33
  65. package/types/masterteam-components-sidebar.d.ts +0 -28
  66. package/types/masterteam-components-slider-field.d.ts +0 -45
  67. package/types/masterteam-components-statistic-card.d.ts +0 -18
  68. package/types/masterteam-components-textarea-field.d.ts +0 -38
  69. package/types/masterteam-components-toast.d.ts +0 -26
  70. package/types/masterteam-components-topbar.d.ts +0 -17
  71. package/types/masterteam-components-tree.d.ts +0 -98
@@ -1,35 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, contentChild, viewChild, output, Component } from '@angular/core';
3
- import { PageHeader } from '@masterteam/components/page-header';
4
- import { NgTemplateOutlet } from '@angular/common';
5
-
6
- class Page {
7
- backButton = input(false, { ...(ngDevMode ? { debugName: "backButton" } : {}), transform: booleanAttribute });
8
- backButtonIcon = input(...(ngDevMode ? [undefined, { debugName: "backButtonIcon" }] : []));
9
- avatarIcon = input(...(ngDevMode ? [undefined, { debugName: "avatarIcon" }] : []));
10
- avatarStyle = input(...(ngDevMode ? [undefined, { debugName: "avatarStyle" }] : []));
11
- avatarShape = input(...(ngDevMode ? [undefined, { debugName: "avatarShape" }] : []));
12
- title = input.required(...(ngDevMode ? [{ debugName: "title" }] : []));
13
- tabs = input([], ...(ngDevMode ? [{ debugName: "tabs" }] : []));
14
- activeTab = input(...(ngDevMode ? [undefined, { debugName: "activeTab" }] : []));
15
- contentClass = input('', ...(ngDevMode ? [{ debugName: "contentClass" }] : []));
16
- contentId = input(...(ngDevMode ? [undefined, { debugName: "contentId" }] : []));
17
- titleEnd = contentChild('titleEnd', ...(ngDevMode ? [{ debugName: "titleEnd" }] : []));
18
- headerEnd = contentChild('headerEnd', ...(ngDevMode ? [{ debugName: "headerEnd" }] : []));
19
- content = viewChild('content', ...(ngDevMode ? [{ debugName: "content" }] : []));
20
- backButtonClick = output();
21
- tabChange = output();
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: Page, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: Page, isStandalone: true, selector: "mt-page", inputs: { backButton: { classPropertyName: "backButton", publicName: "backButton", isSignal: true, isRequired: false, transformFunction: null }, backButtonIcon: { classPropertyName: "backButtonIcon", publicName: "backButtonIcon", isSignal: true, isRequired: false, transformFunction: null }, avatarIcon: { classPropertyName: "avatarIcon", publicName: "avatarIcon", isSignal: true, isRequired: false, transformFunction: null }, avatarStyle: { classPropertyName: "avatarStyle", publicName: "avatarStyle", isSignal: true, isRequired: false, transformFunction: null }, avatarShape: { classPropertyName: "avatarShape", publicName: "avatarShape", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null }, activeTab: { classPropertyName: "activeTab", publicName: "activeTab", isSignal: true, isRequired: false, transformFunction: null }, contentClass: { classPropertyName: "contentClass", publicName: "contentClass", isSignal: true, isRequired: false, transformFunction: null }, contentId: { classPropertyName: "contentId", publicName: "contentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backButtonClick: "backButtonClick", tabChange: "tabChange" }, queries: [{ propertyName: "titleEnd", first: true, predicate: ["titleEnd"], descendants: true, isSignal: true }, { propertyName: "headerEnd", first: true, predicate: ["headerEnd"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"page h-full flex flex-col\">\r\n <mt-page-header\r\n [backButton]=\"backButton()\"\r\n [backButtonIcon]=\"backButtonIcon()\"\r\n [avatarIcon]=\"avatarIcon()\"\r\n [avatarStyle]=\"avatarStyle()\"\r\n [avatarShape]=\"avatarShape()\"\r\n [title]=\"title()\"\r\n [tabs]=\"tabs()\"\r\n [activeTab]=\"activeTab()\"\r\n (backButtonClick)=\"backButtonClick.emit()\"\r\n (tabChange)=\"tabChange.emit($event)\"\r\n >\r\n @if (titleEnd(); as template) {\r\n <ng-template #titleEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerEnd(); as template) {\r\n <ng-template #headerEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n </mt-page-header>\r\n <div\r\n [class]=\"'flex-1 relative overflow-x-hidden '\"\r\n [id]=\"contentId() ?? 'page-content'\"\r\n >\r\n <div\r\n [class]=\"'h-full w-full overflow-y-auto p-5 ' + contentClass()\"\r\n #content\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: PageHeader, selector: "mt-page-header", inputs: ["backButton", "backButtonIcon", "avatarIcon", "avatarStyle", "avatarShape", "title", "tabs", "activeTab"], outputs: ["backButtonClick", "tabChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: Page, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'mt-page', standalone: true, imports: [PageHeader, NgTemplateOutlet], template: "<div class=\"page h-full flex flex-col\">\r\n <mt-page-header\r\n [backButton]=\"backButton()\"\r\n [backButtonIcon]=\"backButtonIcon()\"\r\n [avatarIcon]=\"avatarIcon()\"\r\n [avatarStyle]=\"avatarStyle()\"\r\n [avatarShape]=\"avatarShape()\"\r\n [title]=\"title()\"\r\n [tabs]=\"tabs()\"\r\n [activeTab]=\"activeTab()\"\r\n (backButtonClick)=\"backButtonClick.emit()\"\r\n (tabChange)=\"tabChange.emit($event)\"\r\n >\r\n @if (titleEnd(); as template) {\r\n <ng-template #titleEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerEnd(); as template) {\r\n <ng-template #headerEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n </mt-page-header>\r\n <div\r\n [class]=\"'flex-1 relative overflow-x-hidden '\"\r\n [id]=\"contentId() ?? 'page-content'\"\r\n >\r\n <div\r\n [class]=\"'h-full w-full overflow-y-auto p-5 ' + contentClass()\"\r\n #content\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
28
- }], propDecorators: { backButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButton", required: false }] }], backButtonIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonIcon", required: false }] }], avatarIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIcon", required: false }] }], avatarStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarStyle", required: false }] }], avatarShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarShape", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: false }] }], activeTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeTab", required: false }] }], contentClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentClass", required: false }] }], contentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentId", required: false }] }], titleEnd: [{ type: i0.ContentChild, args: ['titleEnd', { isSignal: true }] }], headerEnd: [{ type: i0.ContentChild, args: ['headerEnd', { isSignal: true }] }], content: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], backButtonClick: [{ type: i0.Output, args: ["backButtonClick"] }], tabChange: [{ type: i0.Output, args: ["tabChange"] }] } });
29
-
30
- /**
31
- * Generated bundle index. Do not edit.
32
- */
33
-
34
- export { Page };
35
- //# sourceMappingURL=masterteam-components-page.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"masterteam-components-page.mjs","sources":["../../../../packages/masterteam/components/page/page.ts","../../../../packages/masterteam/components/page/page.html","../../../../packages/masterteam/components/page/masterteam-components-page.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n contentChild,\r\n TemplateRef,\r\n viewChild,\r\n ElementRef,\r\n booleanAttribute,\r\n} from '@angular/core';\r\nimport { PageHeader, PageHeaderTab } from '@masterteam/components/page-header';\r\nimport { MTIcon } from '@masterteam/icons';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'mt-page',\r\n standalone: true,\r\n imports: [PageHeader, NgTemplateOutlet],\r\n templateUrl: './page.html',\r\n})\r\nexport class Page {\r\n backButton = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n backButtonIcon = input<'arrow' | 'close'>();\r\n avatarIcon = input<MTIcon>();\r\n avatarStyle = input<Record<string, string>>();\r\n avatarShape = input<'circle' | 'square'>();\r\n title = input.required<string>();\r\n tabs = input<PageHeaderTab[]>([]);\r\n activeTab = input<string | number>();\r\n contentClass = input<string>('');\r\n contentId = input<string>();\r\n\r\n titleEnd = contentChild<TemplateRef<any>>('titleEnd');\r\n headerEnd = contentChild<TemplateRef<any>>('headerEnd');\r\n content = viewChild<ElementRef<HTMLElement>>('content');\r\n\r\n backButtonClick = output<void>();\r\n tabChange = output<string | number>();\r\n}\r\n","<div class=\"page h-full flex flex-col\">\r\n <mt-page-header\r\n [backButton]=\"backButton()\"\r\n [backButtonIcon]=\"backButtonIcon()\"\r\n [avatarIcon]=\"avatarIcon()\"\r\n [avatarStyle]=\"avatarStyle()\"\r\n [avatarShape]=\"avatarShape()\"\r\n [title]=\"title()\"\r\n [tabs]=\"tabs()\"\r\n [activeTab]=\"activeTab()\"\r\n (backButtonClick)=\"backButtonClick.emit()\"\r\n (tabChange)=\"tabChange.emit($event)\"\r\n >\r\n @if (titleEnd(); as template) {\r\n <ng-template #titleEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerEnd(); as template) {\r\n <ng-template #headerEnd>\r\n <ng-container [ngTemplateOutlet]=\"template\" />\r\n </ng-template>\r\n }\r\n </mt-page-header>\r\n <div\r\n [class]=\"'flex-1 relative overflow-x-hidden '\"\r\n [id]=\"contentId() ?? 'page-content'\"\r\n >\r\n <div\r\n [class]=\"'h-full w-full overflow-y-auto p-5 ' + contentClass()\"\r\n #content\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,204 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, signal, inject, effect, ViewChild, HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { Validators, NgControl } from '@angular/forms';
4
- import * as i1 from 'primeng/picklist';
5
- import { PickListModule } from 'primeng/picklist';
6
- import { FieldValidation } from '@masterteam/components/field-validation';
7
- import { isInvalid } from '@masterteam/components';
8
- import * as i2 from 'primeng/api';
9
-
10
- class PickListField {
11
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
12
- class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
13
- readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
14
- options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
15
- optionLabel = input('label', ...(ngDevMode ? [{ debugName: "optionLabel" }] : []));
16
- optionValue = input('value', ...(ngDevMode ? [{ debugName: "optionValue" }] : []));
17
- sourceHeader = input('Available', ...(ngDevMode ? [{ debugName: "sourceHeader" }] : []));
18
- targetHeader = input('Selected', ...(ngDevMode ? [{ debugName: "targetHeader" }] : []));
19
- showSourceControls = input(true, ...(ngDevMode ? [{ debugName: "showSourceControls" }] : []));
20
- showTargetControls = input(true, ...(ngDevMode ? [{ debugName: "showTargetControls" }] : []));
21
- showSourceFilter = input(false, ...(ngDevMode ? [{ debugName: "showSourceFilter" }] : []));
22
- showTargetFilter = input(false, ...(ngDevMode ? [{ debugName: "showTargetFilter" }] : []));
23
- filterBy = input(...(ngDevMode ? [undefined, { debugName: "filterBy" }] : []));
24
- dataKey = input(...(ngDevMode ? [undefined, { debugName: "dataKey" }] : []));
25
- filterLocale = input(...(ngDevMode ? [undefined, { debugName: "filterLocale" }] : []));
26
- filterMatchMode = input('contains', ...(ngDevMode ? [{ debugName: "filterMatchMode" }] : []));
27
- dragdrop = input(false, ...(ngDevMode ? [{ debugName: "dragdrop" }] : []));
28
- responsive = input(true, ...(ngDevMode ? [{ debugName: "responsive" }] : []));
29
- required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
30
- styleClass = '';
31
- requiredValidator = Validators.required;
32
- value = signal([], ...(ngDevMode ? [{ debugName: "value" }] : []));
33
- targetItems = signal([], ...(ngDevMode ? [{ debugName: "targetItems" }] : []));
34
- sourceItems = signal([], ...(ngDevMode ? [{ debugName: "sourceItems" }] : []));
35
- disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
36
- onTouched = () => { };
37
- onModelChange = () => { };
38
- ngControl = inject(NgControl, { self: true });
39
- isInvalid = isInvalid;
40
- hasInitialized = false;
41
- pickList;
42
- constructor() {
43
- if (this.ngControl) {
44
- this.ngControl.valueAccessor = this;
45
- }
46
- effect(() => {
47
- if (this.ngControl?.control && this.required()) {
48
- this.ngControl.control.addValidators(Validators.required);
49
- this.ngControl.control.updateValueAndValidity();
50
- }
51
- });
52
- effect(() => {
53
- this.options();
54
- if (this.hasInitialized) {
55
- this.syncLists();
56
- }
57
- });
58
- }
59
- ngOnInit() {
60
- this.styleClass = this.class();
61
- this.syncLists();
62
- this.hasInitialized = true;
63
- }
64
- writeValue(value) {
65
- const nextValue = Array.isArray(value)
66
- ? [...value]
67
- : value === null || value === undefined
68
- ? []
69
- : [value];
70
- this.value.set(nextValue);
71
- this.syncLists();
72
- }
73
- registerOnChange(fn) {
74
- this.onModelChange = fn;
75
- }
76
- registerOnTouched(fn) {
77
- this.onTouched = fn;
78
- }
79
- setDisabledState(disabled) {
80
- this.disabled.set(disabled);
81
- }
82
- onInteractiveChange() {
83
- this.syncFromPickList();
84
- }
85
- handleBlur() {
86
- this.onTouched();
87
- }
88
- displayLabel(item) {
89
- if (item === null || item === undefined) {
90
- return '';
91
- }
92
- if (typeof item === 'string' || typeof item === 'number') {
93
- return String(item);
94
- }
95
- const labelKey = this.optionLabel();
96
- const nestedLabel = labelKey && labelKey.includes('.')
97
- ? this.getNestedValue(item, labelKey)
98
- : undefined;
99
- if (nestedLabel !== undefined) {
100
- return nestedLabel;
101
- }
102
- if (labelKey && item[labelKey] !== undefined) {
103
- return item[labelKey];
104
- }
105
- return JSON.stringify(item);
106
- }
107
- getNestedValue(target, path) {
108
- if (!target || !path) {
109
- return undefined;
110
- }
111
- return path
112
- .split('.')
113
- .reduce((acc, key) => acc !== null && acc !== undefined ? acc[key] : undefined, target);
114
- }
115
- syncLists() {
116
- const currentValue = this.value();
117
- const targetOptions = this.normalizeValueToOptions(currentValue);
118
- this.targetItems.set(targetOptions);
119
- this.updateSourceFromTarget(targetOptions);
120
- }
121
- syncFromPickList() {
122
- const pickListInstance = this.pickList;
123
- if (!pickListInstance) {
124
- return;
125
- }
126
- const currentTarget = [...(pickListInstance.target() ?? [])];
127
- const currentSource = [...(pickListInstance.source() ?? [])];
128
- this.targetItems.set(currentTarget);
129
- this.sourceItems.set(currentSource);
130
- const newValue = this.extractValues(currentTarget);
131
- this.value.set(newValue);
132
- this.onModelChange(newValue);
133
- this.onTouched();
134
- }
135
- normalizeValueToOptions(value) {
136
- if (!Array.isArray(value)) {
137
- return [];
138
- }
139
- return value
140
- .map((entry) => this.findOption(entry) ?? entry)
141
- .filter((item) => item !== undefined && item !== null);
142
- }
143
- extractValues(items) {
144
- const optionValueKey = this.optionValue();
145
- if (!optionValueKey) {
146
- return items ?? [];
147
- }
148
- const values = [];
149
- (items ?? []).forEach((item) => {
150
- if (item && typeof item === 'object') {
151
- values.push(item[optionValueKey] ?? item);
152
- }
153
- else {
154
- values.push(item);
155
- }
156
- });
157
- return values;
158
- }
159
- updateSourceFromTarget(targetItems) {
160
- const options = this.options() ?? [];
161
- const targetIds = new Set((targetItems ?? []).map((item) => this.getIdentifier(item)));
162
- const newSource = options.filter((option) => !targetIds.has(this.getIdentifier(option)));
163
- this.sourceItems.set(newSource);
164
- }
165
- getIdentifier(item) {
166
- if (item === null || item === undefined) {
167
- return item;
168
- }
169
- const optionValueKey = this.optionValue();
170
- if (!optionValueKey) {
171
- return item;
172
- }
173
- if (typeof item === 'object') {
174
- return item[optionValueKey];
175
- }
176
- return item;
177
- }
178
- findOption(entry) {
179
- const options = this.options() ?? [];
180
- const entryId = this.getIdentifier(entry);
181
- return options.find((option) => this.getIdentifier(option) === entryId);
182
- }
183
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: PickListField, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: PickListField, isStandalone: true, selector: "mt-pick-list-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, sourceHeader: { classPropertyName: "sourceHeader", publicName: "sourceHeader", isSignal: true, isRequired: false, transformFunction: null }, targetHeader: { classPropertyName: "targetHeader", publicName: "targetHeader", isSignal: true, isRequired: false, transformFunction: null }, showSourceControls: { classPropertyName: "showSourceControls", publicName: "showSourceControls", isSignal: true, isRequired: false, transformFunction: null }, showTargetControls: { classPropertyName: "showTargetControls", publicName: "showTargetControls", isSignal: true, isRequired: false, transformFunction: null }, showSourceFilter: { classPropertyName: "showSourceFilter", publicName: "showSourceFilter", isSignal: true, isRequired: false, transformFunction: null }, showTargetFilter: { classPropertyName: "showTargetFilter", publicName: "showTargetFilter", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: true, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: true, isRequired: false, transformFunction: null }, dragdrop: { classPropertyName: "dragdrop", publicName: "dragdrop", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "pickList", first: true, predicate: ["pickList"], descendants: true }], ngImport: i0, template: "@if (label()) {\r\n <label\r\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\r\n [for]=\"ngControl?.name || label()\"\r\n >{{ label() }}</label\r\n >\r\n}\r\n<p-pickList\r\n #pickList\r\n [source]=\"sourceItems()\"\r\n [target]=\"targetItems()\"\r\n (onMoveToTarget)=\"onInteractiveChange()\"\r\n (onMoveToSource)=\"onInteractiveChange()\"\r\n (onMoveAllToTarget)=\"onInteractiveChange()\"\r\n (onMoveAllToSource)=\"onInteractiveChange()\"\r\n (onTargetReorder)=\"onInteractiveChange()\"\r\n (onSourceReorder)=\"onInteractiveChange()\"\r\n (onBlur)=\"handleBlur()\"\r\n [filterBy]=\"filterBy() || optionLabel()\"\r\n [showSourceControls]=\"showSourceControls()\"\r\n [showTargetControls]=\"showTargetControls()\"\r\n [showSourceFilter]=\"showSourceFilter()\"\r\n [showTargetFilter]=\"showTargetFilter()\"\r\n [sourceHeader]=\"sourceHeader()\"\r\n [targetHeader]=\"targetHeader()\"\r\n [dragdrop]=\"dragdrop()\"\r\n [responsive]=\"responsive()\"\r\n [disabled]=\"disabled() || readonly()\"\r\n [styleClass]=\"'w-full relative'\"\r\n [class.p-invalid]=\"isInvalid(ngControl?.control)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\">\r\n {{ displayLabel(item) }}\r\n </ng-template>\r\n</p-pickList>\r\n\r\n<mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: PickListModule }, { kind: "component", type: i1.PickList, selector: "p-pickList, p-picklist, p-pick-list", inputs: ["hostName", "source", "target", "dataKey", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "sourceAriaLabel", "targetAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "sourceOptionDisabled", "targetOptionDisabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "scrollHeight", "autoOptionFocus", "buttonProps", "moveUpButtonProps", "moveTopButtonProps", "moveDownButtonProps", "moveBottomButtonProps", "moveToTargetProps", "moveAllToTargetProps", "moveToSourceProps", "moveAllToSourceProps", "breakpoint"], outputs: ["sourceChange", "targetChange", "onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: FieldValidation, selector: "mt-field-validation", inputs: ["control", "touched"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
185
- }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: PickListField, decorators: [{
187
- type: Component,
188
- args: [{ selector: 'mt-pick-list-field', imports: [PickListModule, FieldValidation], changeDetection: ChangeDetectionStrategy.OnPush, host: {
189
- class: 'grid gap-1',
190
- }, template: "@if (label()) {\r\n <label\r\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\r\n [for]=\"ngControl?.name || label()\"\r\n >{{ label() }}</label\r\n >\r\n}\r\n<p-pickList\r\n #pickList\r\n [source]=\"sourceItems()\"\r\n [target]=\"targetItems()\"\r\n (onMoveToTarget)=\"onInteractiveChange()\"\r\n (onMoveToSource)=\"onInteractiveChange()\"\r\n (onMoveAllToTarget)=\"onInteractiveChange()\"\r\n (onMoveAllToSource)=\"onInteractiveChange()\"\r\n (onTargetReorder)=\"onInteractiveChange()\"\r\n (onSourceReorder)=\"onInteractiveChange()\"\r\n (onBlur)=\"handleBlur()\"\r\n [filterBy]=\"filterBy() || optionLabel()\"\r\n [showSourceControls]=\"showSourceControls()\"\r\n [showTargetControls]=\"showTargetControls()\"\r\n [showSourceFilter]=\"showSourceFilter()\"\r\n [showTargetFilter]=\"showTargetFilter()\"\r\n [sourceHeader]=\"sourceHeader()\"\r\n [targetHeader]=\"targetHeader()\"\r\n [dragdrop]=\"dragdrop()\"\r\n [responsive]=\"responsive()\"\r\n [disabled]=\"disabled() || readonly()\"\r\n [styleClass]=\"'w-full relative'\"\r\n [class.p-invalid]=\"isInvalid(ngControl?.control)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\">\r\n {{ displayLabel(item) }}\r\n </ng-template>\r\n</p-pickList>\r\n\r\n<mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\r\n", styles: [":host{display:block}\n"] }]
191
- }], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], optionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionLabel", required: false }] }], optionValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionValue", required: false }] }], sourceHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHeader", required: false }] }], targetHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHeader", required: false }] }], showSourceControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSourceControls", required: false }] }], showTargetControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTargetControls", required: false }] }], showSourceFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSourceFilter", required: false }] }], showTargetFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTargetFilter", required: false }] }], filterBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterBy", required: false }] }], dataKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataKey", required: false }] }], filterLocale: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterLocale", required: false }] }], filterMatchMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterMatchMode", required: false }] }], dragdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragdrop", required: false }] }], responsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsive", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], styleClass: [{
192
- type: HostBinding,
193
- args: ['class']
194
- }], pickList: [{
195
- type: ViewChild,
196
- args: ['pickList']
197
- }] } });
198
-
199
- /**
200
- * Generated bundle index. Do not edit.
201
- */
202
-
203
- export { PickListField };
204
- //# sourceMappingURL=masterteam-components-pick-list-field.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"masterteam-components-pick-list-field.mjs","sources":["../../../../packages/masterteam/components/pick-list-field/pick-list-field.ts","../../../../packages/masterteam/components/pick-list-field/pick-list-field.html","../../../../packages/masterteam/components/pick-list-field/masterteam-components-pick-list-field.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n OnInit,\r\n ViewChild,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\r\nimport { PickList, PickListModule } from 'primeng/picklist';\r\nimport { FieldValidation } from '@masterteam/components/field-validation';\r\nimport { isInvalid } from '@masterteam/components';\r\n\r\n@Component({\r\n selector: 'mt-pick-list-field',\r\n templateUrl: './pick-list-field.html',\r\n styleUrls: ['./pick-list-field.scss'],\r\n imports: [PickListModule, FieldValidation],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'grid gap-1',\r\n },\r\n})\r\nexport class PickListField implements ControlValueAccessor, OnInit {\r\n readonly label = input<string>();\r\n readonly class = input<string>('');\r\n readonly readonly = input<boolean>(false);\r\n readonly options = input<any[]>([]);\r\n readonly optionLabel = input<string>('label');\r\n readonly optionValue = input<string>('value');\r\n readonly sourceHeader = input<string>('Available');\r\n readonly targetHeader = input<string>('Selected');\r\n readonly showSourceControls = input<boolean>(true);\r\n readonly showTargetControls = input<boolean>(true);\r\n readonly showSourceFilter = input<boolean>(false);\r\n readonly showTargetFilter = input<boolean>(false);\r\n readonly filterBy = input<string>();\r\n readonly dataKey = input<string>();\r\n readonly filterLocale = input<string>();\r\n readonly filterMatchMode = input<\r\n | 'contains'\r\n | 'startsWith'\r\n | 'endsWith'\r\n | 'equals'\r\n | 'notEquals'\r\n | 'in'\r\n | 'lt'\r\n | 'lte'\r\n | 'gt'\r\n | 'gte'\r\n | string\r\n >('contains');\r\n readonly dragdrop = input<boolean>(false);\r\n readonly responsive = input<boolean>(true);\r\n readonly required = input<boolean>(false);\r\n\r\n @HostBinding('class') styleClass: string = '';\r\n\r\n requiredValidator = Validators.required;\r\n value = signal<any[]>([]);\r\n targetItems = signal<any[]>([]);\r\n sourceItems = signal<any[]>([]);\r\n disabled = signal<boolean>(false);\r\n\r\n private onTouched: () => void = () => {};\r\n private onModelChange: (value: any) => void = () => {};\r\n\r\n public ngControl = inject(NgControl, { self: true });\r\n\r\n isInvalid = isInvalid;\r\n\r\n private hasInitialized = false;\r\n\r\n @ViewChild('pickList') pickList?: PickList;\r\n\r\n constructor() {\r\n if (this.ngControl) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n effect(() => {\r\n if (this.ngControl?.control && this.required()) {\r\n this.ngControl.control.addValidators(Validators.required);\r\n this.ngControl.control.updateValueAndValidity();\r\n }\r\n });\r\n effect(() => {\r\n this.options();\r\n if (this.hasInitialized) {\r\n this.syncLists();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.styleClass = this.class();\r\n this.syncLists();\r\n this.hasInitialized = true;\r\n }\r\n\r\n writeValue(value: any) {\r\n const nextValue = Array.isArray(value)\r\n ? [...value]\r\n : value === null || value === undefined\r\n ? []\r\n : [value];\r\n this.value.set(nextValue);\r\n this.syncLists();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean) {\r\n this.disabled.set(disabled);\r\n }\r\n\r\n onInteractiveChange() {\r\n this.syncFromPickList();\r\n }\r\n\r\n handleBlur() {\r\n this.onTouched();\r\n }\r\n\r\n displayLabel(item: any): string {\r\n if (item === null || item === undefined) {\r\n return '';\r\n }\r\n if (typeof item === 'string' || typeof item === 'number') {\r\n return String(item);\r\n }\r\n const labelKey = this.optionLabel();\r\n const nestedLabel =\r\n labelKey && labelKey.includes('.')\r\n ? this.getNestedValue(item, labelKey)\r\n : undefined;\r\n if (nestedLabel !== undefined) {\r\n return nestedLabel;\r\n }\r\n if (labelKey && item[labelKey] !== undefined) {\r\n return item[labelKey];\r\n }\r\n return JSON.stringify(item);\r\n }\r\n\r\n private getNestedValue(target: any, path: string): any {\r\n if (!target || !path) {\r\n return undefined;\r\n }\r\n return path\r\n .split('.')\r\n .reduce(\r\n (acc, key) =>\r\n acc !== null && acc !== undefined ? acc[key] : undefined,\r\n target,\r\n );\r\n }\r\n\r\n private syncLists() {\r\n const currentValue = this.value();\r\n const targetOptions = this.normalizeValueToOptions(currentValue);\r\n this.targetItems.set(targetOptions);\r\n this.updateSourceFromTarget(targetOptions);\r\n }\r\n\r\n private syncFromPickList() {\r\n const pickListInstance = this.pickList;\r\n if (!pickListInstance) {\r\n return;\r\n }\r\n const currentTarget = [...(pickListInstance.target() ?? [])];\r\n const currentSource = [...(pickListInstance.source() ?? [])];\r\n this.targetItems.set(currentTarget);\r\n this.sourceItems.set(currentSource);\r\n\r\n const newValue = this.extractValues(currentTarget);\r\n this.value.set(newValue);\r\n this.onModelChange(newValue);\r\n this.onTouched();\r\n }\r\n\r\n private normalizeValueToOptions(value: any[]): any[] {\r\n if (!Array.isArray(value)) {\r\n return [];\r\n }\r\n return value\r\n .map((entry) => this.findOption(entry) ?? entry)\r\n .filter((item) => item !== undefined && item !== null);\r\n }\r\n\r\n private extractValues(items: any[]): any[] {\r\n const optionValueKey = this.optionValue();\r\n if (!optionValueKey) {\r\n return items ?? [];\r\n }\r\n const values: any[] = [];\r\n (items ?? []).forEach((item) => {\r\n if (item && typeof item === 'object') {\r\n values.push(item[optionValueKey] ?? item);\r\n } else {\r\n values.push(item);\r\n }\r\n });\r\n return values;\r\n }\r\n\r\n private updateSourceFromTarget(targetItems: any[]) {\r\n const options = this.options() ?? [];\r\n const targetIds = new Set(\r\n (targetItems ?? []).map((item) => this.getIdentifier(item)),\r\n );\r\n const newSource = options.filter(\r\n (option) => !targetIds.has(this.getIdentifier(option)),\r\n );\r\n this.sourceItems.set(newSource);\r\n }\r\n\r\n private getIdentifier(item: any): any {\r\n if (item === null || item === undefined) {\r\n return item;\r\n }\r\n const optionValueKey = this.optionValue();\r\n if (!optionValueKey) {\r\n return item;\r\n }\r\n if (typeof item === 'object') {\r\n return item[optionValueKey];\r\n }\r\n return item;\r\n }\r\n\r\n private findOption(entry: any): any | undefined {\r\n const options = this.options() ?? [];\r\n const entryId = this.getIdentifier(entry);\r\n return options.find((option) => this.getIdentifier(option) === entryId);\r\n }\r\n}\r\n","@if (label()) {\r\n <label\r\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\r\n [for]=\"ngControl?.name || label()\"\r\n >{{ label() }}</label\r\n >\r\n}\r\n<p-pickList\r\n #pickList\r\n [source]=\"sourceItems()\"\r\n [target]=\"targetItems()\"\r\n (onMoveToTarget)=\"onInteractiveChange()\"\r\n (onMoveToSource)=\"onInteractiveChange()\"\r\n (onMoveAllToTarget)=\"onInteractiveChange()\"\r\n (onMoveAllToSource)=\"onInteractiveChange()\"\r\n (onTargetReorder)=\"onInteractiveChange()\"\r\n (onSourceReorder)=\"onInteractiveChange()\"\r\n (onBlur)=\"handleBlur()\"\r\n [filterBy]=\"filterBy() || optionLabel()\"\r\n [showSourceControls]=\"showSourceControls()\"\r\n [showTargetControls]=\"showTargetControls()\"\r\n [showSourceFilter]=\"showSourceFilter()\"\r\n [showTargetFilter]=\"showTargetFilter()\"\r\n [sourceHeader]=\"sourceHeader()\"\r\n [targetHeader]=\"targetHeader()\"\r\n [dragdrop]=\"dragdrop()\"\r\n [responsive]=\"responsive()\"\r\n [disabled]=\"disabled() || readonly()\"\r\n [styleClass]=\"'w-full relative'\"\r\n [class.p-invalid]=\"isInvalid(ngControl?.control)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\">\r\n {{ displayLabel(item) }}\r\n </ng-template>\r\n</p-pickList>\r\n\r\n<mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}