@ldw-framework/material-langs 0.1.0

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.
@@ -0,0 +1,294 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, EventEmitter, Injectable, Input, Component, NgModule } from '@angular/core';
4
+ import * as i1 from '@angular/forms';
5
+ import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import * as i2 from '@angular/material/form-field';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import * as i3 from '@angular/material/input';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import * as i1$1 from '@angular/material/tabs';
11
+ import { MatTabsModule } from '@angular/material/tabs';
12
+ import { LDuAnguBootTranslationPipe } from '@ldu-anguboot/i18n';
13
+
14
+ const LDW_MAT_MULTI_LANG = new InjectionToken('LDW_MAT_MULTI_LANG');
15
+
16
+ class LDwMaterialMultiLangService {
17
+ ENV$ = inject(LDW_MAT_MULTI_LANG);
18
+ storage$ = localStorage;
19
+ key = this.ENV.storageKey;
20
+ selectedLang;
21
+ selectedLangIdx;
22
+ selectedLangChange = new EventEmitter();
23
+ onInit() {
24
+ if (!this.check()) {
25
+ this.setByIdx(0);
26
+ }
27
+ else {
28
+ this.setByValue(this.get() ?? '');
29
+ }
30
+ }
31
+ onChange() {
32
+ return this.selectedLangChange;
33
+ }
34
+ setByIdx(idx) {
35
+ this.selectedLangIdx = idx;
36
+ this.selectedLang = this.langs[this.selectedLangIdx];
37
+ this.set(this.selectedLang.value);
38
+ this.selectedLangChange.emit(this.selectedLang);
39
+ }
40
+ getSelectedValue() {
41
+ return this.selectedLang?.value ?? '-';
42
+ }
43
+ setByValue(value) {
44
+ this.setByIdx(this.langs.findIndex(lang => lang.value === value));
45
+ }
46
+ check() {
47
+ return !!this.get();
48
+ }
49
+ get() {
50
+ return this.storage.getItem(this.key);
51
+ }
52
+ set(value) {
53
+ this.storage.setItem(this.key, value);
54
+ }
55
+ remove() {
56
+ this.storage.removeItem(this.key);
57
+ }
58
+ get ENV() { return this.ENV$; }
59
+ get storage() { return this.storage$; }
60
+ get langs() { return this.ENV.langs ?? []; }
61
+ get langIdx() { return this.selectedLangIdx ?? 0; }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
63
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangService, providedIn: 'root' });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangService, decorators: [{
66
+ type: Injectable,
67
+ args: [{ providedIn: 'root' }]
68
+ }] });
69
+
70
+ class LDwMaterialMultiLangInputComponent {
71
+ service = inject(LDwMaterialMultiLangService);
72
+ formGroup = new FormGroup({
73
+ value: new FormControl(null, [])
74
+ });
75
+ formParent = new FormGroup({
76
+ value: new FormControl(null, [])
77
+ });
78
+ formParentControlName = 'value';
79
+ label = 'Value';
80
+ required = false;
81
+ requiredLabel = 'required';
82
+ appearance = 'outline';
83
+ readonly = false;
84
+ loaded = false;
85
+ constructor() {
86
+ this.service.onChange().subscribe(lang => this.read(lang.value));
87
+ }
88
+ ngOnInit() {
89
+ this.fill();
90
+ this.read(this.service.getSelectedValue());
91
+ this.langJson.registerOnChange(() => {
92
+ if (!this.loaded) {
93
+ this.loaded = true;
94
+ this.read(this.service.getSelectedValue());
95
+ }
96
+ });
97
+ }
98
+ onChange() {
99
+ this.write(this.service.getSelectedValue());
100
+ }
101
+ fill() {
102
+ let filled = false;
103
+ const json = JSON.parse(this.langJson?.value ?? '{}');
104
+ this.service.langs.forEach(l => {
105
+ if (!json[l.value]) {
106
+ json[l.value] = '';
107
+ filled = true;
108
+ }
109
+ });
110
+ if (filled) {
111
+ this.langJson.setValue(JSON.stringify(json));
112
+ }
113
+ }
114
+ read(lang) {
115
+ const json = JSON.parse(this.langJson?.value ?? '{}');
116
+ if (!json[lang]) {
117
+ json[lang] = '';
118
+ }
119
+ this.langValue.setValue(json[lang]);
120
+ this.langJson.setValue(JSON.stringify(json));
121
+ }
122
+ write(lang) {
123
+ const json = JSON.parse(this.langJson?.value ?? '{}');
124
+ json[lang] = this.langValue.value;
125
+ this.langJson.setValue(JSON.stringify(json));
126
+ }
127
+ get langValue() {
128
+ return this.formGroup?.get('value');
129
+ }
130
+ get langJson() {
131
+ return this.formParent?.get(this.formParentControlName);
132
+ }
133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
134
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LDwMaterialMultiLangInputComponent, isStandalone: true, selector: "ldw-mat-multi-lang-input", inputs: { formParent: "formParent", formParentControlName: "formParentControlName", label: "label", required: "required", requiredLabel: "requiredLabel", appearance: "appearance", readonly: "readonly", loaded: "loaded" }, host: { classAttribute: "ldw-mat-multi-lang-input" }, ngImport: i0, template: `
135
+ <form
136
+ [formGroup]="formGroup"
137
+ novalidate
138
+ ><mat-form-field
139
+ [appearance]="appearance"
140
+ ><mat-label
141
+ [innerHTML]="label" />
142
+ <input matInput
143
+ name="value"
144
+ formControlName="value"
145
+ [readonly]="readonly"
146
+ [required]="required"
147
+ (change)="onChange()"
148
+ />
149
+ @if (langValue.touched)
150
+ {
151
+ @if (langValue.hasError('required'))
152
+ {
153
+ <mat-error
154
+ [innerHTML]="requiredLabel" />
155
+ }
156
+ }
157
+ </mat-form-field>
158
+ </form>
159
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] });
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangInputComponent, decorators: [{
162
+ type: Component,
163
+ args: [{
164
+ selector: 'ldw-mat-multi-lang-input',
165
+ host: { class: 'ldw-mat-multi-lang-input' },
166
+ imports: [
167
+ CommonModule,
168
+ FormsModule,
169
+ ReactiveFormsModule,
170
+ MatFormFieldModule,
171
+ MatInputModule,
172
+ ],
173
+ template: `
174
+ <form
175
+ [formGroup]="formGroup"
176
+ novalidate
177
+ ><mat-form-field
178
+ [appearance]="appearance"
179
+ ><mat-label
180
+ [innerHTML]="label" />
181
+ <input matInput
182
+ name="value"
183
+ formControlName="value"
184
+ [readonly]="readonly"
185
+ [required]="required"
186
+ (change)="onChange()"
187
+ />
188
+ @if (langValue.touched)
189
+ {
190
+ @if (langValue.hasError('required'))
191
+ {
192
+ <mat-error
193
+ [innerHTML]="requiredLabel" />
194
+ }
195
+ }
196
+ </mat-form-field>
197
+ </form>
198
+ `
199
+ }]
200
+ }], ctorParameters: () => [], propDecorators: { formParent: [{
201
+ type: Input,
202
+ args: [{ required: true }]
203
+ }], formParentControlName: [{
204
+ type: Input,
205
+ args: [{ required: true }]
206
+ }], label: [{
207
+ type: Input,
208
+ args: [{ required: true }]
209
+ }], required: [{
210
+ type: Input
211
+ }], requiredLabel: [{
212
+ type: Input
213
+ }], appearance: [{
214
+ type: Input
215
+ }], readonly: [{
216
+ type: Input
217
+ }], loaded: [{
218
+ type: Input
219
+ }] } });
220
+
221
+ class LDwMaterialMultiLangSelectorComponent {
222
+ service = inject(LDwMaterialMultiLangService);
223
+ langs = this.service.langs;
224
+ langIdx = 0;
225
+ ngOnInit() {
226
+ this.langIdx = this.service.langIdx ?? 0;
227
+ }
228
+ onChange($event) {
229
+ this.service.setByIdx($event);
230
+ }
231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LDwMaterialMultiLangSelectorComponent, isStandalone: true, selector: "ldw-mat-multi-lang-selector", host: { classAttribute: "ldw-mat-multi-lang-selector" }, ngImport: i0, template: `
233
+ <mat-tab-group
234
+ animationDuration="0ms"
235
+ [selectedIndex]="langIdx"
236
+ (selectedIndexChange)="onChange($event)"
237
+ >
238
+ @for (lang of langs; track lang.value)
239
+ {
240
+ <mat-tab [label]="lang.label | i18n"></mat-tab>
241
+ }
242
+ </mat-tab-group>
243
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i1$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i1$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "pipe", type: LDuAnguBootTranslationPipe, name: "i18n" }] });
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangSelectorComponent, decorators: [{
246
+ type: Component,
247
+ args: [{
248
+ selector: 'ldw-mat-multi-lang-selector',
249
+ host: { class: 'ldw-mat-multi-lang-selector' },
250
+ imports: [
251
+ CommonModule,
252
+ LDuAnguBootTranslationPipe,
253
+ MatTabsModule,
254
+ ],
255
+ template: `
256
+ <mat-tab-group
257
+ animationDuration="0ms"
258
+ [selectedIndex]="langIdx"
259
+ (selectedIndexChange)="onChange($event)"
260
+ >
261
+ @for (lang of langs; track lang.value)
262
+ {
263
+ <mat-tab [label]="lang.label | i18n"></mat-tab>
264
+ }
265
+ </mat-tab-group>
266
+ `
267
+ }]
268
+ }] });
269
+
270
+ const components = [
271
+ LDwMaterialMultiLangSelectorComponent,
272
+ LDwMaterialMultiLangInputComponent,
273
+ ];
274
+ class LDwMaterialMultiLangModule {
275
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
276
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, imports: [LDwMaterialMultiLangSelectorComponent,
277
+ LDwMaterialMultiLangInputComponent], exports: [LDwMaterialMultiLangSelectorComponent,
278
+ LDwMaterialMultiLangInputComponent] });
279
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, imports: [components] });
280
+ }
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, decorators: [{
282
+ type: NgModule,
283
+ args: [{
284
+ imports: [...components],
285
+ exports: [...components]
286
+ }]
287
+ }] });
288
+
289
+ /**
290
+ * Generated bundle index. Do not edit.
291
+ */
292
+
293
+ export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorComponent, LDwMaterialMultiLangService };
294
+ //# sourceMappingURL=ldw-framework-material-langs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ldw-framework-material-langs.mjs","sources":["../../../lib/src/config/ldw-mat-multi-lang.config.ts","../../../lib/src/services/ldw-mat-multi-lang.service.ts","../../../lib/src/components/ldw-mat-multi-lang-input.component.ts","../../../lib/src/components/ldw-mat-multi-lang-selector.component.ts","../../../lib/src/modules/ldw-mat-multi-lang.module.ts","../../../lib/src/ldw-framework-material-langs.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LDwMaterialMultiLang } from '../models/ldw-mat-multi-lang.model';\n\nexport const LDW_MAT_MULTI_LANG = new InjectionToken<{\n storageKey: string;\n langs: LDwMaterialMultiLang[];\n}>('LDW_MAT_MULTI_LANG');\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { LDW_MAT_MULTI_LANG } from '../config/ldw-mat-multi-lang.config';\nimport { LDwMaterialMultiLang } from '../models/ldw-mat-multi-lang.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LDwMaterialMultiLangService {\n\n protected readonly ENV$ = inject(LDW_MAT_MULTI_LANG);\n\n protected readonly storage$ = localStorage;\n\n protected readonly key = this.ENV.storageKey;\n\n protected selectedLang: LDwMaterialMultiLang | null | undefined;\n\n protected selectedLangIdx: number | null | undefined;\n\n protected selectedLangChange = new EventEmitter<LDwMaterialMultiLang>();\n\n onInit() {\n if (!this.check()) {\n this.setByIdx(0);\n } else {\n this.setByValue(this.get() ?? '');\n }\n }\n\n onChange() {\n return this.selectedLangChange;\n }\n\n setByIdx(idx: number) {\n this.selectedLangIdx = idx;\n this.selectedLang = this.langs[this.selectedLangIdx];\n this.set(this.selectedLang.value);\n this.selectedLangChange.emit(this.selectedLang);\n }\n\n getSelectedValue() {\n return this.selectedLang?.value ?? '-';\n }\n\n setByValue(value: string) {\n this.setByIdx(this.langs.findIndex(lang => lang.value === value));\n }\n\n protected check() {\n return !!this.get();\n }\n\n protected get() {\n return this.storage.getItem(this.key);\n }\n\n protected set(value: string) {\n this.storage.setItem(this.key, value);\n }\n\n protected remove() {\n this.storage.removeItem(this.key);\n }\n\n get ENV() { return this.ENV$; }\n\n get storage() { return this.storage$; }\n\n get langs() { return this.ENV.langs ?? []; }\n\n get langIdx() { return this.selectedLangIdx ?? 0; }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { LDwMaterialMultiLangService } from '../services/ldw-mat-multi-lang.service';\n\n@Component({\n selector: 'ldw-mat-multi-lang-input',\n host: { class: 'ldw-mat-multi-lang-input' },\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n ],\n template: `\n <form\n [formGroup]=\"formGroup\"\n novalidate\n ><mat-form-field\n [appearance]=\"appearance\"\n ><mat-label\n [innerHTML]=\"label\" />\n <input matInput\n name=\"value\"\n formControlName=\"value\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"onChange()\"\n />\n @if (langValue.touched)\n {\n @if (langValue.hasError('required'))\n {\n <mat-error\n [innerHTML]=\"requiredLabel\" />\n }\n }\n </mat-form-field>\n </form>\n`})\nexport class LDwMaterialMultiLangInputComponent implements OnInit {\n\n private readonly service = inject(LDwMaterialMultiLangService);\n\n formGroup = new FormGroup({\n value: new FormControl<string | null | undefined>(null, [])\n });\n\n @Input({ required: true })\n formParent: FormGroup = new FormGroup({\n value: new FormControl<string | null | undefined>(null, [])\n });\n\n @Input({ required: true }) formParentControlName = 'value';\n\n @Input({ required: true }) label = 'Value';\n\n @Input() required = false;\n\n @Input() requiredLabel = 'required';\n\n @Input() appearance: 'fill' | 'outline' = 'outline';\n\n @Input() readonly = false;\n\n @Input() loaded = false;\n\n constructor() {\n this.service.onChange().subscribe(lang => this.read(lang.value));\n }\n\n ngOnInit() {\n this.fill();\n this.read(this.service.getSelectedValue());\n this.langJson.registerOnChange(() => {\n if (!this.loaded) {\n this.loaded = true;\n this.read(this.service.getSelectedValue());\n }\n });\n }\n\n onChange() {\n this.write(this.service.getSelectedValue());\n }\n\n private fill() {\n let filled = false;\n const json = JSON.parse(this.langJson?.value ?? '{}');\n this.service.langs.forEach(l => {\n if (!json[l.value]) {\n json[l.value] = '';\n filled = true;\n }\n });\n if (filled) {\n this.langJson.setValue(JSON.stringify(json));\n }\n }\n\n private read(lang: string) {\n const json = JSON.parse(this.langJson?.value ?? '{}');\n if (!json[lang]) {\n json[lang] = '';\n }\n this.langValue.setValue(json[lang]);\n this.langJson.setValue(JSON.stringify(json));\n }\n\n private write(lang: string) {\n const json = JSON.parse(this.langJson?.value ?? '{}');\n json[lang] = this.langValue.value;\n this.langJson.setValue(JSON.stringify(json));\n }\n\n get langValue() {\n return this.formGroup?.get('value') as FormControl<string | null | undefined>;\n }\n\n get langJson() {\n return this.formParent?.get(this.formParentControlName) as FormControl<string | null | undefined>;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { LDuAnguBootTranslationPipe } from '@ldu-anguboot/i18n';\nimport { LDwMaterialMultiLangService } from '../services/ldw-mat-multi-lang.service';\n\n@Component({\n selector: 'ldw-mat-multi-lang-selector',\n host: { class: 'ldw-mat-multi-lang-selector' },\n imports: [\n CommonModule,\n LDuAnguBootTranslationPipe,\n MatTabsModule,\n ],\n template: `\n <mat-tab-group\n animationDuration=\"0ms\"\n [selectedIndex]=\"langIdx\"\n (selectedIndexChange)=\"onChange($event)\"\n >\n @for (lang of langs; track lang.value)\n {\n <mat-tab [label]=\"lang.label | i18n\"></mat-tab>\n }\n </mat-tab-group>\n`})\nexport class LDwMaterialMultiLangSelectorComponent implements OnInit {\n\n private readonly service = inject(LDwMaterialMultiLangService);\n\n readonly langs = this.service.langs;\n\n langIdx = 0;\n\n ngOnInit() {\n this.langIdx = this.service.langIdx ?? 0;\n }\n\n onChange($event: number) {\n this.service.setByIdx($event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LDwMaterialMultiLangInputComponent } from '../components/ldw-mat-multi-lang-input.component';\nimport { LDwMaterialMultiLangSelectorComponent } from '../components/ldw-mat-multi-lang-selector.component';\n\nconst components = [\n LDwMaterialMultiLangSelectorComponent,\n LDwMaterialMultiLangInputComponent,\n];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class LDwMaterialMultiLangModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@ldw-framework/material-langs",
3
+ "version": "0.1.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^21.0.0",
6
+ "@angular/core": "^21.0.0",
7
+ "@angular/forms": "^21.0.0",
8
+ "@angular/material": "^21.0.0",
9
+ "@ldu-anguboot/i18n": "latest"
10
+ },
11
+ "module": "fesm2022/ldw-framework-material-langs.mjs",
12
+ "typings": "types/ldw-framework-material-langs.d.ts",
13
+ "exports": {
14
+ "./package.json": {
15
+ "default": "./package.json"
16
+ },
17
+ ".": {
18
+ "types": "./types/ldw-framework-material-langs.d.ts",
19
+ "default": "./fesm2022/ldw-framework-material-langs.mjs"
20
+ }
21
+ },
22
+ "sideEffects": false,
23
+ "dependencies": {
24
+ "tslib": "^2.3.0"
25
+ }
26
+ }
@@ -0,0 +1,14 @@
1
+ .ldw-mat-multi-lang-input {
2
+ width: 100%;
3
+ margin-left: 8px;
4
+ margin-right: -8px;
5
+
6
+ form {
7
+ width: 100%;
8
+ }
9
+ }
10
+
11
+ .ldw-mat-multi-lang-selector {
12
+ margin-bottom: 1rem;
13
+ display: block;
14
+ }
@@ -0,0 +1,88 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, InjectionToken, EventEmitter } from '@angular/core';
3
+ import { FormGroup, FormControl } from '@angular/forms';
4
+ import * as _ldw_framework_material_langs from '@ldw-framework/material-langs';
5
+
6
+ declare class LDwMaterialMultiLangInputComponent implements OnInit {
7
+ private readonly service;
8
+ formGroup: FormGroup<{
9
+ value: FormControl<string | null | undefined>;
10
+ }>;
11
+ formParent: FormGroup;
12
+ formParentControlName: string;
13
+ label: string;
14
+ required: boolean;
15
+ requiredLabel: string;
16
+ appearance: 'fill' | 'outline';
17
+ readonly: boolean;
18
+ loaded: boolean;
19
+ constructor();
20
+ ngOnInit(): void;
21
+ onChange(): void;
22
+ private fill;
23
+ private read;
24
+ private write;
25
+ get langValue(): FormControl<string | null | undefined>;
26
+ get langJson(): FormControl<string | null | undefined>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangInputComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<LDwMaterialMultiLangInputComponent, "ldw-mat-multi-lang-input", never, { "formParent": { "alias": "formParent"; "required": true; }; "formParentControlName": { "alias": "formParentControlName"; "required": true; }; "label": { "alias": "label"; "required": true; }; "required": { "alias": "required"; "required": false; }; "requiredLabel": { "alias": "requiredLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "loaded": { "alias": "loaded"; "required": false; }; }, {}, never, never, true, never>;
29
+ }
30
+
31
+ declare class LDwMaterialMultiLangSelectorComponent implements OnInit {
32
+ private readonly service;
33
+ readonly langs: _ldw_framework_material_langs.LDwMaterialMultiLang[];
34
+ langIdx: number;
35
+ ngOnInit(): void;
36
+ onChange($event: number): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangSelectorComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<LDwMaterialMultiLangSelectorComponent, "ldw-mat-multi-lang-selector", never, {}, {}, never, never, true, never>;
39
+ }
40
+
41
+ interface LDwMaterialMultiLang {
42
+ label: string;
43
+ value: string;
44
+ }
45
+
46
+ declare const LDW_MAT_MULTI_LANG: InjectionToken<{
47
+ storageKey: string;
48
+ langs: LDwMaterialMultiLang[];
49
+ }>;
50
+
51
+ declare class LDwMaterialMultiLangModule {
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangModule, never>;
53
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LDwMaterialMultiLangModule, never, [typeof LDwMaterialMultiLangSelectorComponent, typeof LDwMaterialMultiLangInputComponent], [typeof LDwMaterialMultiLangSelectorComponent, typeof LDwMaterialMultiLangInputComponent]>;
54
+ static ɵinj: i0.ɵɵInjectorDeclaration<LDwMaterialMultiLangModule>;
55
+ }
56
+
57
+ declare class LDwMaterialMultiLangService {
58
+ protected readonly ENV$: {
59
+ storageKey: string;
60
+ langs: LDwMaterialMultiLang[];
61
+ };
62
+ protected readonly storage$: Storage;
63
+ protected readonly key: string;
64
+ protected selectedLang: LDwMaterialMultiLang | null | undefined;
65
+ protected selectedLangIdx: number | null | undefined;
66
+ protected selectedLangChange: EventEmitter<LDwMaterialMultiLang>;
67
+ onInit(): void;
68
+ onChange(): EventEmitter<LDwMaterialMultiLang>;
69
+ setByIdx(idx: number): void;
70
+ getSelectedValue(): string;
71
+ setByValue(value: string): void;
72
+ protected check(): boolean;
73
+ protected get(): string | null;
74
+ protected set(value: string): void;
75
+ protected remove(): void;
76
+ get ENV(): {
77
+ storageKey: string;
78
+ langs: LDwMaterialMultiLang[];
79
+ };
80
+ get storage(): Storage;
81
+ get langs(): LDwMaterialMultiLang[];
82
+ get langIdx(): number;
83
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangService, never>;
84
+ static ɵprov: i0.ɵɵInjectableDeclaration<LDwMaterialMultiLangService>;
85
+ }
86
+
87
+ export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorComponent, LDwMaterialMultiLangService };
88
+ export type { LDwMaterialMultiLang };