@ldw-framework/material-langs 0.2.3 → 0.3.1

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.
@@ -11,7 +11,7 @@ import { MatInputModule } from '@angular/material/input';
11
11
  import { Editor, NgxEditorComponent, NgxEditorMenuComponent } from 'ngx-editor';
12
12
  import * as i1$1 from '@angular/material/tabs';
13
13
  import { MatTabsModule } from '@angular/material/tabs';
14
- import { LDuAnguBootTranslationPipe } from '@ldu-anguboot/i18n';
14
+ import { LDuAnguBootTranslationPipe, LDuAnguBootTranslationService } from '@ldu-anguboot/i18n';
15
15
 
16
16
  const LDW_MAT_MULTI_LANG = new InjectionToken('LDW_MAT_MULTI_LANG');
17
17
 
@@ -19,6 +19,7 @@ class LDwMaterialMultiLangService {
19
19
  ENV$ = inject(LDW_MAT_MULTI_LANG);
20
20
  storage$ = localStorage;
21
21
  key = this.ENV.storageKey;
22
+ defaultLangValue = this.ENV.defaultLangValue;
22
23
  selectedLang;
23
24
  selectedLangIdx;
24
25
  selectedLangChange = new EventEmitter();
@@ -40,11 +41,17 @@ class LDwMaterialMultiLangService {
40
41
  this.selectedLangChange.emit(this.selectedLang);
41
42
  }
42
43
  getSelectedValue() {
43
- return this.selectedLang?.value ?? '-';
44
+ return this.selectedLang?.value ?? this.defaultLangValue;
44
45
  }
45
46
  setByValue(value) {
46
47
  this.setByIdx(this.langs.findIndex(lang => lang.value === value));
47
48
  }
49
+ parse(value) {
50
+ return JSON.parse(value ?? '{}');
51
+ }
52
+ format(value) {
53
+ return JSON.stringify(value ?? '{}');
54
+ }
48
55
  check() {
49
56
  return !!this.get();
50
57
  }
@@ -267,7 +274,7 @@ class LDwMaterialMultiLangInputComponent {
267
274
  }
268
275
  fill() {
269
276
  let filled = false;
270
- const json = JSON.parse(this.langJson?.value ?? '{}');
277
+ const json = this.service.parse(this.langJson?.value);
271
278
  this.service.langs.forEach(l => {
272
279
  if (!json[l.value]) {
273
280
  json[l.value] = '';
@@ -275,21 +282,21 @@ class LDwMaterialMultiLangInputComponent {
275
282
  }
276
283
  });
277
284
  if (filled) {
278
- this.langJson.setValue(JSON.stringify(json));
285
+ this.langJson.setValue(this.service.format(json));
279
286
  }
280
287
  }
281
288
  read(lang) {
282
- const json = JSON.parse(this.langJson?.value ?? '{}');
289
+ const json = this.service.parse(this.langJson?.value);
283
290
  if (!json[lang]) {
284
291
  json[lang] = '';
285
292
  }
286
293
  this.langValue.setValue(json[lang]);
287
- this.langJson.setValue(JSON.stringify(json));
294
+ this.langJson.setValue(this.service.format(json));
288
295
  }
289
296
  write(lang) {
290
- const json = JSON.parse(this.langJson?.value ?? '{}');
297
+ const json = this.service.parse(this.langJson?.value);
291
298
  json[lang] = this.langValue.value;
292
- this.langJson.setValue(JSON.stringify(json));
299
+ this.langJson.setValue(this.service.format(json));
293
300
  }
294
301
  get readonly() { return this.readonly$; }
295
302
  ;
@@ -420,18 +427,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
420
427
  }]
421
428
  }] });
422
429
 
430
+ class LDwMaterialMultiLangTableCellComponent {
431
+ service = inject(LDwMaterialMultiLangService);
432
+ translationService = inject(LDuAnguBootTranslationService);
433
+ lang;
434
+ property;
435
+ value;
436
+ ngOnInit() {
437
+ const json = this.service.parse(this.property);
438
+ if (!this.lang) {
439
+ this.lang = this.translationService.getLang();
440
+ }
441
+ if (!json[this.lang]) {
442
+ json[this.lang] = '';
443
+ }
444
+ this.value = json[this.lang];
445
+ }
446
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangTableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
447
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: LDwMaterialMultiLangTableCellComponent, isStandalone: true, selector: "ldw-mat-multi-lang-table-cell", inputs: { lang: "lang", property: "property" }, host: { classAttribute: "ldw-mat-multi-lang-table-cell" }, ngImport: i0, template: `
448
+ <span [innerHTML]="value"></span>
449
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
450
+ }
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangTableCellComponent, decorators: [{
452
+ type: Component,
453
+ args: [{
454
+ selector: 'ldw-mat-multi-lang-table-cell',
455
+ host: { class: 'ldw-mat-multi-lang-table-cell' },
456
+ imports: [
457
+ CommonModule,
458
+ ],
459
+ template: `
460
+ <span [innerHTML]="value"></span>
461
+ `
462
+ }]
463
+ }], propDecorators: { lang: [{
464
+ type: Input
465
+ }], property: [{
466
+ type: Input,
467
+ args: [{ required: true }]
468
+ }] } });
469
+
423
470
  const components = [
424
471
  LDwMaterialMultiLangHTMLEditorComponent,
425
- LDwMaterialMultiLangSelectorTabGroupComponent,
426
472
  LDwMaterialMultiLangInputComponent,
473
+ LDwMaterialMultiLangSelectorTabGroupComponent,
474
+ LDwMaterialMultiLangTableCellComponent,
427
475
  ];
428
476
  class LDwMaterialMultiLangModule {
429
477
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
430
478
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, imports: [LDwMaterialMultiLangHTMLEditorComponent,
479
+ LDwMaterialMultiLangInputComponent,
431
480
  LDwMaterialMultiLangSelectorTabGroupComponent,
432
- LDwMaterialMultiLangInputComponent], exports: [LDwMaterialMultiLangHTMLEditorComponent,
481
+ LDwMaterialMultiLangTableCellComponent], exports: [LDwMaterialMultiLangHTMLEditorComponent,
482
+ LDwMaterialMultiLangInputComponent,
433
483
  LDwMaterialMultiLangSelectorTabGroupComponent,
434
- LDwMaterialMultiLangInputComponent] });
484
+ LDwMaterialMultiLangTableCellComponent] });
435
485
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, imports: [components] });
436
486
  }
437
487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LDwMaterialMultiLangModule, decorators: [{
@@ -446,5 +496,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
446
496
  * Generated bundle index. Do not edit.
447
497
  */
448
498
 
449
- export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangHTMLEditorComponent, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorTabGroupComponent, LDwMaterialMultiLangService };
499
+ export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangHTMLEditorComponent, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorTabGroupComponent, LDwMaterialMultiLangService, LDwMaterialMultiLangTableCellComponent };
450
500
  //# sourceMappingURL=ldw-framework-material-langs.mjs.map
@@ -1 +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-html-editor.component.ts","../../../lib/src/components/ldw-mat-multi-lang-input.component.ts","../../../lib/src/components/ldw-mat-multi-lang-selector-tab-group.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnDestroy, 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 { Editor, NgxEditorComponent, NgxEditorMenuComponent } from 'ngx-editor';\nimport { LDwMaterialMultiLangService } from '../services/ldw-mat-multi-lang.service';\n\n@Component({\n selector: 'ldw-mat-multi-lang-html-editor',\n host: { class: 'ldw-mat-multi-lang-html-editor' },\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n ],\n template: `\n <form\n [formGroup]=\"formGroup\"\n novalidate\n ><mat-form-field\n [appearance]=\"appearance\"\n ><mat-label\n [innerHTML]=\"label\" />\n <textarea matInput\n [style.display]=\"'none'\"\n name=\"value\"\n formControlName=\"value\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"onChange()\"\n ></textarea>\n <div class=\"ldw-mat-multi-lang-html-editor--instance\">\n <ngx-editor-menu\n [editor]=\"editor\" />\n <ngx-editor\n name=\"value\"\n formControlName=\"value\"\n [editor]=\"editor\"\n (focusOut)=\"onChange()\" />\n </div>\n <ng-content />\n </mat-form-field>\n </form>\n`})\nexport class LDwMaterialMultiLangHTMLEditorComponent implements OnInit, OnDestroy {\n\n private readonly service = inject(LDwMaterialMultiLangService);\n\n private loaded = false;\n\n private readonly$: string | boolean = false;\n\n private required$: string | boolean = false;\n\n editor = new Editor();\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 })\n formParentControlName = 'value';\n\n @Input({ required: true })\n label = 'Value';\n\n @Input()\n appearance: 'fill' | 'outline' = 'outline';\n\n @Input()\n set readonly(v) { this.readonly$ = coerceBooleanProperty(v); }\n\n @Input()\n set required(v) { this.required$ = coerceBooleanProperty(v); }\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 ngOnDestroy() {\n this.editor.destroy();\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 readonly() { return this.readonly$; };\n\n get required() { return this.required$; };\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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { 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 <ng-content />\n </mat-form-field>\n </form>\n`})\nexport class LDwMaterialMultiLangInputComponent implements OnInit {\n\n private readonly service = inject(LDwMaterialMultiLangService);\n\n private loaded = false;\n\n private readonly$: string | boolean = false;\n\n private required$: string | boolean = false;\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 })\n formParentControlName = 'value';\n\n @Input({ required: true })\n label = 'Value';\n\n @Input()\n appearance: 'fill' | 'outline' = 'outline';\n\n @Input()\n set readonly(v) { this.readonly$ = coerceBooleanProperty(v); }\n\n @Input()\n set required(v) { this.required$ = coerceBooleanProperty(v); }\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 readonly() { return this.readonly$; };\n\n get required() { return this.required$; };\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-tab-group',\n host: { class: 'ldw-mat-multi-lang-selector-tab-group' },\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 LDwMaterialMultiLangSelectorTabGroupComponent 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 { LDwMaterialMultiLangHTMLEditorComponent } from '../components/ldw-mat-multi-lang-html-editor.component';\nimport { LDwMaterialMultiLangInputComponent } from '../components/ldw-mat-multi-lang-input.component';\nimport { LDwMaterialMultiLangSelectorTabGroupComponent } from '../components/ldw-mat-multi-lang-selector-tab-group.component';\n\nconst components = [\n LDwMaterialMultiLangHTMLEditorComponent,\n LDwMaterialMultiLangSelectorTabGroupComponent,\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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"}
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-html-editor.component.ts","../../../lib/src/components/ldw-mat-multi-lang-input.component.ts","../../../lib/src/components/ldw-mat-multi-lang-selector-tab-group.component.ts","../../../lib/src/components/ldw-mat-multi-lang-table-cell.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 defaultLangValue: 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 private readonly ENV$ = inject(LDW_MAT_MULTI_LANG);\n\n private readonly storage$ = localStorage;\n\n private readonly key = this.ENV.storageKey;\n\n private readonly defaultLangValue = this.ENV.defaultLangValue;\n\n private selectedLang: LDwMaterialMultiLang | null | undefined;\n\n private selectedLangIdx: number | null | undefined;\n\n private 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 ?? this.defaultLangValue;\n }\n\n setByValue(value: string) {\n this.setByIdx(this.langs.findIndex(lang => lang.value === value));\n }\n\n parse(value: string | null | undefined) {\n return JSON.parse(value ?? '{}');\n }\n\n format(value: string | null | undefined) {\n return JSON.stringify(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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnDestroy, 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 { Editor, NgxEditorComponent, NgxEditorMenuComponent } from 'ngx-editor';\nimport { LDwMaterialMultiLangService } from '../services/ldw-mat-multi-lang.service';\n\n@Component({\n selector: 'ldw-mat-multi-lang-html-editor',\n host: { class: 'ldw-mat-multi-lang-html-editor' },\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n ],\n template: `\n <form\n [formGroup]=\"formGroup\"\n novalidate\n ><mat-form-field\n [appearance]=\"appearance\"\n ><mat-label\n [innerHTML]=\"label\" />\n <textarea matInput\n [style.display]=\"'none'\"\n name=\"value\"\n formControlName=\"value\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"onChange()\"\n ></textarea>\n <div class=\"ldw-mat-multi-lang-html-editor--instance\">\n <ngx-editor-menu\n [editor]=\"editor\" />\n <ngx-editor\n name=\"value\"\n formControlName=\"value\"\n [editor]=\"editor\"\n (focusOut)=\"onChange()\" />\n </div>\n <ng-content />\n </mat-form-field>\n </form>\n`})\nexport class LDwMaterialMultiLangHTMLEditorComponent implements OnInit, OnDestroy {\n\n protected readonly service = inject(LDwMaterialMultiLangService);\n\n protected loaded = false;\n\n protected readonly$: string | boolean = false;\n\n protected required$: string | boolean = false;\n\n editor = new Editor();\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 })\n formParentControlName = 'value';\n\n @Input({ required: true })\n label = 'Value';\n\n @Input()\n appearance: 'fill' | 'outline' = 'outline';\n\n @Input()\n set readonly(v) { this.readonly$ = coerceBooleanProperty(v); }\n\n @Input()\n set required(v) { this.required$ = coerceBooleanProperty(v); }\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 ngOnDestroy() {\n this.editor.destroy();\n }\n\n onChange() {\n this.write(this.service.getSelectedValue());\n }\n\n protected 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 protected 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 protected 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 readonly() { return this.readonly$; };\n\n get required() { return this.required$; };\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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { 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 <ng-content />\n </mat-form-field>\n </form>\n`})\nexport class LDwMaterialMultiLangInputComponent implements OnInit {\n\n protected readonly service = inject(LDwMaterialMultiLangService);\n\n protected loaded = false;\n\n protected readonly$: string | boolean = false;\n\n protected required$: string | boolean = false;\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 })\n formParentControlName = 'value';\n\n @Input({ required: true })\n label = 'Value';\n\n @Input()\n appearance: 'fill' | 'outline' = 'outline';\n\n @Input()\n set readonly(v) { this.readonly$ = coerceBooleanProperty(v); }\n\n @Input()\n set required(v) { this.required$ = coerceBooleanProperty(v); }\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 protected fill() {\n let filled = false;\n const json = this.service.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(this.service.format(json));\n }\n }\n\n protected read(lang: string) {\n const json = this.service.parse(this.langJson?.value);\n if (!json[lang]) {\n json[lang] = '';\n }\n this.langValue.setValue(json[lang]);\n this.langJson.setValue(this.service.format(json));\n }\n\n protected write(lang: string) {\n const json = this.service.parse(this.langJson?.value);\n json[lang] = this.langValue.value;\n this.langJson.setValue(this.service.format(json));\n }\n\n get readonly() { return this.readonly$; };\n\n get required() { return this.required$; };\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-tab-group',\n host: { class: 'ldw-mat-multi-lang-selector-tab-group' },\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 LDwMaterialMultiLangSelectorTabGroupComponent implements OnInit {\n\n protected 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 { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport { LDuAnguBootTranslationService } from '@ldu-anguboot/i18n';\nimport { LDwMaterialMultiLangService } from '../services/ldw-mat-multi-lang.service';\n\n@Component({\n selector: 'ldw-mat-multi-lang-table-cell',\n host: { class: 'ldw-mat-multi-lang-table-cell' },\n imports: [\n CommonModule,\n ],\n template: `\n <span [innerHTML]=\"value\"></span>\n`})\nexport class LDwMaterialMultiLangTableCellComponent implements OnInit {\n\n protected readonly service = inject(LDwMaterialMultiLangService);\n\n protected readonly translationService = inject(LDuAnguBootTranslationService);\n\n @Input() lang: string | null | undefined;\n\n @Input({ required: true }) property: string | null | undefined;\n\n value: string | null | undefined;\n\n ngOnInit() {\n const json = this.service.parse(this.property);\n if (!this.lang) {\n this.lang = this.translationService.getLang();\n }\n if (!json[this.lang]) {\n json[this.lang] = '';\n }\n this.value = json[this.lang];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LDwMaterialMultiLangHTMLEditorComponent } from '../components/ldw-mat-multi-lang-html-editor.component';\nimport { LDwMaterialMultiLangInputComponent } from '../components/ldw-mat-multi-lang-input.component';\nimport { LDwMaterialMultiLangSelectorTabGroupComponent } from '../components/ldw-mat-multi-lang-selector-tab-group.component';\nimport { LDwMaterialMultiLangTableCellComponent } from '../components/ldw-mat-multi-lang-table-cell.component';\n\nconst components = [\n LDwMaterialMultiLangHTMLEditorComponent,\n LDwMaterialMultiLangInputComponent,\n LDwMaterialMultiLangSelectorTabGroupComponent,\n LDwMaterialMultiLangTableCellComponent,\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 CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@ldw-framework/material-langs",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "peerDependencies": {
5
+ "@angular/cdk": "^21.0.0",
5
6
  "@angular/common": "^21.0.0",
6
7
  "@angular/core": "^21.0.0",
7
8
  "@angular/forms": "^21.0.0",
@@ -1,14 +1,51 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, InjectionToken, EventEmitter } from '@angular/core';
2
+ import { EventEmitter, OnInit, OnDestroy, InjectionToken } from '@angular/core';
3
3
  import { FormGroup, FormControl } from '@angular/forms';
4
4
  import { Editor } from 'ngx-editor';
5
5
  import * as _ldw_framework_material_langs from '@ldw-framework/material-langs';
6
+ import { LDuAnguBootTranslationService } from '@ldu-anguboot/i18n';
7
+
8
+ interface LDwMaterialMultiLang {
9
+ label: string;
10
+ value: string;
11
+ }
12
+
13
+ declare class LDwMaterialMultiLangService {
14
+ private readonly ENV$;
15
+ private readonly storage$;
16
+ private readonly key;
17
+ private readonly defaultLangValue;
18
+ private selectedLang;
19
+ private selectedLangIdx;
20
+ private selectedLangChange;
21
+ onInit(): void;
22
+ onChange(): EventEmitter<LDwMaterialMultiLang>;
23
+ setByIdx(idx: number): void;
24
+ getSelectedValue(): string;
25
+ setByValue(value: string): void;
26
+ parse(value: string | null | undefined): any;
27
+ format(value: string | null | undefined): string;
28
+ protected check(): boolean;
29
+ protected get(): string | null;
30
+ protected set(value: string): void;
31
+ protected remove(): void;
32
+ get ENV(): {
33
+ storageKey: string;
34
+ defaultLangValue: string;
35
+ langs: LDwMaterialMultiLang[];
36
+ };
37
+ get storage(): Storage;
38
+ get langs(): LDwMaterialMultiLang[];
39
+ get langIdx(): number;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangService, never>;
41
+ static ɵprov: i0.ɵɵInjectableDeclaration<LDwMaterialMultiLangService>;
42
+ }
6
43
 
7
44
  declare class LDwMaterialMultiLangHTMLEditorComponent implements OnInit, OnDestroy {
8
- private readonly service;
9
- private loaded;
10
- private readonly$;
11
- private required$;
45
+ protected readonly service: LDwMaterialMultiLangService;
46
+ protected loaded: boolean;
47
+ protected readonly$: string | boolean;
48
+ protected required$: string | boolean;
12
49
  editor: Editor;
13
50
  formGroup: FormGroup<{
14
51
  value: FormControl<string | null | undefined>;
@@ -23,9 +60,9 @@ declare class LDwMaterialMultiLangHTMLEditorComponent implements OnInit, OnDestr
23
60
  ngOnInit(): void;
24
61
  ngOnDestroy(): void;
25
62
  onChange(): void;
26
- private fill;
27
- private read;
28
- private write;
63
+ protected fill(): void;
64
+ protected read(lang: string): void;
65
+ protected write(lang: string): void;
29
66
  get readonly(): string | boolean;
30
67
  get required(): string | boolean;
31
68
  get langValue(): FormControl<string | null | undefined>;
@@ -35,10 +72,10 @@ declare class LDwMaterialMultiLangHTMLEditorComponent implements OnInit, OnDestr
35
72
  }
36
73
 
37
74
  declare class LDwMaterialMultiLangInputComponent implements OnInit {
38
- private readonly service;
39
- private loaded;
40
- private readonly$;
41
- private required$;
75
+ protected readonly service: LDwMaterialMultiLangService;
76
+ protected loaded: boolean;
77
+ protected readonly$: string | boolean;
78
+ protected required$: string | boolean;
42
79
  formGroup: FormGroup<{
43
80
  value: FormControl<string | null | undefined>;
44
81
  }>;
@@ -51,9 +88,9 @@ declare class LDwMaterialMultiLangInputComponent implements OnInit {
51
88
  constructor();
52
89
  ngOnInit(): void;
53
90
  onChange(): void;
54
- private fill;
55
- private read;
56
- private write;
91
+ protected fill(): void;
92
+ protected read(lang: string): void;
93
+ protected write(lang: string): void;
57
94
  get readonly(): string | boolean;
58
95
  get required(): string | boolean;
59
96
  get langValue(): FormControl<string | null | undefined>;
@@ -63,7 +100,7 @@ declare class LDwMaterialMultiLangInputComponent implements OnInit {
63
100
  }
64
101
 
65
102
  declare class LDwMaterialMultiLangSelectorTabGroupComponent implements OnInit {
66
- private readonly service;
103
+ protected readonly service: LDwMaterialMultiLangService;
67
104
  readonly langs: _ldw_framework_material_langs.LDwMaterialMultiLang[];
68
105
  langIdx: number;
69
106
  ngOnInit(): void;
@@ -72,51 +109,28 @@ declare class LDwMaterialMultiLangSelectorTabGroupComponent implements OnInit {
72
109
  static ɵcmp: i0.ɵɵComponentDeclaration<LDwMaterialMultiLangSelectorTabGroupComponent, "ldw-mat-multi-lang-selector-tab-group", never, {}, {}, never, never, true, never>;
73
110
  }
74
111
 
75
- interface LDwMaterialMultiLang {
76
- label: string;
77
- value: string;
112
+ declare class LDwMaterialMultiLangTableCellComponent implements OnInit {
113
+ protected readonly service: LDwMaterialMultiLangService;
114
+ protected readonly translationService: LDuAnguBootTranslationService;
115
+ lang: string | null | undefined;
116
+ property: string | null | undefined;
117
+ value: string | null | undefined;
118
+ ngOnInit(): void;
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangTableCellComponent, never>;
120
+ static ɵcmp: i0.ɵɵComponentDeclaration<LDwMaterialMultiLangTableCellComponent, "ldw-mat-multi-lang-table-cell", never, { "lang": { "alias": "lang"; "required": false; }; "property": { "alias": "property"; "required": true; }; }, {}, never, never, true, never>;
78
121
  }
79
122
 
80
123
  declare const LDW_MAT_MULTI_LANG: InjectionToken<{
81
124
  storageKey: string;
125
+ defaultLangValue: string;
82
126
  langs: LDwMaterialMultiLang[];
83
127
  }>;
84
128
 
85
129
  declare class LDwMaterialMultiLangModule {
86
130
  static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangModule, never>;
87
- static ɵmod: i0.ɵɵNgModuleDeclaration<LDwMaterialMultiLangModule, never, [typeof LDwMaterialMultiLangHTMLEditorComponent, typeof LDwMaterialMultiLangSelectorTabGroupComponent, typeof LDwMaterialMultiLangInputComponent], [typeof LDwMaterialMultiLangHTMLEditorComponent, typeof LDwMaterialMultiLangSelectorTabGroupComponent, typeof LDwMaterialMultiLangInputComponent]>;
131
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LDwMaterialMultiLangModule, never, [typeof LDwMaterialMultiLangHTMLEditorComponent, typeof LDwMaterialMultiLangInputComponent, typeof LDwMaterialMultiLangSelectorTabGroupComponent, typeof LDwMaterialMultiLangTableCellComponent], [typeof LDwMaterialMultiLangHTMLEditorComponent, typeof LDwMaterialMultiLangInputComponent, typeof LDwMaterialMultiLangSelectorTabGroupComponent, typeof LDwMaterialMultiLangTableCellComponent]>;
88
132
  static ɵinj: i0.ɵɵInjectorDeclaration<LDwMaterialMultiLangModule>;
89
133
  }
90
134
 
91
- declare class LDwMaterialMultiLangService {
92
- protected readonly ENV$: {
93
- storageKey: string;
94
- langs: LDwMaterialMultiLang[];
95
- };
96
- protected readonly storage$: Storage;
97
- protected readonly key: string;
98
- protected selectedLang: LDwMaterialMultiLang | null | undefined;
99
- protected selectedLangIdx: number | null | undefined;
100
- protected selectedLangChange: EventEmitter<LDwMaterialMultiLang>;
101
- onInit(): void;
102
- onChange(): EventEmitter<LDwMaterialMultiLang>;
103
- setByIdx(idx: number): void;
104
- getSelectedValue(): string;
105
- setByValue(value: string): void;
106
- protected check(): boolean;
107
- protected get(): string | null;
108
- protected set(value: string): void;
109
- protected remove(): void;
110
- get ENV(): {
111
- storageKey: string;
112
- langs: LDwMaterialMultiLang[];
113
- };
114
- get storage(): Storage;
115
- get langs(): LDwMaterialMultiLang[];
116
- get langIdx(): number;
117
- static ɵfac: i0.ɵɵFactoryDeclaration<LDwMaterialMultiLangService, never>;
118
- static ɵprov: i0.ɵɵInjectableDeclaration<LDwMaterialMultiLangService>;
119
- }
120
-
121
- export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangHTMLEditorComponent, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorTabGroupComponent, LDwMaterialMultiLangService };
135
+ export { LDW_MAT_MULTI_LANG, LDwMaterialMultiLangHTMLEditorComponent, LDwMaterialMultiLangInputComponent, LDwMaterialMultiLangModule, LDwMaterialMultiLangSelectorTabGroupComponent, LDwMaterialMultiLangService, LDwMaterialMultiLangTableCellComponent };
122
136
  export type { LDwMaterialMultiLang };