aril 1.2.19 → 1.2.21
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.
- package/boot/config/apps/src/interfaces.d.ts +2 -1
- package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
- package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
- package/esm2022/boot/host/src/bootstrap.mjs +5 -3
- package/esm2022/boot/mfe/src/bootstrap.mjs +5 -3
- package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
- package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +16 -4
- package/esm2022/ui/button/src/button.component.mjs +5 -2
- package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +2 -2
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +94 -13
- package/esm2022/ui-business/enumPicker/src/interface.mjs +1 -1
- package/esm2022/util/activity/aril-util-activity.mjs +5 -0
- package/esm2022/util/activity/index.mjs +4 -0
- package/esm2022/util/activity/src/activity.constants.mjs +4 -0
- package/esm2022/util/activity/src/activity.service.mjs +198 -0
- package/esm2022/util/activity/src/activity.types.mjs +2 -0
- package/fesm2022/{aril-app.component-Cw1MxAqD.mjs → aril-app.component-CwZZhJcO.mjs} +2 -1
- package/fesm2022/{aril-app.component-Cw1MxAqD.mjs.map → aril-app.component-CwZZhJcO.mjs.map} +1 -1
- package/fesm2022/aril-boot-config-api.mjs +2 -1
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +1 -0
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +6 -4
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +4 -2
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-CCTntpyN.mjs → aril-boot-mfe-app.component-DwYgUUdL.mjs} +3 -2
- package/fesm2022/{aril-boot-mfe-app.component-CCTntpyN.mjs.map → aril-boot-mfe-app.component-DwYgUUdL.mjs.map} +1 -1
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-D8DZ-gT-.mjs → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs} +6 -4
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-D8DZ-gT-.mjs.map → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs.map} +1 -1
- package/fesm2022/aril-boot-mfe.mjs +2 -1
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs +4 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-theme-layout.mjs +14 -3
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +93 -12
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-button.mjs +4 -1
- package/fesm2022/aril-ui-button.mjs.map +1 -1
- package/fesm2022/aril-ui-translate-input.mjs +1 -1
- package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
- package/fesm2022/aril-util-activity.mjs +208 -0
- package/fesm2022/aril-util-activity.mjs.map +1 -0
- package/fesm2022/aril.mjs +8 -5
- package/fesm2022/aril.mjs.map +1 -1
- package/package.json +240 -234
- package/theme/layout/app/topbar/app.topbar.component.d.ts +5 -0
- package/theme/layout/app/topbar/app.topbar.component.html +3 -0
- package/theme/layout/app/topbar/app.topbar.component.scss +31 -0
- package/theme/layout/app/topbar/app.topbar.component.ts +14 -1
- package/ui/button/src/button.component.d.ts +2 -0
- package/ui-business/enumPicker/src/enum-picker.component.d.ts +11 -2
- package/ui-business/enumPicker/src/interface.d.ts +4 -0
- package/util/activity/index.d.ts +3 -0
- package/util/activity/src/activity.constants.d.ts +3 -0
- package/util/activity/src/activity.service.d.ts +29 -0
- package/util/activity/src/activity.types.d.ts +13 -0
|
@@ -27,7 +27,11 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
27
27
|
this.translocoService = translocoService;
|
|
28
28
|
this.selectionItems = signal(null);
|
|
29
29
|
this.selectBoxDataSource = signal(null);
|
|
30
|
+
this.groupedSelectionItems = signal(null);
|
|
31
|
+
this.isGrouped = signal(false);
|
|
30
32
|
this.originalSelectionItems = [];
|
|
33
|
+
this.rawParentItems = [];
|
|
34
|
+
this.rawGroups = [];
|
|
31
35
|
/**
|
|
32
36
|
* Single Select States
|
|
33
37
|
*/
|
|
@@ -35,6 +39,7 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
35
39
|
this.itemText = input('text');
|
|
36
40
|
this.groupName = input('');
|
|
37
41
|
this.parentSelectionKey = input(null);
|
|
42
|
+
this.parentGroupName = input('');
|
|
38
43
|
this.tabindex = input(0);
|
|
39
44
|
this.items = input();
|
|
40
45
|
this.isMultiple = input(false);
|
|
@@ -65,18 +70,31 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
65
70
|
this.tooltipPosition = input('top');
|
|
66
71
|
this.onSelectionChanged = new EventEmitter();
|
|
67
72
|
effect(() => {
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
const psk = this.parentSelectionKey();
|
|
74
|
+
if (this.groupName() || psk) {
|
|
75
|
+
if (this.isMultiple() && Array.isArray(psk) && psk.length >= 2) {
|
|
76
|
+
this.getGroupedSelectionItems(psk);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.getSelectionItems();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
70
82
|
});
|
|
71
|
-
// excludedKeys değişince item listesini yeniden filtrele (
|
|
83
|
+
// excludedKeys değişince item listesini yeniden filtrele (cache korunur, refetch yok)
|
|
72
84
|
effect(() => {
|
|
73
85
|
this.excludedKeys();
|
|
74
|
-
if (this.
|
|
86
|
+
if (this.rawGroups.length > 0) {
|
|
87
|
+
this.buildGroupedFromRaw();
|
|
88
|
+
}
|
|
89
|
+
else if (this.originalSelectionItems.length > 0) {
|
|
75
90
|
this.updateSelectionItemsText();
|
|
76
91
|
}
|
|
77
92
|
});
|
|
78
93
|
this.translocoService.langChanges$.subscribe(() => {
|
|
79
|
-
if (this.
|
|
94
|
+
if (this.rawGroups.length > 0) {
|
|
95
|
+
this.buildGroupedFromRaw();
|
|
96
|
+
}
|
|
97
|
+
else if (this.selectionItems() && this.selectionItems()?.length > 0) {
|
|
80
98
|
this.updateSelectionItemsText();
|
|
81
99
|
}
|
|
82
100
|
});
|
|
@@ -105,24 +123,87 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
105
123
|
catch (error) {
|
|
106
124
|
this.originalSelectionItems = [];
|
|
107
125
|
}
|
|
126
|
+
// Flat moda dön (await sonrası — effect context dışı olduğu için signal yazımı güvenli)
|
|
127
|
+
this.rawGroups = [];
|
|
128
|
+
this.rawParentItems = [];
|
|
129
|
+
this.groupedSelectionItems.set(null);
|
|
130
|
+
this.isGrouped.set(false);
|
|
108
131
|
this.updateSelectionItemsText();
|
|
109
132
|
}
|
|
133
|
+
// Parent (multiple) ≥2 seçiliyken her parent için ayrı istek atılır (load-all batch)
|
|
134
|
+
// ve child item'lar parent başına gruplanır. Grup başlığı parent'ın lokalize display'idir.
|
|
135
|
+
async getGroupedSelectionItems(parentKeys) {
|
|
136
|
+
const childGroupName = this.groupName();
|
|
137
|
+
const parentGroupName = this.parentGroupName();
|
|
138
|
+
const hasParentGroup = !!parentGroupName;
|
|
139
|
+
const requests = [];
|
|
140
|
+
if (hasParentGroup) {
|
|
141
|
+
requests.push({ groupName: parentGroupName });
|
|
142
|
+
}
|
|
143
|
+
parentKeys.forEach((key) => {
|
|
144
|
+
requests.push({ groupName: childGroupName, parentSelectionKey: key });
|
|
145
|
+
});
|
|
146
|
+
const hostApi = API_CONFIGS.getExternalAppEndpoint(Apps.MNG);
|
|
147
|
+
let groups = [];
|
|
148
|
+
try {
|
|
149
|
+
groups =
|
|
150
|
+
(await firstValueFrom(this.http.post(hostApi + '/selection-group/load-all', requests))) || [];
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
groups = [];
|
|
154
|
+
}
|
|
155
|
+
this.rawParentItems = hasParentGroup ? groups[0]?.selectionItems || [] : [];
|
|
156
|
+
const childGroups = hasParentGroup ? groups.slice(1) : groups;
|
|
157
|
+
this.rawGroups = parentKeys.map((parentKey, index) => ({
|
|
158
|
+
parentKey,
|
|
159
|
+
items: childGroups[index]?.selectionItems || []
|
|
160
|
+
}));
|
|
161
|
+
this.buildGroupedFromRaw();
|
|
162
|
+
}
|
|
163
|
+
buildGroupedFromRaw() {
|
|
164
|
+
const excluded = new Set(this.excludedKeys() || []);
|
|
165
|
+
const parentDisplayMap = new Map();
|
|
166
|
+
this.rawParentItems.forEach((item) => {
|
|
167
|
+
parentDisplayMap.set(item.selectionKey, this.resolveDisplay(item));
|
|
168
|
+
});
|
|
169
|
+
const built = this.rawGroups.map((group) => ({
|
|
170
|
+
label: parentDisplayMap.get(group.parentKey) ?? group.parentKey,
|
|
171
|
+
items: group.items
|
|
172
|
+
.filter((item) => !excluded.has(item.selectionKey))
|
|
173
|
+
.map((item) => ({
|
|
174
|
+
key: item.selectionKey,
|
|
175
|
+
text: this.resolveDisplay(item)
|
|
176
|
+
}))
|
|
177
|
+
}));
|
|
178
|
+
this.selectionItems.set(null);
|
|
179
|
+
this.selectBoxDataSource.set(null);
|
|
180
|
+
this.groupedSelectionItems.set(built);
|
|
181
|
+
this.isGrouped.set(true);
|
|
182
|
+
this.filterCurrentValueBySelectionItems();
|
|
183
|
+
}
|
|
184
|
+
resolveDisplay(item) {
|
|
185
|
+
const lang = this.translocoService.getActiveLang();
|
|
186
|
+
return item?.selectionMultiLanguageDisplays?.[lang] || item.selectionDisplay;
|
|
187
|
+
}
|
|
188
|
+
getVisibleItems() {
|
|
189
|
+
if (this.isGrouped()) {
|
|
190
|
+
return (this.groupedSelectionItems() || []).flatMap((group) => group.items);
|
|
191
|
+
}
|
|
192
|
+
return this.selectionItems() || [];
|
|
193
|
+
}
|
|
110
194
|
updateSelectionItemsText() {
|
|
111
195
|
if (!this.originalSelectionItems || this.originalSelectionItems.length === 0) {
|
|
112
196
|
this.selectionItems.set(null);
|
|
113
197
|
this.selectBoxDataSource.set(null);
|
|
114
198
|
return;
|
|
115
199
|
}
|
|
116
|
-
const currentLang = this.translocoService.getActiveLang();
|
|
117
200
|
this.selectionItems.set(null);
|
|
118
201
|
const excluded = new Set(this.excludedKeys() || []);
|
|
119
202
|
const mappedItems = this.originalSelectionItems
|
|
120
203
|
.filter((item) => !excluded.has(item.selectionKey))
|
|
121
204
|
.map((item) => ({
|
|
122
205
|
key: item.selectionKey,
|
|
123
|
-
text: item
|
|
124
|
-
item.selectionMultiLanguageDisplays[currentLang]
|
|
125
|
-
: item.selectionDisplay,
|
|
206
|
+
text: this.resolveDisplay(item),
|
|
126
207
|
parentSelectionKey: item.parentSelectionKey
|
|
127
208
|
}));
|
|
128
209
|
this.selectionItems.set(mappedItems);
|
|
@@ -136,7 +217,7 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
136
217
|
if (!this.parentSelectionKey() && !hasExcluded)
|
|
137
218
|
return;
|
|
138
219
|
const currentValue = this.ngControl.control?.value;
|
|
139
|
-
const validKeys = new Set(
|
|
220
|
+
const validKeys = new Set(this.getVisibleItems().map((item) => item[this.itemKey()]));
|
|
140
221
|
if (this.isMultiple()) {
|
|
141
222
|
// Child multi-select: geçersiz key'leri filtrele, geçerlileri bırak
|
|
142
223
|
if (!Array.isArray(currentValue) || currentValue.length === 0)
|
|
@@ -184,11 +265,11 @@ class EnumPickerComponent extends BaseInputComponent {
|
|
|
184
265
|
}));
|
|
185
266
|
}
|
|
186
267
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EnumPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EnumPickerComponent, isStandalone: true, selector: "enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, excludedKeys: { classPropertyName: "excludedKeys", publicName: "excludedKeys", isSignal: true, isRequired: false, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null }, acceptCustomValue: { classPropertyName: "acceptCustomValue", publicName: "acceptCustomValue", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, useVirtualScroll: { classPropertyName: "useVirtualScroll", publicName: "useVirtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, selectedItemsLabel: { classPropertyName: "selectedItemsLabel", publicName: "selectedItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"selectionItems() || items() || []\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i6.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
268
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EnumPickerComponent, isStandalone: true, selector: "enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]", inputs: { itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: false, transformFunction: null }, itemText: { classPropertyName: "itemText", publicName: "itemText", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, parentGroupName: { classPropertyName: "parentGroupName", publicName: "parentGroupName", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, excludedKeys: { classPropertyName: "excludedKeys", publicName: "excludedKeys", isSignal: true, isRequired: false, transformFunction: null }, grouped: { classPropertyName: "grouped", publicName: "grouped", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchExpr: { classPropertyName: "searchExpr", publicName: "searchExpr", isSignal: true, isRequired: false, transformFunction: null }, acceptCustomValue: { classPropertyName: "acceptCustomValue", publicName: "acceptCustomValue", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, useVirtualScroll: { classPropertyName: "useVirtualScroll", publicName: "useVirtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, selectedItemsLabel: { classPropertyName: "selectedItemsLabel", publicName: "selectedItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChanged: "onSelectionChanged" }, providers: [InputErrorMessagePipe], usesInheritance: true, hostDirectives: [{ directive: i3.ValueAccessorDirective }], ngImport: i0, template: "@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"isGrouped() ? (groupedSelectionItems() || []) : (selectionItems() || items() || [])\"\r\n\t\t[group]=\"isGrouped()\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t@if (isGrouped()) {\r\n\t\t\t<ng-template let-group pTemplate=\"group\">\r\n\t\t\t\t<span>{{ group.label }}</span>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DxSelectBoxModule }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: DXInputErrorMessagePipe, name: "dxInputErrorMessage" }, { kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i6.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
188
269
|
}
|
|
189
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EnumPickerComponent, decorators: [{
|
|
190
271
|
type: Component,
|
|
191
|
-
args: [{ standalone: true, selector: 'enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule, MultiSelectModule, TooltipModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"selectionItems() || items() || []\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n" }]
|
|
272
|
+
args: [{ standalone: true, selector: 'enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]', imports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule, MultiSelectModule, TooltipModule], providers: [InputErrorMessagePipe], hostDirectives: [ValueAccessorDirective], template: "@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"isGrouped() ? (groupedSelectionItems() || []) : (selectionItems() || items() || [])\"\r\n\t\t[group]=\"isGrouped()\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t@if (isGrouped()) {\r\n\t\t\t<ng-template let-group pTemplate=\"group\">\r\n\t\t\t\t<span>{{ group.label }}</span>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n" }]
|
|
192
273
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { onSelectionChanged: [{
|
|
193
274
|
type: Output
|
|
194
275
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-ui-business-enumPicker.mjs","sources":["../../projects/aril/ui-business/enumPicker/src/enum-picker.component.ts","../../projects/aril/ui-business/enumPicker/src/enum-picker.component.html","../../projects/aril/ui-business/enumPicker/aril-ui-business-enumPicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Output, effect, input, signal } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport {\r\n\tBaseInputComponent,\r\n\tDXInputErrorMessagePipe,\r\n\tInputErrorMessagePipe,\r\n\tValueAccessorDirective\r\n} from 'aril/ui/lib';\r\n\r\nimport { SelectBoxItem, SelectionGroupDTO, SelectionItem, SelectionRequestDTO } from './interface';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]',\r\n\ttemplateUrl: './enum-picker.component.html',\r\n\timports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule, MultiSelectModule, TooltipModule],\r\n\tproviders: [InputErrorMessagePipe],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class EnumPickerComponent extends BaseInputComponent {\r\n\tselectionItems = signal<SelectBoxItem[] | null>(null);\r\n\tselectBoxDataSource = signal<DataSource | null>(null);\r\n\tprivate originalSelectionItems: SelectionItem[] = [];\r\n\t/**\r\n\t * Single Select States\r\n\t */\r\n\r\n\titemKey = input('key');\r\n\titemText = input('text');\r\n\tgroupName = input('');\r\n\tparentSelectionKey = input(null);\r\n\ttabindex = input<number>(0);\r\n\titems = input<SelectBoxItem[]>();\r\n\tisMultiple = input<boolean>(false);\r\n\t// Cross-validation RemoveItem action ile set edilir; verilen selectionKey'leri item listesinden filtreler.\r\n\texcludedKeys = input<string[]>([]);\r\n\tselectedItemText = '';\r\n\t/** * @description when grouped = true, option item structure { key:string, items:[] } */\r\n\tgrouped = input(false);\r\n\tshowClearButton = input<boolean>(true);\r\n\tplaceholder = input<string>('');\r\n\tsearchExpr = input<string | string[]>('');\r\n\tacceptCustomValue = input<boolean>(false);\r\n\ttextClampCharacters = input<number>(40);\r\n\r\n\t/**\r\n\t * Virtual Scroll States\r\n\t */\r\n\tuseVirtualScroll = input<boolean>(false);\r\n\tvirtualScrollItemSize = input<number>(30);\r\n\tscrollHeight = input<string>('300px');\r\n\r\n\t/**\r\n\t * Multi Select States\r\n\t */\r\n\r\n\tselectedItemsLabel = input<string>('{0} değer seçildi'); // default value -> ({0} items selected\r\n\tappendTo = input<string>('body');\r\n\tstyle = input<object>({});\r\n\tstyleClass = input<string>('');\r\n\ttooltip = input<string>('');\r\n\ttooltipPosition = input<any>('top');\r\n\r\n\t@Output() onSelectionChanged = new EventEmitter<SelectBoxItem>();\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tpublic translocoService: TranslocoService\r\n\t) {\r\n\t\tsuper();\r\n\t\teffect(() => {\r\n\t\t\tif (this.groupName() || this.parentSelectionKey()) this.getSelectionItems();\r\n\t\t});\r\n\r\n\t\t// excludedKeys değişince item listesini yeniden filtrele (originalSelectionItems korunur)\r\n\t\teffect(() => {\r\n\t\t\tthis.excludedKeys();\r\n\t\t\tif (this.originalSelectionItems.length > 0) {\r\n\t\t\t\tthis.updateSelectionItemsText();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.translocoService.langChanges$.subscribe(() => {\r\n\t\t\tif (this.selectionItems() && (this.selectionItems() as SelectBoxItem[])?.length > 0) {\r\n\t\t\t\tthis.updateSelectionItemsText();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsetTitle(event?: any) {\r\n\t\tif (event && event[this.itemText()].length > 25) {\r\n\t\t\tthis.selectedItemText = event ? event[this.itemText()] : '';\r\n\t\t}\r\n\t\tthis.onSelectionChanged.emit(event);\r\n\t}\r\n\r\n\tasync getSelectionItems() {\r\n\t\tconst payload: Partial<SelectionRequestDTO> = {\r\n\t\t\tgroupName: this.groupName()\r\n\t\t};\r\n\r\n\t\tif (Array.isArray(this.parentSelectionKey())) {\r\n\t\t\tpayload.parentSelectionKeys = this.parentSelectionKey();\r\n\t\t} else {\r\n\t\t\tpayload.parentSelectionKey = this.parentSelectionKey();\r\n\t\t}\r\n\r\n\t\tconst hostApi = API_CONFIGS.getExternalAppEndpoint(Apps.MNG);\r\n\r\n\t\ttry {\r\n\t\t\tconst selectionGroup = await firstValueFrom(\r\n\t\t\t\tthis.http.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t);\r\n\r\n\t\t\tthis.originalSelectionItems = selectionGroup?.selectionItems || [];\r\n\t\t} catch (error) {\r\n\t\t\tthis.originalSelectionItems = [];\r\n\t\t}\r\n\t\tthis.updateSelectionItemsText();\r\n\t}\r\n\r\n\tprivate updateSelectionItemsText() {\r\n\t\tif (!this.originalSelectionItems || this.originalSelectionItems.length === 0) {\r\n\t\t\tthis.selectionItems.set(null);\r\n\t\t\tthis.selectBoxDataSource.set(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst currentLang = this.translocoService.getActiveLang();\r\n\r\n\t\tthis.selectionItems.set(null);\r\n\r\n\t\tconst excluded = new Set(this.excludedKeys() || []);\r\n\t\tconst mappedItems = this.originalSelectionItems\r\n\t\t\t.filter((item: SelectionItem) => !excluded.has(item.selectionKey))\r\n\t\t\t.map((item: SelectionItem) => ({\r\n\t\t\t\tkey: item.selectionKey,\r\n\t\t\t\ttext:\r\n\t\t\t\t\titem?.selectionMultiLanguageDisplays?.[currentLang] ?\r\n\t\t\t\t\t\titem.selectionMultiLanguageDisplays[currentLang]\r\n\t\t\t\t\t:\titem.selectionDisplay,\r\n\t\t\t\tparentSelectionKey: item.parentSelectionKey\r\n\t\t\t}));\r\n\r\n\t\tthis.selectionItems.set(mappedItems);\r\n\t\tthis.rebuildSelectBoxDataSource(mappedItems);\r\n\t\tthis.filterCurrentValueBySelectionItems();\r\n\t}\r\n\r\n\t// Parent enum (multiple) değiştiğinde veya excludedKeys aktifken\r\n\t// form'daki geçersiz key'leri temizler (selectionItems zaten filtrelenmiş haliyle gelir).\r\n\tfilterCurrentValueBySelectionItems(): void {\r\n\t\tconst hasExcluded = (this.excludedKeys() || []).length > 0;\r\n\t\tif (!this.parentSelectionKey() && !hasExcluded) return;\r\n\t\tconst currentValue = this.ngControl.control?.value;\r\n\t\tconst validKeys = new Set(\r\n\t\t\t(this.selectionItems() || []).map((item: any) => item[this.itemKey()])\r\n\t\t);\r\n\r\n\t\tif (this.isMultiple()) {\r\n\t\t\t// Child multi-select: geçersiz key'leri filtrele, geçerlileri bırak\r\n\t\t\tif (!Array.isArray(currentValue) || currentValue.length === 0) return;\r\n\t\t\tconst filtered = (currentValue as string[]).filter((key) => validKeys.has(key));\r\n\t\t\tif (filtered.length !== currentValue.length) {\r\n\t\t\t\tthis.ngControl.control?.setValue(filtered, { emitEvent: true });\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!currentValue) return;\r\n\t\t\t\r\n\t\t\tif (!validKeys.has(currentValue)) {\r\n\t\t\t\tthis.ngControl.control?.reset(null, { emitEvent: true });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonCustomItemCreating(event: any) {\r\n\t\tif (!event.text) {\r\n\t\t\tevent.customItem = null;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst newItem = {\r\n\t\t\t[this.itemKey()]: event.text,\r\n\t\t\t[this.itemText()]: event.text\r\n\t\t};\r\n\t\tconst currentItems = this.selectionItems() || [];\r\n\t\tconst updatedItems = [...currentItems, newItem];\r\n\t\tthis.selectionItems.set(updatedItems);\r\n\t\tthis.rebuildSelectBoxDataSource(updatedItems);\r\n\t\tevent.customItem = newItem;\r\n\t}\r\n\r\n\t\tprivate rebuildSelectBoxDataSource(items: SelectBoxItem[]): void {\r\n\t\tif (!this.useVirtualScroll()) {\r\n\t\t\tthis.selectBoxDataSource.set(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.selectBoxDataSource.set(\r\n\t\t\tnew DataSource({\r\n\t\t\t\tstore: new ArrayStore({\r\n\t\t\t\t\tdata: items,\r\n\t\t\t\t\tkey: this.itemKey()\r\n\t\t\t\t}),\r\n\t\t\t\tpaginate: true,\r\n\t\t\t\tpageSize: 50\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n}\r\n","@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"selectionItems() || items() || []\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aril-ui-business-enumPicker.mjs","sources":["../../projects/aril/ui-business/enumPicker/src/enum-picker.component.ts","../../projects/aril/ui-business/enumPicker/src/enum-picker.component.html","../../projects/aril/ui-business/enumPicker/aril-ui-business-enumPicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Output, effect, input, signal } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport {\r\n\tBaseInputComponent,\r\n\tDXInputErrorMessagePipe,\r\n\tInputErrorMessagePipe,\r\n\tValueAccessorDirective\r\n} from 'aril/ui/lib';\r\n\r\nimport { GroupedSelectionItem, SelectBoxItem, SelectionGroupDTO, SelectionItem, SelectionRequestDTO } from './interface';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]',\r\n\ttemplateUrl: './enum-picker.component.html',\r\n\timports: [ReactiveFormsModule, DxSelectBoxModule, DXInputErrorMessagePipe, TranslocoModule, MultiSelectModule, TooltipModule],\r\n\tproviders: [InputErrorMessagePipe],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class EnumPickerComponent extends BaseInputComponent {\r\n\tselectionItems = signal<SelectBoxItem[] | null>(null);\r\n\tselectBoxDataSource = signal<DataSource | null>(null);\r\n\tgroupedSelectionItems = signal<GroupedSelectionItem[] | null>(null);\r\n\tisGrouped = signal<boolean>(false);\r\n\tprivate originalSelectionItems: SelectionItem[] = [];\r\n\tprivate rawParentItems: SelectionItem[] = [];\r\n\tprivate rawGroups: { parentKey: string; items: SelectionItem[] }[] = [];\r\n\t/**\r\n\t * Single Select States\r\n\t */\r\n\r\n\titemKey = input('key');\r\n\titemText = input('text');\r\n\tgroupName = input('');\r\n\tparentSelectionKey = input(null);\r\n\tparentGroupName = input<string>('');\r\n\ttabindex = input<number>(0);\r\n\titems = input<SelectBoxItem[]>();\r\n\tisMultiple = input<boolean>(false);\r\n\t// Cross-validation RemoveItem action ile set edilir; verilen selectionKey'leri item listesinden filtreler.\r\n\texcludedKeys = input<string[]>([]);\r\n\tselectedItemText = '';\r\n\t/** * @description when grouped = true, option item structure { key:string, items:[] } */\r\n\tgrouped = input(false);\r\n\tshowClearButton = input<boolean>(true);\r\n\tplaceholder = input<string>('');\r\n\tsearchExpr = input<string | string[]>('');\r\n\tacceptCustomValue = input<boolean>(false);\r\n\ttextClampCharacters = input<number>(40);\r\n\r\n\t/**\r\n\t * Virtual Scroll States\r\n\t */\r\n\tuseVirtualScroll = input<boolean>(false);\r\n\tvirtualScrollItemSize = input<number>(30);\r\n\tscrollHeight = input<string>('300px');\r\n\r\n\t/**\r\n\t * Multi Select States\r\n\t */\r\n\r\n\tselectedItemsLabel = input<string>('{0} değer seçildi'); // default value -> ({0} items selected\r\n\tappendTo = input<string>('body');\r\n\tstyle = input<object>({});\r\n\tstyleClass = input<string>('');\r\n\ttooltip = input<string>('');\r\n\ttooltipPosition = input<any>('top');\r\n\r\n\t@Output() onSelectionChanged = new EventEmitter<SelectBoxItem>();\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tpublic translocoService: TranslocoService\r\n\t) {\r\n\t\tsuper();\r\n\t\teffect(() => {\r\n\t\t\tconst psk = this.parentSelectionKey() as string[] | string | null;\r\n\t\t\tif (this.groupName() || psk) {\r\n\t\t\t\tif (this.isMultiple() && Array.isArray(psk) && psk.length >= 2) {\r\n\t\t\t\t\tthis.getGroupedSelectionItems(psk);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.getSelectionItems();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// excludedKeys değişince item listesini yeniden filtrele (cache korunur, refetch yok)\r\n\t\teffect(() => {\r\n\t\t\tthis.excludedKeys();\r\n\t\t\tif (this.rawGroups.length > 0) {\r\n\t\t\t\tthis.buildGroupedFromRaw();\r\n\t\t\t} else if (this.originalSelectionItems.length > 0) {\r\n\t\t\t\tthis.updateSelectionItemsText();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.translocoService.langChanges$.subscribe(() => {\r\n\t\t\tif (this.rawGroups.length > 0) {\r\n\t\t\t\tthis.buildGroupedFromRaw();\r\n\t\t\t} else if (this.selectionItems() && (this.selectionItems() as SelectBoxItem[])?.length > 0) {\r\n\t\t\t\tthis.updateSelectionItemsText();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsetTitle(event?: any) {\r\n\t\tif (event && event[this.itemText()].length > 25) {\r\n\t\t\tthis.selectedItemText = event ? event[this.itemText()] : '';\r\n\t\t}\r\n\t\tthis.onSelectionChanged.emit(event);\r\n\t}\r\n\r\n\tasync getSelectionItems() {\r\n\t\tconst payload: Partial<SelectionRequestDTO> = {\r\n\t\t\tgroupName: this.groupName()\r\n\t\t};\r\n\r\n\t\tif (Array.isArray(this.parentSelectionKey())) {\r\n\t\t\tpayload.parentSelectionKeys = this.parentSelectionKey();\r\n\t\t} else {\r\n\t\t\tpayload.parentSelectionKey = this.parentSelectionKey();\r\n\t\t}\r\n\r\n\t\tconst hostApi = API_CONFIGS.getExternalAppEndpoint(Apps.MNG);\r\n\r\n\t\ttry {\r\n\t\t\tconst selectionGroup = await firstValueFrom(\r\n\t\t\t\tthis.http.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t);\r\n\r\n\t\t\tthis.originalSelectionItems = selectionGroup?.selectionItems || [];\r\n\t\t} catch (error) {\r\n\t\t\tthis.originalSelectionItems = [];\r\n\t\t}\r\n\t\t// Flat moda dön (await sonrası — effect context dışı olduğu için signal yazımı güvenli)\r\n\t\tthis.rawGroups = [];\r\n\t\tthis.rawParentItems = [];\r\n\t\tthis.groupedSelectionItems.set(null);\r\n\t\tthis.isGrouped.set(false);\r\n\t\tthis.updateSelectionItemsText();\r\n\t}\r\n\r\n\t// Parent (multiple) ≥2 seçiliyken her parent için ayrı istek atılır (load-all batch)\r\n\t// ve child item'lar parent başına gruplanır. Grup başlığı parent'ın lokalize display'idir.\r\n\tasync getGroupedSelectionItems(parentKeys: string[]) {\r\n\t\tconst childGroupName = this.groupName();\r\n\t\tconst parentGroupName = this.parentGroupName();\r\n\t\tconst hasParentGroup = !!parentGroupName;\r\n\r\n\t\tconst requests: Partial<SelectionRequestDTO>[] = [];\r\n\t\tif (hasParentGroup) {\r\n\t\t\trequests.push({ groupName: parentGroupName });\r\n\t\t}\r\n\t\tparentKeys.forEach((key) => {\r\n\t\t\trequests.push({ groupName: childGroupName, parentSelectionKey: key });\r\n\t\t});\r\n\r\n\t\tconst hostApi = API_CONFIGS.getExternalAppEndpoint(Apps.MNG);\r\n\r\n\t\tlet groups: SelectionGroupDTO[] = [];\r\n\t\ttry {\r\n\t\t\tgroups =\r\n\t\t\t\t(await firstValueFrom(\r\n\t\t\t\t\tthis.http.post<SelectionGroupDTO[]>(hostApi + '/selection-group/load-all', requests)\r\n\t\t\t\t)) || [];\r\n\t\t} catch (error) {\r\n\t\t\tgroups = [];\r\n\t\t}\r\n\r\n\t\tthis.rawParentItems = hasParentGroup ? groups[0]?.selectionItems || [] : [];\r\n\t\tconst childGroups = hasParentGroup ? groups.slice(1) : groups;\r\n\t\tthis.rawGroups = parentKeys.map((parentKey, index) => ({\r\n\t\t\tparentKey,\r\n\t\t\titems: childGroups[index]?.selectionItems || []\r\n\t\t}));\r\n\r\n\t\tthis.buildGroupedFromRaw();\r\n\t}\r\n\r\n\tprivate buildGroupedFromRaw() {\r\n\t\tconst excluded = new Set(this.excludedKeys() || []);\r\n\t\tconst parentDisplayMap = new Map<string, string>();\r\n\t\tthis.rawParentItems.forEach((item: SelectionItem) => {\r\n\t\t\tparentDisplayMap.set(item.selectionKey, this.resolveDisplay(item));\r\n\t\t});\r\n\r\n\t\tconst built: GroupedSelectionItem[] = this.rawGroups.map((group) => ({\r\n\t\t\tlabel: parentDisplayMap.get(group.parentKey) ?? group.parentKey,\r\n\t\t\titems: group.items\r\n\t\t\t\t.filter((item: SelectionItem) => !excluded.has(item.selectionKey))\r\n\t\t\t\t.map((item: SelectionItem) => ({\r\n\t\t\t\t\tkey: item.selectionKey,\r\n\t\t\t\t\ttext: this.resolveDisplay(item)\r\n\t\t\t\t}))\r\n\t\t}));\r\n\r\n\t\tthis.selectionItems.set(null);\r\n\t\tthis.selectBoxDataSource.set(null);\r\n\t\tthis.groupedSelectionItems.set(built);\r\n\t\tthis.isGrouped.set(true);\r\n\t\tthis.filterCurrentValueBySelectionItems();\r\n\t}\r\n\r\n\tprivate resolveDisplay(item: SelectionItem): string {\r\n\t\tconst lang = this.translocoService.getActiveLang();\r\n\t\treturn item?.selectionMultiLanguageDisplays?.[lang] || item.selectionDisplay;\r\n\t}\r\n\r\n\tprivate getVisibleItems(): SelectBoxItem[] {\r\n\t\tif (this.isGrouped()) {\r\n\t\t\treturn (this.groupedSelectionItems() || []).flatMap((group) => group.items);\r\n\t\t}\r\n\t\treturn this.selectionItems() || [];\r\n\t}\r\n\r\n\tprivate updateSelectionItemsText() {\r\n\t\tif (!this.originalSelectionItems || this.originalSelectionItems.length === 0) {\r\n\t\t\tthis.selectionItems.set(null);\r\n\t\t\tthis.selectBoxDataSource.set(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.selectionItems.set(null);\r\n\r\n\t\tconst excluded = new Set(this.excludedKeys() || []);\r\n\t\tconst mappedItems = this.originalSelectionItems\r\n\t\t\t.filter((item: SelectionItem) => !excluded.has(item.selectionKey))\r\n\t\t\t.map((item: SelectionItem) => ({\r\n\t\t\t\tkey: item.selectionKey,\r\n\t\t\t\ttext: this.resolveDisplay(item),\r\n\t\t\t\tparentSelectionKey: item.parentSelectionKey\r\n\t\t\t}));\r\n\r\n\t\tthis.selectionItems.set(mappedItems);\r\n\t\tthis.rebuildSelectBoxDataSource(mappedItems);\r\n\t\tthis.filterCurrentValueBySelectionItems();\r\n\t}\r\n\r\n\t// Parent enum (multiple) değiştiğinde veya excludedKeys aktifken\r\n\t// form'daki geçersiz key'leri temizler (selectionItems zaten filtrelenmiş haliyle gelir).\r\n\tfilterCurrentValueBySelectionItems(): void {\r\n\t\tconst hasExcluded = (this.excludedKeys() || []).length > 0;\r\n\t\tif (!this.parentSelectionKey() && !hasExcluded) return;\r\n\t\tconst currentValue = this.ngControl.control?.value;\r\n\t\tconst validKeys = new Set(\r\n\t\t\tthis.getVisibleItems().map((item: any) => item[this.itemKey()])\r\n\t\t);\r\n\r\n\t\tif (this.isMultiple()) {\r\n\t\t\t// Child multi-select: geçersiz key'leri filtrele, geçerlileri bırak\r\n\t\t\tif (!Array.isArray(currentValue) || currentValue.length === 0) return;\r\n\t\t\tconst filtered = (currentValue as string[]).filter((key) => validKeys.has(key));\r\n\t\t\tif (filtered.length !== currentValue.length) {\r\n\t\t\t\tthis.ngControl.control?.setValue(filtered, { emitEvent: true });\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!currentValue) return;\r\n\r\n\t\t\tif (!validKeys.has(currentValue)) {\r\n\t\t\t\tthis.ngControl.control?.reset(null, { emitEvent: true });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonCustomItemCreating(event: any) {\r\n\t\tif (!event.text) {\r\n\t\t\tevent.customItem = null;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst newItem = {\r\n\t\t\t[this.itemKey()]: event.text,\r\n\t\t\t[this.itemText()]: event.text\r\n\t\t};\r\n\t\tconst currentItems = this.selectionItems() || [];\r\n\t\tconst updatedItems = [...currentItems, newItem];\r\n\t\tthis.selectionItems.set(updatedItems);\r\n\t\tthis.rebuildSelectBoxDataSource(updatedItems);\r\n\t\tevent.customItem = newItem;\r\n\t}\r\n\r\n\t\tprivate rebuildSelectBoxDataSource(items: SelectBoxItem[]): void {\r\n\t\tif (!this.useVirtualScroll()) {\r\n\t\t\tthis.selectBoxDataSource.set(null);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.selectBoxDataSource.set(\r\n\t\t\tnew DataSource({\r\n\t\t\t\tstore: new ArrayStore({\r\n\t\t\t\t\tdata: items,\r\n\t\t\t\t\tkey: this.itemKey()\r\n\t\t\t\t}),\r\n\t\t\t\tpaginate: true,\r\n\t\t\t\tpageSize: 50\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n}\r\n","@if (isMultiple()) {\r\n\t<p-multiSelect\r\n\t\t[options]=\"isGrouped() ? (groupedSelectionItems() || []) : (selectionItems() || items() || [])\"\r\n\t\t[group]=\"isGrouped()\"\r\n\t\t[optionValue]=\"itemKey()\"\r\n\t\t[optionLabel]=\"itemText()\"\r\n\t\t[defaultLabel]=\"placeholder()\"\r\n\t\t[selectedItemsLabel]=\"selectedItemsLabel()\"\r\n\t\t[style]=\"style()\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t[tooltip]=\"tooltip()\"\r\n\t\t[tooltipPosition]=\"tooltipPosition()\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\t\t[maxSelectedLabels]=\"2\"\r\n\t\t[appendTo]=\"appendTo()\"\r\n\t\t[virtualScroll]=\"useVirtualScroll()\"\r\n\t\t[virtualScrollItemSize]=\"virtualScrollItemSize()\"\r\n\t\t[scrollHeight]=\"scrollHeight()\"\r\n\t\t[filter]=\"true\"\r\n\t\t[panelStyle]=\"{ 'max-width': '400px', 'min-width': 'auto' }\">\r\n\t\t@if (isGrouped()) {\r\n\t\t\t<ng-template let-group pTemplate=\"group\">\r\n\t\t\t\t<span>{{ group.label }}</span>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t\t<ng-template let-enum pTemplate=\"item\">\r\n\t\t\t<div [pTooltip]=\"enum[itemText()]?.length > textClampCharacters() ? enum[itemText()] : ''\">\r\n\t\t\t\t@if (enum[itemText()]?.length > textClampCharacters()) {\r\n\t\t\t\t\t{{ enum[itemText()].slice(0, textClampCharacters()) }}...\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t{{ enum[itemText()] }}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</p-multiSelect>\r\n} @else {\r\n\t<dx-select-box\r\n [dataSource]=\"useVirtualScroll() ? selectBoxDataSource() : (selectionItems() || items() || [])\"\r\n\t\t[valueExpr]=\"itemKey()\"\r\n\t\t[displayExpr]=\"itemText()\"\r\n\t\t[searchEnabled]=\"true\"\r\n\t\t[searchExpr]=\"searchExpr()\"\r\n\t\t[tabIndex]=\"tabindex()\"\r\n\t\t[grouped]=\"grouped()\"\r\n\t\t[placeholder]=\"placeholder()\"\r\n\t\t[showClearButton]=\"showClearButton()\"\r\n\t\t[acceptCustomValue]=\"acceptCustomValue()\"\r\n\t\t(onCustomItemCreating)=\"onCustomItemCreating($event)\"\r\n\t\t[isValid]=\"ngControl?.control?.valid || ngControl?.control?.pristine || ngControl?.control?.disabled || false\"\r\n\t\t[validationError]=\"ngControl?.control?.errors | dxInputErrorMessage: ngControl?.control\"\r\n\t\tvalidationMessagePosition=\"top\"\r\n\t\t[noDataText]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t\t[formControl]=\"ngControl.control\"\r\n\t\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event.selectedItem);setTitle($event.selectedItem)\"\r\n [inputAttr]=\"{ 'title': selectedItemText }\">\r\n\t</dx-select-box>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, EventEmitter, computed, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { input, EventEmitter, inject, computed, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import * as i1 from 'primeng/button';
|
|
4
4
|
import { ButtonModule } from 'primeng/button';
|
|
5
5
|
import { iconTransform } from 'aril/ui/lib';
|
|
6
|
+
import { ActivityService } from 'aril/util/activity';
|
|
6
7
|
import * as i1$1 from 'primeng/splitbutton';
|
|
7
8
|
import { SplitButtonModule } from 'primeng/splitbutton';
|
|
8
9
|
|
|
@@ -21,6 +22,7 @@ class ButtonComponent {
|
|
|
21
22
|
this.iconPos = input('left');
|
|
22
23
|
this.color = input.required();
|
|
23
24
|
this.clickEvent = new EventEmitter();
|
|
25
|
+
this.activity = inject(ActivityService);
|
|
24
26
|
this._icon = computed(() => iconTransform(this.icon()));
|
|
25
27
|
this._color = computed(() => `p-button-${this.color()}`);
|
|
26
28
|
this._styleClass = computed(() => {
|
|
@@ -29,6 +31,7 @@ class ButtonComponent {
|
|
|
29
31
|
}
|
|
30
32
|
clickEvnt(e) {
|
|
31
33
|
e.stopPropagation();
|
|
34
|
+
this.activity.track(this.label() ?? '', {}, 'BUTTON_CLICK');
|
|
32
35
|
this.clickEvent.emit(e);
|
|
33
36
|
}
|
|
34
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-ui-button.mjs","sources":["../../projects/aril/ui/button/src/button.component.ts","../../projects/aril/ui/button/src/button.component.html","../../projects/aril/ui/button/src/split-button.component.ts","../../projects/aril/ui/button/src/split-button.component.html","../../projects/aril/ui/button/aril-ui-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Output, computed, input } from '@angular/core';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\nimport { PrimeIcon, iconTransform } from 'aril/ui/lib';\r\n\r\ntype Size = 'sm' | 'md' | 'lg';\r\ntype Colors = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'help' | 'danger';\r\ntype ButtonIconPosition = 'left' | 'right' | 'top' | 'bottom';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-button:not([click])',\r\n\ttemplateUrl: './button.component.html',\r\n\thost: { id: Math.random().toString(36).substring(2) },\r\n\timports: [ButtonModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ButtonComponent {\r\n\tlabel = input<string>();\r\n\tloading = input<boolean>(false);\r\n\tdisabled = input<boolean>(false);\r\n\traised = input<boolean>(true);\r\n\trounded = input<boolean>(false);\r\n\ttext = input<boolean>(false);\r\n\toutlined = input<boolean>(false);\r\n\tbadge = input<string>();\r\n\tsize = input<Size>('sm');\r\n\ticon = input<PrimeIcon>();\r\n\ticonPos = input<ButtonIconPosition>('left');\r\n\tcolor = input.required<Colors>();\r\n\r\n\t@Output() clickEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n\t_icon = computed(() => iconTransform(this.icon()!));\r\n\r\n\t_color = computed(() => `p-button-${this.color()}`);\r\n\r\n\t_styleClass = computed(() => {\r\n\t\treturn `${this.raised() ? `p-button-raised` : ''} ${this.outlined() ? `p-button-outlined` : ''} ${this.size() ? `p-button-${this.size()}` : ''} ${this._color()}`;\r\n\t});\r\n\r\n\tclickEvnt(e: Event) {\r\n\t\te.stopPropagation();\r\n\t\tthis.clickEvent.emit(e);\r\n\t}\r\n}\r\n","<p-button\r\n\t[label]=\"label()\"\r\n\t[badge]=\"badge()\"\r\n\t[icon]=\"_icon()\"\r\n\t[text]=\"text()\"\r\n\t[rounded]=\"rounded()\"\r\n\t[iconPos]=\"iconPos()\"\r\n\t[disabled]=\"disabled()\"\r\n\t[styleClass]=\"_styleClass()\"\r\n\t[loading]=\"loading()\"\r\n\t(onClick)=\"clickEvnt($event)\">\r\n</p-button>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\n\r\nimport { ButtonComponent } from './button.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-split-button',\r\n\ttemplateUrl: './split-button.component.html',\r\n\timports: [SplitButtonModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SplitButtonComponent extends ButtonComponent {\r\n\tmenu = input.required<MenuItem[]>();\r\n}\r\n","<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"
|
|
1
|
+
{"version":3,"file":"aril-ui-button.mjs","sources":["../../projects/aril/ui/button/src/button.component.ts","../../projects/aril/ui/button/src/button.component.html","../../projects/aril/ui/button/src/split-button.component.ts","../../projects/aril/ui/button/src/split-button.component.html","../../projects/aril/ui/button/aril-ui-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Output, computed, inject, input } from '@angular/core';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\nimport { PrimeIcon, iconTransform } from 'aril/ui/lib';\r\nimport { ActivityService } from 'aril/util/activity';\r\n\r\ntype Size = 'sm' | 'md' | 'lg';\r\ntype Colors = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'help' | 'danger';\r\ntype ButtonIconPosition = 'left' | 'right' | 'top' | 'bottom';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-button:not([click])',\r\n\ttemplateUrl: './button.component.html',\r\n\thost: { id: Math.random().toString(36).substring(2) },\r\n\timports: [ButtonModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ButtonComponent {\r\n\tlabel = input<string>();\r\n\tloading = input<boolean>(false);\r\n\tdisabled = input<boolean>(false);\r\n\traised = input<boolean>(true);\r\n\trounded = input<boolean>(false);\r\n\ttext = input<boolean>(false);\r\n\toutlined = input<boolean>(false);\r\n\tbadge = input<string>();\r\n\tsize = input<Size>('sm');\r\n\ticon = input<PrimeIcon>();\r\n\ticonPos = input<ButtonIconPosition>('left');\r\n\tcolor = input.required<Colors>();\r\n\r\n\t@Output() clickEvent: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n\tprotected readonly activity = inject(ActivityService);\r\n\r\n\t_icon = computed(() => iconTransform(this.icon()!));\r\n\r\n\t_color = computed(() => `p-button-${this.color()}`);\r\n\r\n\t_styleClass = computed(() => {\r\n\t\treturn `${this.raised() ? `p-button-raised` : ''} ${this.outlined() ? `p-button-outlined` : ''} ${this.size() ? `p-button-${this.size()}` : ''} ${this._color()}`;\r\n\t});\r\n\r\n\tclickEvnt(e: Event) {\r\n\t\te.stopPropagation();\r\n\t\tthis.activity.track(this.label() ?? '', {}, 'BUTTON_CLICK');\r\n\t\tthis.clickEvent.emit(e);\r\n\t}\r\n}\r\n","<p-button\r\n\t[label]=\"label()\"\r\n\t[badge]=\"badge()\"\r\n\t[icon]=\"_icon()\"\r\n\t[text]=\"text()\"\r\n\t[rounded]=\"rounded()\"\r\n\t[iconPos]=\"iconPos()\"\r\n\t[disabled]=\"disabled()\"\r\n\t[styleClass]=\"_styleClass()\"\r\n\t[loading]=\"loading()\"\r\n\t(onClick)=\"clickEvnt($event)\">\r\n</p-button>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\n\r\nimport { ButtonComponent } from './button.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-split-button',\r\n\ttemplateUrl: './split-button.component.html',\r\n\timports: [SplitButtonModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SplitButtonComponent extends ButtonComponent {\r\n\tmenu = input.required<MenuItem[]>();\r\n}\r\n","<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ class ArilLangModalComponent {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArilLangModalComponent, deps: [{ token: i1.DynamicDialogConfig }, { token: i1.DynamicDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ArilLangModalComponent, isStandalone: true, selector: "aril-lang-modal", ngImport: i0, template: "<div>\r\n\t<aril-field\r\n\t\t[label]=\"translocoService.translate('translationModal.addLanguage')\"\r\n\t\t[cols]=\"{ default: 12 }\"\r\n\t\tclass=\"mb-4 block\">\r\n\t\t<enum-picker\r\n\t\t\t[(ngModel)]=\"selectedLanguages\"\r\n\t\t\t[items]=\"availableLanguages\"\r\n\t\t\t[isMultiple]=\"true\"\r\n\t\t\titemKey=\"code\"\r\n\t\t\titemText=\"name\" />\r\n\t</aril-field>\r\n\r\n\t@for (lang of selectedLanguages; track lang) {\r\n\t\t<div class=\"border-1 border-gray-300 border-round py-2 px-4 mb-2 flex justify-content-between items-center\">\r\n\t\t\t<aril-field labelPos=\"left\" [label]=\"getLabel(lang)\" [cols]=\"{ default: 12 }\" [labelWidth]=\"15\" [valueWidth]=\"85\">\r\n\t\t\t\t<aril-text class=\"value-input\" [(ngModel)]=\"translations[lang]\" />\r\n\t\t\t</aril-field>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<div class=\"mt-4\">\r\n\t\t@if (mandatoryLanguages.length && isSaveDisabled()) {\r\n\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t<p-tag [value]=\"getInfoText()\" severity=\"info\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div class=\"mt-4 flex justify-content-end\">\r\n\t\t<aril-button\r\n\t\t\tcolor=\"danger\"\r\n\t\t\t[outlined]=\"true\"\r\n\t\t\t[label]=\"translocoService.translate('cancel')\"\r\n\t\t\t[raised]=\"false\"\r\n\t\t\ticon=\"TIMES\"\r\n\t\t\t(clickEvent)=\"close()\" />\r\n\t\t<aril-button\r\n\t\t\t[label]=\"translocoService.translate('save')\"\r\n\t\t\tcolor=\"success\"\r\n\t\t\ticon=\"CHECK\"\r\n\t\t\tclass=\"ml-2\"\r\n\t\t\t(clickEvent)=\"save()\"\r\n\t\t\t[disabled]=\"isSaveDisabled()\" />\r\n\t</div>\r\n</div>\r\n", styles: [":host .value-input ::ng-deep input{width:100%}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { kind: "component", type: EnumPickerComponent, selector: "enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "isMultiple", "excludedKeys", "grouped", "showClearButton", "placeholder", "searchExpr", "acceptCustomValue", "textClampCharacters", "useVirtualScroll", "virtualScrollItemSize", "scrollHeight", "selectedItemsLabel", "appendTo", "style", "styleClass", "tooltip", "tooltipPosition"], outputs: ["onSelectionChanged"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i3.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }] }); }
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ArilLangModalComponent, isStandalone: true, selector: "aril-lang-modal", ngImport: i0, template: "<div>\r\n\t<aril-field\r\n\t\t[label]=\"translocoService.translate('translationModal.addLanguage')\"\r\n\t\t[cols]=\"{ default: 12 }\"\r\n\t\tclass=\"mb-4 block\">\r\n\t\t<enum-picker\r\n\t\t\t[(ngModel)]=\"selectedLanguages\"\r\n\t\t\t[items]=\"availableLanguages\"\r\n\t\t\t[isMultiple]=\"true\"\r\n\t\t\titemKey=\"code\"\r\n\t\t\titemText=\"name\" />\r\n\t</aril-field>\r\n\r\n\t@for (lang of selectedLanguages; track lang) {\r\n\t\t<div class=\"border-1 border-gray-300 border-round py-2 px-4 mb-2 flex justify-content-between items-center\">\r\n\t\t\t<aril-field labelPos=\"left\" [label]=\"getLabel(lang)\" [cols]=\"{ default: 12 }\" [labelWidth]=\"15\" [valueWidth]=\"85\">\r\n\t\t\t\t<aril-text class=\"value-input\" [(ngModel)]=\"translations[lang]\" />\r\n\t\t\t</aril-field>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<div class=\"mt-4\">\r\n\t\t@if (mandatoryLanguages.length && isSaveDisabled()) {\r\n\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t<p-tag [value]=\"getInfoText()\" severity=\"info\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div class=\"mt-4 flex justify-content-end\">\r\n\t\t<aril-button\r\n\t\t\tcolor=\"danger\"\r\n\t\t\t[outlined]=\"true\"\r\n\t\t\t[label]=\"translocoService.translate('cancel')\"\r\n\t\t\t[raised]=\"false\"\r\n\t\t\ticon=\"TIMES\"\r\n\t\t\t(clickEvent)=\"close()\" />\r\n\t\t<aril-button\r\n\t\t\t[label]=\"translocoService.translate('save')\"\r\n\t\t\tcolor=\"success\"\r\n\t\t\ticon=\"CHECK\"\r\n\t\t\tclass=\"ml-2\"\r\n\t\t\t(clickEvent)=\"save()\"\r\n\t\t\t[disabled]=\"isSaveDisabled()\" />\r\n\t</div>\r\n</div>\r\n", styles: [":host .value-input ::ng-deep input{width:100%}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { kind: "component", type: EnumPickerComponent, selector: "enum-picker[ngModel], enum-picker[formControl], enum-picker[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "parentGroupName", "tabindex", "items", "isMultiple", "excludedKeys", "grouped", "showClearButton", "placeholder", "searchExpr", "acceptCustomValue", "textClampCharacters", "useVirtualScroll", "virtualScrollItemSize", "scrollHeight", "selectedItemsLabel", "appendTo", "style", "styleClass", "tooltip", "tooltipPosition"], outputs: ["onSelectionChanged"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i3.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }] }); }
|
|
74
74
|
}
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArilLangModalComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aril-ui-translate-input.mjs","sources":["../../projects/aril/ui/translate-input/src/aril-lang-modal/constants.ts","../../projects/aril/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.ts","../../projects/aril/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.html","../../projects/aril/ui/translate-input/src/aril-translate-input.component.ts","../../projects/aril/ui/translate-input/aril-ui-translate-input.ts"],"sourcesContent":["import { LanguageDto } from '../interface';\r\n\r\nexport const ALL_LANGS: LanguageDto[] = [\r\n\t{ code: 'en', name: '🇬🇧 English' },\r\n\t{ code: 'tr', name: '🇹🇷 Türkçe' },\r\n\t{ code: 'de', name: '🇩🇪 Deutsch' },\r\n\t{ code: 'fr', name: '🇫🇷 Français' },\r\n\t{ code: 'es', name: '🇪🇸 Español' },\r\n\t{ code: 'ar', name: '🇸🇦 العربية (السعودية)' },\r\n\t{ code: 'he', name: '🇮🇱 עברית' },\r\n\t{ code: 'fa', name: '🇮🇷 فارسی' },\r\n\t{ code: 'ro', name: '🇷🇴 Română' },\r\n\t{ code: 'ru', name: '🇷🇺 Русский' },\r\n\t{ code: 'ja', name: '🇯🇵 日本語' },\r\n\t{ code: 'zh', name: '🇨🇳 简体中文' }\r\n];\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TagModule } from 'primeng/tag';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { EnumPickerComponent } from 'aril/ui-business/enumPicker';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { FieldComponent } from 'aril/ui/field';\r\nimport { TextComponent } from 'aril/ui/text';\r\n\r\nimport { LangModalData, TranslationObject } from '../interface';\r\nimport { ALL_LANGS } from './constants';\r\n\r\n@Component({\r\n\tselector: 'aril-lang-modal',\r\n\timports: [\r\n\t\tTextComponent,\r\n\t\tFormsModule,\r\n\t\tCommonModule,\r\n\t\tButtonComponent,\r\n\t\tTranslocoModule,\r\n\t\tFieldComponent,\r\n\t\tEnumPickerComponent,\r\n\t\tTagModule\r\n\t],\r\n\tstandalone: true,\r\n\ttemplateUrl: 'aril-lang-modal.component.html',\r\n\tstyleUrls: ['aril-lang-modal.component.scss']\r\n})\r\nexport class ArilLangModalComponent {\r\n\ttranslocoService = inject(TranslocoService);\r\n\tselectedLanguages: string[] = ['tr', 'en'];\r\n\tavailableLanguages = ALL_LANGS;\r\n\ttranslations: TranslationObject = {};\r\n\tmandatoryLanguages: string[] = [];\r\n\r\n\tconstructor(\r\n\t\tpublic config: DynamicDialogConfig<LangModalData>,\r\n\t\tpublic ref: DynamicDialogRef\r\n\t) {\r\n\t\tthis.translations = { ...this.config.data?.translations };\r\n\t\tthis.mandatoryLanguages = this.config.data?.mandatoryLanguages || [];\r\n\t}\r\n\r\n\tsave() {\r\n\t\tconst allowed = new Set(this.selectedLanguages);\r\n\t\t// only output the languages that are selected\r\n\t\tconst outputTranslations = Object.fromEntries(Object.entries(this.translations).filter(([k]) => allowed.has(k)));\r\n\t\tthis.ref.close(outputTranslations);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.ref.close();\r\n\t}\r\n\r\n\tgetLabel(code: string) {\r\n\t\treturn this.availableLanguages.find((lang) => lang.code === code)?.name;\r\n\t}\r\n\r\n\tisSaveDisabled() {\r\n\t\treturn this.mandatoryLanguages?.some((lang) => !this.selectedLanguages.includes(lang) || !this.translations[lang]);\r\n\t}\r\n\r\n\tgetInfoText() {\r\n\t\treturn this.translocoService.translate('translationModal.mandatoryLanguages', {\r\n\t\t\tlanguages: this.mandatoryLanguages?.map((lang) => this.getLabel(lang)).join(', ')\r\n\t\t});\r\n\t}\r\n}\r\n","<div>\r\n\t<aril-field\r\n\t\t[label]=\"translocoService.translate('translationModal.addLanguage')\"\r\n\t\t[cols]=\"{ default: 12 }\"\r\n\t\tclass=\"mb-4 block\">\r\n\t\t<enum-picker\r\n\t\t\t[(ngModel)]=\"selectedLanguages\"\r\n\t\t\t[items]=\"availableLanguages\"\r\n\t\t\t[isMultiple]=\"true\"\r\n\t\t\titemKey=\"code\"\r\n\t\t\titemText=\"name\" />\r\n\t</aril-field>\r\n\r\n\t@for (lang of selectedLanguages; track lang) {\r\n\t\t<div class=\"border-1 border-gray-300 border-round py-2 px-4 mb-2 flex justify-content-between items-center\">\r\n\t\t\t<aril-field labelPos=\"left\" [label]=\"getLabel(lang)\" [cols]=\"{ default: 12 }\" [labelWidth]=\"15\" [valueWidth]=\"85\">\r\n\t\t\t\t<aril-text class=\"value-input\" [(ngModel)]=\"translations[lang]\" />\r\n\t\t\t</aril-field>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<div class=\"mt-4\">\r\n\t\t@if (mandatoryLanguages.length && isSaveDisabled()) {\r\n\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t<p-tag [value]=\"getInfoText()\" severity=\"info\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div class=\"mt-4 flex justify-content-end\">\r\n\t\t<aril-button\r\n\t\t\tcolor=\"danger\"\r\n\t\t\t[outlined]=\"true\"\r\n\t\t\t[label]=\"translocoService.translate('cancel')\"\r\n\t\t\t[raised]=\"false\"\r\n\t\t\ticon=\"TIMES\"\r\n\t\t\t(clickEvent)=\"close()\" />\r\n\t\t<aril-button\r\n\t\t\t[label]=\"translocoService.translate('save')\"\r\n\t\t\tcolor=\"success\"\r\n\t\t\ticon=\"CHECK\"\r\n\t\t\tclass=\"ml-2\"\r\n\t\t\t(clickEvent)=\"save()\"\r\n\t\t\t[disabled]=\"isSaveDisabled()\" />\r\n\t</div>\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { BaseInputComponent, InputErrorMessagePipe, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport { ArilLangModalComponent } from './aril-lang-modal/aril-lang-modal.component';\r\nimport { TranslationObject } from './interface';\r\n\r\n@Component({\r\n\tselector: 'aril-translate-input[ngModel], aril-translate-input[formControl], aril-translate-input[formControlName]',\r\n\tstandalone: true,\r\n\timports: [FormsModule, ReactiveFormsModule, InputTextModule, TooltipModule, InputErrorMessagePipe, ButtonModule],\r\n\thostDirectives: [ValueAccessorDirective],\r\n\ttemplate: `\r\n\t\t<div class=\"p-inputgroup\">\r\n\t\t\t<input\r\n\t\t\t\tpInputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t\t[ngModel]=\"getDisplayValue()\"\r\n\t\t\t\t(ngModelChange)=\"onInputChange($event)\"\r\n\t\t\t\t[pTooltip]=\"shouldShowError() ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t\t\t[tooltipOptions]=\"tooltipOptions\" />\r\n\t\t\t<p-button icon=\"pi pi-language\" (onClick)=\"openModal()\" styleClass=\"p-button-text p-button-rounded\"> </p-button>\r\n\t\t</div>\r\n\t`,\r\n\tstyles: [\r\n\t\t`\r\n\t\t\t:host ::ng-deep .p-inputgroup {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\talign-items: center;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup .p-inputtext {\r\n\t\t\t\tflex: 1 1 auto;\r\n\t\t\t\tborder-top-right-radius: 0;\r\n\t\t\t\tborder-bottom-right-radius: 0;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup .p-button {\r\n\t\t\t\tborder-top-left-radius: 0;\r\n\t\t\t\tborder-bottom-left-radius: 0;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup-sm .p-inputtext,\r\n\t\t\t:host ::ng-deep .p-inputgroup-sm .p-button {\r\n\t\t\t\tline-height: 1.3;\r\n\t\t\t}\r\n\t\t`\r\n\t]\r\n})\r\nexport class ArilTranslateInputComponent extends BaseInputComponent {\r\n\tplaceholder = input<string>('');\r\n\tmandatoryLanguages = input<string[]>();\r\n\r\n\tvalue: TranslationObject = {};\r\n\tcurrentLang!: string;\r\n\r\n\tonChange = (used: any) => {};\r\n\tonTouch = () => {};\r\n\r\n\tconstructor(\r\n\t\treadonly dialogService: DialogService,\r\n\t\treadonly translocoService: TranslocoService\r\n\t) {\r\n\t\tsuper();\r\n\t\tthis.currentLang = this.translocoService.getActiveLang();\r\n\t}\r\n\r\n\twriteValue(value: TranslationObject): void {\r\n\t\tif (!value) {\r\n\t\t\tthis.value = {};\r\n\t\t} else if (typeof value === 'object') {\r\n\t\t\tthis.value = value || {};\r\n\t\t} else {\r\n\t\t\tconsole.error('Invalid value type for translations, expected object');\r\n\t\t\tthis.value = {};\r\n\t\t}\r\n\t\tthis.updateFormControlSilently(this.value);\r\n\t}\r\n\r\n\tprivate updateFormControlSilently(value: TranslationObject): void {\r\n\t\tif (this.ngControl?.control) {\r\n\t\t\tthis.ngControl.control.setValue(value, { emitEvent: false });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateValueAndFormControl(newValue: TranslationObject): void {\r\n\t\tthis.value = { ...newValue };\r\n\t\tthis.updateFormControlSilently(this.value);\r\n\t\tthis.onChange(this.value);\r\n\t\tthis.onTouch();\r\n\t}\r\n\r\n\tonInputChange(newValue: string): void {\r\n\t\tconst updatedValue = {\r\n\t\t\t...this.value,\r\n\t\t\t[this.currentLang]: newValue\r\n\t\t};\r\n\t\tthis.updateValueAndFormControl(updatedValue);\r\n\t}\r\n\r\n\tgetDisplayValue(): string {\r\n\t\tlet translationObj = this.value;\r\n\r\n\t\tconst controlValue = this.ngControl?.control?.value;\r\n\t\tif (controlValue && typeof controlValue === 'object') {\r\n\t\t\ttranslationObj = controlValue;\r\n\t\t}\r\n\r\n\t\treturn translationObj?.[this.currentLang] || '';\r\n\t}\r\n\r\n\topenModal() {\r\n\t\tconst currentTranslations = this.ngControl?.control?.value || this.value || {};\r\n\t\tconst ref = this.dialogService.open(ArilLangModalComponent, {\r\n\t\t\twidth: '40%',\r\n\t\t\tdata: {\r\n\t\t\t\ttranslations: { ...currentTranslations },\r\n\t\t\t\tcurrentLang: this.currentLang,\r\n\t\t\t\tmandatoryLanguages: this.mandatoryLanguages()\r\n\t\t\t},\r\n\t\t\theader: this.translocoService.translate('translationModal.title')\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe((result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.updateValueAndFormControl(result);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.updateValueAndFormControl({ ...result });\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshouldShowError(): boolean {\r\n\t\tif (!this.ngControl?.invalid) return false;\r\n\t\tif (this.value && typeof this.value === 'object') {\r\n\t\t\tconst hasAnyTranslation = Object.values(this.value).some((val) => val && val.trim() !== '');\r\n\t\t\tif (hasAnyTranslation) return false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aril-ui-translate-input.mjs","sources":["../../projects/aril/ui/translate-input/src/aril-lang-modal/constants.ts","../../projects/aril/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.ts","../../projects/aril/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.html","../../projects/aril/ui/translate-input/src/aril-translate-input.component.ts","../../projects/aril/ui/translate-input/aril-ui-translate-input.ts"],"sourcesContent":["import { LanguageDto } from '../interface';\r\n\r\nexport const ALL_LANGS: LanguageDto[] = [\r\n\t{ code: 'en', name: '🇬🇧 English' },\r\n\t{ code: 'tr', name: '🇹🇷 Türkçe' },\r\n\t{ code: 'de', name: '🇩🇪 Deutsch' },\r\n\t{ code: 'fr', name: '🇫🇷 Français' },\r\n\t{ code: 'es', name: '🇪🇸 Español' },\r\n\t{ code: 'ar', name: '🇸🇦 العربية (السعودية)' },\r\n\t{ code: 'he', name: '🇮🇱 עברית' },\r\n\t{ code: 'fa', name: '🇮🇷 فارسی' },\r\n\t{ code: 'ro', name: '🇷🇴 Română' },\r\n\t{ code: 'ru', name: '🇷🇺 Русский' },\r\n\t{ code: 'ja', name: '🇯🇵 日本語' },\r\n\t{ code: 'zh', name: '🇨🇳 简体中文' }\r\n];\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { TagModule } from 'primeng/tag';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { EnumPickerComponent } from 'aril/ui-business/enumPicker';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { FieldComponent } from 'aril/ui/field';\r\nimport { TextComponent } from 'aril/ui/text';\r\n\r\nimport { LangModalData, TranslationObject } from '../interface';\r\nimport { ALL_LANGS } from './constants';\r\n\r\n@Component({\r\n\tselector: 'aril-lang-modal',\r\n\timports: [\r\n\t\tTextComponent,\r\n\t\tFormsModule,\r\n\t\tCommonModule,\r\n\t\tButtonComponent,\r\n\t\tTranslocoModule,\r\n\t\tFieldComponent,\r\n\t\tEnumPickerComponent,\r\n\t\tTagModule\r\n\t],\r\n\tstandalone: true,\r\n\ttemplateUrl: 'aril-lang-modal.component.html',\r\n\tstyleUrls: ['aril-lang-modal.component.scss']\r\n})\r\nexport class ArilLangModalComponent {\r\n\ttranslocoService = inject(TranslocoService);\r\n\tselectedLanguages: string[] = ['tr', 'en'];\r\n\tavailableLanguages = ALL_LANGS;\r\n\ttranslations: TranslationObject = {};\r\n\tmandatoryLanguages: string[] = [];\r\n\r\n\tconstructor(\r\n\t\tpublic config: DynamicDialogConfig<LangModalData>,\r\n\t\tpublic ref: DynamicDialogRef\r\n\t) {\r\n\t\tthis.translations = { ...this.config.data?.translations };\r\n\t\tthis.mandatoryLanguages = this.config.data?.mandatoryLanguages || [];\r\n\t}\r\n\r\n\tsave() {\r\n\t\tconst allowed = new Set(this.selectedLanguages);\r\n\t\t// only output the languages that are selected\r\n\t\tconst outputTranslations = Object.fromEntries(Object.entries(this.translations).filter(([k]) => allowed.has(k)));\r\n\t\tthis.ref.close(outputTranslations);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.ref.close();\r\n\t}\r\n\r\n\tgetLabel(code: string) {\r\n\t\treturn this.availableLanguages.find((lang) => lang.code === code)?.name;\r\n\t}\r\n\r\n\tisSaveDisabled() {\r\n\t\treturn this.mandatoryLanguages?.some((lang) => !this.selectedLanguages.includes(lang) || !this.translations[lang]);\r\n\t}\r\n\r\n\tgetInfoText() {\r\n\t\treturn this.translocoService.translate('translationModal.mandatoryLanguages', {\r\n\t\t\tlanguages: this.mandatoryLanguages?.map((lang) => this.getLabel(lang)).join(', ')\r\n\t\t});\r\n\t}\r\n}\r\n","<div>\r\n\t<aril-field\r\n\t\t[label]=\"translocoService.translate('translationModal.addLanguage')\"\r\n\t\t[cols]=\"{ default: 12 }\"\r\n\t\tclass=\"mb-4 block\">\r\n\t\t<enum-picker\r\n\t\t\t[(ngModel)]=\"selectedLanguages\"\r\n\t\t\t[items]=\"availableLanguages\"\r\n\t\t\t[isMultiple]=\"true\"\r\n\t\t\titemKey=\"code\"\r\n\t\t\titemText=\"name\" />\r\n\t</aril-field>\r\n\r\n\t@for (lang of selectedLanguages; track lang) {\r\n\t\t<div class=\"border-1 border-gray-300 border-round py-2 px-4 mb-2 flex justify-content-between items-center\">\r\n\t\t\t<aril-field labelPos=\"left\" [label]=\"getLabel(lang)\" [cols]=\"{ default: 12 }\" [labelWidth]=\"15\" [valueWidth]=\"85\">\r\n\t\t\t\t<aril-text class=\"value-input\" [(ngModel)]=\"translations[lang]\" />\r\n\t\t\t</aril-field>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<div class=\"mt-4\">\r\n\t\t@if (mandatoryLanguages.length && isSaveDisabled()) {\r\n\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t<p-tag [value]=\"getInfoText()\" severity=\"info\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div class=\"mt-4 flex justify-content-end\">\r\n\t\t<aril-button\r\n\t\t\tcolor=\"danger\"\r\n\t\t\t[outlined]=\"true\"\r\n\t\t\t[label]=\"translocoService.translate('cancel')\"\r\n\t\t\t[raised]=\"false\"\r\n\t\t\ticon=\"TIMES\"\r\n\t\t\t(clickEvent)=\"close()\" />\r\n\t\t<aril-button\r\n\t\t\t[label]=\"translocoService.translate('save')\"\r\n\t\t\tcolor=\"success\"\r\n\t\t\ticon=\"CHECK\"\r\n\t\t\tclass=\"ml-2\"\r\n\t\t\t(clickEvent)=\"save()\"\r\n\t\t\t[disabled]=\"isSaveDisabled()\" />\r\n\t</div>\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { BaseInputComponent, InputErrorMessagePipe, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport { ArilLangModalComponent } from './aril-lang-modal/aril-lang-modal.component';\r\nimport { TranslationObject } from './interface';\r\n\r\n@Component({\r\n\tselector: 'aril-translate-input[ngModel], aril-translate-input[formControl], aril-translate-input[formControlName]',\r\n\tstandalone: true,\r\n\timports: [FormsModule, ReactiveFormsModule, InputTextModule, TooltipModule, InputErrorMessagePipe, ButtonModule],\r\n\thostDirectives: [ValueAccessorDirective],\r\n\ttemplate: `\r\n\t\t<div class=\"p-inputgroup\">\r\n\t\t\t<input\r\n\t\t\t\tpInputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t\t[ngModel]=\"getDisplayValue()\"\r\n\t\t\t\t(ngModelChange)=\"onInputChange($event)\"\r\n\t\t\t\t[pTooltip]=\"shouldShowError() ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\t\t\t\t[tooltipOptions]=\"tooltipOptions\" />\r\n\t\t\t<p-button icon=\"pi pi-language\" (onClick)=\"openModal()\" styleClass=\"p-button-text p-button-rounded\"> </p-button>\r\n\t\t</div>\r\n\t`,\r\n\tstyles: [\r\n\t\t`\r\n\t\t\t:host ::ng-deep .p-inputgroup {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\talign-items: center;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup .p-inputtext {\r\n\t\t\t\tflex: 1 1 auto;\r\n\t\t\t\tborder-top-right-radius: 0;\r\n\t\t\t\tborder-bottom-right-radius: 0;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup .p-button {\r\n\t\t\t\tborder-top-left-radius: 0;\r\n\t\t\t\tborder-bottom-left-radius: 0;\r\n\t\t\t}\r\n\r\n\t\t\t:host ::ng-deep .p-inputgroup-sm .p-inputtext,\r\n\t\t\t:host ::ng-deep .p-inputgroup-sm .p-button {\r\n\t\t\t\tline-height: 1.3;\r\n\t\t\t}\r\n\t\t`\r\n\t]\r\n})\r\nexport class ArilTranslateInputComponent extends BaseInputComponent {\r\n\tplaceholder = input<string>('');\r\n\tmandatoryLanguages = input<string[]>();\r\n\r\n\tvalue: TranslationObject = {};\r\n\tcurrentLang!: string;\r\n\r\n\tonChange = (used: any) => {};\r\n\tonTouch = () => {};\r\n\r\n\tconstructor(\r\n\t\treadonly dialogService: DialogService,\r\n\t\treadonly translocoService: TranslocoService\r\n\t) {\r\n\t\tsuper();\r\n\t\tthis.currentLang = this.translocoService.getActiveLang();\r\n\t}\r\n\r\n\twriteValue(value: TranslationObject): void {\r\n\t\tif (!value) {\r\n\t\t\tthis.value = {};\r\n\t\t} else if (typeof value === 'object') {\r\n\t\t\tthis.value = value || {};\r\n\t\t} else {\r\n\t\t\tconsole.error('Invalid value type for translations, expected object');\r\n\t\t\tthis.value = {};\r\n\t\t}\r\n\t\tthis.updateFormControlSilently(this.value);\r\n\t}\r\n\r\n\tprivate updateFormControlSilently(value: TranslationObject): void {\r\n\t\tif (this.ngControl?.control) {\r\n\t\t\tthis.ngControl.control.setValue(value, { emitEvent: false });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateValueAndFormControl(newValue: TranslationObject): void {\r\n\t\tthis.value = { ...newValue };\r\n\t\tthis.updateFormControlSilently(this.value);\r\n\t\tthis.onChange(this.value);\r\n\t\tthis.onTouch();\r\n\t}\r\n\r\n\tonInputChange(newValue: string): void {\r\n\t\tconst updatedValue = {\r\n\t\t\t...this.value,\r\n\t\t\t[this.currentLang]: newValue\r\n\t\t};\r\n\t\tthis.updateValueAndFormControl(updatedValue);\r\n\t}\r\n\r\n\tgetDisplayValue(): string {\r\n\t\tlet translationObj = this.value;\r\n\r\n\t\tconst controlValue = this.ngControl?.control?.value;\r\n\t\tif (controlValue && typeof controlValue === 'object') {\r\n\t\t\ttranslationObj = controlValue;\r\n\t\t}\r\n\r\n\t\treturn translationObj?.[this.currentLang] || '';\r\n\t}\r\n\r\n\topenModal() {\r\n\t\tconst currentTranslations = this.ngControl?.control?.value || this.value || {};\r\n\t\tconst ref = this.dialogService.open(ArilLangModalComponent, {\r\n\t\t\twidth: '40%',\r\n\t\t\tdata: {\r\n\t\t\t\ttranslations: { ...currentTranslations },\r\n\t\t\t\tcurrentLang: this.currentLang,\r\n\t\t\t\tmandatoryLanguages: this.mandatoryLanguages()\r\n\t\t\t},\r\n\t\t\theader: this.translocoService.translate('translationModal.title')\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe((result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.updateValueAndFormControl(result);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.updateValueAndFormControl({ ...result });\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshouldShowError(): boolean {\r\n\t\tif (!this.ngControl?.invalid) return false;\r\n\t\tif (this.value && typeof this.value === 'object') {\r\n\t\t\tconst hasAnyTranslation = Object.values(this.value).some((val) => val && val.trim() !== '');\r\n\t\t\tif (hasAnyTranslation) return false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3"],"mappings":"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"}
|