@recursyve/nice-ui-kit.v2 14.0.0-beta.117 → 14.0.0-beta.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm2020/lib/components/public-api.mjs +2 -1
  2. package/esm2020/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +37 -0
  3. package/esm2020/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +25 -0
  4. package/esm2020/lib/components/translation-form/components/translation-form.component.mjs +164 -0
  5. package/esm2020/lib/components/translation-form/components/translation-form.module.mjs +71 -0
  6. package/esm2020/lib/components/translation-form/decorators/translation-form.decorator.mjs +4 -0
  7. package/esm2020/lib/components/translation-form/directives/translation-context.directive.mjs +34 -0
  8. package/esm2020/lib/components/translation-form/index.mjs +2 -0
  9. package/esm2020/lib/components/translation-form/providers/translation-form.service.mjs +46 -0
  10. package/esm2020/lib/components/translation-form/public-api.mjs +10 -0
  11. package/esm2020/lib/components/translation-form/toggle/translation-toggle.component.mjs +26 -0
  12. package/esm2020/lib/components/translation-form/translation.form.mjs +6 -0
  13. package/esm2020/lib/components/translation-form/validators/require-for-languages.validator.mjs +42 -0
  14. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +468 -70
  15. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  16. package/fesm2020/recursyve-nice-ui-kit.v2.mjs +468 -70
  17. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
  18. package/lib/components/public-api.d.ts +1 -0
  19. package/lib/components/translation-form/components/textarea/translation-form-textarea.component.d.ts +9 -0
  20. package/lib/components/translation-form/components/textfield/translation-form-textfield.component.d.ts +6 -0
  21. package/lib/components/translation-form/components/translation-form.component.d.ts +55 -0
  22. package/lib/components/translation-form/components/translation-form.module.d.ts +16 -0
  23. package/lib/components/translation-form/decorators/translation-form.decorator.d.ts +1 -0
  24. package/lib/components/translation-form/directives/translation-context.directive.d.ts +15 -0
  25. package/lib/components/translation-form/index.d.ts +1 -0
  26. package/lib/components/translation-form/providers/translation-form.service.d.ts +12 -0
  27. package/lib/components/translation-form/public-api.d.ts +9 -0
  28. package/lib/components/translation-form/toggle/translation-toggle.component.d.ts +14 -0
  29. package/lib/components/translation-form/translation.form.d.ts +5 -0
  30. package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +14 -0
  31. package/package.json +2 -2
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FsZXJ0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hc3NldHMtY2Fyb3VzZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FzeW5jLXR5cGVhaGVhZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmFzZS1mb3JtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJvdXNlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29sbGFwc2FibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGUtcmFuZ2UtcGlja2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcmF3ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydC1ib3R0b20tc2hlZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm0tZXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvcml6b250YWwtc3RlcHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW1hZ2UtY3JvcHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGF5b3V0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2FkaW5nLXNwaW5uZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvdHRpZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmF2aWdhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VhcmNoLWJhclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3dlZXQtYWxlcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvYXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b2dnbGUtYnV0dG9uLWdyb3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlYWhlYWRcIjtcbiJdfQ==
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
@@ -0,0 +1,42 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { AsyncValidator, registerAsyncValidatorDecorator, } from "@recursyve/ngx-form-generator";
3
+ import { of } from "rxjs";
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 function RequireForLanguages() {
8
+ return registerAsyncValidatorDecorator({
9
+ name: "RequireForLanguages",
10
+ });
11
+ }
12
+ export class RequireForLanguagesValidator extends AsyncValidator {
13
+ constructor(service) {
14
+ super();
15
+ this.service = service;
16
+ this.name = "RequireForLanguages";
17
+ }
18
+ validate(formGroup) {
19
+ const requiredLanguages = this.service.requiredLanguages$.getValue();
20
+ if (!requiredLanguages.length) {
21
+ return of(null);
22
+ }
23
+ const missingLanguages = [];
24
+ for (const requiredLanguage of requiredLanguages) {
25
+ const control = formGroup.get(requiredLanguage);
26
+ if (control?.value) {
27
+ continue;
28
+ }
29
+ missingLanguages.push(requiredLanguage);
30
+ }
31
+ if (missingLanguages?.length) {
32
+ return of({ languageRequired: { missingLanguages } });
33
+ }
34
+ return of(null);
35
+ }
36
+ }
37
+ RequireForLanguagesValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: RequireForLanguagesValidator, deps: [{ token: i1.TranslationFormService }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ RequireForLanguagesValidator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: RequireForLanguagesValidator });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: RequireForLanguagesValidator, decorators: [{
40
+ type: Injectable
41
+ }], ctorParameters: function () { return [{ type: i1.TranslationFormService }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS1mb3ItbGFuZ3VhZ2VzLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1mb3JtL3ZhbGlkYXRvcnMvcmVxdWlyZS1mb3ItbGFuZ3VhZ2VzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsK0JBQStCLEdBQ2xDLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRS9FLE1BQU0sVUFBVSxtQkFBbUI7SUFDL0IsT0FBTywrQkFBK0IsQ0FBQztRQUNuQyxJQUFJLEVBQUUscUJBQXFCO0tBQzlCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFHRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsY0FBYztJQUc1RCxZQUFvQixPQUErQjtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQURRLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBRjVDLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUlwQyxDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQW9CO1FBQ2hDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBRUQsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFFdEMsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFO1lBQzlDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVoRCxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUU7Z0JBQ2hCLFNBQVM7YUFDWjtZQUVELGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUU7WUFDMUIsT0FBTyxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7eUhBL0JRLDRCQUE0Qjs2SEFBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgICBBc3luY1ZhbGlkYXRvcixcbiAgICByZWdpc3RlckFzeW5jVmFsaWRhdG9yRGVjb3JhdG9yLFxufSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vcHJvdmlkZXJzL3RyYW5zbGF0aW9uLWZvcm0uc2VydmljZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gUmVxdWlyZUZvckxhbmd1YWdlcygpIHtcbiAgICByZXR1cm4gcmVnaXN0ZXJBc3luY1ZhbGlkYXRvckRlY29yYXRvcih7XG4gICAgICAgIG5hbWU6IFwiUmVxdWlyZUZvckxhbmd1YWdlc1wiLFxuICAgIH0pO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVxdWlyZUZvckxhbmd1YWdlc1ZhbGlkYXRvciBleHRlbmRzIEFzeW5jVmFsaWRhdG9yIHtcbiAgICBwdWJsaWMgbmFtZSA9IFwiUmVxdWlyZUZvckxhbmd1YWdlc1wiO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBUcmFuc2xhdGlvbkZvcm1TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCByZXF1aXJlZExhbmd1YWdlcyA9IHRoaXMuc2VydmljZS5yZXF1aXJlZExhbmd1YWdlcyQuZ2V0VmFsdWUoKTtcblxuICAgICAgICBpZiAoIXJlcXVpcmVkTGFuZ3VhZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWlzc2luZ0xhbmd1YWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHJlcXVpcmVkTGFuZ3VhZ2Ugb2YgcmVxdWlyZWRMYW5ndWFnZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHJlcXVpcmVkTGFuZ3VhZ2UpO1xuXG4gICAgICAgICAgICBpZiAoY29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWlzc2luZ0xhbmd1YWdlcy5wdXNoKHJlcXVpcmVkTGFuZ3VhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1pc3NpbmdMYW5ndWFnZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHsgbGFuZ3VhZ2VSZXF1aXJlZDogeyBtaXNzaW5nTGFuZ3VhZ2VzIH0gfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxufVxuIl19