@candy-kingdom/bonnie-cms 0.1.3

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 (119) hide show
  1. package/README.md +7 -0
  2. package/esm2022/candy-kingdom-bonnie-cms.mjs +5 -0
  3. package/esm2022/index.mjs +16 -0
  4. package/esm2022/lib/admin-controls/admin-controls.component.mjs +44 -0
  5. package/esm2022/lib/admin-controls/index.mjs +2 -0
  6. package/esm2022/lib/bone-editors/bone-editor-base.component.mjs +143 -0
  7. package/esm2022/lib/bone-editors/index.mjs +3 -0
  8. package/esm2022/lib/bone-editors/unknown-bone-editor/index.mjs +2 -0
  9. package/esm2022/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.mjs +18 -0
  10. package/esm2022/lib/bonnie-cms.module.mjs +105 -0
  11. package/esm2022/lib/core/DeviceType.mjs +8 -0
  12. package/esm2022/lib/core/DeviceVisibility.mjs +9 -0
  13. package/esm2022/lib/core/MediaType.mjs +2 -0
  14. package/esm2022/lib/core/TextEditorField.mjs +7 -0
  15. package/esm2022/lib/core/Utils.mjs +18 -0
  16. package/esm2022/lib/core/index.mjs +6 -0
  17. package/esm2022/lib/core-components/editable-group.mjs +84 -0
  18. package/esm2022/lib/core-components/editable.directive.mjs +173 -0
  19. package/esm2022/lib/core-components/form-base.component.mjs +34 -0
  20. package/esm2022/lib/core-components/index.mjs +5 -0
  21. package/esm2022/lib/core-components/link-popup/index.mjs +2 -0
  22. package/esm2022/lib/core-components/link-popup/link-popup.component.mjs +73 -0
  23. package/esm2022/lib/form-controls/form-controls.component.mjs +16 -0
  24. package/esm2022/lib/form-controls/index.mjs +2 -0
  25. package/esm2022/lib/generated/i-equatable.mjs +6 -0
  26. package/esm2022/lib/generated/i-setting.mjs +6 -0
  27. package/esm2022/lib/generated/index.mjs +14 -0
  28. package/esm2022/lib/generated/localized-text-setting-data.mjs +6 -0
  29. package/esm2022/lib/generated/setting-base.mjs +6 -0
  30. package/esm2022/lib/generated/setting-data.mjs +6 -0
  31. package/esm2022/lib/generated/setting-group.mjs +6 -0
  32. package/esm2022/lib/generated/setting.mjs +6 -0
  33. package/esm2022/lib/generated/text-setting-data.mjs +6 -0
  34. package/esm2022/lib/generated/text-setting-type.mjs +10 -0
  35. package/esm2022/lib/media-uploader/index.mjs +2 -0
  36. package/esm2022/lib/media-uploader/media-uploader.component.mjs +159 -0
  37. package/esm2022/lib/seo-form/index.mjs +2 -0
  38. package/esm2022/lib/seo-form/seo-form.component.mjs +42 -0
  39. package/esm2022/lib/skeleton-editor/BoneEditorMap.mjs +2 -0
  40. package/esm2022/lib/skeleton-editor/ContentPreset.mjs +9 -0
  41. package/esm2022/lib/skeleton-editor/IBoneEditor.mjs +2 -0
  42. package/esm2022/lib/skeleton-editor/IBoneTemplate.mjs +2 -0
  43. package/esm2022/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.mjs +119 -0
  44. package/esm2022/lib/skeleton-editor/index.mjs +9 -0
  45. package/esm2022/lib/skeleton-editor/skeleton-editor-anchor.directive.mjs +16 -0
  46. package/esm2022/lib/skeleton-editor/skeleton-editor.component.mjs +107 -0
  47. package/esm2022/lib/text-form/TextInputStyle.mjs +7 -0
  48. package/esm2022/lib/text-form/index.mjs +3 -0
  49. package/esm2022/lib/text-form/text-form.component.mjs +33 -0
  50. package/esm2022/lib/translation-form/index.mjs +2 -0
  51. package/esm2022/lib/translation-form/translation-form.component.mjs +32 -0
  52. package/esm2022/lib/translation-input/index.mjs +2 -0
  53. package/esm2022/lib/translation-input/translation-input.component.mjs +42 -0
  54. package/esm2022/lib/translation-textarea/index.mjs +2 -0
  55. package/esm2022/lib/translation-textarea/translation-textarea.component.mjs +66 -0
  56. package/esm2022/lib/unknown-form/index.mjs +2 -0
  57. package/esm2022/lib/unknown-form/unknown-form.component.mjs +23 -0
  58. package/fesm2022/candy-kingdom-bonnie-cms.mjs +1343 -0
  59. package/fesm2022/candy-kingdom-bonnie-cms.mjs.map +1 -0
  60. package/index.d.ts +15 -0
  61. package/lib/admin-controls/admin-controls.component.d.ts +14 -0
  62. package/lib/admin-controls/index.d.ts +1 -0
  63. package/lib/bone-editors/bone-editor-base.component.d.ts +44 -0
  64. package/lib/bone-editors/index.d.ts +2 -0
  65. package/lib/bone-editors/unknown-bone-editor/index.d.ts +1 -0
  66. package/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.d.ts +11 -0
  67. package/lib/bonnie-cms.module.d.ts +26 -0
  68. package/lib/core/DeviceType.d.ts +6 -0
  69. package/lib/core/DeviceVisibility.d.ts +7 -0
  70. package/lib/core/MediaType.d.ts +2 -0
  71. package/lib/core/TextEditorField.d.ts +5 -0
  72. package/lib/core/Utils.d.ts +4 -0
  73. package/lib/core/index.d.ts +5 -0
  74. package/lib/core-components/editable-group.d.ts +24 -0
  75. package/lib/core-components/editable.directive.d.ts +43 -0
  76. package/lib/core-components/form-base.component.d.ts +15 -0
  77. package/lib/core-components/index.d.ts +4 -0
  78. package/lib/core-components/link-popup/index.d.ts +1 -0
  79. package/lib/core-components/link-popup/link-popup.component.d.ts +28 -0
  80. package/lib/form-controls/form-controls.component.d.ts +7 -0
  81. package/lib/form-controls/index.d.ts +1 -0
  82. package/lib/generated/i-equatable.d.ts +6 -0
  83. package/lib/generated/i-setting.d.ts +8 -0
  84. package/lib/generated/index.d.ts +13 -0
  85. package/lib/generated/localized-text-setting-data.d.ts +11 -0
  86. package/lib/generated/setting-base.d.ts +8 -0
  87. package/lib/generated/setting-data.d.ts +8 -0
  88. package/lib/generated/setting-group.d.ts +10 -0
  89. package/lib/generated/setting.d.ts +9 -0
  90. package/lib/generated/text-setting-data.d.ts +10 -0
  91. package/lib/generated/text-setting-type.d.ts +8 -0
  92. package/lib/media-uploader/index.d.ts +1 -0
  93. package/lib/media-uploader/media-uploader.component.d.ts +34 -0
  94. package/lib/seo-form/index.d.ts +1 -0
  95. package/lib/seo-form/seo-form.component.d.ts +18 -0
  96. package/lib/skeleton-editor/BoneEditorMap.d.ts +3 -0
  97. package/lib/skeleton-editor/ContentPreset.d.ts +11 -0
  98. package/lib/skeleton-editor/IBoneEditor.d.ts +26 -0
  99. package/lib/skeleton-editor/IBoneTemplate.d.ts +5 -0
  100. package/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.d.ts +32 -0
  101. package/lib/skeleton-editor/index.d.ts +8 -0
  102. package/lib/skeleton-editor/skeleton-editor-anchor.directive.d.ts +8 -0
  103. package/lib/skeleton-editor/skeleton-editor.component.d.ts +31 -0
  104. package/lib/text-form/TextInputStyle.d.ts +5 -0
  105. package/lib/text-form/index.d.ts +2 -0
  106. package/lib/text-form/text-form.component.d.ts +13 -0
  107. package/lib/translation-form/index.d.ts +1 -0
  108. package/lib/translation-form/translation-form.component.d.ts +14 -0
  109. package/lib/translation-input/index.d.ts +1 -0
  110. package/lib/translation-input/translation-input.component.d.ts +17 -0
  111. package/lib/translation-textarea/index.d.ts +1 -0
  112. package/lib/translation-textarea/translation-textarea.component.d.ts +26 -0
  113. package/lib/unknown-form/index.d.ts +1 -0
  114. package/lib/unknown-form/unknown-form.component.d.ts +9 -0
  115. package/package.json +25 -0
  116. package/styles/@candy-kingdom/bonnie/variables.scss +0 -0
  117. package/styles/admin-styles.scss +139 -0
  118. package/styles/admin-variables.scss +445 -0
  119. package/styles/variables.scss +415 -0
