@candy-kingdom/bonnie-cms 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +3 -7
  2. package/fesm2022/candy-kingdom-bonnie-cms.mjs +309 -430
  3. package/fesm2022/candy-kingdom-bonnie-cms.mjs.map +1 -1
  4. package/package.json +8 -10
  5. package/styles/admin-styles.scss +139 -139
  6. package/styles/admin-variables.scss +453 -451
  7. package/styles/variables.scss +415 -415
  8. package/types/candy-kingdom-bonnie-cms.d.ts +644 -0
  9. package/esm2022/candy-kingdom-bonnie-cms.mjs +0 -5
  10. package/esm2022/index.mjs +0 -15
  11. package/esm2022/lib/admin-controls/admin-controls.component.mjs +0 -44
  12. package/esm2022/lib/admin-controls/index.mjs +0 -2
  13. package/esm2022/lib/bone-editors/bone-editor-base.component.mjs +0 -143
  14. package/esm2022/lib/bone-editors/index.mjs +0 -3
  15. package/esm2022/lib/bone-editors/unknown-bone-editor/index.mjs +0 -2
  16. package/esm2022/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.mjs +0 -18
  17. package/esm2022/lib/bonnie-cms.module.mjs +0 -140
  18. package/esm2022/lib/core/DeviceType.mjs +0 -8
  19. package/esm2022/lib/core/DeviceVisibility.mjs +0 -9
  20. package/esm2022/lib/core/MediaType.mjs +0 -2
  21. package/esm2022/lib/core/TextEditorField.mjs +0 -7
  22. package/esm2022/lib/core/Utils.mjs +0 -18
  23. package/esm2022/lib/core/index.mjs +0 -6
  24. package/esm2022/lib/core-components/editable-group.mjs +0 -84
  25. package/esm2022/lib/core-components/editable.directive.mjs +0 -173
  26. package/esm2022/lib/core-components/form-base.component.mjs +0 -31
  27. package/esm2022/lib/core-components/index.mjs +0 -5
  28. package/esm2022/lib/core-components/link-popup/index.mjs +0 -2
  29. package/esm2022/lib/core-components/link-popup/link-popup.component.mjs +0 -73
  30. package/esm2022/lib/file-uploader/file-uploader.component.mjs +0 -119
  31. package/esm2022/lib/file-uploader/index.mjs +0 -2
  32. package/esm2022/lib/form-controls/form-controls.component.mjs +0 -16
  33. package/esm2022/lib/form-controls/index.mjs +0 -2
  34. package/esm2022/lib/forms/file-form/file-form.component.mjs +0 -43
  35. package/esm2022/lib/forms/file-form/index.mjs +0 -2
  36. package/esm2022/lib/forms/index.mjs +0 -9
  37. package/esm2022/lib/forms/lottie-form/index.mjs +0 -2
  38. package/esm2022/lib/forms/lottie-form/lottie-form.component.mjs +0 -45
  39. package/esm2022/lib/forms/one-image-form/index.mjs +0 -2
  40. package/esm2022/lib/forms/one-image-form/one-image-form.component.mjs +0 -64
  41. package/esm2022/lib/forms/seo-form/index.mjs +0 -2
  42. package/esm2022/lib/forms/seo-form/seo-form.component.mjs +0 -53
  43. package/esm2022/lib/forms/svg-form/index.mjs +0 -2
  44. package/esm2022/lib/forms/svg-form/svg-form.component.mjs +0 -48
  45. package/esm2022/lib/forms/text-form/TextInputStyle.mjs +0 -7
  46. package/esm2022/lib/forms/text-form/index.mjs +0 -3
  47. package/esm2022/lib/forms/text-form/text-form.component.mjs +0 -33
  48. package/esm2022/lib/forms/translation-form/index.mjs +0 -2
  49. package/esm2022/lib/forms/translation-form/translation-form.component.mjs +0 -32
  50. package/esm2022/lib/forms/unknown-form/index.mjs +0 -2
  51. package/esm2022/lib/forms/unknown-form/unknown-form.component.mjs +0 -23
  52. package/esm2022/lib/generated/file-setting-data.mjs +0 -6
  53. package/esm2022/lib/generated/i-equatable.mjs +0 -6
  54. package/esm2022/lib/generated/i-setting.mjs +0 -6
  55. package/esm2022/lib/generated/index.mjs +0 -18
  56. package/esm2022/lib/generated/localized-text-setting-data.mjs +0 -6
  57. package/esm2022/lib/generated/lottie-setting-data.mjs +0 -6
  58. package/esm2022/lib/generated/one-image-setting-data.mjs +0 -6
  59. package/esm2022/lib/generated/setting-base.mjs +0 -6
  60. package/esm2022/lib/generated/setting-data.mjs +0 -6
  61. package/esm2022/lib/generated/setting-group.mjs +0 -6
  62. package/esm2022/lib/generated/setting.mjs +0 -6
  63. package/esm2022/lib/generated/svg-setting-data.mjs +0 -6
  64. package/esm2022/lib/generated/text-setting-data.mjs +0 -6
  65. package/esm2022/lib/generated/text-setting-type.mjs +0 -10
  66. package/esm2022/lib/media-uploader/index.mjs +0 -2
  67. package/esm2022/lib/media-uploader/media-uploader.component.mjs +0 -161
  68. package/esm2022/lib/services/API_BASE_URL.mjs +0 -3
  69. package/esm2022/lib/services/admin-data.service.mjs +0 -37
  70. package/esm2022/lib/services/data.service.mjs +0 -75
  71. package/esm2022/lib/services/index.mjs +0 -4
  72. package/esm2022/lib/skeleton-editor/BoneEditorMap.mjs +0 -2
  73. package/esm2022/lib/skeleton-editor/ContentPreset.mjs +0 -9
  74. package/esm2022/lib/skeleton-editor/IBoneEditor.mjs +0 -2
  75. package/esm2022/lib/skeleton-editor/IBoneTemplate.mjs +0 -2
  76. package/esm2022/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.mjs +0 -119
  77. package/esm2022/lib/skeleton-editor/index.mjs +0 -9
  78. package/esm2022/lib/skeleton-editor/skeleton-editor-anchor.directive.mjs +0 -16
  79. package/esm2022/lib/skeleton-editor/skeleton-editor.component.mjs +0 -107
  80. package/esm2022/lib/translation-input/index.mjs +0 -2
  81. package/esm2022/lib/translation-input/translation-input.component.mjs +0 -42
  82. package/esm2022/lib/translation-textarea/index.mjs +0 -2
  83. package/esm2022/lib/translation-textarea/translation-textarea.component.mjs +0 -66
  84. package/index.d.ts +0 -14
  85. package/lib/admin-controls/admin-controls.component.d.ts +0 -14
  86. package/lib/admin-controls/index.d.ts +0 -1
  87. package/lib/bone-editors/bone-editor-base.component.d.ts +0 -44
  88. package/lib/bone-editors/index.d.ts +0 -2
  89. package/lib/bone-editors/unknown-bone-editor/index.d.ts +0 -1
  90. package/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.d.ts +0 -11
  91. package/lib/bonnie-cms.module.d.ts +0 -32
  92. package/lib/core/DeviceType.d.ts +0 -6
  93. package/lib/core/DeviceVisibility.d.ts +0 -7
  94. package/lib/core/MediaType.d.ts +0 -2
  95. package/lib/core/TextEditorField.d.ts +0 -5
  96. package/lib/core/Utils.d.ts +0 -4
  97. package/lib/core/index.d.ts +0 -5
  98. package/lib/core-components/editable-group.d.ts +0 -24
  99. package/lib/core-components/editable.directive.d.ts +0 -43
  100. package/lib/core-components/form-base.component.d.ts +0 -13
  101. package/lib/core-components/index.d.ts +0 -4
  102. package/lib/core-components/link-popup/index.d.ts +0 -1
  103. package/lib/core-components/link-popup/link-popup.component.d.ts +0 -28
  104. package/lib/file-uploader/file-uploader.component.d.ts +0 -32
  105. package/lib/file-uploader/index.d.ts +0 -1
  106. package/lib/form-controls/form-controls.component.d.ts +0 -7
  107. package/lib/form-controls/index.d.ts +0 -1
  108. package/lib/forms/file-form/file-form.component.d.ts +0 -14
  109. package/lib/forms/file-form/index.d.ts +0 -1
  110. package/lib/forms/index.d.ts +0 -8
  111. package/lib/forms/lottie-form/index.d.ts +0 -1
  112. package/lib/forms/lottie-form/lottie-form.component.d.ts +0 -16
  113. package/lib/forms/one-image-form/index.d.ts +0 -1
  114. package/lib/forms/one-image-form/one-image-form.component.d.ts +0 -23
  115. package/lib/forms/seo-form/index.d.ts +0 -1
  116. package/lib/forms/seo-form/seo-form.component.d.ts +0 -20
  117. package/lib/forms/svg-form/index.d.ts +0 -1
  118. package/lib/forms/svg-form/svg-form.component.d.ts +0 -19
  119. package/lib/forms/text-form/TextInputStyle.d.ts +0 -5
  120. package/lib/forms/text-form/index.d.ts +0 -2
  121. package/lib/forms/text-form/text-form.component.d.ts +0 -13
  122. package/lib/forms/translation-form/index.d.ts +0 -1
  123. package/lib/forms/translation-form/translation-form.component.d.ts +0 -14
  124. package/lib/forms/unknown-form/index.d.ts +0 -1
  125. package/lib/forms/unknown-form/unknown-form.component.d.ts +0 -9
  126. package/lib/generated/file-setting-data.d.ts +0 -10
  127. package/lib/generated/i-equatable.d.ts +0 -6
  128. package/lib/generated/i-setting.d.ts +0 -10
  129. package/lib/generated/index.d.ts +0 -17
  130. package/lib/generated/localized-text-setting-data.d.ts +0 -11
  131. package/lib/generated/lottie-setting-data.d.ts +0 -9
  132. package/lib/generated/one-image-setting-data.d.ts +0 -14
  133. package/lib/generated/setting-base.d.ts +0 -9
  134. package/lib/generated/setting-data.d.ts +0 -8
  135. package/lib/generated/setting-group.d.ts +0 -11
  136. package/lib/generated/setting.d.ts +0 -9
  137. package/lib/generated/svg-setting-data.d.ts +0 -9
  138. package/lib/generated/text-setting-data.d.ts +0 -10
  139. package/lib/generated/text-setting-type.d.ts +0 -8
  140. package/lib/media-uploader/index.d.ts +0 -1
  141. package/lib/media-uploader/media-uploader.component.d.ts +0 -35
  142. package/lib/services/API_BASE_URL.d.ts +0 -2
  143. package/lib/services/admin-data.service.d.ts +0 -16
  144. package/lib/services/data.service.d.ts +0 -19
  145. package/lib/services/index.d.ts +0 -3
  146. package/lib/skeleton-editor/BoneEditorMap.d.ts +0 -3
  147. package/lib/skeleton-editor/ContentPreset.d.ts +0 -11
  148. package/lib/skeleton-editor/IBoneEditor.d.ts +0 -26
  149. package/lib/skeleton-editor/IBoneTemplate.d.ts +0 -5
  150. package/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.d.ts +0 -32
  151. package/lib/skeleton-editor/index.d.ts +0 -8
  152. package/lib/skeleton-editor/skeleton-editor-anchor.directive.d.ts +0 -8
  153. package/lib/skeleton-editor/skeleton-editor.component.d.ts +0 -31
  154. package/lib/translation-input/index.d.ts +0 -1
  155. package/lib/translation-input/translation-input.component.d.ts +0 -17
  156. package/lib/translation-textarea/index.d.ts +0 -1
  157. package/lib/translation-textarea/translation-textarea.component.d.ts +0 -26
