@recursyve/nice-ui-kit.v2 14.0.0-beta.117 → 14.0.0-beta.119
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/esm2020/lib/components/export-bottom-sheet/export-bottom-sheet.component.mjs +3 -3
- package/esm2020/lib/components/public-api.mjs +2 -1
- package/esm2020/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +37 -0
- package/esm2020/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +25 -0
- package/esm2020/lib/components/translation-form/components/translation-form.component.mjs +164 -0
- package/esm2020/lib/components/translation-form/components/translation-form.module.mjs +71 -0
- package/esm2020/lib/components/translation-form/decorators/translation-form.decorator.mjs +4 -0
- package/esm2020/lib/components/translation-form/directives/translation-context.directive.mjs +34 -0
- package/esm2020/lib/components/translation-form/index.mjs +2 -0
- package/esm2020/lib/components/translation-form/providers/translation-form.service.mjs +46 -0
- package/esm2020/lib/components/translation-form/public-api.mjs +10 -0
- package/esm2020/lib/components/translation-form/toggle/translation-toggle.component.mjs +26 -0
- package/esm2020/lib/components/translation-form/translation.form.mjs +6 -0
- package/esm2020/lib/components/translation-form/validators/require-for-languages.validator.mjs +42 -0
- package/fesm2015/recursyve-nice-ui-kit.v2.mjs +470 -72
- package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/fesm2020/recursyve-nice-ui-kit.v2.mjs +470 -72
- package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/lib/components/public-api.d.ts +1 -0
- package/lib/components/translation-form/components/textarea/translation-form-textarea.component.d.ts +9 -0
- package/lib/components/translation-form/components/textfield/translation-form-textfield.component.d.ts +6 -0
- package/lib/components/translation-form/components/translation-form.component.d.ts +55 -0
- package/lib/components/translation-form/components/translation-form.module.d.ts +16 -0
- package/lib/components/translation-form/decorators/translation-form.decorator.d.ts +1 -0
- package/lib/components/translation-form/directives/translation-context.directive.d.ts +15 -0
- package/lib/components/translation-form/index.d.ts +1 -0
- package/lib/components/translation-form/providers/translation-form.service.d.ts +12 -0
- package/lib/components/translation-form/public-api.d.ts +9 -0
- package/lib/components/translation-form/toggle/translation-toggle.component.d.ts +14 -0
- package/lib/components/translation-form/translation.form.d.ts +5 -0
- package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +14 -0
- package/package.json +2 -2
|
@@ -23,12 +23,12 @@ export class ExportBottomSheetComponent {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
ExportBottomSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ExportBottomSheetComponent, deps: [{ token: MAT_BOTTOM_SHEET_DATA }, { token: i1.MatBottomSheetRef }, { token: i2.ExportBottomSheetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
ExportBottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: ExportBottomSheetComponent, selector: "nice-export-bottom-sheet", ngImport: i0, template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line
|
|
26
|
+
ExportBottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: ExportBottomSheetComponent, selector: "nice-export-bottom-sheet", ngImport: i0, template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i4.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: ExportBottomSheetComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
|
-
args: [{ selector: "nice-export-bottom-sheet", template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line
|
|
29
|
+
args: [{ selector: "nice-export-bottom-sheet", template: "<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\n" }]
|
|
30
30
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
31
31
|
type: Inject,
|
|
32
32
|
args: [MAT_BOTTOM_SHEET_DATA]
|
|
33
33
|
}] }, { type: i1.MatBottomSheetRef }, { type: i2.ExportBottomSheetService }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWJvdHRvbS1zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LWJvdHRvbS1zaGVldC9leHBvcnQtYm90dG9tLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtYm90dG9tLXNoZWV0L2V4cG9ydC1ib3R0b20tc2hlZXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7QUFVbkYsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxZQUMwQyx1QkFBZ0QsRUFDOUUsY0FBNkQsRUFDN0QsT0FBaUM7UUFGSCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQzlFLG1CQUFjLEdBQWQsY0FBYyxDQUErQztRQUM3RCxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUMxQyxDQUFDO0lBRUcsZUFBZSxDQUFDLFFBQXdCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUF3QjtRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDOzt1SEFkUSwwQkFBMEIsa0JBRXZCLHFCQUFxQjsyR0FGeEIsMEJBQTBCLGdFQ2J2QyxxV0FNQTsyRkRPYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0ksMEJBQTBCOzswQkFLL0IsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiwgTUFUX0JPVFRPTV9TSEVFVF9EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgRXhwb3J0U3RyYXRlZ3kgfSBmcm9tIFwiLi9tb2RlbHMvZXhwb3J0LXN0cmF0ZWd5Lm1vZGVsXCI7XG5pbXBvcnQgeyBFeHBvcnRCb3R0b21TaGVldFNlcnZpY2UgfSBmcm9tIFwiLi9wcm92aWRlcnMvZXhwb3J0LWJvdHRvbS1zaGVldC5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0Qm90dG9tU2hlZXRDb25maWcge1xuICAgIGV4cG9ydFN0cmF0ZWdpZXM6IEV4cG9ydFN0cmF0ZWd5W107XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtZXhwb3J0LWJvdHRvbS1zaGVldFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcImV4cG9ydC1ib3R0b20tc2hlZXQudGVtcGxhdGUuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydEJvdHRvbVNoZWV0Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfQk9UVE9NX1NIRUVUX0RBVEEpIHB1YmxpYyBleHBvcnRCb3R0b21TaGVldENvbmZpZzogRXhwb3J0Qm90dG9tU2hlZXRDb25maWcsXG4gICAgICAgIHByaXZhdGUgYm90dG9tU2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEV4cG9ydEJvdHRvbVNoZWV0Q29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBFeHBvcnRCb3R0b21TaGVldFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgZ2V0U3RyYXRlZ3lJY29uKHN0cmF0ZWd5OiBFeHBvcnRTdHJhdGVneSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0U3RyYXRlZ3lJY29uKHN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tFeHBvcnQoc3RyYXRlZ3k6IEV4cG9ydFN0cmF0ZWd5KSB7XG4gICAgICAgIHRoaXMuYm90dG9tU2hlZXRSZWYuZGlzbWlzcygpO1xuICAgICAgICBzdHJhdGVneS5vbkNsaWNrRXhwb3J0KCk7XG4gICAgfVxufVxuIiwiPG1hdC1uYXYtbGlzdD5cbiAgICA8YSAqbmdGb3I9XCJsZXQgc3RyYXRlZ3kgb2YgZXhwb3J0Qm90dG9tU2hlZXRDb25maWcuZXhwb3J0U3RyYXRlZ2llc1wiIG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cImNsaWNrRXhwb3J0KHN0cmF0ZWd5KVwiPlxuICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRTdHJhdGVneUljb24oc3RyYXRlZ3kpXCIgbWF0LWxpc3QtaWNvbj48L2k+XG4gICAgICAgIDxzcGFuIG1hdC1saW5lIFtpbm5lckh0bWxdPVwiJ2NvbXBvbmVudHMuZXhwb3J0X2JvdHRvbV9zaGVldC50eXBlcy4nICsgc3RyYXRlZ3kudHlwZSB8IHRyYW5zbGF0ZVwiPjwvc3Bhbj5cbiAgICA8L2E+XG48L21hdC1uYXYtbGlzdD5cbiJdfQ==
|
|
@@ -19,5 +19,6 @@ export * from "./search-bar";
|
|
|
19
19
|
export * from "./sweet-alert";
|
|
20
20
|
export * from "./toast";
|
|
21
21
|
export * from "./toggle-button-group";
|
|
22
|
+
export * from "./translation-form";
|
|
22
23
|
export * from "./typeahead";
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYWxlcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Fzc2V0cy1jYXJvdXNlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXN5bmMtdHlwZWFoZWFkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9iYXNlLWZvcm1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nhcm91c2VsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2xsYXBzYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0ZS1yYW5nZS1waWNrZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RyYXdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhwb3J0LWJvdHRvbS1zaGVldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybS1lcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaG9yaXpvbnRhbC1zdGVwcGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbWFnZS1jcm9wcGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYXlvdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmctc3Bpbm5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG90dGllXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYXZpZ2F0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZWFyY2gtYmFyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zd2VldC1hbGVydFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9hc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvZ2dsZS1idXR0b24tZ3JvdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zbGF0aW9uLWZvcm1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVhaGVhZFwiO1xuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from "@angular/core";
|
|
2
|
+
import { MatFormFieldControl } from "@angular/material/form-field";
|
|
3
|
+
import { TranslationFormComponent } from "../translation-form.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/input";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class TranslationFormTextareaComponent extends TranslationFormComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.resizable = true;
|
|
11
|
+
this.rows = 2;
|
|
12
|
+
this.cols = 20;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
TranslationFormTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
TranslationFormTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: TranslationFormTextareaComponent, selector: "nice-translation-form-textarea", inputs: { resizable: "resizable", rows: "rows", cols: "cols" }, providers: [
|
|
17
|
+
{
|
|
18
|
+
provide: MatFormFieldControl,
|
|
19
|
+
useExisting: TranslationFormTextareaComponent,
|
|
20
|
+
},
|
|
21
|
+
], usesInheritance: true, ngImport: i0, template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n", dependencies: [{ kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormTextareaComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: "nice-translation-form-textarea", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
25
|
+
{
|
|
26
|
+
provide: MatFormFieldControl,
|
|
27
|
+
useExisting: TranslationFormTextareaComponent,
|
|
28
|
+
},
|
|
29
|
+
], template: "<textarea\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n" }]
|
|
30
|
+
}], propDecorators: { resizable: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], rows: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], cols: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RleHRhcmVhL3RyYW5zbGF0aW9uLWZvcm0tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0YXJlYS90cmFuc2xhdGlvbi1mb3JtLXRleHRhcmVhLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBYXpFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSx3QkFBd0I7SUFYOUU7O1FBYVcsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdqQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1QsU0FBSSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7NkhBVFksZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MseUhBUDlCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxnQ0FBZ0M7U0FDaEQ7S0FDSixpRENqQkwsbU9BU0E7MkZEVWEsZ0NBQWdDO2tCQVg1QyxTQUFTOytCQUNJLGdDQUFnQyxtQkFFekIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLGtDQUFrQzt5QkFDaEQ7cUJBQ0o7OEJBSU0sU0FBUztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInRyYW5zbGF0aW9uLWZvcm0tdGV4dGFyZWEudGVtcGxhdGUuaHRtbFwiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2xhdGlvbkZvcm1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc2l6YWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb3dzID0gMjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHMgPSAyMDtcbn1cbiIsIjx0ZXh0YXJlYVxuICAgIG1hdElucHV0XG4gICAgW2Zvcm1Db250cm9sXT1cImN1cnJlbnRDb250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICBbcm93c109XCJyb3dzXCJcbiAgICBbY29sc109XCJjb2xzXCJcbiAgICBbY2xhc3MucmVzaXplLW5vbmVdPVwiIXJlc2l6YWJsZVwiXG4+PC90ZXh0YXJlYT5cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, } from "@angular/core";
|
|
2
|
+
import { MatFormFieldControl } from "@angular/material/form-field";
|
|
3
|
+
import { TranslationFormComponent } from "../translation-form.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/input";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class TranslationFormTextfieldComponent extends TranslationFormComponent {
|
|
8
|
+
}
|
|
9
|
+
TranslationFormTextfieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormTextfieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
TranslationFormTextfieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: TranslationFormTextfieldComponent, selector: "nice-translation-form-textfield", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: MatFormFieldControl,
|
|
13
|
+
useExisting: TranslationFormTextfieldComponent,
|
|
14
|
+
},
|
|
15
|
+
], usesInheritance: true, ngImport: i0, template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n", dependencies: [{ kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormTextfieldComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: "nice-translation-form-textfield", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
19
|
+
{
|
|
20
|
+
provide: MatFormFieldControl,
|
|
21
|
+
useExisting: TranslationFormTextfieldComponent,
|
|
22
|
+
},
|
|
23
|
+
], template: "<input\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n" }]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0ZmllbGQvdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vY29tcG9uZW50cy90ZXh0ZmllbGQvdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQWF6RSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsd0JBQXdCOzs4SEFBbEUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsMERBUC9CO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxpQ0FBaUM7U0FDakQ7S0FDSixpRENoQkwsb0lBTUE7MkZEWWEsaUNBQWlDO2tCQVg3QyxTQUFTOytCQUNJLGlDQUFpQyxtQkFFMUIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG1DQUFtQzt5QkFDakQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdHJhbnNsYXRpb24tZm9ybS10ZXh0ZmllbGRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJ0cmFuc2xhdGlvbi1mb3JtLXRleHRmaWVsZC50ZW1wbGF0ZS5odG1sXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHJhbnNsYXRpb25Gb3JtVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uRm9ybVRleHRmaWVsZENvbXBvbmVudCBleHRlbmRzIFRyYW5zbGF0aW9uRm9ybUNvbXBvbmVudCB7fVxuIiwiPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3VycmVudENvbnRyb2xcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuLz5cbiJdfQ==
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
|
2
|
+
import { ChangeDetectorRef, Component, HostBinding, Input, } from "@angular/core";
|
|
3
|
+
import { ControlContainer, FormControl, Validators, } from "@angular/forms";
|
|
4
|
+
import { Subject } from "rxjs";
|
|
5
|
+
import { takeUntil } from "rxjs/operators";
|
|
6
|
+
import * as uuid from "uuid";
|
|
7
|
+
import { TranslationContextDirective } from "../directives/translation-context.directive";
|
|
8
|
+
import { TranslationFormService } from "../providers/translation-form.service";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "../directives/translation-context.directive";
|
|
12
|
+
import * as i3 from "../providers/translation-form.service";
|
|
13
|
+
export class TranslationFormComponent {
|
|
14
|
+
constructor(container, context, service, changeDetectorRef) {
|
|
15
|
+
this.container = container;
|
|
16
|
+
this.context = context;
|
|
17
|
+
this.service = service;
|
|
18
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
19
|
+
this.floating = true;
|
|
20
|
+
this.maxLength = 524288; // The maximum number of characters allowed in the <input> element. Default value is 524288
|
|
21
|
+
this.id = uuid.v4();
|
|
22
|
+
this.describedBy = "";
|
|
23
|
+
this.stateChanges = new Subject();
|
|
24
|
+
this.controlType = "translationForm";
|
|
25
|
+
this._unsubscribeAll$ = new Subject();
|
|
26
|
+
this._disabled = false;
|
|
27
|
+
this.propagate = () => { };
|
|
28
|
+
}
|
|
29
|
+
get classList() {
|
|
30
|
+
return {
|
|
31
|
+
"w-full": true
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
get shouldLabelFloat() {
|
|
35
|
+
return this.floating || !this.empty;
|
|
36
|
+
}
|
|
37
|
+
set required(req) {
|
|
38
|
+
this._required = coerceBooleanProperty(req);
|
|
39
|
+
this.stateChanges.next();
|
|
40
|
+
}
|
|
41
|
+
get required() {
|
|
42
|
+
return (this._required ??
|
|
43
|
+
this.ngControl?.control?.hasValidator(Validators.required) ??
|
|
44
|
+
false);
|
|
45
|
+
}
|
|
46
|
+
get disabled() {
|
|
47
|
+
return this._disabled;
|
|
48
|
+
}
|
|
49
|
+
set disabled(value) {
|
|
50
|
+
this._disabled = coerceBooleanProperty(value);
|
|
51
|
+
if (this._disabled) {
|
|
52
|
+
this.currentControl.disable({ emitEvent: false });
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.currentControl.enable({ emitEvent: false });
|
|
56
|
+
}
|
|
57
|
+
this.stateChanges.next();
|
|
58
|
+
}
|
|
59
|
+
set placeholder(placeholder) {
|
|
60
|
+
this._placeholder = placeholder;
|
|
61
|
+
this.stateChanges.next();
|
|
62
|
+
}
|
|
63
|
+
get placeholder() {
|
|
64
|
+
return this._placeholder;
|
|
65
|
+
}
|
|
66
|
+
set value(value) {
|
|
67
|
+
if (value === this._value) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this._value = value;
|
|
71
|
+
this.propagate(this._value);
|
|
72
|
+
}
|
|
73
|
+
get value() {
|
|
74
|
+
return this._value;
|
|
75
|
+
}
|
|
76
|
+
get empty() {
|
|
77
|
+
const emptyControlValue = !this.currentControl?.value || !this.currentControl.value.length;
|
|
78
|
+
const emptyValue = !this._value ||
|
|
79
|
+
(typeof this._value === "string" && !this._value.length);
|
|
80
|
+
return emptyControlValue && emptyValue;
|
|
81
|
+
}
|
|
82
|
+
get errorState() {
|
|
83
|
+
return this.ngControl
|
|
84
|
+
? this.ngControl.touched && this.ngControl.invalid
|
|
85
|
+
: false;
|
|
86
|
+
}
|
|
87
|
+
onContainerClick(event) { }
|
|
88
|
+
setDescribedByIds(ids) {
|
|
89
|
+
this.describedBy = ids.join(" ");
|
|
90
|
+
}
|
|
91
|
+
registerOnChange(fn) {
|
|
92
|
+
this.propagate = fn;
|
|
93
|
+
}
|
|
94
|
+
registerOnTouched(fn) { }
|
|
95
|
+
writeValue(value) {
|
|
96
|
+
this._value = value;
|
|
97
|
+
}
|
|
98
|
+
ngOnInit() {
|
|
99
|
+
this.formGroup = this.container.control;
|
|
100
|
+
this.service.languages$
|
|
101
|
+
.pipe(takeUntil(this._unsubscribeAll$))
|
|
102
|
+
.subscribe((languages) => {
|
|
103
|
+
if (!languages?.length) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.setupFormControls(languages);
|
|
107
|
+
});
|
|
108
|
+
this.context.activeLanguage$
|
|
109
|
+
.pipe(takeUntil(this._unsubscribeAll$))
|
|
110
|
+
.subscribe((activeLanguage) => {
|
|
111
|
+
this.setLanguage(activeLanguage);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
ngOnDestroy() {
|
|
115
|
+
this._unsubscribeAll$.next();
|
|
116
|
+
this._unsubscribeAll$.complete();
|
|
117
|
+
}
|
|
118
|
+
setLanguage(language) {
|
|
119
|
+
this.currentControl = this.formGroup.get(language);
|
|
120
|
+
this.changeDetectorRef.markForCheck();
|
|
121
|
+
}
|
|
122
|
+
setupFormControls(languages) {
|
|
123
|
+
for (const language of languages) {
|
|
124
|
+
if (!this.formGroup.controls[language]) {
|
|
125
|
+
this.formGroup.addControl(language, new FormControl(""));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const controlToRemove = Object.keys(this.formGroup.controls).filter((key) => !languages.includes(key));
|
|
129
|
+
for (const key of controlToRemove) {
|
|
130
|
+
this.formGroup.removeControl(key);
|
|
131
|
+
}
|
|
132
|
+
this.currentControl = this.formGroup.get(languages[0]);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
TranslationFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormComponent, deps: [{ token: i1.ControlContainer }, { token: i2.TranslationContextDirective }, { token: i3.TranslationFormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
+
TranslationFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: TranslationFormComponent, selector: "ng-component", inputs: { required: "required", disabled: "disabled", placeholder: "placeholder", floating: "floating", maxLength: "maxLength" }, host: { properties: { "class": "this.classList", "class.floating": "this.shouldLabelFloat", "id": "this.id", "attr.aria-describedby": "this.describedBy" } }, ngImport: i0, template: ``, isInline: true });
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormComponent, decorators: [{
|
|
138
|
+
type: Component,
|
|
139
|
+
args: [{
|
|
140
|
+
template: ``,
|
|
141
|
+
}]
|
|
142
|
+
}], ctorParameters: function () { return [{ type: i1.ControlContainer }, { type: i2.TranslationContextDirective }, { type: i3.TranslationFormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { classList: [{
|
|
143
|
+
type: HostBinding,
|
|
144
|
+
args: ["class"]
|
|
145
|
+
}], shouldLabelFloat: [{
|
|
146
|
+
type: HostBinding,
|
|
147
|
+
args: ["class.floating"]
|
|
148
|
+
}], required: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], disabled: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], placeholder: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], floating: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], maxLength: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], id: [{
|
|
159
|
+
type: HostBinding
|
|
160
|
+
}], describedBy: [{
|
|
161
|
+
type: HostBinding,
|
|
162
|
+
args: ["attr.aria-describedby"]
|
|
163
|
+
}] } });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGdCQUFnQixFQUVoQixXQUFXLEVBR1gsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBSy9FLE1BQU0sT0FBZ0Isd0JBQXdCO0lBMEYxQyxZQUNZLFNBQTJCLEVBQzNCLE9BQW9DLEVBQ3BDLE9BQStCLEVBQy9CLGlCQUFvQztRQUhwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUE2QjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBSXpDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHaEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLDJGQUEyRjtRQUcvRyxPQUFFLEdBQVcsSUFB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QkFBQyxPQUFPO2dCQVFULGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWxCLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZUssUUFBUTtzQkFEbEIsS0FBSztnQkFrQkssV0FBVztzQkFEckIsS0FBSztnQkFnREMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxFQUFFO3NCQURSLFdBQVc7Z0JBSUwsV0FBVztzQkFEakIsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsXG4gICAgQ29udHJvbENvbnRhaW5lcixcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Db250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRpb24tY29udGV4dC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zbGF0aW9uRm9ybUNvbXBvbmVudFxuICAgIGltcGxlbWVudHNcbiAgICAgICAgT25Jbml0LFxuICAgICAgICBPbkRlc3Ryb3ksXG4gICAgICAgIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPixcbiAgICAgICAgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKVxuICAgIHB1YmxpYyBnZXQgY2xhc3NMaXN0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBcInctZnVsbFwiOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZmxvYXRpbmdcIilcbiAgICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb2F0aW5nIHx8ICF0aGlzLmVtcHR5O1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA/P1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/P1xuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZW1wdHlDb250cm9sVmFsdWUgPVxuICAgICAgICAgICAgIXRoaXMuY3VycmVudENvbnRyb2w/LnZhbHVlIHx8ICF0aGlzLmN1cnJlbnRDb250cm9sLnZhbHVlLmxlbmd0aDtcblxuICAgICAgICBjb25zdCBlbXB0eVZhbHVlID1cbiAgICAgICAgICAgICF0aGlzLl92YWx1ZSB8fFxuICAgICAgICAgICAgKHR5cGVvZiB0aGlzLl92YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAhdGhpcy5fdmFsdWUubGVuZ3RoKTtcblxuICAgICAgICByZXR1cm4gZW1wdHlDb250cm9sVmFsdWUgJiYgZW1wdHlWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbFxuICAgICAgICAgICAgPyB0aGlzLm5nQ29udHJvbC50b3VjaGVkICYmIHRoaXMubmdDb250cm9sLmludmFsaWRcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBwcml2YXRlIGNvbnRleHQ6IFRyYW5zbGF0aW9uQ29udGV4dERpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBUcmFuc2xhdGlvbkZvcm1TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZsb2F0aW5nID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heExlbmd0aCA9IDUyNDI4ODsgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCBpbiB0aGUgPGlucHV0PiBlbGVtZW50LiBEZWZhdWx0IHZhbHVlIGlzIDUyNDI4OFxuXG4gICAgQEhvc3RCaW5kaW5nKClcbiAgICBwdWJsaWMgaWQ6IHN0cmluZyA9IHV1aWQudjQoKTtcblxuICAgIEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1kZXNjcmliZWRieVwiKVxuICAgIHB1YmxpYyBkZXNjcmliZWRCeSA9IFwiXCI7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGN1cnJlbnRDb250cm9sPzogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIG5nQ29udHJvbDogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlIHwgTmdDb250cm9sO1xuICAgIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuO1xuICAgIHB1YmxpYyBjb250cm9sVHlwZSA9IFwidHJhbnNsYXRpb25Gb3JtXCI7XG5cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBwcml2YXRlIF92YWx1ZTogYW55O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGF1dG9maWxsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IHVzZXJBcmlhRGVzY3JpYmVkQnk6IHN0cmluZztcblxuICAgIHB1YmxpYyBwcm9wYWdhdGU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbihcIiBcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmNvbnRhaW5lci5jb250cm9sIGFzIEZvcm1Hcm91cDtcblxuICAgICAgICB0aGlzLnNlcnZpY2UubGFuZ3VhZ2VzJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsYW5ndWFnZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWxhbmd1YWdlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRm9ybUNvbnRyb2xzKGxhbmd1YWdlcyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRleHQuYWN0aXZlTGFuZ3VhZ2UkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZUxhbmd1YWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZShhY3RpdmVMYW5ndWFnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudENvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQobGFuZ3VhZ2UpIGFzIEZvcm1Db250cm9sO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGb3JtQ29udHJvbHMobGFuZ3VhZ2VzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGxhbmd1YWdlIG9mIGxhbmd1YWdlcykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tsYW5ndWFnZV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKGxhbmd1YWdlLCBuZXcgRm9ybUNvbnRyb2woXCJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udHJvbFRvUmVtb3ZlID0gT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZpbHRlcihcbiAgICAgICAgICAgIChrZXkpID0+ICFsYW5ndWFnZXMuaW5jbHVkZXMoa2V5KVxuICAgICAgICApO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBjb250cm9sVG9SZW1vdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudENvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQobGFuZ3VhZ2VzWzBdKSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { AsyncPipe, NgForOf, NgIf, UpperCasePipe } from "@angular/common";
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { MatButtonToggleModule } from "@angular/material/button-toggle";
|
|
5
|
+
import { MatInputModule } from "@angular/material/input";
|
|
6
|
+
import { NGX_FORM_GENERATOR_ASYNC_VALIDATORS } from "@recursyve/ngx-form-generator";
|
|
7
|
+
import { TranslationContextDirective } from "../directives/translation-context.directive";
|
|
8
|
+
import { TranslationToggleComponent } from "../toggle/translation-toggle.component";
|
|
9
|
+
import { TranslationFormTextareaComponent } from "./textarea/translation-form-textarea.component";
|
|
10
|
+
import { TranslationFormTextfieldComponent } from "./textfield/translation-form-textfield.component";
|
|
11
|
+
import { RequireForLanguagesValidator } from "../validators/require-for-languages.validator";
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class NiceTranslationFormModule {
|
|
14
|
+
static forRoot() {
|
|
15
|
+
return {
|
|
16
|
+
ngModule: NiceTranslationFormModule,
|
|
17
|
+
providers: [
|
|
18
|
+
{
|
|
19
|
+
provide: NGX_FORM_GENERATOR_ASYNC_VALIDATORS,
|
|
20
|
+
useClass: RequireForLanguagesValidator,
|
|
21
|
+
multi: true,
|
|
22
|
+
},
|
|
23
|
+
]
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
NiceTranslationFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceTranslationFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
28
|
+
NiceTranslationFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.3", ngImport: i0, type: NiceTranslationFormModule, declarations: [TranslationFormTextfieldComponent,
|
|
29
|
+
TranslationFormTextareaComponent,
|
|
30
|
+
TranslationToggleComponent,
|
|
31
|
+
TranslationContextDirective], imports: [MatButtonToggleModule,
|
|
32
|
+
MatInputModule,
|
|
33
|
+
ReactiveFormsModule,
|
|
34
|
+
NgForOf,
|
|
35
|
+
NgIf,
|
|
36
|
+
AsyncPipe,
|
|
37
|
+
UpperCasePipe], exports: [TranslationFormTextfieldComponent,
|
|
38
|
+
TranslationFormTextareaComponent,
|
|
39
|
+
TranslationToggleComponent,
|
|
40
|
+
TranslationContextDirective] });
|
|
41
|
+
NiceTranslationFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceTranslationFormModule, imports: [MatButtonToggleModule,
|
|
42
|
+
MatInputModule,
|
|
43
|
+
ReactiveFormsModule] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceTranslationFormModule, decorators: [{
|
|
45
|
+
type: NgModule,
|
|
46
|
+
args: [{
|
|
47
|
+
imports: [
|
|
48
|
+
MatButtonToggleModule,
|
|
49
|
+
MatInputModule,
|
|
50
|
+
ReactiveFormsModule,
|
|
51
|
+
NgForOf,
|
|
52
|
+
NgIf,
|
|
53
|
+
AsyncPipe,
|
|
54
|
+
UpperCasePipe,
|
|
55
|
+
],
|
|
56
|
+
declarations: [
|
|
57
|
+
TranslationFormTextfieldComponent,
|
|
58
|
+
TranslationFormTextareaComponent,
|
|
59
|
+
TranslationToggleComponent,
|
|
60
|
+
TranslationContextDirective,
|
|
61
|
+
],
|
|
62
|
+
providers: [],
|
|
63
|
+
exports: [
|
|
64
|
+
TranslationFormTextfieldComponent,
|
|
65
|
+
TranslationFormTextareaComponent,
|
|
66
|
+
TranslationToggleComponent,
|
|
67
|
+
TranslationContextDirective,
|
|
68
|
+
],
|
|
69
|
+
}]
|
|
70
|
+
}] });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBMEI3RixNQUFNLE9BQU8seUJBQXlCO0lBQzNCLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLE9BQU87WUFDSCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsbUNBQW1DO29CQUM1QyxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7O3NIQVpRLHlCQUF5Qjt1SEFBekIseUJBQXlCLGlCQWI5QixpQ0FBaUM7UUFDakMsZ0NBQWdDO1FBQ2hDLDBCQUEwQjtRQUMxQiwyQkFBMkIsYUFaM0IscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsT0FBTztRQUNQLElBQUk7UUFDSixTQUFTO1FBQ1QsYUFBYSxhQVViLGlDQUFpQztRQUNqQyxnQ0FBZ0M7UUFDaEMsMEJBQTBCO1FBQzFCLDJCQUEyQjt1SEFHdEIseUJBQXlCLFlBdEI5QixxQkFBcUI7UUFDckIsY0FBYztRQUNkLG1CQUFtQjsyRkFvQmQseUJBQXlCO2tCQXhCckMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLFNBQVM7d0JBQ1QsYUFBYTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFO3dCQUNMLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3dCQUNoQywwQkFBMEI7d0JBQzFCLDJCQUEyQjtxQkFDOUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWYsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZVwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE5HWF9GT1JNX0dFTkVSQVRPUl9BU1lOQ19WQUxJREFUT1JTIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy90cmFuc2xhdGlvbi1jb250ZXh0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Ub2dnbGVDb21wb25lbnQgfSBmcm9tIFwiLi4vdG9nZ2xlL3RyYW5zbGF0aW9uLXRvZ2dsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSBcIi4vdGV4dGFyZWEvdHJhbnNsYXRpb24tZm9ybS10ZXh0YXJlYS5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRpb25Gb3JtVGV4dGZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vdGV4dGZpZWxkL3RyYW5zbGF0aW9uLWZvcm0tdGV4dGZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmVxdWlyZUZvckxhbmd1YWdlc1ZhbGlkYXRvciB9IGZyb20gXCIuLi92YWxpZGF0b3JzL3JlcXVpcmUtZm9yLWxhbmd1YWdlcy52YWxpZGF0b3JcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgVXBwZXJDYXNlUGlwZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBUcmFuc2xhdGlvbkZvcm1UZXh0ZmllbGRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0aW9uRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICBUcmFuc2xhdGlvblRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRpb25Db250ZXh0RGlyZWN0aXZlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0aW9uRm9ybVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRpb25Gb3JtVGV4dGFyZWFDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0aW9uVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmljZVRyYW5zbGF0aW9uRm9ybU1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmljZVRyYW5zbGF0aW9uRm9ybU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5pY2VUcmFuc2xhdGlvbkZvcm1Nb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5HWF9GT1JNX0dFTkVSQVRPUl9BU1lOQ19WQUxJREFUT1JTLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogUmVxdWlyZUZvckxhbmd1YWdlc1ZhbGlkYXRvcixcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DynamicGroup } from "@recursyve/ngx-form-generator";
|
|
2
|
+
// tslint:disable-next-line:variable-name
|
|
3
|
+
export const TranslationFormDecorator = () => DynamicGroup();
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9kZWNvcmF0b3JzL3RyYW5zbGF0aW9uLWZvcm0uZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCx5Q0FBeUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljR3JvdXAgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbmV4cG9ydCBjb25zdCBUcmFuc2xhdGlvbkZvcm1EZWNvcmF0b3IgPSAoKSA9PiBEeW5hbWljR3JvdXAoKTtcbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive } from "@angular/core";
|
|
2
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
3
|
+
import { filter, takeUntil } from "rxjs/operators";
|
|
4
|
+
import { TranslationFormService } from "../providers/translation-form.service";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../providers/translation-form.service";
|
|
7
|
+
export class TranslationContextDirective {
|
|
8
|
+
constructor(translationFormService) {
|
|
9
|
+
this.translationFormService = translationFormService;
|
|
10
|
+
this.activeLanguage$ = new BehaviorSubject(undefined);
|
|
11
|
+
this._unsubscribeAll$ = new Subject();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.translationFormService.languages$
|
|
15
|
+
.pipe(takeUntil(this._unsubscribeAll$), filter((languages) => !!languages?.length), filter((languages) => !languages.includes(this.activeLanguage$.value)))
|
|
16
|
+
.subscribe((languages) => {
|
|
17
|
+
this.activeLanguage$.next(languages[0]);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this._unsubscribeAll$.next();
|
|
22
|
+
this._unsubscribeAll$.complete();
|
|
23
|
+
}
|
|
24
|
+
updateLanguage(language) {
|
|
25
|
+
this.activeLanguage$.next(language);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
TranslationContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationContextDirective, deps: [{ token: i1.TranslationFormService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
TranslationContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: TranslationContextDirective, selector: "[niceTranslationContext]", ngImport: i0 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationContextDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{ selector: "[niceTranslationContext]" }]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.TranslationFormService }]; } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9kaXJlY3RpdmVzL3RyYW5zbGF0aW9uLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUcvRSxNQUFNLE9BQU8sMkJBQTJCO0lBS3BDLFlBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBSjNELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7UUFFeEQscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVzQixDQUFDO0lBRS9ELFFBQVE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVTthQUNqQyxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNoQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQzFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDekU7YUFDQSxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O3dIQTFCUSwyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZVwiO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW25pY2VUcmFuc2xhdGlvbkNvbnRleHRdXCIgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkNvbnRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGFjdGl2ZUxhbmd1YWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb25Gb3JtU2VydmljZTogVHJhbnNsYXRpb25Gb3JtU2VydmljZSkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbkZvcm1TZXJ2aWNlLmxhbmd1YWdlcyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigobGFuZ3VhZ2VzKSA9PiAhIWxhbmd1YWdlcz8ubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGxhbmd1YWdlcykgPT4gIWxhbmd1YWdlcy5pbmNsdWRlcyh0aGlzLmFjdGl2ZUxhbmd1YWdlJC52YWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsYW5ndWFnZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUxhbmd1YWdlJC5uZXh0KGxhbmd1YWdlc1swXSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlTGFuZ3VhZ2UkLm5leHQobGFuZ3VhZ2UpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./public-api";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpYy1hcGlcIjtcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { BehaviorSubject } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TranslationFormService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._languages$ = new BehaviorSubject([]);
|
|
7
|
+
this._requiredLanguages$ = new BehaviorSubject([]);
|
|
8
|
+
}
|
|
9
|
+
get languages$() {
|
|
10
|
+
return this._languages$;
|
|
11
|
+
}
|
|
12
|
+
get requiredLanguages$() {
|
|
13
|
+
return this._requiredLanguages$;
|
|
14
|
+
}
|
|
15
|
+
setLanguages(languages) {
|
|
16
|
+
this._languages$.next(languages ?? []);
|
|
17
|
+
}
|
|
18
|
+
setRequiredLanguages(languages) {
|
|
19
|
+
if (!languages?.length) {
|
|
20
|
+
this._requiredLanguages$.next([]);
|
|
21
|
+
}
|
|
22
|
+
const languagesValues = this.languages$.getValue();
|
|
23
|
+
const unregisteredLanguages = languages?.filter((language) => !languagesValues.includes(language));
|
|
24
|
+
if (unregisteredLanguages?.length) {
|
|
25
|
+
throw new Error(`You provided languages that are not configured
|
|
26
|
+
> Configured languages: [${languagesValues}]
|
|
27
|
+
> Missing languages provided: [${unregisteredLanguages}]
|
|
28
|
+
`);
|
|
29
|
+
}
|
|
30
|
+
if (languages.length > languagesValues.length) {
|
|
31
|
+
this._requiredLanguages$.next(languagesValues);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this._requiredLanguages$.next(languages);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
TranslationFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
TranslationFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormService, providedIn: "root" });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationFormService, decorators: [{
|
|
41
|
+
type: Injectable,
|
|
42
|
+
args: [{
|
|
43
|
+
providedIn: "root",
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJWSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0tBc0NuRTtJQXBDRyxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQW9CO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsU0FBb0I7UUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbkQsTUFBTSxxQkFBcUIsR0FBYSxTQUFTLEVBQUUsTUFBTSxDQUNyRCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUNwRCxDQUFDO1FBRUYsSUFBSSxxQkFBcUIsRUFBRSxNQUFNLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQzswQ0FDYyxlQUFlO2dEQUNULHFCQUFxQjthQUN4RCxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEQ7YUFBTTtZQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDOzttSEF2Q1Esc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTsyRkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uRm9ybVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2xhbmd1YWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWRMYW5ndWFnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gICAgcHVibGljIGdldCBsYW5ndWFnZXMkKCk6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkTGFuZ3VhZ2VzJCgpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkTGFuZ3VhZ2VzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGFuZ3VhZ2VzKGxhbmd1YWdlcz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhbmd1YWdlcyQubmV4dChsYW5ndWFnZXMgPz8gW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSZXF1aXJlZExhbmd1YWdlcyhsYW5ndWFnZXM/OiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWxhbmd1YWdlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZExhbmd1YWdlcyQubmV4dChbXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYW5ndWFnZXNWYWx1ZXMgPSB0aGlzLmxhbmd1YWdlcyQuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCB1bnJlZ2lzdGVyZWRMYW5ndWFnZXM6IHN0cmluZ1tdID0gbGFuZ3VhZ2VzPy5maWx0ZXIoXG4gICAgICAgICAgICAobGFuZ3VhZ2UpID0+ICFsYW5ndWFnZXNWYWx1ZXMuaW5jbHVkZXMobGFuZ3VhZ2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHVucmVnaXN0ZXJlZExhbmd1YWdlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFlvdSBwcm92aWRlZCBsYW5ndWFnZXMgdGhhdCBhcmUgbm90IGNvbmZpZ3VyZWRcbiAgICAgICAgICAgICAgID4gQ29uZmlndXJlZCBsYW5ndWFnZXM6IFske2xhbmd1YWdlc1ZhbHVlc31dXG4gICAgICAgICAgICAgICA+IE1pc3NpbmcgbGFuZ3VhZ2VzIHByb3ZpZGVkOiBbJHt1bnJlZ2lzdGVyZWRMYW5ndWFnZXN9XVxuICAgICAgICAgICAgYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGFuZ3VhZ2VzLmxlbmd0aCA+IGxhbmd1YWdlc1ZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlcXVpcmVkTGFuZ3VhZ2VzJC5uZXh0KGxhbmd1YWdlc1ZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZExhbmd1YWdlcyQubmV4dChsYW5ndWFnZXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./toggle/translation-toggle.component";
|
|
2
|
+
export * from "./directives/translation-context.directive";
|
|
3
|
+
export * from "./providers/translation-form.service";
|
|
4
|
+
export * from "./validators/require-for-languages.validator";
|
|
5
|
+
export * from "./translation.form";
|
|
6
|
+
export * from "./components/translation-form.module";
|
|
7
|
+
export * from "./components/textarea/translation-form-textarea.component";
|
|
8
|
+
export * from "./components/textfield/translation-form-textfield.component";
|
|
9
|
+
export * from "./decorators/translation-form.decorator";
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1mb3JtL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi90b2dnbGUvdHJhbnNsYXRpb24tdG9nZ2xlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy90cmFuc2xhdGlvbi1jb250ZXh0LmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdG9ycy9yZXF1aXJlLWZvci1sYW5ndWFnZXMudmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90cmFuc2xhdGlvbi5mb3JtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RleHRhcmVhL3RyYW5zbGF0aW9uLWZvcm0tdGV4dGFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RleHRmaWVsZC90cmFuc2xhdGlvbi1mb3JtLXRleHRmaWVsZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnMvdHJhbnNsYXRpb24tZm9ybS5kZWNvcmF0b3JcIjtcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { TranslationContextDirective } from "../directives/translation-context.directive";
|
|
3
|
+
import { TranslationFormService } from "../providers/translation-form.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../directives/translation-context.directive";
|
|
6
|
+
import * as i2 from "../providers/translation-form.service";
|
|
7
|
+
import * as i3 from "@angular/material/button-toggle";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
9
|
+
export class TranslationToggleComponent {
|
|
10
|
+
constructor(context, translationFormService) {
|
|
11
|
+
this.context = context;
|
|
12
|
+
this.translationFormService = translationFormService;
|
|
13
|
+
this.languages$ = this.translationFormService.languages$;
|
|
14
|
+
this.activeLanguage$ = this.context.activeLanguage$;
|
|
15
|
+
}
|
|
16
|
+
onChange($event) {
|
|
17
|
+
this.context.updateLanguage($event.value);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
TranslationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationToggleComponent, deps: [{ token: i1.TranslationContextDirective }, { token: i2.TranslationFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
TranslationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: TranslationToggleComponent, selector: "nice-translation-toggle", ngImport: i0, template: "<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n", dependencies: [{ kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: TranslationToggleComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: "nice-translation-toggle", template: "<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n" }]
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.TranslationContextDirective }, { type: i2.TranslationFormService }]; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1mb3JtL3RvZ2dsZS90cmFuc2xhdGlvbi10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zbGF0aW9uLWZvcm0vdG9nZ2xlL3RyYW5zbGF0aW9uLXRvZ2dsZS50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQU0vRSxNQUFNLE9BQU8sMEJBQTBCO0lBSW5DLFlBQ1ksT0FBb0MsRUFDcEMsc0JBQThDO1FBRDlDLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBQ3BDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFMbkQsZUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUM7UUFDcEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUtuRCxDQUFDO0lBRUcsUUFBUSxDQUFDLE1BQTZCO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOzt1SEFYUSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwrRENUdkMsaVZBU0E7MkZEQWEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNJLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Db250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRpb24tY29udGV4dC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLXRyYW5zbGF0aW9uLXRvZ2dsZVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcInRyYW5zbGF0aW9uLXRvZ2dsZS50ZW1wbGF0ZS5odG1sXCIsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uVG9nZ2xlQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgbGFuZ3VhZ2VzJCA9IHRoaXMudHJhbnNsYXRpb25Gb3JtU2VydmljZS5sYW5ndWFnZXMkO1xuICAgIHB1YmxpYyBhY3RpdmVMYW5ndWFnZSQgPSB0aGlzLmNvbnRleHQuYWN0aXZlTGFuZ3VhZ2UkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29udGV4dDogVHJhbnNsYXRpb25Db250ZXh0RGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uRm9ybVNlcnZpY2U6IFRyYW5zbGF0aW9uRm9ybVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2UoJGV2ZW50OiBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZUxhbmd1YWdlKCRldmVudC52YWx1ZSk7XG4gICAgfVxufVxuIiwiPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gICAgKm5nSWY9XCIobGFuZ3VhZ2VzJCB8IGFzeW5jKT8ubGVuZ3RoID4gMVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwiYWN0aXZlTGFuZ3VhZ2UkIHwgYXN5bmNcIlxuPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cImxhbmd1YWdlXCI+XG4gICAgICAgIHt7IGxhbmd1YWdlIHwgdXBwZXJjYXNlIH19XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class TranslationForm {
|
|
2
|
+
constructor(values) {
|
|
3
|
+
Object.assign(this, values ?? {});
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1mb3JtL3RyYW5zbGF0aW9uLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFBWSxNQUF3QztRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uRm9ybSB7XG4gICAgY29uc3RydWN0b3IodmFsdWVzPzogeyBbbGFuZ3VhZ2U6IHN0cmluZ106IHN0cmluZzsgfSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHZhbHVlcyA/PyB7fSk7XG4gICAgfVxufVxuIl19
|