@@ -0,0 +1,107 @@
1
+ import { Component, Host, Input, QueryList, ViewChildren } from '@angular/core';
2
+ import { EditableDirective } from '../core-components/editable.directive';
3
+ import { DeviceType } from '../core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../core-components/editable.directive";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "./bone-editor-container/bone-editor-container.component";
8
+ // todo: rename class
9
+ export class SkeletonEditorComponent {
10
+ constructor(editable) {
11
+ this.editable = editable;
12
+ this.device = DeviceType.NotSet;
13
+ this.templatesAreShown = [];
14
+ }
15
+ ngOnInit() {
16
+ this.editable.externalSaveCall.subscribe(() => {
17
+ this.boneEditorContainerList.forEach(editorContainer => editorContainer.editor?.save());
18
+ this.editable.save();
19
+ });
20
+ this.editable.canceled.subscribe(() => {
21
+ this.boneEditorContainerList.forEach(editorContainer => editorContainer.editor?.resetData());
22
+ this.editable.save();
23
+ });
24
+ }
25
+ ngOnChanges() {
26
+ this.templatesAreShown.splice(0, this.templatesAreShown.length);
27
+ if (this.bones === undefined)
28
+ return;
29
+ this.bones.forEach(() => this.templatesAreShown.push(false));
30
+ this.templatesAreShown.push(false);
31
+ }
32
+ get bones() {
33
+ return this.editable?.value ?? [];
34
+ }
35
+ boneEditHandler(isEditing) {
36
+ if (isEditing)
37
+ this.editable.startEditing();
38
+ else {
39
+ const allClosed = this.boneEditorContainerList
40
+ .filter(x => x.editor !== undefined && x.editor.isEditing)
41
+ .length === 0;
42
+ this.editable.updateDirty();
43
+ if (!this.editable.isDirty && allClosed)
44
+ this.editable.close();
45
+ }
46
+ }
47
+ boneChangeHandler(index, newBoneValue) {
48
+ if (Array.isArray(this.editable.value)) {
49
+ this.editable.value[index] = newBoneValue;
50
+ }
51
+ this.editable.save();
52
+ }
53
+ removeBone(boneIndex) {
54
+ if (this.bones === undefined || this.bones === null)
55
+ return;
56
+ if (!confirm('Вы уверены, что хотите удалить компонент?'))
57
+ return;
58
+ this.bones.splice(boneIndex, 1);
59
+ if (!this.editable.inEditMode)
60
+ this.editable.startEditing();
61
+ this.editable.save();
62
+ }
63
+ moveDown(boneIndex) {
64
+ if (boneIndex >= this.bones.length - 1)
65
+ return;
66
+ this.swapBones(boneIndex, boneIndex + 1);
67
+ }
68
+ moveUp(boneIndex) {
69
+ if (boneIndex <= 0)
70
+ return;
71
+ this.swapBones(boneIndex - 1, boneIndex);
72
+ }
73
+ createBone(index, selectedTemplate) {
74
+ const newBone = selectedTemplate.boneFactory();
75
+ this.bones.splice(index, 0, newBone);
76
+ }
77
+ swapBones(index1, index2) {
78
+ if (index1 < 0 || index2 < 0 || index1 >= this.bones.length || index2 >= this.bones.length)
79
+ throw new Error(`ошибка swapBones. неправильные индексы ${index1} и ${index2}. bone count: ${this.bones.length}`);
80
+ const tempBone = this.bones[index1];
81
+ this.bones[index1] = this.bones[index2];
82
+ this.bones[index2] = tempBone;
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SkeletonEditorComponent, deps: [{ token: i1.EditableDirective, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SkeletonEditorComponent, selector: "bonc-skeleton-editor", inputs: { locale: "locale", device: "device", map: "map", templates: "templates" }, viewQueries: [{ propertyName: "boneEditorContainerList", predicate: ["boneEditorContainer"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.EditableDirective }], ngImport: i0, template: "<ng-template #controls let-index='index'>\r\n <div [class.appearable]=\"index > 0 && index < bones.length\" class=\"controls\">\r\n <div *ngIf=\"index < bones.length\" class=\"up-down\">\r\n <a *ngIf=\"index > 0\" (click)=\"moveDown(index - 1)\" class=\"down\">move down</a>\r\n <a *ngIf=\"index > 0\" (click)=\"moveUp(index)\" class=\"up\">move up</a>\r\n </div>\r\n <a (click)=\"templatesAreShown[index] = true\" class=\"add\">create</a>\r\n <a *ngIf=\"index < bones.length\" (click)=\"removeBone(index)\" class=\"remove\">remove</a>\r\n </div>\r\n\r\n <div *ngIf=\"templatesAreShown[index]\" class=\"templates\">\r\n <a *ngFor=\"let template of templates\" (click)=\"templatesAreShown[index] = false; createBone(index,template);\">{{template.title}}</a>\r\n <a (click)=\"templatesAreShown[index] = false\">Close</a>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- todo: add trackby -->\r\n<ng-container *ngFor=\"let bone of bones; let i = index\">\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"controls; context: {index: i}\"></ng-container>\r\n </ng-container>\r\n\r\n <bonc-bone-editor-container #boneEditorContainer\r\n [map]=\"map\"\r\n [bone]=\"bone\"\r\n [locale]=\"locale\"\r\n [device]=\"device\"\r\n (removed)=\"removeBone(i)\"\r\n (editing)=\"boneEditHandler($event)\"\r\n (saved)=\"boneChangeHandler(i, $event)\">\r\n </bonc-bone-editor-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"controls; context: {index: bones.length}\"></ng-container>\r\n", styles: [":host{display:block}.controls{height:62px;display:flex;align-items:center;justify-content:space-between;margin:0 120px}.controls.appearable{background-color:var(--bg-color)}.controls.appearable *{opacity:0}.controls.appearable:hover{background-color:#222}.controls.appearable:hover *{opacity:1}.controls .up-down{width:100px;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}.controls a{display:flex;align-items:center;justify-content:center;color:#000;background-color:#cf0;-webkit-user-select:none;user-select:none;cursor:pointer}.controls a.add{padding:10px 30px}.controls a.up,.controls a.down,.controls a.remove{padding:4px 8px}.controls a.remove{align-self:flex-end}.controls a:hover{color:#cf0;background-color:#333}.controls a.remove:hover{color:#fff;background-color:#ff355e}.templates{width:220px;height:380px;position:absolute;left:50%;display:flex;flex-direction:column;margin-left:-110px;margin-top:-190px;z-index:10;padding:6px;background-color:#cf0;box-shadow:0 0 78px #000000bf}.templates a{display:flex;flex:1;align-items:center;justify-content:center;background-color:#cf0;text-align:center;cursor:pointer;text-transform:lowercase}.templates a:hover{text-decoration:underline;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.BoneEditorContainerComponent, selector: "bonc-bone-editor-container", inputs: ["locale", "device", "map", "bone"], outputs: ["removed", "saved", "editing"] }] }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SkeletonEditorComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'bonc-skeleton-editor', hostDirectives: [EditableDirective], template: "<ng-template #controls let-index='index'>\r\n <div [class.appearable]=\"index > 0 && index < bones.length\" class=\"controls\">\r\n <div *ngIf=\"index < bones.length\" class=\"up-down\">\r\n <a *ngIf=\"index > 0\" (click)=\"moveDown(index - 1)\" class=\"down\">move down</a>\r\n <a *ngIf=\"index > 0\" (click)=\"moveUp(index)\" class=\"up\">move up</a>\r\n </div>\r\n <a (click)=\"templatesAreShown[index] = true\" class=\"add\">create</a>\r\n <a *ngIf=\"index < bones.length\" (click)=\"removeBone(index)\" class=\"remove\">remove</a>\r\n </div>\r\n\r\n <div *ngIf=\"templatesAreShown[index]\" class=\"templates\">\r\n <a *ngFor=\"let template of templates\" (click)=\"templatesAreShown[index] = false; createBone(index,template);\">{{template.title}}</a>\r\n <a (click)=\"templatesAreShown[index] = false\">Close</a>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- todo: add trackby -->\r\n<ng-container *ngFor=\"let bone of bones; let i = index\">\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"controls; context: {index: i}\"></ng-container>\r\n </ng-container>\r\n\r\n <bonc-bone-editor-container #boneEditorContainer\r\n [map]=\"map\"\r\n [bone]=\"bone\"\r\n [locale]=\"locale\"\r\n [device]=\"device\"\r\n (removed)=\"removeBone(i)\"\r\n (editing)=\"boneEditHandler($event)\"\r\n (saved)=\"boneChangeHandler(i, $event)\">\r\n </bonc-bone-editor-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"controls; context: {index: bones.length}\"></ng-container>\r\n", styles: [":host{display:block}.controls{height:62px;display:flex;align-items:center;justify-content:space-between;margin:0 120px}.controls.appearable{background-color:var(--bg-color)}.controls.appearable *{opacity:0}.controls.appearable:hover{background-color:#222}.controls.appearable:hover *{opacity:1}.controls .up-down{width:100px;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}.controls a{display:flex;align-items:center;justify-content:center;color:#000;background-color:#cf0;-webkit-user-select:none;user-select:none;cursor:pointer}.controls a.add{padding:10px 30px}.controls a.up,.controls a.down,.controls a.remove{padding:4px 8px}.controls a.remove{align-self:flex-end}.controls a:hover{color:#cf0;background-color:#333}.controls a.remove:hover{color:#fff;background-color:#ff355e}.templates{width:220px;height:380px;position:absolute;left:50%;display:flex;flex-direction:column;margin-left:-110px;margin-top:-190px;z-index:10;padding:6px;background-color:#cf0;box-shadow:0 0 78px #000000bf}.templates a{display:flex;flex:1;align-items:center;justify-content:center;background-color:#cf0;text-align:center;cursor:pointer;text-transform:lowercase}.templates a:hover{text-decoration:underline;font-weight:700}\n"] }]
90
+ }], ctorParameters: () => [{ type: i1.EditableDirective, decorators: [{
91
+ type: Host
92
+ }] }], propDecorators: { boneEditorContainerList: [{
93
+ type: ViewChildren,
94
+ args: ['boneEditorContainer']
95
+ }], locale: [{
96
+ type: Input,
97
+ args: [{ required: true }]
98
+ }], device: [{
99
+ type: Input
100
+ }], map: [{
101
+ type: Input,
102
+ args: [{ required: true }]
103
+ }], templates: [{
104
+ type: Input,
105
+ args: [{ required: true }]
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYm9ubmllLWNtcy9zcmMvbGliL3NrZWxldG9uLWVkaXRvci9za2VsZXRvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvc2tlbGV0b24tZWRpdG9yL3NrZWxldG9uLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFJckMscUJBQXFCO0FBT3JCLE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFBMkIsUUFBbUM7UUFBbkMsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFKdkQsV0FBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFbEIsc0JBQWlCLEdBQWMsRUFBRSxDQUFDO0lBSWxELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBRWhDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDbEQsQ0FBQztZQUVKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElB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LEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCb25lIH0gZnJvbSAnQGNhbmR5LWtpbmdkb20vYm9ubmllJztcclxuaW1wb3J0IHsgQm9uZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vYm9uZS1lZGl0b3ItY29udGFpbmVyL2JvbmUtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUtY29tcG9uZW50cy9lZGl0YWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEZXZpY2VUeXBlIH0gZnJvbSAnLi4vY29yZSc7XHJcbmltcG9ydCB7IElCb25lVGVtcGxhdGUgfSBmcm9tICcuL0lCb25lVGVtcGxhdGUnO1xyXG5pbXBvcnQgeyBCb25lRWRpdG9yTWFwIH0gZnJvbSAnLi9Cb25lRWRpdG9yTWFwJztcclxuXHJcbi8vIHRvZG86IHJlbmFtZSBjbGFzc1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JvbmMtc2tlbGV0b24tZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2tlbGV0b24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9za2VsZXRvbi1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0RGlyZWN0aXZlczogW0VkaXRhYmxlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2tlbGV0b25FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZHJlbignYm9uZUVkaXRvckNvbnRhaW5lcicpXHJcbiAgcHVibGljIGJvbmVFZGl0b3JDb250YWluZXJMaXN0ITogUXVlcnlMaXN0PEJvbmVFZGl0b3JDb250YWluZXJDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBsb2NhbGUhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRldmljZSA9IERldmljZVR5cGUuTm90U2V0O1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVzQXJlU2hvd246IGJvb2xlYW5bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBlZGl0YWJsZTogRWRpdGFibGVEaXJlY3RpdmU8Qm9uZVtdPikge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdGFibGUuZXh0ZXJuYWxTYXZlQ2FsbC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJvbmVFZGl0b3JDb250YWluZXJMaXN0LmZvckVhY2hcclxuICAgICAgICAoXHJcbiAgICAgICAgICBlZGl0b3JDb250YWluZXIgPT4gZWRpdG9yQ29udGFpbmVyLmVkaXRvcj8uc2F2ZSgpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGUuc2F2ZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5lZGl0YWJsZS5jYW5jZWxlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJvbmVFZGl0b3JDb250YWluZXJMaXN0LmZvckVhY2hcclxuICAgICAgICAoXHJcbiAgICAgICAgICBlZGl0b3JDb250YWluZXIgPT4gZWRpdG9yQ29udGFpbmVyLmVkaXRvcj8ucmVzZXREYXRhKClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgdGhpcy5lZGl0YWJsZS5zYXZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIG1hcCE6IEJvbmVFZGl0b3JNYXA7XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcGxhdGVzQXJlU2hvd24uc3BsaWNlKDAsIHRoaXMudGVtcGxhdGVzQXJlU2hvd24ubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLmJvbmVzID09PSB1bmRlZmluZWQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmJvbmVzLmZvckVhY2goKCkgPT4gdGhpcy50ZW1wbGF0ZXNBcmVTaG93bi5wdXNoKGZhbHNlKSk7XHJcbiAgICB0aGlzLnRlbXBsYXRlc0FyZVNob3duLnB1c2goZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgdGVtcGxhdGVzITogUmVhZG9ubHlBcnJheTxJQm9uZVRlbXBsYXRlPjtcclxuXHJcblxyXG4gIHB1YmxpYyBnZXQgYm9uZXMoKTogQm9uZVtdIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlPy52YWx1ZSA/PyBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBib25lRWRpdEhhbmRsZXIoaXNFZGl0aW5nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNFZGl0aW5nKVxyXG4gICAgICB0aGlzLmVkaXRhYmxlLnN0YXJ0RWRpdGluZygpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFsbENsb3NlZCA9IHRoaXMuYm9uZUVkaXRvckNvbnRhaW5lckxpc3RcclxuICAgICAgICAuZmlsdGVyKHggPT4geC5lZGl0b3IgIT09IHVuZGVmaW5lZCAmJiB4LmVkaXRvci5pc0VkaXRpbmcpXHJcbiAgICAgICAgLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGUudXBkYXRlRGlydHkoKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5lZGl0YWJsZS5pc0RpcnR5ICYmIGFsbENsb3NlZClcclxuICAgICAgICB0aGlzLmVkaXRhYmxlLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYm9uZUNoYW5nZUhhbmRsZXIoaW5kZXg6IG51bWJlciwgbmV3Qm9uZVZhbHVlOiBCb25lKTogdm9pZCB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmVkaXRhYmxlLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmVkaXRhYmxlLnZhbHVlW2luZGV4XSA9IG5ld0JvbmVWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRhYmxlLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVCb25lKGJvbmVJbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ib25lcyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYm9uZXMgPT09IG51bGwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBpZiAoIWNvbmZpcm0oJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0LrQvtC80L/QvtC90LXQvdGCPycpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5ib25lcy5zcGxpY2UoYm9uZUluZGV4LCAxKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdGFibGUuaW5FZGl0TW9kZSlcclxuICAgICAgdGhpcy5lZGl0YWJsZS5zdGFydEVkaXRpbmcoKTtcclxuXHJcbiAgICB0aGlzLmVkaXRhYmxlLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3ZlRG93bihib25lSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGJvbmVJbmRleCA+PSB0aGlzLmJvbmVzLmxlbmd0aCAtIDEpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnN3YXBCb25lcyhib25lSW5kZXgsIGJvbmVJbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVcChib25lSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGJvbmVJbmRleCA8PSAwKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5zd2FwQm9uZXMoYm9uZUluZGV4IC0gMSwgYm9uZUluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVCb25lKGluZGV4OiBudW1iZXIsIHNlbGVjdGVkVGVtcGxhdGU6IElCb25lVGVtcGxhdGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0JvbmUgPSBzZWxlY3RlZFRlbXBsYXRlLmJvbmVGYWN0b3J5KCk7XHJcblxyXG4gICAgdGhpcy5ib25lcy5zcGxpY2UoaW5kZXgsIDAsIG5ld0JvbmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzd2FwQm9uZXMoaW5kZXgxOiBudW1iZXIsIGluZGV4MjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXgxIDwgMCB8fCBpbmRleDIgPCAwIHx8IGluZGV4MSA+PSB0aGlzLmJvbmVzLmxlbmd0aCB8fCBpbmRleDIgPj0gdGhpcy5ib25lcy5sZW5ndGgpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihg0L7RiNC40LHQutCwIHN3YXBCb25lcy4g0L3QtdC/0YDQsNCy0LjQu9GM0L3Ri9C1INC40L3QtNC10LrRgdGLICR7aW5kZXgxfSDQuCAke2luZGV4Mn0uIGJvbmUgY291bnQ6ICR7dGhpcy5ib25lcy5sZW5ndGh9YCk7XHJcblxyXG4gICAgY29uc3QgdGVtcEJvbmUgPSB0aGlzLmJvbmVzW2luZGV4MV07XHJcbiAgICB0aGlzLmJvbmVzW2luZGV4MV0gPSB0aGlzLmJvbmVzW2luZGV4Ml07XHJcbiAgICB0aGlzLmJvbmVzW2luZGV4Ml0gPSB0ZW1wQm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8bmctdGVtcGxhdGUgI2NvbnRyb2xzIGxldC1pbmRleD0naW5kZXgnPlxyXG4gIDxkaXYgW2NsYXNzLmFwcGVhcmFibGVdPVwiaW5kZXggPiAwICYmIGluZGV4IDwgYm9uZXMubGVuZ3RoXCIgY2xhc3M9XCJjb250cm9sc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cImluZGV4IDwgYm9uZXMubGVuZ3RoXCIgY2xhc3M9XCJ1cC1kb3duXCI+XHJcbiAgICAgIDxhICpuZ0lmPVwiaW5kZXggPiAwXCIgKGNsaWNrKT1cIm1vdmVEb3duKGluZGV4IC0gMSlcIiBjbGFzcz1cImRvd25cIj5tb3ZlIGRvd248L2E+XHJcbiAgICAgIDxhICpuZ0lmPVwiaW5kZXggPiAwXCIgKGNsaWNrKT1cIm1vdmVVcChpbmRleClcIiBjbGFzcz1cInVwXCI+bW92ZSB1cDwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgKGNsaWNrKT1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XSA9IHRydWVcIiBjbGFzcz1cImFkZFwiPmNyZWF0ZTwvYT5cclxuICAgIDxhICpuZ0lmPVwiaW5kZXggPCBib25lcy5sZW5ndGhcIiAoY2xpY2spPVwicmVtb3ZlQm9uZShpbmRleClcIiBjbGFzcz1cInJlbW92ZVwiPnJlbW92ZTwvYT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XVwiIGNsYXNzPVwidGVtcGxhdGVzXCI+XHJcbiAgICA8YSAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzXCIgKGNsaWNrKT1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XSA9IGZhbHNlOyBjcmVhdGVCb25lKGluZGV4LHRlbXBsYXRlKTtcIj57e3RlbXBsYXRlLnRpdGxlfX08L2E+XHJcbiAgICA8YSAoY2xpY2spPVwidGVtcGxhdGVzQXJlU2hvd25baW5kZXhdID0gZmFsc2VcIj5DbG9zZTwvYT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gdG9kbzogYWRkIHRyYWNrYnkgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJvbmUgb2YgYm9uZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICA8bmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRyb2xzOyBjb250ZXh0OiB7aW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxib25jLWJvbmUtZWRpdG9yLWNvbnRhaW5lciAjYm9uZUVkaXRvckNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFwXT1cIm1hcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib25lXT1cImJvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VdPVwiZGV2aWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlQm9uZShpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0aW5nKT1cImJvbmVFZGl0SGFuZGxlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVkKT1cImJvbmVDaGFuZ2VIYW5kbGVyKGksICRldmVudClcIj5cclxuICA8L2JvbmMtYm9uZS1lZGl0b3ItY29udGFpbmVyPlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udHJvbHM7IGNvbnRleHQ6IHtpbmRleDogYm9uZXMubGVuZ3RofVwiPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ export var TextInputStyle;
2
+ (function (TextInputStyle) {
3
+ TextInputStyle[TextInputStyle["NotSet"] = 0] = "NotSet";
4
+ TextInputStyle[TextInputStyle["SingleLine"] = 1] = "SingleLine";
5
+ TextInputStyle[TextInputStyle["MultiLine"] = 2] = "MultiLine";
6
+ })(TextInputStyle || (TextInputStyle = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dElucHV0U3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90ZXh0LWZvcm0vVGV4dElucHV0U3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4Qix1REFBVSxDQUFBO0lBQ1YsK0RBQWMsQ0FBQTtJQUNkLDZEQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGVudW0gVGV4dElucHV0U3R5bGUge1xyXG4gIE5vdFNldCA9IDAsXHJcbiAgU2luZ2xlTGluZSA9IDEsXHJcbiAgTXVsdGlMaW5lID0gMlxyXG59XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './TextInputStyle';
2
+ export * from './text-form.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90ZXh0LWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9UZXh0SW5wdXRTdHlsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC1mb3JtLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { TextInputStyle } from './TextInputStyle';
3
+ import { FormBaseComponent } from '../core-components/form-base.component';
4
+ import { EditableDirective } from '../core-components';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../core-components/editable.directive";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "../form-controls/form-controls.component";
10
+ export class TextFormComponent extends FormBaseComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.TextInputStyle = TextInputStyle;
14
+ this.label = '';
15
+ this.type = TextInputStyle.SingleLine;
16
+ }
17
+ ngOnInit() {
18
+ this.editable.externalSaveCall.subscribe(() => {
19
+ this.editable.save();
20
+ });
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TextFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TextFormComponent, selector: "bonc-text-form", inputs: { locale: "locale", label: "label", type: "type" }, usesInheritance: true, hostDirectives: [{ directive: i1.EditableDirective }], ngImport: i0, template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n\r\n <input *ngIf=\"editable && type === TextInputStyle.SingleLine\"\r\n [(ngModel)]=\"editable.value\"\r\n (click)=\"editable.startEditing()\"\r\n (keyup)=\"editable.updateDirty()\"\r\n (blur)=\"editable.updateDirty()\" />\r\n\r\n <textarea *ngIf=\"editable && type === TextInputStyle.MultiLine\"\r\n [(ngModel)]=\"editable.value\"\r\n (click)=\"editable.startEditing()\"\r\n (keyup)=\"editable.updateDirty()\"\r\n (blur)=\"editable.updateDirty()\">\r\n </textarea>\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}input,textarea{display:block;width:100%;padding:6px;color:silver;border:1px solid silver;background-color:transparent;box-sizing:border-box;font-size:inherit}input:hover,textarea:hover{border-color:transparent;background-color:#333;cursor:pointer}input:focus,textarea:focus{outline:none;color:#fff;border-color:transparent;background-color:#555}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TextFormComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'bonc-text-form', inputs: FormBaseComponent.inputs, hostDirectives: [EditableDirective], template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n\r\n <input *ngIf=\"editable && type === TextInputStyle.SingleLine\"\r\n [(ngModel)]=\"editable.value\"\r\n (click)=\"editable.startEditing()\"\r\n (keyup)=\"editable.updateDirty()\"\r\n (blur)=\"editable.updateDirty()\" />\r\n\r\n <textarea *ngIf=\"editable && type === TextInputStyle.MultiLine\"\r\n [(ngModel)]=\"editable.value\"\r\n (click)=\"editable.startEditing()\"\r\n (keyup)=\"editable.updateDirty()\"\r\n (blur)=\"editable.updateDirty()\">\r\n </textarea>\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}input,textarea{display:block;width:100%;padding:6px;color:silver;border:1px solid silver;background-color:transparent;box-sizing:border-box;font-size:inherit}input:hover,textarea:hover{border-color:transparent;background-color:#333;cursor:pointer}input:focus,textarea:focus{outline:none;color:#fff;border-color:transparent;background-color:#555}\n"] }]
28
+ }], propDecorators: { label: [{
29
+ type: Input
30
+ }], type: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYm9ubmllLWNtcy9zcmMvbGliL3RleHQtZm9ybS90ZXh0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdGV4dC1mb3JtL3RleHQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVN2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQXlCO0lBUGhFOztRQVFrQixtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUd6QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR1gsU0FBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUM7S0FPekM7SUFMQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGdNQ1o5QixzckJBZ0JBOzsyRkRKYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZ0JBQWdCLFVBR2xCLGlCQUFpQixDQUFDLE1BQU0sa0JBQ2hCLENBQUMsaUJBQWlCLENBQUM7OEJBTTVCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGV4dElucHV0U3R5bGUgfSBmcm9tICcuL1RleHRJbnB1dFN0eWxlJztcclxuaW1wb3J0IHsgRm9ybUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWNvbXBvbmVudHMvZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29yZS1jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm9uYy10ZXh0LWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGlucHV0czogRm9ybUJhc2VDb21wb25lbnQuaW5wdXRzLFxyXG4gIGhvc3REaXJlY3RpdmVzOiBbRWRpdGFibGVEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0Rm9ybUNvbXBvbmVudCBleHRlbmRzIEZvcm1CYXNlQ29tcG9uZW50PHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBUZXh0SW5wdXRTdHlsZSA9IFRleHRJbnB1dFN0eWxlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbCA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0eXBlID0gVGV4dElucHV0U3R5bGUuU2luZ2xlTGluZTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRhYmxlLmV4dGVybmFsU2F2ZUNhbGwuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5lZGl0YWJsZS5zYXZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGJvbmMtZm9ybS1jb250cm9scyBbZWRpdGFibGVdPVwiZWRpdGFibGVcIj5cclxuICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9sYWJlbD5cclxuXHJcbiAgICA8aW5wdXQgKm5nSWY9XCJlZGl0YWJsZSAmJiB0eXBlID09PSBUZXh0SW5wdXRTdHlsZS5TaW5nbGVMaW5lXCJcclxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRhYmxlLnZhbHVlXCJcclxuICAgICAgICAgICAoY2xpY2spPVwiZWRpdGFibGUuc3RhcnRFZGl0aW5nKClcIlxyXG4gICAgICAgICAgIChrZXl1cCk9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCJcclxuICAgICAgICAgICAoYmx1cik9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCIgLz5cclxuXHJcbiAgICA8dGV4dGFyZWEgKm5nSWY9XCJlZGl0YWJsZSAmJiB0eXBlID09PSBUZXh0SW5wdXRTdHlsZS5NdWx0aUxpbmVcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGUudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJlZGl0YWJsZS5zdGFydEVkaXRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwKT1cImVkaXRhYmxlLnVwZGF0ZURpcnR5KClcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cImVkaXRhYmxlLnVwZGF0ZURpcnR5KClcIj5cclxuICAgIDwvdGV4dGFyZWE+XHJcbjwvYm9uYy1mb3JtLWNvbnRyb2xzPlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './translation-form.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,32 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { EditableDirective, FormBaseComponent } from '../core-components';
3
+ import { TextEditorField } from '../core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../core-components/editable.directive";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../translation-input/translation-input.component";
8
+ import * as i4 from "../translation-textarea/translation-textarea.component";
9
+ import * as i5 from "../form-controls/form-controls.component";
10
+ export class TranslationFormComponent extends FormBaseComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.TextEditorField = TextEditorField;
14
+ }
15
+ ngOnInit() {
16
+ this.editable.externalSaveCall.subscribe(() => {
17
+ this.editable.save();
18
+ });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TranslationFormComponent, selector: "bonc-translation-form", inputs: { locale: "locale", field: "field", label: "label" }, usesInheritance: true, hostDirectives: [{ directive: i1.EditableDirective }], ngImport: i0, template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n\r\n <bonc-translation-input *ngIf=\"field === TextEditorField.Input\"\r\n [text]=\"editable.value\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n\r\n\r\n <bonc-translation-textarea *ngIf=\"field === TextEditorField.Textarea\"\r\n [text]=\"editable.value\"\r\n [minRows]=\"2\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"editable.value===undefined\">Editable value canot be undefined</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TranslationInputComponent, selector: "bonc-translation-input", inputs: ["text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i4.TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: ["minRows", "maxRows", "text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i5.FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationFormComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'bonc-translation-form', inputs: FormBaseComponent.inputs, hostDirectives: [EditableDirective], template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n\r\n <bonc-translation-input *ngIf=\"field === TextEditorField.Input\"\r\n [text]=\"editable.value\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n\r\n\r\n <bonc-translation-textarea *ngIf=\"field === TextEditorField.Textarea\"\r\n [text]=\"editable.value\"\r\n [minRows]=\"2\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"editable.value===undefined\">Editable value canot be undefined</div>\r\n", styles: [":host{display:block}\n"] }]
26
+ }], propDecorators: { field: [{
27
+ type: Input,
28
+ args: [{ required: true }]
29
+ }], label: [{
30
+ type: Input
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi1mb3JtL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24tZm9ybS90cmFuc2xhdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFrQztJQVBoRjs7UUFRa0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7S0FhbkQ7SUFMQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHlNQ2JyQyxxbkNBdUJBOzsyRkRWYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsdUJBQXVCLFVBR3pCLGlCQUFpQixDQUFDLE1BQU0sa0JBQ2hCLENBQUMsaUJBQWlCLENBQUM7OEJBTTVCLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR2hCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRTdHJpbmcgfSBmcm9tICdAY2FuZHkta2luZ2RvbS9ib25uaWUnO1xyXG5cclxuaW1wb3J0IHsgRWRpdGFibGVEaXJlY3RpdmUsIEZvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgVGV4dEVkaXRvckZpZWxkIH0gZnJvbSAnLi4vY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JvbmMtdHJhbnNsYXRpb24tZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBpbnB1dHM6IEZvcm1CYXNlQ29tcG9uZW50LmlucHV0cyxcclxuICBob3N0RGlyZWN0aXZlczogW0VkaXRhYmxlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQ8TG9jYWxpemVkU3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRleHRFZGl0b3JGaWVsZCA9IFRleHRFZGl0b3JGaWVsZDtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgZmllbGQhOiBUZXh0RWRpdG9yRmllbGQ7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRhYmxlLmV4dGVybmFsU2F2ZUNhbGwuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5lZGl0YWJsZS5zYXZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGJvbmMtZm9ybS1jb250cm9scyAqbmdJZj1cImVkaXRhYmxlLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCI+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L2xhYmVsPlxyXG5cclxuICA8Ym9uYy10cmFuc2xhdGlvbi1pbnB1dCAqbmdJZj1cImZpZWxkID09PSBUZXh0RWRpdG9yRmllbGQuSW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImVkaXRhYmxlLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXJ0RWRpdGluZyk9XCJlZGl0YWJsZS5zdGFydEVkaXRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXJyZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiPlxyXG4gIDwvYm9uYy10cmFuc2xhdGlvbi1pbnB1dD5cclxuXHJcblxyXG4gIDxib25jLXRyYW5zbGF0aW9uLXRleHRhcmVhICpuZ0lmPVwiZmllbGQgPT09IFRleHRFZGl0b3JGaWVsZC5UZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZWRpdGFibGUudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5Sb3dzXT1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnRFZGl0aW5nKT1cImVkaXRhYmxlLnN0YXJ0RWRpdGluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cnJlZCk9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCI+XHJcbiAgPC9ib25jLXRyYW5zbGF0aW9uLXRleHRhcmVhPlxyXG48L2JvbmMtZm9ybS1jb250cm9scz5cclxuXHJcbjxkaXYgKm5nSWY9XCJlZGl0YWJsZS52YWx1ZT09PXVuZGVmaW5lZFwiPkVkaXRhYmxlIHZhbHVlIGNhbm90IGJlIHVuZGVmaW5lZDwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './translation-input.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi1pbnB1dC5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { DeviceType } from '../core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ export class TranslationInputComponent {
6
+ constructor() {
7
+ this.device = DeviceType.NotSet;
8
+ this.startEditing = new EventEmitter();
9
+ this.changed = new EventEmitter();
10
+ this.blurred = new EventEmitter();
11
+ }
12
+ onClick() {
13
+ this.startEditing.emit();
14
+ }
15
+ onKeyPress() {
16
+ this.changed.emit();
17
+ }
18
+ onBlur() {
19
+ this.blurred.emit();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TranslationInputComponent, selector: "bonc-translation-input", inputs: { text: "text", locale: "locale", device: "device" }, outputs: { startEditing: "startEditing", changed: "changed", blurred: "blurred" }, ngImport: i0, template: "<input [(ngModel)]=\"text[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\" />\r\n", styles: [":host{padding:6px 12px;border:1px solid silver;display:block}:host:hover{background-color:#333}:host:focus-within{background-color:#555}:host input{background-color:#8080801a;color:var(--text-color);padding:6px;color:silver;border:1px solid silver;background-color:transparent;display:block;box-sizing:border-box;font-family:inherit;width:100%;border:none}:host input:hover{background-color:#d3d3d3;cursor:pointer}:host input:focus{outline:none;color:#000;background-color:#cf0}:host input:hover{border-color:transparent;background-color:#333;cursor:pointer}:host input:focus{outline:none;color:#fff;border-color:transparent;background-color:#555}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationInputComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'bonc-translation-input', template: "<input [(ngModel)]=\"text[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\" />\r\n", styles: [":host{padding:6px 12px;border:1px solid silver;display:block}:host:hover{background-color:#333}:host:focus-within{background-color:#555}:host input{background-color:#8080801a;color:var(--text-color);padding:6px;color:silver;border:1px solid silver;background-color:transparent;display:block;box-sizing:border-box;font-family:inherit;width:100%;border:none}:host input:hover{background-color:#d3d3d3;cursor:pointer}:host input:focus{outline:none;color:#000;background-color:#cf0}:host input:hover{border-color:transparent;background-color:#333;cursor:pointer}:host input:focus{outline:none;color:#fff;border-color:transparent;background-color:#555}\n"] }]
27
+ }], propDecorators: { text: [{
28
+ type: Input,
29
+ args: [{ required: true }]
30
+ }], locale: [{
31
+ type: Input,
32
+ args: [{ required: true }]
33
+ }], device: [{
34
+ type: Input
35
+ }], startEditing: [{
36
+ type: Output
37
+ }], changed: [{
38
+ type: Output
39
+ }], blurred: [{
40
+ type: Output
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24taW5wdXQvdHJhbnNsYXRpb24taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24taW5wdXQvdHJhbnNsYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFRckMsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQWFTLFdBQU0sR0FBZSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBR3ZDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2pELFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQWF6RDtJQVhRLE9BQU87UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0E3QlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsK01DVHRDLDZJQUlBOzsyRkRLYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU0zQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLE1BQU07Z0JBSUEsT0FBTztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlVHlwZSB9IGZyb20gJy4uL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZWRTdHJpbmcgfSBmcm9tICdAY2FuZHkta2luZ2RvbS9ib25uaWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLXRyYW5zbGF0aW9uLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uSW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIHRleHQhOiBMb2NhbGl6ZWRTdHJpbmc7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIGxvY2FsZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGV2aWNlOiBEZXZpY2VUeXBlID0gRGV2aWNlVHlwZS5Ob3RTZXQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGFydEVkaXRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHVibGljIG9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLnN0YXJ0RWRpdGluZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25LZXlQcmVzcygpIHtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKCkge1xyXG4gICAgdGhpcy5ibHVycmVkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IFsobmdNb2RlbCldPVwidGV4dFtsb2NhbGVdXCJcclxuICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxyXG4gICAgICAgKGtleXVwKT1cIm9uS2V5UHJlc3MoKVwiXHJcbiAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './translation-textarea.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi10ZXh0YXJlYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { Component, EventEmitter, Input, NgZone, Output, QueryList, ViewChildren } from '@angular/core';
2
+ import { CdkTextareaAutosize } from '@angular/cdk/text-field';
3
+ import { take } from 'rxjs/operators';
4
+ import { DeviceType } from '../core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/cdk/text-field";
8
+ export class TranslationTextareaComponent {
9
+ constructor(ngZone) {
10
+ this.ngZone = ngZone;
11
+ this.device = DeviceType.NotSet;
12
+ this.startEditing = new EventEmitter();
13
+ this.changed = new EventEmitter();
14
+ this.blurred = new EventEmitter();
15
+ }
16
+ ngAfterViewInit() {
17
+ setTimeout(this.triggerResize.bind(this));
18
+ }
19
+ ngOnChanges() {
20
+ setTimeout(this.triggerResize.bind(this), 500);
21
+ }
22
+ onClick() {
23
+ this.startEditing.emit();
24
+ }
25
+ onKeyPress() {
26
+ this.changed.emit();
27
+ }
28
+ onBlur() {
29
+ this.blurred.emit();
30
+ }
31
+ triggerResize() {
32
+ // console.log('trigger resize!');
33
+ this.ngZone.onStable.pipe(take(1))
34
+ .subscribe(() => {
35
+ this.autosizeList.forEach(x => x.resizeToFitContent(true));
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationTextareaComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: { minRows: "minRows", maxRows: "maxRows", text: "text", locale: "locale", device: "device" }, outputs: { startEditing: "startEditing", changed: "changed", blurred: "blurred" }, viewQueries: [{ propertyName: "autosizeList", predicate: CdkTextareaAutosize, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<textarea [(ngModel)]=\"text[locale]\"\r\n [cdkAutosizeMinRows]=\"minRows\"\r\n [cdkAutosizeMaxRows]=\"maxRows\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\"\r\n matInput\r\n cdkTextareaAutosize>\r\n</textarea>\r\n", styles: [":host{display:block;padding:6px 12px;border:1px solid silver}:host:hover{background-color:#333}:host:focus-within{background-color:#555}textarea{display:block;width:100%;line-height:140%;padding:2px 0;margin:0;box-sizing:content-box;border:none;resize:none;color:silver;background-color:transparent}textarea:focus{outline:none}textarea[readonly]{cursor:pointer}textarea[readonly]::selection{-webkit-user-select:none;user-select:none}textarea[readonly]:hover{background:repeating-linear-gradient(-45deg,#ccff00,#ccff00 10px,rgba(0,0,0,0) 10px,rgba(0,0,0,0) 20px) fixed bottom;color:#000}textarea:hover{cursor:pointer}textarea:focus{outline:none;color:#fff;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TranslationTextareaComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'bonc-translation-textarea', template: "<textarea [(ngModel)]=\"text[locale]\"\r\n [cdkAutosizeMinRows]=\"minRows\"\r\n [cdkAutosizeMaxRows]=\"maxRows\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\"\r\n matInput\r\n cdkTextareaAutosize>\r\n</textarea>\r\n", styles: [":host{display:block;padding:6px 12px;border:1px solid silver}:host:hover{background-color:#333}:host:focus-within{background-color:#555}textarea{display:block;width:100%;line-height:140%;padding:2px 0;margin:0;box-sizing:content-box;border:none;resize:none;color:silver;background-color:transparent}textarea:focus{outline:none}textarea[readonly]{cursor:pointer}textarea[readonly]::selection{-webkit-user-select:none;user-select:none}textarea[readonly]:hover{background:repeating-linear-gradient(-45deg,#ccff00,#ccff00 10px,rgba(0,0,0,0) 10px,rgba(0,0,0,0) 20px) fixed bottom;color:#000}textarea:hover{cursor:pointer}textarea:focus{outline:none;color:#fff;cursor:default}\n"] }]
44
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { autosizeList: [{
45
+ type: ViewChildren,
46
+ args: [CdkTextareaAutosize]
47
+ }], minRows: [{
48
+ type: Input
49
+ }], maxRows: [{
50
+ type: Input
51
+ }], text: [{
52
+ type: Input,
53
+ args: [{ required: true }]
54
+ }], locale: [{
55
+ type: Input,
56
+ args: [{ required: true }]
57
+ }], device: [{
58
+ type: Input
59
+ }], startEditing: [{
60
+ type: Output
61
+ }], changed: [{
62
+ type: Output
63
+ }], blurred: [{
64
+ type: Output
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24tdGV4dGFyZWEvdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24tdGV4dGFyZWEvdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQU9yQyxNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUNVLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWmpCLFdBQU0sR0FBZSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBR3ZDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2pELFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUt4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxhQUFhO1FBQ25CLGtDQUFrQztRQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1RFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMlJBQ3pCLG1CQUFtQixxRUN6Qm5DLHlUQVNBOzsyRkRlYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzJFQU05QixZQUFZO3NCQURsQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFJMUIsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLE1BQU07Z0JBSUEsT0FBTztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENka1RleHRhcmVhQXV0b3NpemUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMb2NhbGl6ZWRTdHJpbmcgfSBmcm9tICdAY2FuZHkta2luZ2RvbS9ib25uaWUnO1xyXG5pbXBvcnQgeyBEZXZpY2VUeXBlIH0gZnJvbSAnLi4vY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JvbmMtdHJhbnNsYXRpb24tdGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2xhdGlvbi10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25UZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZHJlbihDZGtUZXh0YXJlYUF1dG9zaXplKVxyXG4gIHB1YmxpYyBhdXRvc2l6ZUxpc3QhOiBRdWVyeUxpc3Q8Q2RrVGV4dGFyZWFBdXRvc2l6ZT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1pblJvd3M/OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heFJvd3M/OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIHRleHQhOiBMb2NhbGl6ZWRTdHJpbmc7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIGxvY2FsZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGV2aWNlOiBEZXZpY2VUeXBlID0gRGV2aWNlVHlwZS5Ob3RTZXQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGFydEVkaXRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KHRoaXMudHJpZ2dlclJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCh0aGlzLnRyaWdnZXJSZXNpemUuYmluZCh0aGlzKSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5zdGFydEVkaXRpbmcuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uS2V5UHJlc3MoKSB7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cigpIHtcclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyaWdnZXJSZXNpemUoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndHJpZ2dlciByZXNpemUhJyk7XHJcblxyXG4gICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmF1dG9zaXplTGlzdC5mb3JFYWNoKHggPT4geC5yZXNpemVUb0ZpdENvbnRlbnQodHJ1ZSkpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPHRleHRhcmVhIFsobmdNb2RlbCldPVwidGV4dFtsb2NhbGVdXCJcclxuICAgICAgICAgIFtjZGtBdXRvc2l6ZU1pblJvd3NdPVwibWluUm93c1wiXHJcbiAgICAgICAgICBbY2RrQXV0b3NpemVNYXhSb3dzXT1cIm1heFJvd3NcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXHJcbiAgICAgICAgICAoa2V5dXApPVwib25LZXlQcmVzcygpXCJcclxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplPlxyXG48L3RleHRhcmVhPlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './unknown-form.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi91bmtub3duLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdW5rbm93bi1mb3JtLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormBaseComponent } from '../core-components/form-base.component';
3
+ import * as i0 from "@angular/core";
4
+ export class UnknownFormComponent extends FormBaseComponent {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.label = '';
8
+ }
9
+ ngOnInit() {
10
+ this.editable.externalSaveCall.subscribe(() => {
11
+ this.editable.save();
12
+ });
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UnknownFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UnknownFormComponent, selector: "bonc-unknown-form", inputs: { locale: "locale", label: "label" }, usesInheritance: true, ngImport: i0, template: "<label>Unknown form:<b>{{label}}</b></label>\r\n<pre><ng-content></ng-content></pre>\r\n", styles: [":host{display:block;color:#000;padding:20px;background-color:#dc143c;margin-bottom:10px}\n"] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UnknownFormComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'bonc-unknown-form', inputs: FormBaseComponent.inputs, template: "<label>Unknown form:<b>{{label}}</b></label>\r\n<pre><ng-content></ng-content></pre>\r\n", styles: [":host{display:block;color:#000;padding:20px;background-color:#dc143c;margin-bottom:10px}\n"] }]
20
+ }], propDecorators: { label: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5rbm93bi1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYm9ubmllLWNtcy9zcmMvbGliL3Vua25vd24tZm9ybS91bmtub3duLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdW5rbm93bi1mb3JtL3Vua25vd24tZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGlCQUF5QjtJQU5uRTs7UUFRUyxVQUFLLEdBQUcsRUFBRSxDQUFDO0tBT25CO0lBTEMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FSVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw4SENUakMsMEZBRUE7OzJGRE9hLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxtQkFBbUIsVUFHckIsaUJBQWlCLENBQUMsTUFBTTs4QkFJekIsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1jb21wb25lbnRzL2Zvcm0tYmFzZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLXVua25vd24tZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Vua25vd24tZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdW5rbm93bi1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaW5wdXRzOiBGb3JtQmFzZUNvbXBvbmVudC5pbnB1dHNcclxufSlcclxuZXhwb3J0IGNsYXNzIFVua25vd25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWwgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRhYmxlLmV4dGVybmFsU2F2ZUNhbGwuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5lZGl0YWJsZS5zYXZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsPlVua25vd24gZm9ybTo8Yj57e2xhYmVsfX08L2I+PC9sYWJlbD5cclxuPHByZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9wcmU+XHJcbiJdfQ==