@@ -1,107 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYm9ubmllLWNtcy9zcmMvbGliL3NrZWxldG9uLWVkaXRvci9za2VsZXRvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvc2tlbGV0b24tZWRpdG9yL3NrZWxldG9uLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFJckMscUJBQXFCO0FBT3JCLE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFBMkIsUUFBbUM7UUFBbkMsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFKdkQsV0FBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFbEIsc0JBQWlCLEdBQWMsRUFBRSxDQUFDO0lBSWxELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBRWhDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDbEQsQ0FBQztZQUVKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBRWhDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FDdkQsQ0FBQztZQUVKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBS00sV0FBVztRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFDMUIsT0FBTztRQUVULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFNRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQWtCO1FBQ3ZDLElBQUksU0FBUztZQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDMUI7WUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCO2lCQUMzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztpQkFDekQsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUVoQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxTQUFTO2dCQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxZQUFrQjtRQUN4RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVLENBQUMsU0FBaUI7UUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDakQsT0FBTztRQUVULElBQUksQ0FBQyxPQUFPLENBQUMsMkNBQTJDLENBQUM7WUFDdkQsT0FBTztRQUVULElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWlCO1FBQy9CLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDcEMsT0FBTztRQUVULElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQWlCO1FBQzdCLElBQUksU0FBUyxJQUFJLENBQUM7WUFDaEIsT0FBTztRQUVULElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWEsRUFBRSxnQkFBK0I7UUFDOUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQzlDLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLE1BQU0sTUFBTSxNQUFNLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFcEgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDaEMsQ0FBQzs4R0F6SFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK1VDaEJwQyx3c0RBbUNBOzsyRkRuQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixrQkFHaEIsQ0FBQyxpQkFBaUIsQ0FBQzs7MEJBY3RCLElBQUk7eUNBVlYsdUJBQXVCO3NCQUQ3QixZQUFZO3VCQUFDLHFCQUFxQjtnQkFJNUIsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsTUFBTTtzQkFEWixLQUFLO2dCQThCQyxHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWFsQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCb25lIH0gZnJvbSAnQGNhbmR5LWtpbmdkb20vYm9ubmllJztcclxuaW1wb3J0IHsgQm9uZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vYm9uZS1lZGl0b3ItY29udGFpbmVyL2JvbmUtZWRpdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUtY29tcG9uZW50cy9lZGl0YWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEZXZpY2VUeXBlIH0gZnJvbSAnLi4vY29yZSc7XHJcbmltcG9ydCB7IElCb25lVGVtcGxhdGUgfSBmcm9tICcuL0lCb25lVGVtcGxhdGUnO1xyXG5pbXBvcnQgeyBCb25lRWRpdG9yTWFwIH0gZnJvbSAnLi9Cb25lRWRpdG9yTWFwJztcclxuXHJcbi8vIHRvZG86IHJlbmFtZSBjbGFzc1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JvbmMtc2tlbGV0b24tZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2tlbGV0b24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9za2VsZXRvbi1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0RGlyZWN0aXZlczogW0VkaXRhYmxlRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2tlbGV0b25FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZHJlbignYm9uZUVkaXRvckNvbnRhaW5lcicpXHJcbiAgcHVibGljIGJvbmVFZGl0b3JDb250YWluZXJMaXN0ITogUXVlcnlMaXN0PEJvbmVFZGl0b3JDb250YWluZXJDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBsb2NhbGUhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRldmljZSA9IERldmljZVR5cGUuTm90U2V0O1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVzQXJlU2hvd246IGJvb2xlYW5bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyBlZGl0YWJsZTogRWRpdGFibGVEaXJlY3RpdmU8Qm9uZVtdPikge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdGFibGUuZXh0ZXJuYWxTYXZlQ2FsbC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJvbmVFZGl0b3JDb250YWluZXJMaXN0LmZvckVhY2hcclxuICAgICAgICAoXHJcbiAgICAgICAgICBlZGl0b3JDb250YWluZXIgPT4gZWRpdG9yQ29udGFpbmVyLmVkaXRvcj8uc2F2ZSgpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGUuc2F2ZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5lZGl0YWJsZS5jYW5jZWxlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJvbmVFZGl0b3JDb250YWluZXJMaXN0LmZvckVhY2hcclxuICAgICAgICAoXHJcbiAgICAgICAgICBlZGl0b3JDb250YWluZXIgPT4gZWRpdG9yQ29udGFpbmVyLmVkaXRvcj8ucmVzZXREYXRhKClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgdGhpcy5lZGl0YWJsZS5zYXZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIG1hcCE6IEJvbmVFZGl0b3JNYXA7XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcGxhdGVzQXJlU2hvd24uc3BsaWNlKDAsIHRoaXMudGVtcGxhdGVzQXJlU2hvd24ubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLmJvbmVzID09PSB1bmRlZmluZWQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmJvbmVzLmZvckVhY2goKCkgPT4gdGhpcy50ZW1wbGF0ZXNBcmVTaG93bi5wdXNoKGZhbHNlKSk7XHJcbiAgICB0aGlzLnRlbXBsYXRlc0FyZVNob3duLnB1c2goZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgdGVtcGxhdGVzITogUmVhZG9ubHlBcnJheTxJQm9uZVRlbXBsYXRlPjtcclxuXHJcblxyXG4gIHB1YmxpYyBnZXQgYm9uZXMoKTogQm9uZVtdIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlPy52YWx1ZSA/PyBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBib25lRWRpdEhhbmRsZXIoaXNFZGl0aW5nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNFZGl0aW5nKVxyXG4gICAgICB0aGlzLmVkaXRhYmxlLnN0YXJ0RWRpdGluZygpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFsbENsb3NlZCA9IHRoaXMuYm9uZUVkaXRvckNvbnRhaW5lckxpc3RcclxuICAgICAgICAuZmlsdGVyKHggPT4geC5lZGl0b3IgIT09IHVuZGVmaW5lZCAmJiB4LmVkaXRvci5pc0VkaXRpbmcpXHJcbiAgICAgICAgLmxlbmd0aCA9PT0gMDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdGFibGUudXBkYXRlRGlydHkoKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5lZGl0YWJsZS5pc0RpcnR5ICYmIGFsbENsb3NlZClcclxuICAgICAgICB0aGlzLmVkaXRhYmxlLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYm9uZUNoYW5nZUhhbmRsZXIoaW5kZXg6IG51bWJlciwgbmV3Qm9uZVZhbHVlOiBCb25lKTogdm9pZCB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmVkaXRhYmxlLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmVkaXRhYmxlLnZhbHVlW2luZGV4XSA9IG5ld0JvbmVWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRhYmxlLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVCb25lKGJvbmVJbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ib25lcyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYm9uZXMgPT09IG51bGwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBpZiAoIWNvbmZpcm0oJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0LrQvtC80L/QvtC90LXQvdGCPycpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5ib25lcy5zcGxpY2UoYm9uZUluZGV4LCAxKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdGFibGUuaW5FZGl0TW9kZSlcclxuICAgICAgdGhpcy5lZGl0YWJsZS5zdGFydEVkaXRpbmcoKTtcclxuXHJcbiAgICB0aGlzLmVkaXRhYmxlLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3ZlRG93bihib25lSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGJvbmVJbmRleCA+PSB0aGlzLmJvbmVzLmxlbmd0aCAtIDEpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnN3YXBCb25lcyhib25lSW5kZXgsIGJvbmVJbmRleCArIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVcChib25lSW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGJvbmVJbmRleCA8PSAwKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5zd2FwQm9uZXMoYm9uZUluZGV4IC0gMSwgYm9uZUluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVCb25lKGluZGV4OiBudW1iZXIsIHNlbGVjdGVkVGVtcGxhdGU6IElCb25lVGVtcGxhdGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0JvbmUgPSBzZWxlY3RlZFRlbXBsYXRlLmJvbmVGYWN0b3J5KCk7XHJcblxyXG4gICAgdGhpcy5ib25lcy5zcGxpY2UoaW5kZXgsIDAsIG5ld0JvbmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzd2FwQm9uZXMoaW5kZXgxOiBudW1iZXIsIGluZGV4MjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXgxIDwgMCB8fCBpbmRleDIgPCAwIHx8IGluZGV4MSA+PSB0aGlzLmJvbmVzLmxlbmd0aCB8fCBpbmRleDIgPj0gdGhpcy5ib25lcy5sZW5ndGgpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihg0L7RiNC40LHQutCwIHN3YXBCb25lcy4g0L3QtdC/0YDQsNCy0LjQu9GM0L3Ri9C1INC40L3QtNC10LrRgdGLICR7aW5kZXgxfSDQuCAke2luZGV4Mn0uIGJvbmUgY291bnQ6ICR7dGhpcy5ib25lcy5sZW5ndGh9YCk7XHJcblxyXG4gICAgY29uc3QgdGVtcEJvbmUgPSB0aGlzLmJvbmVzW2luZGV4MV07XHJcbiAgICB0aGlzLmJvbmVzW2luZGV4MV0gPSB0aGlzLmJvbmVzW2luZGV4Ml07XHJcbiAgICB0aGlzLmJvbmVzW2luZGV4Ml0gPSB0ZW1wQm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8bmctdGVtcGxhdGUgI2NvbnRyb2xzIGxldC1pbmRleD0naW5kZXgnPlxyXG4gIDxkaXYgW2NsYXNzLmFwcGVhcmFibGVdPVwiaW5kZXggPiAwICYmIGluZGV4IDwgYm9uZXMubGVuZ3RoXCIgY2xhc3M9XCJjb250cm9sc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cImluZGV4IDwgYm9uZXMubGVuZ3RoXCIgY2xhc3M9XCJ1cC1kb3duXCI+XHJcbiAgICAgIDxhICpuZ0lmPVwiaW5kZXggPiAwXCIgKGNsaWNrKT1cIm1vdmVEb3duKGluZGV4IC0gMSlcIiBjbGFzcz1cImRvd25cIj5tb3ZlIGRvd248L2E+XHJcbiAgICAgIDxhICpuZ0lmPVwiaW5kZXggPiAwXCIgKGNsaWNrKT1cIm1vdmVVcChpbmRleClcIiBjbGFzcz1cInVwXCI+bW92ZSB1cDwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgKGNsaWNrKT1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XSA9IHRydWVcIiBjbGFzcz1cImFkZFwiPmNyZWF0ZTwvYT5cclxuICAgIDxhICpuZ0lmPVwiaW5kZXggPCBib25lcy5sZW5ndGhcIiAoY2xpY2spPVwicmVtb3ZlQm9uZShpbmRleClcIiBjbGFzcz1cInJlbW92ZVwiPnJlbW92ZTwvYT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XVwiIGNsYXNzPVwidGVtcGxhdGVzXCI+XHJcbiAgICA8YSAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzXCIgKGNsaWNrKT1cInRlbXBsYXRlc0FyZVNob3duW2luZGV4XSA9IGZhbHNlOyBjcmVhdGVCb25lKGluZGV4LHRlbXBsYXRlKTtcIj57e3RlbXBsYXRlLnRpdGxlfX08L2E+XHJcbiAgICA8YSAoY2xpY2spPVwidGVtcGxhdGVzQXJlU2hvd25baW5kZXhdID0gZmFsc2VcIj5DbG9zZTwvYT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gdG9kbzogYWRkIHRyYWNrYnkgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJvbmUgb2YgYm9uZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICA8bmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRyb2xzOyBjb250ZXh0OiB7aW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxib25jLWJvbmUtZWRpdG9yLWNvbnRhaW5lciAjYm9uZUVkaXRvckNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFwXT1cIm1hcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib25lXT1cImJvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VdPVwiZGV2aWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlQm9uZShpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0aW5nKT1cImJvbmVFZGl0SGFuZGxlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVkKT1cImJvbmVDaGFuZ2VIYW5kbGVyKGksICRldmVudClcIj5cclxuICA8L2JvbmMtYm9uZS1lZGl0b3ItY29udGFpbmVyPlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udHJvbHM7IGNvbnRleHQ6IHtpbmRleDogYm9uZXMubGVuZ3RofVwiPjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './translation-input.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi1pbnB1dC5jb21wb25lbnQnO1xyXG4iXX0=
@@ -1,42 +0,0 @@
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==
@@ -1,2 +0,0 @@
1
- export * from './translation-textarea.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi90cmFuc2xhdGlvbi10ZXh0YXJlYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG4iXX0=
@@ -1,66 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24tdGV4dGFyZWEvdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvdHJhbnNsYXRpb24tdGV4dGFyZWEvdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQU9yQyxNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUNVLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWmpCLFdBQU0sR0FBZSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBR3ZDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2pELFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUt4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxhQUFhO1FBQ25CLGtDQUFrQztRQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1RFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMlJBQ3pCLG1CQUFtQixxRUN2Qm5DLHlUQVNBOzsyRkRhYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzJFQU05QixZQUFZO3NCQURsQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFJMUIsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLE1BQU07Z0JBSUEsT0FBTztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtUZXh0YXJlYUF1dG9zaXplIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTG9jYWxpemVkU3RyaW5nIH0gZnJvbSAnQGNhbmR5LWtpbmdkb20vYm9ubmllJztcclxuaW1wb3J0IHsgRGV2aWNlVHlwZSB9IGZyb20gJy4uL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLXRyYW5zbGF0aW9uLXRleHRhcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24tdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oQ2RrVGV4dGFyZWFBdXRvc2l6ZSlcclxuICBwdWJsaWMgYXV0b3NpemVMaXN0ITogUXVlcnlMaXN0PENka1RleHRhcmVhQXV0b3NpemU+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5Sb3dzPzogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtYXhSb3dzPzogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyB0ZXh0ITogTG9jYWxpemVkU3RyaW5nO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBsb2NhbGUhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRldmljZTogRGV2aWNlVHlwZSA9IERldmljZVR5cGUuTm90U2V0O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc3RhcnRFZGl0aW5nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVycmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCh0aGlzLnRyaWdnZXJSZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQodGhpcy50cmlnZ2VyUmVzaXplLmJpbmQodGhpcyksIDUwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGljaygpIHtcclxuICAgIHRoaXMuc3RhcnRFZGl0aW5nLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbktleVByZXNzKCkge1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLmJsdXJyZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmlnZ2VyUmVzaXplKCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3RyaWdnZXIgcmVzaXplIScpO1xyXG5cclxuICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdXRvc2l6ZUxpc3QuZm9yRWFjaCh4ID0+IHgucmVzaXplVG9GaXRDb250ZW50KHRydWUpKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cInRleHRbbG9jYWxlXVwiXHJcbiAgICAgICAgICBbY2RrQXV0b3NpemVNaW5Sb3dzXT1cIm1pblJvd3NcIlxyXG4gICAgICAgICAgW2Nka0F1dG9zaXplTWF4Um93c109XCJtYXhSb3dzXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxyXG4gICAgICAgICAgKGtleXVwKT1cIm9uS2V5UHJlc3MoKVwiXHJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZT5cclxuPC90ZXh0YXJlYT5cclxuIl19
package/index.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export * from './lib/generated';
2
- export * from './lib/core';
3
- export * from './lib/forms';
4
- export * from './lib/services';
5
- export * from './lib/core-components';
6
- export * from './lib/admin-controls';
7
- export * from './lib/form-controls';
8
- export * from './lib/file-uploader';
9
- export * from './lib/media-uploader';
10
- export * from './lib/translation-input';
11
- export * from './lib/translation-textarea';
12
- export * from './lib/skeleton-editor';
13
- export * from './lib/bone-editors';
14
- export * from './lib/bonnie-cms.module';
@@ -1,14 +0,0 @@
1
- import { DeviceType } from '../core';
2
- import { EditableGroupComponent } from '../core-components';
3
- import * as i0 from "@angular/core";
4
- export declare class AdminControlsComponent {
5
- readonly DeviceType: typeof DeviceType;
6
- editableGroup: EditableGroupComponent;
7
- deviceControls: boolean;
8
- locale: string;
9
- device: DeviceType;
10
- changeLocale(): void;
11
- changeDevice(): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<AdminControlsComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<AdminControlsComponent, "bonc-admin-controls", never, { "editableGroup": { "alias": "editableGroup"; "required": true; }; "deviceControls": { "alias": "deviceControls"; "required": false; }; }, {}, never, never, false, never>;
14
- }
@@ -1 +0,0 @@
1
- export * from './admin-controls.component';
@@ -1,44 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { Bone } from '@candy-kingdom/bonnie';
3
- import { ContentPreset } from '../skeleton-editor/ContentPreset';
4
- import { IBoneEditor } from '../skeleton-editor/IBoneEditor';
5
- import { DeviceType } from '../core';
6
- import * as i0 from "@angular/core";
7
- export declare abstract class BoneEditorBaseComponent<TBone extends Bone> implements IBoneEditor<TBone> {
8
- readonly editing: EventEmitter<boolean>;
9
- readonly saved: EventEmitter<Bone>;
10
- readonly removed: EventEmitter<void>;
11
- readonly noPresets: boolean;
12
- locale: string;
13
- device: DeviceType;
14
- private _bone;
15
- private _storedData;
16
- private _currentPreset;
17
- protected readonly presets: ReadonlyArray<ContentPreset<TBone>>;
18
- private _isDirty;
19
- private _isEditing;
20
- abstract onReset(): void;
21
- abstract onFinishEditing(): void;
22
- protected abstract getPresets(): ContentPreset<TBone>[];
23
- constructor();
24
- get isMobile(): boolean;
25
- get isTablet(): boolean;
26
- get isDesktop(): boolean;
27
- get currentPreset(): ContentPreset<TBone> | undefined;
28
- get bone(): TBone;
29
- set bone(newData: TBone);
30
- get isDirty(): boolean;
31
- get isEditing(): boolean;
32
- resetData(): void;
33
- updateDirty(): void;
34
- markAsDirty(): void;
35
- remove(): void;
36
- save(): void;
37
- startEditing(): void;
38
- finishEditing(): void;
39
- nextPreset(): void;
40
- private applyPresetAtIndex;
41
- private updatePresetByData;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<BoneEditorBaseComponent<any>, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<BoneEditorBaseComponent<any>, "ng-component", never, { "locale": { "alias": "locale"; "required": true; }; "bone": { "alias": "bone"; "required": true; }; }, {}, never, never, false, never>;
44
- }
@@ -1,2 +0,0 @@
1
- export * from './unknown-bone-editor';
2
- export * from './bone-editor-base.component';
@@ -1 +0,0 @@
1
- export * from './unknown-bone-editor.component';
@@ -1,11 +0,0 @@
1
- import { Bone } from '@candy-kingdom/bonnie';
2
- import { ContentPreset } from '../../skeleton-editor/ContentPreset';
3
- import { BoneEditorBaseComponent } from '../bone-editor-base.component';
4
- import * as i0 from "@angular/core";
5
- export declare class UnknownBoneEditorComponent extends BoneEditorBaseComponent<Bone> {
6
- onFinishEditing(): void;
7
- onReset(): void;
8
- protected getPresets(): ContentPreset<Bone>[];
9
- static ɵfac: i0.ɵɵFactoryDeclaration<UnknownBoneEditorComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<UnknownBoneEditorComponent, "bonc-unknown-bone-editor", never, {}, {}, never, never, false, never>;
11
- }
@@ -1,32 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./forms/translation-form/translation-form.component";
3
- import * as i2 from "./forms/text-form/text-form.component";
4
- import * as i3 from "./forms/seo-form/seo-form.component";
5
- import * as i4 from "./forms/svg-form/svg-form.component";
6
- import * as i5 from "./forms/one-image-form/one-image-form.component";
7
- import * as i6 from "./forms/file-form/file-form.component";
8
- import * as i7 from "./forms/lottie-form/lottie-form.component";
9
- import * as i8 from "./forms/unknown-form/unknown-form.component";
10
- import * as i9 from "./translation-input/translation-input.component";
11
- import * as i10 from "./translation-textarea/translation-textarea.component";
12
- import * as i11 from "./admin-controls/admin-controls.component";
13
- import * as i12 from "./core-components/editable-group";
14
- import * as i13 from "./form-controls/form-controls.component";
15
- import * as i14 from "./skeleton-editor/skeleton-editor.component";
16
- import * as i15 from "./skeleton-editor/skeleton-editor-anchor.directive";
17
- import * as i16 from "./skeleton-editor/bone-editor-container/bone-editor-container.component";
18
- import * as i17 from "./bone-editors/unknown-bone-editor/unknown-bone-editor.component";
19
- import * as i18 from "./media-uploader/media-uploader.component";
20
- import * as i19 from "./file-uploader/file-uploader.component";
21
- import * as i20 from "./core-components/link-popup/link-popup.component";
22
- import * as i21 from "@angular/common";
23
- import * as i22 from "@angular/forms";
24
- import * as i23 from "@angular/cdk/text-field";
25
- import * as i24 from "@candy-kingdom/bonnie";
26
- import * as i25 from "ngx-lottie";
27
- import * as i26 from "./core-components/editable.directive";
28
- export declare class BonnieCmsModule {
29
- static ɵfac: i0.ɵɵFactoryDeclaration<BonnieCmsModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<BonnieCmsModule, [typeof i1.TranslationFormComponent, typeof i2.TextFormComponent, typeof i3.SeoFormComponent, typeof i4.SvgFormComponent, typeof i5.OneImageFormComponent, typeof i6.FileFormComponent, typeof i7.LottieFormComponent, typeof i8.UnknownFormComponent, typeof i9.TranslationInputComponent, typeof i10.TranslationTextareaComponent, typeof i11.AdminControlsComponent, typeof i12.EditableGroupComponent, typeof i13.FormControlsComponent, typeof i14.SkeletonEditorComponent, typeof i15.SkeletonEditorAnchorDirective, typeof i16.BoneEditorContainerComponent, typeof i17.UnknownBoneEditorComponent, typeof i18.MediaUploaderComponent, typeof i19.FileUploaderComponent, typeof i20.LinkPopupComponent], [typeof i21.CommonModule, typeof i22.FormsModule, typeof i23.CdkTextareaAutosize, typeof i24.BonnieModule, typeof i25.LottieComponent, typeof i26.EditableDirective], [typeof i21.CommonModule, typeof i22.FormsModule, typeof i24.BonnieModule, typeof i7.LottieFormComponent, typeof i1.TranslationFormComponent, typeof i2.TextFormComponent, typeof i3.SeoFormComponent, typeof i4.SvgFormComponent, typeof i5.OneImageFormComponent, typeof i6.FileFormComponent, typeof i7.LottieFormComponent, typeof i8.UnknownFormComponent, typeof i9.TranslationInputComponent, typeof i10.TranslationTextareaComponent, typeof i11.AdminControlsComponent, typeof i12.EditableGroupComponent, typeof i13.FormControlsComponent, typeof i14.SkeletonEditorComponent, typeof i15.SkeletonEditorAnchorDirective, typeof i16.BoneEditorContainerComponent, typeof i17.UnknownBoneEditorComponent, typeof i18.MediaUploaderComponent, typeof i19.FileUploaderComponent, typeof i20.LinkPopupComponent, typeof i26.EditableDirective]>;
31
- static ɵinj: i0.ɵɵInjectorDeclaration<BonnieCmsModule>;
32
- }
@@ -1,6 +0,0 @@
1
- export declare enum DeviceType {
2
- NotSet = 0,
3
- Mobile = 1,
4
- Tablet = 2,
5
- Desktop = 3
6
- }
@@ -1,7 +0,0 @@
1
- export declare enum DeviceVisibility {
2
- None = 0,
3
- Desktop = 1,
4
- Tablet = 2,
5
- Mobile = 4,
6
- All = 7
7
- }
@@ -1,2 +0,0 @@
1
- import { PixMediaUnion } from "@candy-kingdom/bonnie";
2
- export type MediaType = PixMediaUnion["type"];
@@ -1,5 +0,0 @@
1
- export declare enum TextEditorField {
2
- NotSet = 0,
3
- Input = 1,
4
- Textarea = 2
5
- }
@@ -1,4 +0,0 @@
1
- export declare const regExpIsMobile: RegExp;
2
- export declare function isLocalUrlString(url: string): boolean;
3
- export declare function hasFlag<T extends number>(value: T, flag: T): boolean;
4
- export declare function setOrRemoveFlag<T extends number>(value: T, flag: T, enabled: boolean): T;
@@ -1,5 +0,0 @@
1
- export * from './DeviceType';
2
- export * from './MediaType';
3
- export * from './TextEditorField';
4
- export * from './Utils';
5
- export * from './DeviceVisibility';
@@ -1,24 +0,0 @@
1
- import { QueryList, AfterContentInit, OnDestroy, EventEmitter } from '@angular/core';
2
- import { EditableDirective } from './editable.directive';
3
- import * as i0 from "@angular/core";
4
- export declare class EditableGroupComponent implements AfterContentInit, OnDestroy {
5
- readonly editModeChange: EventEmitter<boolean>;
6
- readonly saved: EventEmitter<void>;
7
- readonly requestEditorClose: EventEmitter<boolean>;
8
- editables: QueryList<EditableDirective>;
9
- private readonly subscriptions;
10
- private _inEditMode;
11
- private readonly saveSubject;
12
- ngAfterContentInit(): void;
13
- get inEditMode(): boolean;
14
- saveAll(): void;
15
- cancelAll(): void;
16
- closeAll(): void;
17
- private clearSubscribtions;
18
- private updateSubscriptions;
19
- private onSave;
20
- private updateEditMode;
21
- ngOnDestroy(): void;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<EditableGroupComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<EditableGroupComponent, "bonc-editable-group", never, {}, { "editModeChange": "editModeChange"; "saved": "saved"; "requestEditorClose": "requestEditorClose"; }, ["editables"], ["*"], false, never>;
24
- }
@@ -1,43 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class EditableDirective<T = unknown> {
5
- readonly saved: EventEmitter<T>;
6
- readonly editModeChange: EventEmitter<boolean>;
7
- readonly externalSaveCall: EventEmitter<void>;
8
- readonly canceled: EventEmitter<void>;
9
- readonly valueChange: EventEmitter<T>;
10
- private propagateChange;
11
- private _inEditMode;
12
- private _isDirty;
13
- private _value?;
14
- private _originalValue?;
15
- private _storedData?;
16
- get inEditMode(): boolean;
17
- subscribe(params: {
18
- readonly onValueChange?: (x: T) => void;
19
- readonly onEditModeChange?: (x: boolean) => void;
20
- readonly onSaveRequest?: () => void;
21
- }): Subscription[];
22
- requestSave(): void;
23
- startEditing: () => void;
24
- save(newData?: T): void;
25
- patchSave(propName: keyof T, newDataParts: T[keyof T]): void;
26
- silentPatch(dict: Partial<T>): void;
27
- cancel(): void;
28
- close(): void;
29
- private finishEditing;
30
- private setValue;
31
- set value(newValue: T | undefined);
32
- get value(): T | undefined;
33
- updateDirty(): void;
34
- markAsDirty(): void;
35
- get isDirty(): boolean;
36
- private setOriginal;
37
- writeValue(newValue: T): void;
38
- setDisabledState?(): void;
39
- registerOnChange(tellAngularThatSomethingIsChanged: (newValue: T) => void): void;
40
- registerOnTouched(): void;
41
- static ɵfac: i0.ɵɵFactoryDeclaration<EditableDirective<any>, never>;
42
- static ɵdir: i0.ɵɵDirectiveDeclaration<EditableDirective<any>, "[boncEditable]", never, {}, { "saved": "saved"; "editModeChange": "editModeChange"; "externalSaveCall": "externalSaveCall"; "canceled": "canceled"; "valueChange": "valueChange"; }, never, never, true, never>;
43
- }
@@ -1,13 +0,0 @@
1
- import { EditableDirective } from './editable.directive';
2
- import * as i0 from "@angular/core";
3
- export declare abstract class FormBaseComponent<TData = unknown> {
4
- readonly editable: EditableDirective<TData>;
5
- static readonly inputs: string[];
6
- protected name: string;
7
- private _locale;
8
- constructor(editable: EditableDirective<TData>);
9
- set locale(value: string);
10
- get locale(): string;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<FormBaseComponent<any>, [{ host: true; }]>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<FormBaseComponent<any>, "ng-component", never, { "locale": { "alias": "locale"; "required": false; }; }, {}, never, never, false, never>;
13
- }
@@ -1,4 +0,0 @@
1
- export * from './editable-group';
2
- export * from './editable.directive';
3
- export * from './form-base.component';
4
- export * from './link-popup';
@@ -1 +0,0 @@
1
- export * from './link-popup.component';
@@ -1,28 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { LocalizedString } from '@candy-kingdom/bonnie';
3
- import { TextEditorField } from '../../core';
4
- import * as i0 from "@angular/core";
5
- export declare class LinkPopupComponent {
6
- readonly TextEditorField: typeof TextEditorField;
7
- linkChange: EventEmitter<LocalizedString>;
8
- startEditing: EventEmitter<void>;
9
- changed: EventEmitter<void>;
10
- blurred: EventEmitter<void>;
11
- open: EventEmitter<void>;
12
- closed: EventEmitter<void>;
13
- field: TextEditorField;
14
- LinkPopupField: typeof TextEditorField;
15
- maxRows?: number;
16
- minRows?: number;
17
- linkTitle: LocalizedString;
18
- locale: string;
19
- link: LocalizedString;
20
- popupIsShown: boolean;
21
- onClick(): void;
22
- onChange(): void;
23
- onBlur(): void;
24
- showPopup(): void;
25
- hidePopup(): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<LinkPopupComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<LinkPopupComponent, "bonc-link-popup", never, { "field": { "alias": "field"; "required": true; }; "maxRows": { "alias": "maxRows"; "required": false; }; "minRows": { "alias": "minRows"; "required": false; }; "linkTitle": { "alias": "linkTitle"; "required": true; }; "locale": { "alias": "locale"; "required": true; }; "link": { "alias": "link"; "required": true; }; }, { "linkChange": "linkChange"; "startEditing": "startEditing"; "changed": "changed"; "blurred": "blurred"; "open": "open"; "closed": "closed"; }, never, never, false, never>;
28
- }
@@ -1,32 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
2
- import { DomSanitizer, SafeStyle } from '@angular/platform-browser';
3
- import { HttpClient } from '@angular/common/http';
4
- import { FileMeta, FileSrc } from '@candy-kingdom/bonnie';
5
- import * as i0 from "@angular/core";
6
- export declare class FileUploaderComponent {
7
- private sanitizer;
8
- private http;
9
- private readonly cd;
10
- fileInput: ElementRef<HTMLInputElement>;
11
- srcChange: EventEmitter<FileSrc<FileMeta>>;
12
- uploadUrlMap: ReadonlyMap<string, string>;
13
- progress: number;
14
- isUploading: boolean;
15
- autoplay: boolean;
16
- clipStyle?: SafeStyle;
17
- fileTypeMask?: string;
18
- private _uploadTypes;
19
- private _src?;
20
- constructor(sanitizer: DomSanitizer, http: HttpClient, cd: ChangeDetectorRef);
21
- set src(newSrc: FileSrc<FileMeta> | undefined);
22
- get src(): FileSrc<FileMeta> | undefined;
23
- set uploadTypes(newUploadType: string[]);
24
- get uploadTypes(): string[];
25
- onFileSelect(fileInput: HTMLInputElement): void;
26
- selectFile(event: Event): void;
27
- private getEventMessage;
28
- private updateClip;
29
- private handleError;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<FileUploaderComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploaderComponent, "bonc-file-uploader", never, { "uploadUrlMap": { "alias": "uploadUrlMap"; "required": true; }; "src": { "alias": "src"; "required": false; }; "uploadTypes": { "alias": "uploadTypes"; "required": false; }; }, { "srcChange": "srcChange"; }, never, ["*"], false, never>;
32
- }