@candy-kingdom/bonnie-cms 0.11.0 → 0.12.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.
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Any changes made to this file can be lost when this file is regenerated.
|
|
4
4
|
*/
|
|
5
5
|
export * from './file-setting-data';
|
|
6
|
-
export * from './setting-group';
|
|
7
|
-
export * from './text-setting-data';
|
|
8
|
-
export * from './one-image-setting-data';
|
|
9
|
-
export * from './lottie-setting-data';
|
|
10
6
|
export * from './i-equatable';
|
|
7
|
+
export * from './i-setting';
|
|
8
|
+
export * from './localized-text-setting-data';
|
|
9
|
+
export * from './lottie-setting-data';
|
|
10
|
+
export * from './one-image-setting-data';
|
|
11
11
|
export * from './setting-base';
|
|
12
|
-
export * from './svg-setting-data';
|
|
13
12
|
export * from './setting-data';
|
|
13
|
+
export * from './setting-group';
|
|
14
14
|
export * from './setting';
|
|
15
|
+
export * from './svg-setting-data';
|
|
16
|
+
export * from './text-setting-data';
|
|
15
17
|
export * from './text-setting-type';
|
|
16
|
-
|
|
17
|
-
export * from './localized-text-setting-data';
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi9nZW5lcmF0ZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGlzIGlzIGEgVHlwZUdlbiBhdXRvLWdlbmVyYXRlZCBmaWxlLlxyXG4gKiBBbnkgY2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSBjYW4gYmUgbG9zdCB3aGVuIHRoaXMgZmlsZSBpcyByZWdlbmVyYXRlZC5cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtc2V0dGluZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5nLWdyb3VwJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXNldHRpbmctZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb25lLWltYWdlLXNldHRpbmctZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG90dGllLXNldHRpbmctZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaS1lcXVhdGFibGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NldHRpbmctYmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3ZnLXNldHRpbmctZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXNldHRpbmctdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaS1zZXR0aW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1zZXR0aW5nLWRhdGEnO1xyXG4iXX0=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi9nZW5lcmF0ZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGlzIGlzIGEgVHlwZUdlbiBhdXRvLWdlbmVyYXRlZCBmaWxlLlxyXG4gKiBBbnkgY2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSBjYW4gYmUgbG9zdCB3aGVuIHRoaXMgZmlsZSBpcyByZWdlbmVyYXRlZC5cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtc2V0dGluZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9pLWVxdWF0YWJsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaS1zZXR0aW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1zZXR0aW5nLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvdHRpZS1zZXR0aW5nLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL29uZS1pbWFnZS1zZXR0aW5nLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NldHRpbmctYmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5nLWdyb3VwJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdmctc2V0dGluZy1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXNldHRpbmctZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC1zZXR0aW5nLXR5cGUnO1xyXG4iXX0=
|
|
@@ -70,11 +70,6 @@ import { MediaObjectFit, BonnieModule } from '@candy-kingdom/bonnie';
|
|
|
70
70
|
* This is a TypeGen auto-generated file.
|
|
71
71
|
* Any changes made to this file can be lost when this file is regenerated.
|
|
72
72
|
*/
|
|
73
|
-
var TextSettingType;
|
|
74
|
-
(function (TextSettingType) {
|
|
75
|
-
TextSettingType[TextSettingType["SingleLine"] = 0] = "SingleLine";
|
|
76
|
-
TextSettingType[TextSettingType["MultiLine"] = 1] = "MultiLine";
|
|
77
|
-
})(TextSettingType || (TextSettingType = {}));
|
|
78
73
|
|
|
79
74
|
/**
|
|
80
75
|
* This is a TypeGen auto-generated file.
|
|
@@ -85,6 +80,11 @@ var TextSettingType;
|
|
|
85
80
|
* This is a TypeGen auto-generated file.
|
|
86
81
|
* Any changes made to this file can be lost when this file is regenerated.
|
|
87
82
|
*/
|
|
83
|
+
var TextSettingType;
|
|
84
|
+
(function (TextSettingType) {
|
|
85
|
+
TextSettingType[TextSettingType["SingleLine"] = 0] = "SingleLine";
|
|
86
|
+
TextSettingType[TextSettingType["MultiLine"] = 1] = "MultiLine";
|
|
87
|
+
})(TextSettingType || (TextSettingType = {}));
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
90
|
* This is a TypeGen auto-generated file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candy-kingdom-bonnie-cms.mjs","sources":["../../../../libs/bonnie-cms/src/lib/generated/file-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-group.ts","../../../../libs/bonnie-cms/src/lib/generated/text-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/one-image-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/lottie-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/i-equatable.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-base.ts","../../../../libs/bonnie-cms/src/lib/generated/svg-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/setting.ts","../../../../libs/bonnie-cms/src/lib/generated/text-setting-type.ts","../../../../libs/bonnie-cms/src/lib/generated/i-setting.ts","../../../../libs/bonnie-cms/src/lib/generated/localized-text-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/index.ts","../../../../libs/bonnie-cms/src/lib/core/DeviceType.ts","../../../../libs/bonnie-cms/src/lib/core/TextEditorField.ts","../../../../libs/bonnie-cms/src/lib/core/Utils.ts","../../../../libs/bonnie-cms/src/lib/core/DeviceVisibility.ts","../../../../libs/bonnie-cms/src/lib/core-components/editable.directive.ts","../../../../libs/bonnie-cms/src/lib/core-components/editable-group.ts","../../../../libs/bonnie-cms/src/lib/core-components/form-base.component.ts","../../../../libs/bonnie-cms/src/lib/translation-input/translation-input.component.ts","../../../../libs/bonnie-cms/src/lib/translation-input/translation-input.component.html","../../../../libs/bonnie-cms/src/lib/translation-textarea/translation-textarea.component.ts","../../../../libs/bonnie-cms/src/lib/translation-textarea/translation-textarea.component.html","../../../../libs/bonnie-cms/src/lib/core-components/link-popup/link-popup.component.ts","../../../../libs/bonnie-cms/src/lib/core-components/link-popup/link-popup.component.html","../../../../libs/bonnie-cms/src/lib/form-controls/form-controls.component.ts","../../../../libs/bonnie-cms/src/lib/form-controls/form-controls.component.html","../../../../libs/bonnie-cms/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/bonnie-cms/src/lib/file-uploader/file-uploader.component.html","../../../../libs/bonnie-cms/src/lib/forms/one-image-form/one-image-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/one-image-form/one-image-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/seo-form/seo-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/seo-form/seo-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/svg-form/svg-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/svg-form/svg-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/file-form/file-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/file-form/file-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/text-form/TextInputStyle.ts","../../../../libs/bonnie-cms/src/lib/forms/text-form/text-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/text-form/text-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/lottie-form/lottie-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/lottie-form/lottie-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/translation-form/translation-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/translation-form/translation-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/unknown-form/unknown-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/unknown-form/unknown-form.component.html","../../../../libs/bonnie-cms/src/lib/services/API_BASE_URL.ts","../../../../libs/bonnie-cms/src/lib/services/data.service.ts","../../../../libs/bonnie-cms/src/lib/services/admin-data.service.ts","../../../../libs/bonnie-cms/src/lib/admin-controls/admin-controls.component.ts","../../../../libs/bonnie-cms/src/lib/admin-controls/admin-controls.component.html","../../../../libs/bonnie-cms/src/lib/media-uploader/media-uploader.component.ts","../../../../libs/bonnie-cms/src/lib/media-uploader/media-uploader.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor-anchor.directive.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/bone-editor-base.component.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.ts","../../../../libs/bonnie-cms/src/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor.component.ts","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/ContentPreset.ts","../../../../libs/bonnie-cms/src/lib/bonnie-cms.module.ts","../../../../libs/bonnie-cms/src/candy-kingdom-bonnie-cms.ts"],"sourcesContent":["/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcFileMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface FileSettingData extends SettingData {\r\n allowedMimeTypes: string[];\r\n src: FileSrcFileMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { Setting } from \"./setting\";\r\n\r\nexport interface SettingGroup {\r\n id: string;\r\n order: number;\r\n title: string;\r\n records: Setting<any>[];\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { TextSettingType } from \"./text-setting-type\";\r\n\r\nexport interface TextSettingData extends SettingData {\r\n text: string;\r\n textType: TextSettingType;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileFormat } from \"@candy-kingdom/bonnie\";\r\nimport { FileSrcImageMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface OneImageSettingData extends SettingData {\r\n width: number;\r\n height: number;\r\n format: FileFormat;\r\n allowedMimeTypes: string[];\r\n src: FileSrcImageMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcFileMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface LottieSettingData extends SettingData {\r\n src: FileSrcFileMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport interface IEquatable<T> {\r\n\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\n\r\nexport interface SettingBase {\r\n id: string;\r\n order: number;\r\n title: string;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcImageMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface SvgSettingData extends SettingData {\r\n src: FileSrcImageMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\n\r\nexport interface SettingData {\r\n type: string;\r\n empty: SettingData;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { SettingBase } from \"./setting-base\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { ISetting } from \"./i-setting\";\r\n\r\nexport interface Setting<T extends SettingData> extends SettingBase {\r\n data: T;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum TextSettingType {\r\n SingleLine = 0,\r\n MultiLine = 1,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\n\r\nexport interface ISetting<T extends SettingData> {\r\n id: string;\r\n title: string;\r\n data: T;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { TextSettingType } from \"./text-setting-type\";\r\nimport { LocalizedString } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface LocalizedTextSettingData extends SettingData {\r\n text: LocalizedString;\r\n textType: TextSettingType;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport * from './file-setting-data';\r\nexport * from './setting-group';\r\nexport * from './text-setting-data';\r\nexport * from './one-image-setting-data';\r\nexport * from './lottie-setting-data';\r\nexport * from './i-equatable';\r\nexport * from './setting-base';\r\nexport * from './svg-setting-data';\r\nexport * from './setting-data';\r\nexport * from './setting';\r\nexport * from './text-setting-type';\r\nexport * from './i-setting';\r\nexport * from './localized-text-setting-data';\r\n","export enum DeviceType {\r\n NotSet = 0,\r\n Mobile = 1,\r\n Tablet = 2,\r\n Desktop = 3\r\n}\r\n","\r\n\r\n\r\nexport enum TextEditorField {\r\n NotSet = 0,\r\n Input = 1,\r\n Textarea = 2\r\n}\r\n","\r\n// tslint:disable-next-line: max-line-length\r\nexport const regExpIsMobile = new RegExp(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/, 'i');\r\n\r\nexport function isLocalUrlString(url: string): boolean {\r\n if (url === undefined || url === null || url.trim().length === 0)\r\n return true;\r\n\r\n if (url.startsWith('//'))\r\n return false;\r\n\r\n if (url.startsWith('./') || url.startsWith('/'))\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\nexport function hasFlag<T extends number>(value: T, flag: T): boolean {\r\n return (value & flag) === flag;\r\n}\r\n\r\nexport function setOrRemoveFlag<T extends number>(value: T, flag: T, enabled: boolean): T {\r\n return (enabled ? value | flag : value & ~flag) as T;\r\n}\r\n","export enum DeviceVisibility {\r\n None = 0,\r\n Desktop = 1,\r\n Tablet = 2,\r\n Mobile = 4,\r\n All = Desktop | Tablet | Mobile\r\n}\r\n","import { Directive, Output, EventEmitter, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[boncEditable]',\r\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EditableDirective), multi: true }]\r\n})\r\nexport class EditableDirective<T = unknown> {\r\n @Output()\r\n public readonly saved = new EventEmitter<T>();\r\n\r\n @Output()\r\n public readonly editModeChange = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly externalSaveCall = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly canceled = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly valueChange = new EventEmitter<T>();\r\n\r\n private propagateChange: (newValue: T) => void = () => { };\r\n\r\n private _inEditMode = false;\r\n private _isDirty = false;\r\n\r\n private _value?: T;\r\n private _originalValue?: T;\r\n private _storedData?: string;\r\n\r\n public get inEditMode(): boolean {\r\n return this._inEditMode;\r\n }\r\n\r\n public subscribe\r\n (\r\n params: {\r\n readonly onValueChange?: (x: T) => void,\r\n readonly onEditModeChange?: (x: boolean) => void,\r\n readonly onSaveRequest?: () => void\r\n }\r\n ): Subscription[] {\r\n\r\n const subscriptions: Subscription[] = [];\r\n\r\n if (params.onValueChange !== undefined && params.onValueChange !== null) {\r\n subscriptions.push\r\n (\r\n this.valueChange.subscribe((x: T) => {\r\n if (params.onValueChange)\r\n params.onValueChange(x);\r\n })\r\n );\r\n }\r\n\r\n if (params.onEditModeChange !== undefined) {\r\n subscriptions.push\r\n (\r\n this.editModeChange.subscribe((x: boolean) => {\r\n if (params.onEditModeChange)\r\n params.onEditModeChange(x);\r\n })\r\n );\r\n }\r\n\r\n if (params.onSaveRequest !== undefined) {\r\n subscriptions.push\r\n (\r\n this.externalSaveCall.subscribe(() => {\r\n if (params.onSaveRequest)\r\n params.onSaveRequest();\r\n })\r\n );\r\n }\r\n\r\n return subscriptions;\r\n }\r\n\r\n public requestSave() {\r\n this.externalSaveCall.emit();\r\n }\r\n\r\n public startEditing = (): void => {\r\n if (this._inEditMode) {\r\n this.updateDirty();\r\n return;\r\n }\r\n\r\n this._inEditMode = true;\r\n this.updateDirty();\r\n this.editModeChange.emit(true);\r\n }\r\n\r\n public save(newData?: T): void {\r\n if (!this._inEditMode) {\r\n console.warn('save before edit mode'); //todo: fix that\r\n }\r\n\r\n this.finishEditing();\r\n\r\n const newUnqieNotEmptyData = this.value === newData || newData === undefined\r\n ? JSON.parse(JSON.stringify(this.value))\r\n : newData;\r\n\r\n this.setOriginal(newUnqieNotEmptyData);\r\n this.updateDirty();\r\n\r\n this.saved.emit(newUnqieNotEmptyData);\r\n\r\n this.propagateChange(newUnqieNotEmptyData);\r\n }\r\n\r\n public patchSave(propName: keyof T, newDataParts: T[keyof T]): void {\r\n if (this._originalValue === undefined || this._originalValue === null)\r\n return;\r\n\r\n if (typeof this._originalValue !== \"object\") {\r\n console.warn('patch save called on not object type');\r\n return;\r\n }\r\n\r\n (this._originalValue as any)[propName] = newDataParts;\r\n\r\n this.setOriginal(this._originalValue);\r\n\r\n this.updateDirty();\r\n\r\n if (!this.isDirty)\r\n this.close();\r\n }\r\n\r\n // change model without opening or closing the editor\r\n\r\n public silentPatch(dict: Partial<T>): void {\r\n for (const key in dict) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!dict.hasOwnProperty(key))\r\n continue;\r\n\r\n const propVal = dict[key];\r\n\r\n\r\n if (this._value !== undefined && this._value !== null) {\r\n this._value[key] = propVal as any;\r\n }\r\n\r\n if (this._originalValue !== undefined && this._originalValue !== null) {\r\n this._originalValue[key] = propVal as any;\r\n }\r\n }\r\n this._storedData = JSON.stringify(this._originalValue);\r\n }\r\n\r\n public cancel(): void {\r\n if (!this._inEditMode)\r\n return;\r\n\r\n this.finishEditing();\r\n\r\n // reset value\r\n this.setValue(this._originalValue);\r\n\r\n this.canceled.emit();\r\n }\r\n\r\n public close(): void {\r\n this.finishEditing();\r\n }\r\n\r\n private finishEditing(): void {\r\n if (!this._inEditMode)\r\n return;\r\n\r\n this._inEditMode = false;\r\n this.editModeChange.emit(false);\r\n }\r\n\r\n private setValue(newValue?: T): void {\r\n this._value = (newValue === null || newValue === undefined)\r\n ? undefined\r\n : JSON.parse(JSON.stringify(newValue));\r\n\r\n this.valueChange.emit(this._value);\r\n }\r\n\r\n public set value(newValue: T | undefined) {\r\n this.setValue(newValue);\r\n }\r\n\r\n public get value(): T | undefined {\r\n return this._value;\r\n }\r\n\r\n public updateDirty(): void {\r\n this._isDirty = JSON.stringify(this._value) !== this._storedData;\r\n }\r\n\r\n public markAsDirty(): void {\r\n this._isDirty = true;\r\n }\r\n\r\n public get isDirty(): boolean {\r\n return this._isDirty;\r\n }\r\n\r\n private setOriginal(newOriginalValue: T) {\r\n this._originalValue = newOriginalValue;\r\n this._storedData = JSON.stringify(newOriginalValue);\r\n }\r\n\r\n // #region ngModel\r\n\r\n writeValue(newValue: T): void {\r\n this.finishEditing();\r\n\r\n this.setOriginal(newValue);\r\n this._isDirty = false;\r\n\r\n this.setValue(newValue);\r\n }\r\n\r\n setDisabledState?(): void {\r\n }\r\n\r\n registerOnChange(tellAngularThatSomethingIsChanged: (newValue: T) => void): void {\r\n this.propagateChange = (newValue: T): void => {\r\n tellAngularThatSomethingIsChanged(newValue);\r\n };\r\n }\r\n\r\n registerOnTouched(): void {\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { QueryList, ContentChildren, AfterContentInit, OnDestroy, Output, EventEmitter, Component } from '@angular/core';\r\nimport { Subscription, Subject, debounceTime } from 'rxjs';\r\n\r\nimport { EditableDirective } from './editable.directive';\r\n\r\n@Component({\r\n selector: 'bonc-editable-group',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class EditableGroupComponent implements AfterContentInit, OnDestroy {\r\n @Output()\r\n public readonly editModeChange = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly saved = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly requestEditorClose = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(EditableDirective, { descendants: true })\r\n public editables!: QueryList<EditableDirective>;\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n private _inEditMode = false;\r\n\r\n private readonly saveSubject = new Subject<void>();\r\n\r\n public ngAfterContentInit(): void {\r\n this.saveSubject\r\n .asObservable()\r\n .pipe(debounceTime(100))\r\n .subscribe(() => this.saved.emit());\r\n\r\n this.updateSubscriptions();\r\n\r\n this.editables.changes.subscribe\r\n (\r\n () => {\r\n this.clearSubscribtions();\r\n this.updateSubscriptions();\r\n }\r\n );\r\n }\r\n\r\n public get inEditMode(): boolean {\r\n return this._inEditMode;\r\n }\r\n\r\n public saveAll(): void {\r\n this.editables.forEach(x => x.requestSave());\r\n }\r\n\r\n public cancelAll(): void {\r\n this.editables.forEach(x => x.cancel());\r\n }\r\n\r\n public closeAll(): void {\r\n this.requestEditorClose.emit(true);\r\n this.editables.forEach(x => x.close());\r\n }\r\n\r\n private clearSubscribtions(): void {\r\n this.subscriptions.forEach(x => x.unsubscribe());\r\n this.subscriptions.splice(0, this.subscriptions.length);\r\n }\r\n\r\n private updateSubscriptions(): void {\r\n\r\n this.editables.forEach\r\n (\r\n editable => {\r\n\r\n this.subscriptions.push(\r\n editable.saved.subscribe(\r\n () => this.onSave()\r\n )\r\n );\r\n\r\n this.subscriptions.push(\r\n ...editable.subscribe({\r\n onEditModeChange: this.updateEditMode.bind(this)\r\n })\r\n );\r\n }\r\n );\r\n }\r\n\r\n private onSave(): void {\r\n this.saveSubject.next();\r\n }\r\n\r\n private updateEditMode(): void {\r\n const newEditMode = this.editables\r\n .filter(x => x.inEditMode)\r\n .length > 0;\r\n\r\n if (newEditMode === this._inEditMode)\r\n return;\r\n\r\n this._inEditMode = newEditMode;\r\n\r\n this.editModeChange.next(newEditMode);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearSubscribtions();\r\n }\r\n}\r\n","import { Component, Host, Input } from '@angular/core';\r\n\r\nimport { EditableDirective } from './editable.directive';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class FormBaseComponent<TData = unknown> {\r\n public static readonly inputs = ['locale'];\r\n\r\n protected name = '';\r\n private _locale = '';\r\n\r\n constructor(@Host() public readonly editable: EditableDirective<TData>) { }\r\n\r\n @Input()\r\n public set locale(value: string) {\r\n this._locale = value;\r\n }\r\n\r\n public get locale(): string {\r\n return this._locale;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DeviceType } from '../core';\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-translation-input',\r\n templateUrl: './translation-input.component.html',\r\n styleUrls: ['./translation-input.component.scss']\r\n})\r\nexport class TranslationInputComponent {\r\n @Input({ required: true })\r\n public text!: LocalizedString;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device: DeviceType = DeviceType.NotSet;\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onKeyPress() {\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n}\r\n","<input [(ngModel)]=\"text[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\" />\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\nimport { DeviceType } from '../core';\r\n\r\n@Component({\r\n selector: 'bonc-translation-textarea',\r\n templateUrl: './translation-textarea.component.html',\r\n styleUrls: ['./translation-textarea.component.scss']\r\n})\r\nexport class TranslationTextareaComponent implements OnChanges, AfterViewInit {\r\n @ViewChildren(CdkTextareaAutosize)\r\n public autosizeList!: QueryList<CdkTextareaAutosize>;\r\n\r\n @Input()\r\n public minRows?: number;\r\n\r\n @Input()\r\n public maxRows?: number;\r\n\r\n @Input({ required: true })\r\n public text!: LocalizedString;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device: DeviceType = DeviceType.NotSet;\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n constructor(\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(this.triggerResize.bind(this));\r\n }\r\n\r\n ngOnChanges(): void {\r\n setTimeout(this.triggerResize.bind(this), 500);\r\n }\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onKeyPress() {\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n\r\n private triggerResize() {\r\n // console.log('trigger resize!');\r\n\r\n this.ngZone.onStable.pipe(take(1))\r\n .subscribe(() => {\r\n this.autosizeList.forEach(x => x.resizeToFitContent(true));\r\n });\r\n }\r\n}\r\n","<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","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\nimport { TextEditorField } from '../../core';\r\n\r\n@Component({\r\n selector: 'bonc-link-popup',\r\n templateUrl: './link-popup.component.html',\r\n styleUrl: './link-popup.component.scss'\r\n})\r\nexport class LinkPopupComponent {\r\n public readonly TextEditorField = TextEditorField;\r\n @Output()\r\n public linkChange: EventEmitter<LocalizedString> = new EventEmitter();\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public open: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public closed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Input({ required: true })\r\n public field!: TextEditorField;\r\n public LinkPopupField = TextEditorField;\r\n\r\n @Input()\r\n public maxRows?: number;\r\n\r\n @Input()\r\n public minRows?: number;\r\n\r\n @Input({ required: true })\r\n public linkTitle!: LocalizedString; // todo: allready in weblink\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input({ required: true })\r\n public link!: LocalizedString;\r\n\r\n public popupIsShown = false;\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onChange() {\r\n console.log('change link pop up')\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n\r\n public showPopup(): void {\r\n this.popupIsShown = true;\r\n this.open.emit();\r\n }\r\n\r\n public hidePopup(): void {\r\n this.popupIsShown = false;\r\n this.closed.emit();\r\n }\r\n}\r\n","<bonc-translation-input *ngIf=\"field === TextEditorField.Input\"\r\n (click)=\"showPopup()\"\r\n [text]=\"linkTitle\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"onClick()\"\r\n (changed)=\"onChange()\"\r\n (blurred)=\"onBlur()\">\r\n</bonc-translation-input>\r\n\r\n<bonc-translation-textarea *ngIf=\"field === TextEditorField.Textarea\"\r\n (click)=\"showPopup()\"\r\n [text]=\"linkTitle\"\r\n [locale]=\"locale\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n (startEditing)=\"onClick()\"\r\n (changed)=\"onChange()\"\r\n (blurred)=\"onBlur()\">\r\n</bonc-translation-textarea>\r\n\r\n<div *ngIf=\"popupIsShown\">\r\n <div class=\"popup\">\r\n <a (click)=\"hidePopup()\" class=\"close\">close</a>\r\n\r\n <label>Link\r\n <input [(ngModel)]=\"link[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onChange()\"\r\n (blur)=\"onBlur()\">\r\n </label>\r\n\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { EditableDirective } from '../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-form-controls',\r\n templateUrl: './form-controls.component.html',\r\n styleUrls: ['./form-controls.component.scss']\r\n})\r\nexport class FormControlsComponent {\r\n @Input({ required: true })\r\n public editable!: EditableDirective<any>;\r\n}\r\n","<div [class.edit]=\"editable.inEditMode\" class=\"content\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<div [class.hidden]=\"!editable.inEditMode\" class=\"controls\">\r\n <a *ngIf=\"!editable.isDirty\" (click)=\"editable.cancel()\" class=\"close\">close</a>\r\n <ng-container *ngIf=\"editable.isDirty\">\r\n <a (click)=\"editable.cancel()\">reset</a>\r\n <a (click)=\"editable.requestSave()\" class=\"apply\">apply</a>\r\n </ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { catchError, last, map, Observable } from 'rxjs';\r\n\r\nimport { FileMeta, FileSrc } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-file-uploader',\r\n templateUrl: './file-uploader.component.html',\r\n styleUrls: ['./file-uploader.component.scss']\r\n})\r\nexport class FileUploaderComponent {\r\n @ViewChild('fileInput', { static: true })\r\n public fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Output()\r\n public srcChange = new EventEmitter<FileSrc<FileMeta>>();\r\n\r\n @Input({ required: true })\r\n public uploadUrlMap!: ReadonlyMap<string, string>;\r\n\r\n public progress = 0;\r\n public isUploading = false;\r\n\r\n public autoplay = true;\r\n public clipStyle?: SafeStyle;\r\n\r\n public fileTypeMask?: string = undefined;\r\n\r\n private _uploadTypes: string[] = [];\r\n private _src?: FileSrc<FileMeta>;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient, private readonly cd: ChangeDetectorRef) {\r\n }\r\n\r\n @Input()\r\n public set src(newSrc: FileSrc<FileMeta> | undefined) {\r\n if (this._src === newSrc)\r\n return;\r\n\r\n this._src = newSrc;\r\n }\r\n\r\n public get src(): FileSrc<FileMeta> | undefined {\r\n return this._src;\r\n }\r\n\r\n @Input()\r\n public set uploadTypes(newUploadType: string[]) {\r\n this._uploadTypes.splice(0, this._uploadTypes.length);\r\n\r\n this._uploadTypes.push(...newUploadType);\r\n\r\n this.fileTypeMask = this._uploadTypes.length === 0 ? undefined : this._uploadTypes.join(',');\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n public get uploadTypes(): string[] {\r\n return this._uploadTypes;\r\n }\r\n\r\n public onFileSelect(fileInput: HTMLInputElement) {\r\n if (fileInput.files === undefined || fileInput.files === null || fileInput.files.length !== 1)\r\n return;\r\n\r\n const file = fileInput.files[0];\r\n\r\n const uploadUrl = this.uploadUrlMap.get(file.type) ?? this.uploadUrlMap.get(\"\");\r\n\r\n if (uploadUrl === undefined || uploadUrl === null) {\r\n console.error(`upload map doesn't have url for type '${file.type}'`);\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append('file', file);\r\n\r\n this.progress = 0;\r\n this.isUploading = true;\r\n\r\n this.updateClip();\r\n\r\n const request = new HttpRequest('POST', uploadUrl, formData, {\r\n reportProgress: true\r\n });\r\n\r\n this.http\r\n .request<FileSrc<FileMeta>>(request)\r\n .pipe\r\n (\r\n map(event => this.getEventMessage(event)),\r\n // tap(message => this.showProgress(message)),\r\n last(), // return last (completed) message to caller\r\n catchError(this.handleError(file))\r\n ).subscribe\r\n (\r\n () => { this.isUploading = false; }\r\n );\r\n }\r\n\r\n public selectFile(event: Event): void {\r\n // ignore buble click on file picker\r\n if (event.target === this.fileInput.nativeElement)\r\n return;\r\n\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n private getEventMessage(event: HttpEvent<FileSrc<FileMeta>>): void {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n return;\r\n\r\n case HttpEventType.UploadProgress:\r\n this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;\r\n this.updateClip();\r\n return;\r\n\r\n case HttpEventType.Response:\r\n if (event.body === null || event.body === undefined) {\r\n console.warn(`empty body from uploader`);\r\n return;\r\n }\r\n\r\n this.srcChange.emit(event.body);\r\n return;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private updateClip(): void {\r\n this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);\r\n }\r\n\r\n private handleError(file: File): (p1: unknown, p2: Observable<unknown>) => Observable<unknown> {\r\n const func = (error: unknown, p2: Observable<unknown>): Observable<unknown> => {\r\n const message = `error uploadingFile ${file.name}.`;\r\n console.error(message, error, p2);\r\n alert(message);\r\n return new Observable<unknown>();\r\n };\r\n\r\n return func;\r\n }\r\n}\r\n","<div *ngIf=\"src === undefined || src.url === undefined || src?.url?.length === 0\">Upload file</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, ImageMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\n\r\nconst DefaultImageMimeTypes = ['image/png', 'image/jpeg'];\r\n\r\n@Component({\r\n selector: 'bonc-one-image-form',\r\n templateUrl: './one-image-form.component.html',\r\n styleUrls: ['./one-image-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class OneImageFormComponent extends FormBaseComponent<FileSrc<ImageMeta>> implements OnInit {\r\n private readonly cd = inject(ChangeDetectorRef);\r\n\r\n public uploadMap = new Map<string, string>();\r\n\r\n private _mimeTypes = DefaultImageMimeTypes;\r\n\r\n private _uploadUrl = '/api/admin/upload/image';\r\n\r\n private _label = ''\r\n\r\n constructor(@Host() editable: EditableDirective<FileSrc<ImageMeta>>) {\r\n super(editable)\r\n\r\n this.uploadMap.set('', this._uploadUrl);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set label(newValue: string) {\r\n this._label = newValue;\r\n }\r\n\r\n public get label(): string {\r\n return this._label;\r\n }\r\n\r\n @Input()\r\n public set uploadUrl(newValue: string) {\r\n this._uploadUrl = newValue;\r\n\r\n this.uploadMap.set('', this._uploadUrl);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n @Input()\r\n public set mimeTypes(newValue: string[]) {\r\n this._mimeTypes = newValue.length === 0 ? DefaultImageMimeTypes : newValue;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public get mimeTypes(): string[] {\r\n return this._mimeTypes;\r\n }\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<ImageMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { OpenGraphData } from '@candy-kingdom/bonnie';\r\n\r\nimport { EditableDirective, FormBaseComponent } from '../../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-seo-form',\r\n templateUrl: './seo-form.component.html',\r\n styleUrls: ['./seo-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SeoFormComponent extends FormBaseComponent<OpenGraphData> implements OnInit {\r\n public readonly imageWidth = 1200;\r\n public readonly imageHeight = 630;\r\n\r\n private _pageId = '';\r\n public ogImageUploadUrl = '';\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set pageId(value: string) {\r\n this._pageId = value;\r\n this.ogImageUploadUrl = `/api/admin/page/Og-Image?pageId=${this.pageId}`; // todo: replace with link to single image api\r\n }\r\n\r\n public get pageId(): string {\r\n return this._pageId;\r\n }\r\n\r\n public ResToSrc(res: { url: string }): string {\r\n return res.url;\r\n }\r\n}\r\n","<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\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 </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\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 </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\n\r\n@Component({\r\n selector: 'bonc-svg-form',\r\n templateUrl: './svg-form.component.html',\r\n styleUrls: ['./svg-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SvgFormComponent extends FormBaseComponent<FileSrc<SvgMeta>> implements OnInit {\r\n private readonly cd = inject(ChangeDetectorRef);\r\n\r\n public readonly SvgMime = 'image/svg+xml';\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public uploadMap = new Map<string, string>();\r\n\r\n private _uploadUrl = '/api/admin/upload/image/svg';\r\n\r\n constructor(@Host() editable: EditableDirective<FileSrc<SvgMeta>>) {\r\n super(editable)\r\n\r\n this.uploadMap.set(this.SvgMime, this._uploadUrl);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set uploadUrl(newValue: string) {\r\n this._uploadUrl = newValue;\r\n\r\n this.uploadMap.set(this.SvgMime, this._uploadUrl);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"[SvgMime]\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-file-form',\r\n templateUrl: './file-form.component.html',\r\n styleUrls: ['./file-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class FileFormComponent extends FormBaseComponent<FileSrc<FileMeta>> implements OnInit {\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input({ required: true })\r\n public uploadTypes: string[] = [];\r\n\r\n @Input({ required: true })\r\n public uploadMap = new Map<string, string>();;\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"uploadTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <div *ngIf=\"editable.value?.url?.length ?? 0 > 0\">{{editable.value?.url}}</div>\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n</bonc-form-controls>\r\n","\r\nexport enum TextInputStyle {\r\n NotSet = 0,\r\n SingleLine = 1,\r\n MultiLine = 2\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TextInputStyle } from './TextInputStyle';\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-text-form',\r\n templateUrl: './text-form.component.html',\r\n styleUrls: ['./text-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class TextFormComponent extends FormBaseComponent<string> implements OnInit {\r\n public readonly TextInputStyle = TextInputStyle;\r\n\r\n @Input()\r\n public label = '';\r\n\r\n @Input()\r\n public type = TextInputStyle.SingleLine;\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<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","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\nimport { AnimationOptions } from 'ngx-lottie';\r\n\r\n@Component({\r\n selector: 'bonc-lottie-form',\r\n templateUrl: './lottie-form.component.html',\r\n styleUrls: ['./lottie-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class LottieFormComponent extends FormBaseComponent<FileSrc<FileMeta>> implements OnInit {\r\n public readonly LottieMimeType = 'application/json';\r\n\r\n public animOptions?: AnimationOptions;\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n\r\n this.editable.valueChange.subscribe(x => {\r\n const url = x?.url ?? '';\r\n this.animOptions = url.length === 0 ? undefined : { path: url };\r\n })\r\n }\r\n\r\n @Input({ required: true })\r\n public uploadMap = new Map<string, string>();;\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"[LottieMimeType]\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n\r\n <ng-lottie *ngIf=\"animOptions\"\r\n [options]=\"animOptions\"></ng-lottie>\r\n\r\n\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n</bonc-form-controls>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\n\r\nimport { EditableDirective, FormBaseComponent } from '../../core-components';\r\nimport { TextEditorField } from '../../core';\r\n\r\n@Component({\r\n selector: 'bonc-translation-form',\r\n templateUrl: './translation-form.component.html',\r\n styleUrls: ['./translation-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class TranslationFormComponent extends FormBaseComponent<LocalizedString> implements OnInit {\r\n public readonly TextEditorField = TextEditorField;\r\n\r\n @Input({ required: true })\r\n public field!: TextEditorField;\r\n\r\n @Input() label?: string;\r\n\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<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","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\n\r\n@Component({\r\n selector: 'bonc-unknown-form',\r\n templateUrl: './unknown-form.component.html',\r\n styleUrls: ['./unknown-form.component.scss']\r\n})\r\nexport class UnknownFormComponent extends FormBaseComponent<string> implements OnInit {\r\n @Input()\r\n public label = '';\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<label>Unknown form:<b>{{label}}</b></label>\r\n<pre><ng-content></ng-content></pre>\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const API_BASE_URL = new InjectionToken<string>('ApiBaseUrl');\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable, combineLatest, map, merge, mergeMap, of } from 'rxjs';\r\n\r\nimport { PageBase, View } from '@candy-kingdom/bonnie';\r\n\r\nimport { SettingData } from \"../generated\";\r\nimport { API_BASE_URL } from \"./API_BASE_URL\";\r\n\r\ntype DataDictionary = { [n: string]: Observable<unknown> };\r\n\r\nexport type SettingDataDict = { [id: string]: SettingData };\r\n\r\n@Injectable()\r\nexport class DataService {\r\n constructor(private readonly http: HttpClient, @Inject(API_BASE_URL) private baseHref: string) {\r\n }\r\n\r\n public getView(viewCode: string): Observable<Readonly<PageBase>> {\r\n const pageOb = this.getSkeleton<PageBase>(`${this.baseHref}api/views/${viewCode}`);\r\n return pageOb;\r\n }\r\n\r\n public getPage(pageRoute: string): Observable<Readonly<PageBase>> {\r\n const pageUrl = `/${pageRoute}`\r\n\r\n const pageOb = this.getSkeleton<PageBase>(`${this.baseHref}api/pages/?url=${encodeURIComponent(pageUrl)}`);\r\n return pageOb;\r\n }\r\n\r\n public getSettings(ids: string[]): Observable<Readonly<SettingDataDict>> {\r\n const pageOb = this.http.get<SettingDataDict>(`${this.baseHref}api/settings`, {\r\n params: { ids: ids }\r\n });\r\n\r\n return pageOb;\r\n }\r\n\r\n private getSkeleton<T extends (PageBase | View)>(url: string): Observable<Readonly<T>> {\r\n const skeletonOb = this.http.get<T>(url);\r\n\r\n const routeDataObs = skeletonOb\r\n .pipe\r\n (\r\n map(\r\n x => {\r\n const notEmptyDataRoutes = x.bones\r\n .map(b => ('dataRoute' in b) && typeof (b.dataRoute) === 'string' ? b.dataRoute : '')\r\n .filter(x => x.length > 0);\r\n\r\n if (notEmptyDataRoutes.length === 0) {\r\n const emptyData: DataDictionary = {};\r\n return { page: of(x), data: of(emptyData) };\r\n }\r\n\r\n return {\r\n page: of(x),\r\n data: combineLatest\r\n (\r\n notEmptyDataRoutes\r\n .map(dataRoute => {\r\n const url = `${this.baseHref}api/Pages/Children/?url=${dataRoute}`;\r\n\r\n return {\r\n route: dataRoute,\r\n json: this.http.get(url)\r\n }\r\n })\r\n .reduce(\r\n (prev, curr) => {\r\n prev[curr.route] = curr.json;\r\n return prev;\r\n }, {} as DataDictionary\r\n )\r\n )\r\n }\r\n }\r\n\r\n ),\r\n map(x => combineLatest(x)),\r\n mergeMap(res => merge(res)),\r\n map(x => {\r\n\r\n for (const bone of x.page.bones) {\r\n if (!('dataRoute' in bone) || typeof bone.dataRoute !== 'string' || bone.dataRoute.length === 0)\r\n continue;\r\n\r\n const data = x.data[bone.dataRoute];\r\n\r\n if (data === undefined || data === null)\r\n throw new Error(`Data ${bone.dataRoute} have not been preloaded`);\r\n\r\n (bone as any).data = data; // todo: fix\r\n }\r\n\r\n return x.page;\r\n })\r\n );\r\n\r\n return routeDataObs;\r\n }\r\n}\r\n\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageBase } from \"@candy-kingdom/bonnie\";\r\n\r\nimport { SettingBase, SettingGroup } from \"../generated\";\r\nimport { API_BASE_URL } from \"./API_BASE_URL\";\r\n\r\n@Injectable()\r\nexport class AdminDataService {\r\n constructor(private readonly http: HttpClient, @Inject(API_BASE_URL) private baseHref: string) {\r\n console.log('baseHref: ' + baseHref);\r\n }\r\n\r\n public getSettingGroups(): Observable<SettingGroup[]> {\r\n const pageOb = this.http.get<SettingGroup[]>(`${this.baseHref}api/admin/settings`);\r\n return pageOb;\r\n }\r\n\r\n public getPage(url: string): Observable<SettingGroup[]> {\r\n const pageOb = this.http.get<SettingGroup[]>(`${this.baseHref}api/admin/pages/${url}`);\r\n return pageOb;\r\n }\r\n\r\n public storePage(page: PageBase): Observable<void> {\r\n const ob = this.http.post<void>(`${this.baseHref}api/admin/pages`, page);\r\n return ob;\r\n }\r\n\r\n public updateSettings(settings: SettingBase[]): Observable<void> {\r\n const ob = this.http.post<void>(`${this.baseHref}api/admin/settings`, settings);\r\n return ob;\r\n }\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { DeviceType } from '../core';\r\nimport { EditableGroupComponent } from '../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-admin-controls',\r\n templateUrl: './admin-controls.component.html',\r\n styleUrls: ['./admin-controls.component.scss']\r\n})\r\nexport class AdminControlsComponent {\r\n public readonly DeviceType = DeviceType;\r\n\r\n @Input({ required: true })\r\n public editableGroup!: EditableGroupComponent;\r\n\r\n @Input()\r\n public deviceControls = false;\r\n\r\n public locale = 'en';\r\n public device = this.DeviceType.Desktop;\r\n\r\n public changeLocale(): void {\r\n this.locale = this.locale === 'en' ? 'ru' : 'en';\r\n }\r\n\r\n public changeDevice(): void {\r\n switch (this.device) {\r\n case DeviceType.Desktop:\r\n this.device = DeviceType.Tablet;\r\n return;\r\n\r\n case DeviceType.Tablet:\r\n this.device = DeviceType.Mobile;\r\n return;\r\n\r\n case DeviceType.Mobile:\r\n this.device = DeviceType.Desktop;\r\n return;\r\n\r\n default:\r\n this.device = DeviceType.Desktop;\r\n return;\r\n }\r\n }\r\n}\r\n","<div class=\"page-controls\">\r\n <a (click)=\"changeLocale()\" class=\"locale\">Locale: {{locale}}</a>\r\n\r\n <!-- todo: return this functionality -->\r\n <!-- <a *ngIf=\"deviceControls\" (click)=\"changeDevice()\" class=\"device\">\r\n <span *ngIf=\"device === DeviceType.Desktop\">DESKTOP</span>\r\n <span *ngIf=\"device === DeviceType.Tablet\">TABLET</span>\r\n <span *ngIf=\"device === DeviceType.Mobile\">MOBILE</span>\r\n </a> -->\r\n\r\n <a *ngIf=\"editableGroup && editableGroup.inEditMode\"\r\n (click)=\"editableGroup.saveAll()\"\r\n class=\"save\">Save all</a>\r\n\r\n <a *ngIf=\"editableGroup && editableGroup.inEditMode\"\r\n (click)=\"editableGroup.cancelAll()\"\r\n class=\"cancel\">Cancel all</a>\r\n</div>\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { catchError, last, map, Observable } from 'rxjs';\r\n\r\nimport { MediaObjectFit, PixMediaUnion } from '@candy-kingdom/bonnie';\r\nimport { MediaType } from '../core';\r\n\r\nconst imageMimeTypes = ['image/png', 'image/jpeg'];\r\nconst videoMimeTypes = ['video/mp4'];\r\n\r\nconst imageFileTypes = imageMimeTypes.join(',');\r\nconst videoFileTypes = videoMimeTypes.join(',');\r\n\r\nconst allMediaFileTypes = `${imageFileTypes},${videoFileTypes}`;\r\n\r\n@Component({\r\n selector: 'bonc-media-uploader',\r\n templateUrl: './media-uploader.component.html',\r\n styleUrls: ['./media-uploader.component.scss']\r\n})\r\nexport class MediaUploaderComponent {\r\n public readonly MediaObjectFit = MediaObjectFit;\r\n\r\n @ViewChild('fileInput', { static: true })\r\n public fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Output()\r\n public srcChange = new EventEmitter<PixMediaUnion>();\r\n\r\n @Input({ required: true })\r\n public uploadUrlMap!: ReadonlyMap<MediaType, string>;\r\n\r\n @Input()\r\n public forceRatio?: number;\r\n\r\n public progress = 0;\r\n public isUploading = false;\r\n\r\n public autoplay = true;\r\n public clipStyle?: SafeStyle;\r\n public fileTypeMask = allMediaFileTypes;\r\n\r\n private _uploadType?: MediaType;\r\n private _src?: PixMediaUnion;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\r\n }\r\n\r\n @Input()\r\n public set src(newSrc: PixMediaUnion | undefined) {\r\n if (this._src === newSrc)\r\n return;\r\n\r\n this._src = newSrc;\r\n }\r\n\r\n public get src(): PixMediaUnion | undefined {\r\n return this._src;\r\n }\r\n\r\n @Input()\r\n public set uploadType(newUploadType: MediaType | undefined) {\r\n switch (newUploadType) {\r\n case \"image\":\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = imageFileTypes;\r\n break;\r\n\r\n case \"video\":\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = videoFileTypes;\r\n break;\r\n\r\n case undefined:\r\n default:\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = allMediaFileTypes;\r\n break;\r\n }\r\n }\r\n\r\n public get uploadType(): MediaType | undefined {\r\n return this._uploadType;\r\n }\r\n\r\n public onFileSelect(fileInput: HTMLInputElement) {\r\n if (fileInput.files === undefined || fileInput.files === null || fileInput.files.length !== 1)\r\n return;\r\n\r\n const file = fileInput.files[0];\r\n\r\n let uploadingMediaType: MediaType;\r\n\r\n if (this._uploadType !== undefined && this._uploadType !== null) {\r\n uploadingMediaType = this._uploadType;\r\n }\r\n else if (imageMimeTypes.includes(file.type)) {\r\n uploadingMediaType = 'image';\r\n }\r\n else if (videoMimeTypes.includes(file.type)) {\r\n uploadingMediaType = 'video';\r\n }\r\n else {\r\n console.error(`unknown media type ${file.type} (${file.name})`);\r\n return;\r\n }\r\n\r\n const uploadUrl = this.uploadUrlMap.get(uploadingMediaType);\r\n\r\n if (uploadUrl === undefined || uploadUrl === null) {\r\n console.error(`upload map doesn't have url for type ${uploadingMediaType}`);\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append('file', file);\r\n formData.append('ratio', `${this.forceRatio ?? 0}`);\r\n\r\n this.progress = 0;\r\n this.isUploading = true;\r\n\r\n this.updateClip();\r\n\r\n const request = new HttpRequest('POST', uploadUrl, formData, {\r\n reportProgress: true\r\n });\r\n\r\n this.http\r\n .request<PixMediaUnion>(request)\r\n .pipe\r\n (\r\n map(event => this.getEventMessage(event)),\r\n // tap(message => this.showProgress(message)),\r\n last(), // return last (completed) message to caller\r\n catchError(this.handleError(file))\r\n ).subscribe\r\n (\r\n () => { this.isUploading = false; }\r\n );\r\n }\r\n\r\n public selectFile(event: Event): void {\r\n // ignore buble click on file picker\r\n if (event.target === this.fileInput.nativeElement)\r\n return;\r\n\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n private getEventMessage(event: HttpEvent<PixMediaUnion>): void {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n return;\r\n\r\n case HttpEventType.UploadProgress:\r\n this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;\r\n this.updateClip();\r\n return;\r\n\r\n case HttpEventType.Response:\r\n if (event.body === undefined || event.body === null) {\r\n console.error('media deserialization error. Response body in undefined');\r\n } else {\r\n // remove this\r\n // needed for C# deserialization\r\n const pixmedia = {\r\n $type: event.body.type,\r\n ...event.body as any,\r\n };\r\n\r\n this.srcChange.emit(pixmedia);\r\n }\r\n return;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private updateClip(): void {\r\n this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);\r\n }\r\n\r\n private handleError(file: File): (p1: unknown, p2: Observable<unknown>) => Observable<unknown> {\r\n const func = (error: unknown, p2: Observable<unknown>): Observable<unknown> => {\r\n const message = `error uploadingFile ${file.name}.`;\r\n console.error(message, error, p2);\r\n alert(message);\r\n return new Observable<unknown>();\r\n };\r\n\r\n return func;\r\n }\r\n}\r\n","<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[boncSkeletonEditorAnchor]'\r\n})\r\nexport class SkeletonEditorAnchorDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { EventEmitter, HostBinding, Component, Input } from '@angular/core';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { ContentPreset } from '../skeleton-editor/ContentPreset';\r\nimport { IBoneEditor } from '../skeleton-editor/IBoneEditor';\r\nimport { DeviceType } from '../core';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BoneEditorBaseComponent<TBone extends Bone> implements IBoneEditor<TBone> {\r\n public readonly editing: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public readonly saved: EventEmitter<Bone> = new EventEmitter<Bone>();\r\n public readonly removed: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public readonly noPresets: boolean;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n public device = DeviceType.NotSet;\r\n\r\n private _bone!: TBone;\r\n private _storedData: string = '';\r\n\r\n private _currentPreset: ContentPreset<TBone> | undefined;\r\n\r\n protected readonly presets: ReadonlyArray<ContentPreset<TBone>>;\r\n private _isDirty = false;\r\n private _isEditing = false;\r\n\r\n public abstract onReset(): void;\r\n public abstract onFinishEditing(): void;\r\n\r\n protected abstract getPresets(): ContentPreset<TBone>[];\r\n\r\n constructor() {\r\n this.presets = this.getPresets();\r\n\r\n if (this.presets === undefined || this.presets === null)\r\n throw new Error('presets cannot be undefined in ContentPreset constructor');\r\n\r\n if (this.presets.length === 0) {\r\n this.presets = [\r\n\r\n {\r\n title: 'default',\r\n isActive: () => true,\r\n transformer: bone => bone,\r\n clean: bone => bone,\r\n }\r\n ];\r\n }\r\n\r\n this.noPresets = this.presets.length === 1;\r\n }\r\n\r\n @HostBinding('class.mobile') get isMobile(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Mobile;\r\n }\r\n\r\n @HostBinding('class.tablet') get isTablet(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Tablet;\r\n }\r\n\r\n @HostBinding('class.desktop') get isDesktop(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Desktop;\r\n }\r\n\r\n public get currentPreset(): ContentPreset<TBone> | undefined {\r\n return this._currentPreset;\r\n }\r\n\r\n public get bone(): TBone {\r\n return this._bone;\r\n }\r\n\r\n @Input({ required: true })\r\n public set bone(newData: TBone) {\r\n this._isDirty = false;\r\n this._storedData = JSON.stringify(newData);\r\n this._bone = JSON.parse(this._storedData);\r\n this.updatePresetByData();\r\n }\r\n\r\n public get isDirty(): boolean {\r\n return this._isDirty;\r\n }\r\n\r\n public get isEditing(): boolean {\r\n return this._isEditing;\r\n }\r\n\r\n public resetData(): void {\r\n this._isEditing = false;\r\n this.bone = JSON.parse(this._storedData);\r\n\r\n if (this.onReset !== undefined)\r\n this.onReset();\r\n\r\n this.editing.emit(false);\r\n }\r\n\r\n public updateDirty(): void {\r\n this._isDirty = JSON.stringify(this._bone) !== this._storedData;\r\n }\r\n\r\n public markAsDirty(): void {\r\n this._isDirty = true;\r\n }\r\n\r\n public remove(): void {\r\n this.removed.next();\r\n }\r\n\r\n public save(): void {\r\n if (!this.isDirty)\r\n return;\r\n\r\n this._isDirty = false;\r\n\r\n this.finishEditing();\r\n\r\n this._storedData = JSON.stringify(this._bone);\r\n\r\n const clonedData: TBone = JSON.parse(this._storedData);\r\n this.saved.emit(clonedData);\r\n }\r\n\r\n public startEditing(): void {\r\n if (this._isEditing) {\r\n this.updateDirty();\r\n return;\r\n }\r\n\r\n this._isEditing = true;\r\n this.updateDirty();\r\n\r\n this.editing.emit(true);\r\n }\r\n\r\n public finishEditing(): void {\r\n if (this._isDirty)\r\n throw new Error('Нельзя закрывать редактирование когда есть изменения. Надо сохранить либо зарезетить.');\r\n\r\n if (this.onFinishEditing !== undefined)\r\n this.onFinishEditing();\r\n\r\n this._isEditing = false;\r\n }\r\n\r\n public nextPreset(): void {\r\n const newIndex = this._currentPreset === undefined ? 0 : this.presets.indexOf(this._currentPreset) + 1;\r\n this.applyPresetAtIndex(newIndex);\r\n }\r\n\r\n private applyPresetAtIndex = (newIndex: number): void => {\r\n newIndex = newIndex < 0 ? 0 : newIndex % this.presets.length;\r\n\r\n const currentIndex = this._currentPreset === undefined ? -1 : this.presets.indexOf(this._currentPreset);\r\n if (currentIndex === newIndex)\r\n return;\r\n\r\n this._currentPreset = this.presets[newIndex];\r\n this._currentPreset.transformer(this._bone);\r\n\r\n this.updateDirty();\r\n }\r\n\r\n private updatePresetByData = (): void => {\r\n const countOfActive = this.presets.map(p => p.isActive(this._bone)).filter(p => p).length;\r\n\r\n if (countOfActive !== 1)\r\n throw new Error(`active preset count should be equal 1, but it was: ${countOfActive}. ${this.constructor.name}`);\r\n\r\n for (let i = 0; this.presets.length; i++) {\r\n const preset = this.presets[i];\r\n\r\n if (preset.isActive(this._bone)) {\r\n this.applyPresetAtIndex(i);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { ContentPreset } from '../../skeleton-editor/ContentPreset';\r\nimport { BoneEditorBaseComponent } from '../bone-editor-base.component';\r\n\r\n@Component({\r\n selector: 'bonc-unknown-bone-editor',\r\n templateUrl: './unknown-bone-editor.component.html',\r\n styleUrls: ['./unknown-bone-editor.component.scss']\r\n})\r\nexport class UnknownBoneEditorComponent extends BoneEditorBaseComponent<Bone> {\r\n public onFinishEditing(): void { }\r\n public onReset(): void { }\r\n\r\n protected getPresets(): ContentPreset<Bone>[] {\r\n return [];\r\n }\r\n}\r\n","<p>Unknown Bone Editor | bone type: {{bone.type}}</p>\r\n<pre>{{bone | json}}</pre>\r\n","import { Component, ComponentFactoryResolver, EventEmitter, Input, OnChanges, Output, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { SkeletonEditorAnchorDirective } from '../skeleton-editor-anchor.directive';\r\nimport { DeviceType } from '../../core';\r\nimport { IBoneEditor } from '../IBoneEditor';\r\nimport { BoneEditorMap } from '../BoneEditorMap';\r\nimport { UnknownBoneEditorComponent } from '../../bone-editors/unknown-bone-editor/unknown-bone-editor.component';\r\n\r\n// todo: rename class\r\n@Component({\r\n selector: 'bonc-bone-editor-container',\r\n templateUrl: './bone-editor-container.component.html',\r\n styleUrls: ['./bone-editor-container.component.scss']\r\n})\r\nexport class BoneEditorContainerComponent implements OnChanges {\r\n @ViewChild(SkeletonEditorAnchorDirective, { static: true })\r\n public anchor!: SkeletonEditorAnchorDirective;\r\n\r\n @Output()\r\n public removed: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public saved: EventEmitter<Bone> = new EventEmitter<Bone>();\r\n\r\n @Output()\r\n public editing: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public DeviceType = DeviceType;\r\n\r\n public editor!: IBoneEditor;\r\n\r\n public themePopupIsShown = false;\r\n\r\n private _bone!: Bone;\r\n\r\n private removeSubscription?: Subscription;\r\n private saveSubscription?: Subscription;\r\n private changedSubscription?: Subscription;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device = DeviceType.NotSet;\r\n\r\n constructor(private readonly componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.editor === undefined || this.editor === null)\r\n return;\r\n\r\n this.editor.locale = this.locale;\r\n this.editor.device = this.device;\r\n }\r\n\r\n @Input({ required: true })\r\n public map!: BoneEditorMap\r\n\r\n public get bone(): Bone {\r\n return this._bone;\r\n }\r\n\r\n @Input({ required: true })\r\n public set bone(newBone: Bone) {\r\n this._bone = newBone;\r\n\r\n if (this.removeSubscription) {\r\n this.removeSubscription.unsubscribe();\r\n this.removeSubscription = undefined;\r\n }\r\n\r\n if (this.saveSubscription) {\r\n this.saveSubscription.unsubscribe();\r\n this.saveSubscription = undefined;\r\n }\r\n\r\n if (this.changedSubscription) {\r\n this.changedSubscription.unsubscribe();\r\n this.changedSubscription = undefined;\r\n }\r\n\r\n const viewContainerRef = this.anchor.viewContainerRef;\r\n\r\n viewContainerRef.clear();\r\n\r\n const componentType = this.map.get(newBone.type) ?? UnknownBoneEditorComponent;\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n const boneEditorRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n this.editor = boneEditorRef.instance;\r\n this.editor.bone = newBone;\r\n\r\n this.removeSubscription = this.editor.removed.subscribe(() => {\r\n this.removed.next();\r\n });\r\n\r\n this.changedSubscription = this.editor.editing.subscribe\r\n (\r\n (isEditing: boolean) => {\r\n this.editing.next(isEditing);\r\n }\r\n );\r\n\r\n this.saveSubscription = this.editor.saved.subscribe(\r\n (newBoneValue: Bone) => {\r\n this.saved.next(newBoneValue);\r\n }\r\n );\r\n\r\n this.ngOnChanges();\r\n }\r\n\r\n public nextPreset = (): void => {\r\n if (this.editor === undefined || this.editor === null)\r\n return;\r\n\r\n this.editor.nextPreset();\r\n }\r\n\r\n // todo: add or remove visibility feature\r\n\r\n // public setDisabled = (disabled: boolean): void => {\r\n // if (this.editor === undefined || this.editor === null)\r\n // return;\r\n\r\n // this.editor.startEditing();\r\n\r\n // if (this.device === DeviceType.Desktop)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Desktop, !disabled);\r\n // else if (this.device === DeviceType.Tablet)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Tablet, !disabled);\r\n // else if (this.device === DeviceType.Mobile)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Mobile, !disabled);\r\n\r\n // this.editor.updateDirty();\r\n // }\r\n\r\n public get disabled(): boolean {\r\n if (this.editor === undefined || this.editor === null)\r\n throw new Error('editor should have been set');\r\n\r\n return false;\r\n // todo: add or remove visibility feature\r\n // const visibility = this.editor.bone.visibility;\r\n\r\n // if (this.device === DeviceType.Desktop && hasFlag(visibility, DeviceVisibility.Desktop))\r\n // return false;\r\n\r\n // if (this.device === DeviceType.Tablet && hasFlag(visibility, DeviceVisibility.Tablet))\r\n // return false;\r\n\r\n // if (this.device === DeviceType.Mobile && hasFlag(visibility, DeviceVisibility.Mobile))\r\n // return false;\r\n\r\n // return true;\r\n }\r\n}\r\n","<div *ngIf=\"editor\" class=\"left bar\" [class.inactive]=\"editor.noPresets\">\r\n <!-- <a *ngFor=\"let control of editor.controls\" (click)=\"control.activate()\">{{control.label}}</a> -->\r\n <!-- <a (click)=\"setDisabled(!disabled)\" class=\"disabled\">block {{disabled ? 'disabled' : 'enabled'}} ({{editor.bone.visibility}})</a> -->\r\n <a *ngIf=\"editor.currentPreset && !editor.noPresets\" (click)=\"nextPreset()\" class=\"preset\">style:<br />{{editor.currentPreset.title}}</a>\r\n</div>\r\n\r\n<div class=\"editor-container\"\r\n [class.disabled]=\"disabled\"\r\n [style.width]=\"\r\n device === DeviceType.Desktop ? '75vw'\r\n : device === DeviceType.Tablet ? '55vw'\r\n : device === DeviceType.Mobile ? '35vw'\r\n : '75vw' \">\r\n <ng-template boncSkeletonEditorAnchor>\r\n </ng-template>\r\n</div>\r\n\r\n<div *ngIf=\"editor\" [class.active]=\"editor.isEditing || editor.isDirty\" class=\"right bar\">\r\n <!-- <a *ngIf=\"!editor.isEditing\" (click)=\"editor.remove()\" class=\"delete\">!!! remove</a> -->\r\n <a *ngIf=\"editor.isDirty\" (click)=\"editor.resetData()\" class=\"reset\">reset</a>\r\n <a *ngIf=\"editor.isEditing && !editor.isDirty\" (click)=\"editor.finishEditing()\" class=\"close\">close</a>\r\n <a *ngIf=\"editor.isDirty\" (click)=\"editor.save()\" class=\"save\">apply</a>\r\n</div>\r\n","import { Component, Host, Input, OnChanges, OnInit, QueryList, ViewChildren } from '@angular/core';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\nimport { BoneEditorContainerComponent } from './bone-editor-container/bone-editor-container.component';\r\nimport { EditableDirective } from '../core-components/editable.directive';\r\nimport { DeviceType } from '../core';\r\nimport { IBoneTemplate } from './IBoneTemplate';\r\nimport { BoneEditorMap } from './BoneEditorMap';\r\n\r\n// todo: rename class\r\n@Component({\r\n selector: 'bonc-skeleton-editor',\r\n templateUrl: './skeleton-editor.component.html',\r\n styleUrls: ['./skeleton-editor.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SkeletonEditorComponent implements OnInit, OnChanges {\r\n @ViewChildren('boneEditorContainer')\r\n public boneEditorContainerList!: QueryList<BoneEditorContainerComponent>;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device = DeviceType.NotSet;\r\n\r\n public readonly templatesAreShown: boolean[] = [];\r\n\r\n constructor(@Host() public editable: EditableDirective<Bone[]>) {\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.boneEditorContainerList.forEach\r\n (\r\n editorContainer => editorContainer.editor?.save()\r\n );\r\n\r\n this.editable.save();\r\n });\r\n\r\n this.editable.canceled.subscribe(() => {\r\n this.boneEditorContainerList.forEach\r\n (\r\n editorContainer => editorContainer.editor?.resetData()\r\n );\r\n\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input({ required: true })\r\n public map!: BoneEditorMap;\r\n\r\n public ngOnChanges(): void {\r\n this.templatesAreShown.splice(0, this.templatesAreShown.length);\r\n if (this.bones === undefined)\r\n return;\r\n\r\n this.bones.forEach(() => this.templatesAreShown.push(false));\r\n this.templatesAreShown.push(false);\r\n }\r\n\r\n @Input({ required: true })\r\n public templates!: ReadonlyArray<IBoneTemplate>;\r\n\r\n\r\n public get bones(): Bone[] {\r\n return this.editable?.value ?? [];\r\n }\r\n\r\n public boneEditHandler(isEditing: boolean): void {\r\n if (isEditing)\r\n this.editable.startEditing();\r\n else {\r\n const allClosed = this.boneEditorContainerList\r\n .filter(x => x.editor !== undefined && x.editor.isEditing)\r\n .length === 0;\r\n\r\n this.editable.updateDirty();\r\n\r\n if (!this.editable.isDirty && allClosed)\r\n this.editable.close();\r\n }\r\n }\r\n\r\n public boneChangeHandler(index: number, newBoneValue: Bone): void {\r\n if (Array.isArray(this.editable.value)) {\r\n this.editable.value[index] = newBoneValue;\r\n }\r\n\r\n this.editable.save();\r\n }\r\n\r\n public removeBone(boneIndex: number): void {\r\n if (this.bones === undefined || this.bones === null)\r\n return;\r\n\r\n if (!confirm('Вы уверены, что хотите удалить компонент?'))\r\n return;\r\n\r\n this.bones.splice(boneIndex, 1);\r\n\r\n if (!this.editable.inEditMode)\r\n this.editable.startEditing();\r\n\r\n this.editable.save();\r\n }\r\n\r\n public moveDown(boneIndex: number): void {\r\n if (boneIndex >= this.bones.length - 1)\r\n return;\r\n\r\n this.swapBones(boneIndex, boneIndex + 1);\r\n }\r\n\r\n public moveUp(boneIndex: number): void {\r\n if (boneIndex <= 0)\r\n return;\r\n\r\n this.swapBones(boneIndex - 1, boneIndex);\r\n }\r\n\r\n public createBone(index: number, selectedTemplate: IBoneTemplate): void {\r\n const newBone = selectedTemplate.boneFactory();\r\n\r\n this.bones.splice(index, 0, newBone);\r\n }\r\n\r\n private swapBones(index1: number, index2: number): void {\r\n if (index1 < 0 || index2 < 0 || index1 >= this.bones.length || index2 >= this.bones.length)\r\n throw new Error(`ошибка swapBones. неправильные индексы ${index1} и ${index2}. bone count: ${this.bones.length}`);\r\n\r\n const tempBone = this.bones[index1];\r\n this.bones[index1] = this.bones[index2];\r\n this.bones[index2] = tempBone;\r\n }\r\n}\r\n\r\n\r\n","<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","import { Bone } from '@candy-kingdom/bonnie';\r\n\r\nexport interface ContentPreset<out TBone extends Bone> {\r\n title: string;\r\n isActive(data: TBone): boolean;\r\n clean(data: TBone): void;\r\n transformer(bone: TBone): void;\r\n}\r\n\r\nexport function createPreset<TBone extends Bone>(params: { title: string, style: string }): ContentPreset<TBone> {\r\n return {\r\n title: params.title,\r\n isActive: x => x.style === params.style,\r\n transformer: bone => bone.style = params.style,\r\n clean: bone => bone.style = params.style,\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { LottieComponent } from 'ngx-lottie';\r\n\r\n\r\nimport { BonnieModule } from '@candy-kingdom/bonnie';\r\n\r\nimport { AdminControlsComponent } from './admin-controls/';\r\nimport { EditableDirective, LinkPopupComponent } from './core-components';\r\nimport { TextFormComponent } from './forms/text-form';\r\nimport { EditableGroupComponent } from './core-components';\r\nimport { FormControlsComponent } from './form-controls';\r\nimport { SeoFormComponent } from './forms/seo-form';\r\nimport { TranslationTextareaComponent } from './translation-textarea';\r\nimport { TranslationInputComponent } from './translation-input';\r\nimport { BoneEditorContainerComponent, SkeletonEditorAnchorDirective, SkeletonEditorComponent } from './skeleton-editor';\r\nimport { UnknownBoneEditorComponent } from './bone-editors/unknown-bone-editor/unknown-bone-editor.component';\r\nimport { MediaUploaderComponent } from './media-uploader/media-uploader.component';\r\nimport { DataService } from './services/data.service';\r\nimport { AdminDataService } from './services/admin-data.service';\r\nimport { TranslationFormComponent } from './forms/translation-form';\r\nimport { SvgFormComponent } from './forms/svg-form';\r\nimport { UnknownFormComponent } from './forms/unknown-form/unknown-form.component';\r\nimport { FileUploaderComponent } from './file-uploader';\r\nimport { FileFormComponent } from './forms/file-form';\r\nimport { LottieFormComponent } from './forms/lottie-form/lottie-form.component';\r\nimport { OneImageFormComponent } from './forms/one-image-form/one-image-form.component';\r\n\r\nconst formComponents = [\r\n TranslationFormComponent,\r\n TextFormComponent,\r\n SeoFormComponent,\r\n SvgFormComponent,\r\n OneImageFormComponent,\r\n FileFormComponent,\r\n LottieFormComponent,\r\n UnknownFormComponent\r\n];\r\n\r\nconst components = [\r\n ...formComponents,\r\n TranslationInputComponent,\r\n TranslationTextareaComponent,\r\n AdminControlsComponent,\r\n EditableGroupComponent,\r\n FormControlsComponent,\r\n SkeletonEditorComponent,\r\n SkeletonEditorAnchorDirective,\r\n BoneEditorContainerComponent,\r\n UnknownBoneEditorComponent,\r\n MediaUploaderComponent,\r\n FileUploaderComponent,\r\n LinkPopupComponent\r\n];\r\n\r\nconst standaloneDirectives = [\r\n EditableDirective\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ],\r\n providers:\r\n [\r\n DataService,\r\n AdminDataService\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CdkTextareaAutosize,\r\n BonnieModule,\r\n LottieComponent,\r\n ...standaloneDirectives\r\n ],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n BonnieModule,\r\n LottieFormComponent,\r\n ...components,\r\n ...standaloneDirectives\r\n ]\r\n})\r\nexport class BonnieCmsModule { } // todo: move to standalone\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EditableDirective","i1","i2","i3.TranslationInputComponent","i4.TranslationTextareaComponent","i3","i3.FormControlsComponent","i4.FileUploaderComponent","i4.OneImageFormComponent","i5.TranslationInputComponent","i6.TranslationTextareaComponent","i7.FormControlsComponent","i4.FormControlsComponent","i5.FileUploaderComponent","i5.FormControlsComponent","i2.SkeletonEditorAnchorDirective","i3.BoneEditorContainerComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"candy-kingdom-bonnie-cms.mjs","sources":["../../../../libs/bonnie-cms/src/lib/generated/file-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/i-equatable.ts","../../../../libs/bonnie-cms/src/lib/generated/i-setting.ts","../../../../libs/bonnie-cms/src/lib/generated/localized-text-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/lottie-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/one-image-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-base.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/setting-group.ts","../../../../libs/bonnie-cms/src/lib/generated/setting.ts","../../../../libs/bonnie-cms/src/lib/generated/svg-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/text-setting-data.ts","../../../../libs/bonnie-cms/src/lib/generated/text-setting-type.ts","../../../../libs/bonnie-cms/src/lib/generated/index.ts","../../../../libs/bonnie-cms/src/lib/core/DeviceType.ts","../../../../libs/bonnie-cms/src/lib/core/TextEditorField.ts","../../../../libs/bonnie-cms/src/lib/core/Utils.ts","../../../../libs/bonnie-cms/src/lib/core/DeviceVisibility.ts","../../../../libs/bonnie-cms/src/lib/core-components/editable.directive.ts","../../../../libs/bonnie-cms/src/lib/core-components/editable-group.ts","../../../../libs/bonnie-cms/src/lib/core-components/form-base.component.ts","../../../../libs/bonnie-cms/src/lib/translation-input/translation-input.component.ts","../../../../libs/bonnie-cms/src/lib/translation-input/translation-input.component.html","../../../../libs/bonnie-cms/src/lib/translation-textarea/translation-textarea.component.ts","../../../../libs/bonnie-cms/src/lib/translation-textarea/translation-textarea.component.html","../../../../libs/bonnie-cms/src/lib/core-components/link-popup/link-popup.component.ts","../../../../libs/bonnie-cms/src/lib/core-components/link-popup/link-popup.component.html","../../../../libs/bonnie-cms/src/lib/form-controls/form-controls.component.ts","../../../../libs/bonnie-cms/src/lib/form-controls/form-controls.component.html","../../../../libs/bonnie-cms/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/bonnie-cms/src/lib/file-uploader/file-uploader.component.html","../../../../libs/bonnie-cms/src/lib/forms/one-image-form/one-image-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/one-image-form/one-image-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/seo-form/seo-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/seo-form/seo-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/svg-form/svg-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/svg-form/svg-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/file-form/file-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/file-form/file-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/text-form/TextInputStyle.ts","../../../../libs/bonnie-cms/src/lib/forms/text-form/text-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/text-form/text-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/lottie-form/lottie-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/lottie-form/lottie-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/translation-form/translation-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/translation-form/translation-form.component.html","../../../../libs/bonnie-cms/src/lib/forms/unknown-form/unknown-form.component.ts","../../../../libs/bonnie-cms/src/lib/forms/unknown-form/unknown-form.component.html","../../../../libs/bonnie-cms/src/lib/services/API_BASE_URL.ts","../../../../libs/bonnie-cms/src/lib/services/data.service.ts","../../../../libs/bonnie-cms/src/lib/services/admin-data.service.ts","../../../../libs/bonnie-cms/src/lib/admin-controls/admin-controls.component.ts","../../../../libs/bonnie-cms/src/lib/admin-controls/admin-controls.component.html","../../../../libs/bonnie-cms/src/lib/media-uploader/media-uploader.component.ts","../../../../libs/bonnie-cms/src/lib/media-uploader/media-uploader.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor-anchor.directive.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/bone-editor-base.component.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.ts","../../../../libs/bonnie-cms/src/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.ts","../../../../libs/bonnie-cms/src/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor.component.ts","../../../../libs/bonnie-cms/src/lib/skeleton-editor/skeleton-editor.component.html","../../../../libs/bonnie-cms/src/lib/skeleton-editor/ContentPreset.ts","../../../../libs/bonnie-cms/src/lib/bonnie-cms.module.ts","../../../../libs/bonnie-cms/src/candy-kingdom-bonnie-cms.ts"],"sourcesContent":["/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcFileMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface FileSettingData extends SettingData {\r\n allowedMimeTypes: string[];\r\n src: FileSrcFileMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport interface IEquatable<T> {\r\n\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\n\r\nexport interface ISetting<T extends SettingData> {\r\n id: string;\r\n title: string;\r\n data: T;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { TextSettingType } from \"./text-setting-type\";\r\nimport { LocalizedString } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface LocalizedTextSettingData extends SettingData {\r\n text: LocalizedString;\r\n textType: TextSettingType;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcFileMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface LottieSettingData extends SettingData {\r\n src: FileSrcFileMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileFormat } from \"@candy-kingdom/bonnie\";\r\nimport { FileSrcImageMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface OneImageSettingData extends SettingData {\r\n width: number;\r\n height: number;\r\n format: FileFormat;\r\n allowedMimeTypes: string[];\r\n src: FileSrcImageMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\n\r\nexport interface SettingBase {\r\n id: string;\r\n order: number;\r\n title: string;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\n\r\nexport interface SettingData {\r\n type: string;\r\n empty: SettingData;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { Setting } from \"./setting\";\r\n\r\nexport interface SettingGroup {\r\n id: string;\r\n order: number;\r\n title: string;\r\n records: Setting<any>[];\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { SettingBase } from \"./setting-base\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { ISetting } from \"./i-setting\";\r\n\r\nexport interface Setting<T extends SettingData> extends SettingBase {\r\n data: T;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { FileSrcImageMeta } from \"@candy-kingdom/bonnie\";\r\n\r\nexport interface SvgSettingData extends SettingData {\r\n src: FileSrcImageMeta;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { SettingData } from \"./setting-data\";\r\nimport { IEquatable } from \"./i-equatable\";\r\nimport { TextSettingType } from \"./text-setting-type\";\r\n\r\nexport interface TextSettingData extends SettingData {\r\n text: string;\r\n textType: TextSettingType;\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum TextSettingType {\r\n SingleLine = 0,\r\n MultiLine = 1,\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport * from './file-setting-data';\r\nexport * from './i-equatable';\r\nexport * from './i-setting';\r\nexport * from './localized-text-setting-data';\r\nexport * from './lottie-setting-data';\r\nexport * from './one-image-setting-data';\r\nexport * from './setting-base';\r\nexport * from './setting-data';\r\nexport * from './setting-group';\r\nexport * from './setting';\r\nexport * from './svg-setting-data';\r\nexport * from './text-setting-data';\r\nexport * from './text-setting-type';\r\n","export enum DeviceType {\r\n NotSet = 0,\r\n Mobile = 1,\r\n Tablet = 2,\r\n Desktop = 3\r\n}\r\n","\r\n\r\n\r\nexport enum TextEditorField {\r\n NotSet = 0,\r\n Input = 1,\r\n Textarea = 2\r\n}\r\n","\r\n// tslint:disable-next-line: max-line-length\r\nexport const regExpIsMobile = new RegExp(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/, 'i');\r\n\r\nexport function isLocalUrlString(url: string): boolean {\r\n if (url === undefined || url === null || url.trim().length === 0)\r\n return true;\r\n\r\n if (url.startsWith('//'))\r\n return false;\r\n\r\n if (url.startsWith('./') || url.startsWith('/'))\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\nexport function hasFlag<T extends number>(value: T, flag: T): boolean {\r\n return (value & flag) === flag;\r\n}\r\n\r\nexport function setOrRemoveFlag<T extends number>(value: T, flag: T, enabled: boolean): T {\r\n return (enabled ? value | flag : value & ~flag) as T;\r\n}\r\n","export enum DeviceVisibility {\r\n None = 0,\r\n Desktop = 1,\r\n Tablet = 2,\r\n Mobile = 4,\r\n All = Desktop | Tablet | Mobile\r\n}\r\n","import { Directive, Output, EventEmitter, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[boncEditable]',\r\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EditableDirective), multi: true }]\r\n})\r\nexport class EditableDirective<T = unknown> {\r\n @Output()\r\n public readonly saved = new EventEmitter<T>();\r\n\r\n @Output()\r\n public readonly editModeChange = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly externalSaveCall = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly canceled = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly valueChange = new EventEmitter<T>();\r\n\r\n private propagateChange: (newValue: T) => void = () => { };\r\n\r\n private _inEditMode = false;\r\n private _isDirty = false;\r\n\r\n private _value?: T;\r\n private _originalValue?: T;\r\n private _storedData?: string;\r\n\r\n public get inEditMode(): boolean {\r\n return this._inEditMode;\r\n }\r\n\r\n public subscribe\r\n (\r\n params: {\r\n readonly onValueChange?: (x: T) => void,\r\n readonly onEditModeChange?: (x: boolean) => void,\r\n readonly onSaveRequest?: () => void\r\n }\r\n ): Subscription[] {\r\n\r\n const subscriptions: Subscription[] = [];\r\n\r\n if (params.onValueChange !== undefined && params.onValueChange !== null) {\r\n subscriptions.push\r\n (\r\n this.valueChange.subscribe((x: T) => {\r\n if (params.onValueChange)\r\n params.onValueChange(x);\r\n })\r\n );\r\n }\r\n\r\n if (params.onEditModeChange !== undefined) {\r\n subscriptions.push\r\n (\r\n this.editModeChange.subscribe((x: boolean) => {\r\n if (params.onEditModeChange)\r\n params.onEditModeChange(x);\r\n })\r\n );\r\n }\r\n\r\n if (params.onSaveRequest !== undefined) {\r\n subscriptions.push\r\n (\r\n this.externalSaveCall.subscribe(() => {\r\n if (params.onSaveRequest)\r\n params.onSaveRequest();\r\n })\r\n );\r\n }\r\n\r\n return subscriptions;\r\n }\r\n\r\n public requestSave() {\r\n this.externalSaveCall.emit();\r\n }\r\n\r\n public startEditing = (): void => {\r\n if (this._inEditMode) {\r\n this.updateDirty();\r\n return;\r\n }\r\n\r\n this._inEditMode = true;\r\n this.updateDirty();\r\n this.editModeChange.emit(true);\r\n }\r\n\r\n public save(newData?: T): void {\r\n if (!this._inEditMode) {\r\n console.warn('save before edit mode'); //todo: fix that\r\n }\r\n\r\n this.finishEditing();\r\n\r\n const newUnqieNotEmptyData = this.value === newData || newData === undefined\r\n ? JSON.parse(JSON.stringify(this.value))\r\n : newData;\r\n\r\n this.setOriginal(newUnqieNotEmptyData);\r\n this.updateDirty();\r\n\r\n this.saved.emit(newUnqieNotEmptyData);\r\n\r\n this.propagateChange(newUnqieNotEmptyData);\r\n }\r\n\r\n public patchSave(propName: keyof T, newDataParts: T[keyof T]): void {\r\n if (this._originalValue === undefined || this._originalValue === null)\r\n return;\r\n\r\n if (typeof this._originalValue !== \"object\") {\r\n console.warn('patch save called on not object type');\r\n return;\r\n }\r\n\r\n (this._originalValue as any)[propName] = newDataParts;\r\n\r\n this.setOriginal(this._originalValue);\r\n\r\n this.updateDirty();\r\n\r\n if (!this.isDirty)\r\n this.close();\r\n }\r\n\r\n // change model without opening or closing the editor\r\n\r\n public silentPatch(dict: Partial<T>): void {\r\n for (const key in dict) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!dict.hasOwnProperty(key))\r\n continue;\r\n\r\n const propVal = dict[key];\r\n\r\n\r\n if (this._value !== undefined && this._value !== null) {\r\n this._value[key] = propVal as any;\r\n }\r\n\r\n if (this._originalValue !== undefined && this._originalValue !== null) {\r\n this._originalValue[key] = propVal as any;\r\n }\r\n }\r\n this._storedData = JSON.stringify(this._originalValue);\r\n }\r\n\r\n public cancel(): void {\r\n if (!this._inEditMode)\r\n return;\r\n\r\n this.finishEditing();\r\n\r\n // reset value\r\n this.setValue(this._originalValue);\r\n\r\n this.canceled.emit();\r\n }\r\n\r\n public close(): void {\r\n this.finishEditing();\r\n }\r\n\r\n private finishEditing(): void {\r\n if (!this._inEditMode)\r\n return;\r\n\r\n this._inEditMode = false;\r\n this.editModeChange.emit(false);\r\n }\r\n\r\n private setValue(newValue?: T): void {\r\n this._value = (newValue === null || newValue === undefined)\r\n ? undefined\r\n : JSON.parse(JSON.stringify(newValue));\r\n\r\n this.valueChange.emit(this._value);\r\n }\r\n\r\n public set value(newValue: T | undefined) {\r\n this.setValue(newValue);\r\n }\r\n\r\n public get value(): T | undefined {\r\n return this._value;\r\n }\r\n\r\n public updateDirty(): void {\r\n this._isDirty = JSON.stringify(this._value) !== this._storedData;\r\n }\r\n\r\n public markAsDirty(): void {\r\n this._isDirty = true;\r\n }\r\n\r\n public get isDirty(): boolean {\r\n return this._isDirty;\r\n }\r\n\r\n private setOriginal(newOriginalValue: T) {\r\n this._originalValue = newOriginalValue;\r\n this._storedData = JSON.stringify(newOriginalValue);\r\n }\r\n\r\n // #region ngModel\r\n\r\n writeValue(newValue: T): void {\r\n this.finishEditing();\r\n\r\n this.setOriginal(newValue);\r\n this._isDirty = false;\r\n\r\n this.setValue(newValue);\r\n }\r\n\r\n setDisabledState?(): void {\r\n }\r\n\r\n registerOnChange(tellAngularThatSomethingIsChanged: (newValue: T) => void): void {\r\n this.propagateChange = (newValue: T): void => {\r\n tellAngularThatSomethingIsChanged(newValue);\r\n };\r\n }\r\n\r\n registerOnTouched(): void {\r\n }\r\n\r\n // #endregion\r\n}\r\n","import { QueryList, ContentChildren, AfterContentInit, OnDestroy, Output, EventEmitter, Component } from '@angular/core';\r\nimport { Subscription, Subject, debounceTime } from 'rxjs';\r\n\r\nimport { EditableDirective } from './editable.directive';\r\n\r\n@Component({\r\n selector: 'bonc-editable-group',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class EditableGroupComponent implements AfterContentInit, OnDestroy {\r\n @Output()\r\n public readonly editModeChange = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly saved = new EventEmitter<void>();\r\n\r\n @Output()\r\n public readonly requestEditorClose = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(EditableDirective, { descendants: true })\r\n public editables!: QueryList<EditableDirective>;\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n private _inEditMode = false;\r\n\r\n private readonly saveSubject = new Subject<void>();\r\n\r\n public ngAfterContentInit(): void {\r\n this.saveSubject\r\n .asObservable()\r\n .pipe(debounceTime(100))\r\n .subscribe(() => this.saved.emit());\r\n\r\n this.updateSubscriptions();\r\n\r\n this.editables.changes.subscribe\r\n (\r\n () => {\r\n this.clearSubscribtions();\r\n this.updateSubscriptions();\r\n }\r\n );\r\n }\r\n\r\n public get inEditMode(): boolean {\r\n return this._inEditMode;\r\n }\r\n\r\n public saveAll(): void {\r\n this.editables.forEach(x => x.requestSave());\r\n }\r\n\r\n public cancelAll(): void {\r\n this.editables.forEach(x => x.cancel());\r\n }\r\n\r\n public closeAll(): void {\r\n this.requestEditorClose.emit(true);\r\n this.editables.forEach(x => x.close());\r\n }\r\n\r\n private clearSubscribtions(): void {\r\n this.subscriptions.forEach(x => x.unsubscribe());\r\n this.subscriptions.splice(0, this.subscriptions.length);\r\n }\r\n\r\n private updateSubscriptions(): void {\r\n\r\n this.editables.forEach\r\n (\r\n editable => {\r\n\r\n this.subscriptions.push(\r\n editable.saved.subscribe(\r\n () => this.onSave()\r\n )\r\n );\r\n\r\n this.subscriptions.push(\r\n ...editable.subscribe({\r\n onEditModeChange: this.updateEditMode.bind(this)\r\n })\r\n );\r\n }\r\n );\r\n }\r\n\r\n private onSave(): void {\r\n this.saveSubject.next();\r\n }\r\n\r\n private updateEditMode(): void {\r\n const newEditMode = this.editables\r\n .filter(x => x.inEditMode)\r\n .length > 0;\r\n\r\n if (newEditMode === this._inEditMode)\r\n return;\r\n\r\n this._inEditMode = newEditMode;\r\n\r\n this.editModeChange.next(newEditMode);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.clearSubscribtions();\r\n }\r\n}\r\n","import { Component, Host, Input } from '@angular/core';\r\n\r\nimport { EditableDirective } from './editable.directive';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class FormBaseComponent<TData = unknown> {\r\n public static readonly inputs = ['locale'];\r\n\r\n protected name = '';\r\n private _locale = '';\r\n\r\n constructor(@Host() public readonly editable: EditableDirective<TData>) { }\r\n\r\n @Input()\r\n public set locale(value: string) {\r\n this._locale = value;\r\n }\r\n\r\n public get locale(): string {\r\n return this._locale;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DeviceType } from '../core';\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-translation-input',\r\n templateUrl: './translation-input.component.html',\r\n styleUrls: ['./translation-input.component.scss']\r\n})\r\nexport class TranslationInputComponent {\r\n @Input({ required: true })\r\n public text!: LocalizedString;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device: DeviceType = DeviceType.NotSet;\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onKeyPress() {\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n}\r\n","<input [(ngModel)]=\"text[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onKeyPress()\"\r\n (blur)=\"onBlur()\" />\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\nimport { DeviceType } from '../core';\r\n\r\n@Component({\r\n selector: 'bonc-translation-textarea',\r\n templateUrl: './translation-textarea.component.html',\r\n styleUrls: ['./translation-textarea.component.scss']\r\n})\r\nexport class TranslationTextareaComponent implements OnChanges, AfterViewInit {\r\n @ViewChildren(CdkTextareaAutosize)\r\n public autosizeList!: QueryList<CdkTextareaAutosize>;\r\n\r\n @Input()\r\n public minRows?: number;\r\n\r\n @Input()\r\n public maxRows?: number;\r\n\r\n @Input({ required: true })\r\n public text!: LocalizedString;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device: DeviceType = DeviceType.NotSet;\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n constructor(\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(this.triggerResize.bind(this));\r\n }\r\n\r\n ngOnChanges(): void {\r\n setTimeout(this.triggerResize.bind(this), 500);\r\n }\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onKeyPress() {\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n\r\n private triggerResize() {\r\n // console.log('trigger resize!');\r\n\r\n this.ngZone.onStable.pipe(take(1))\r\n .subscribe(() => {\r\n this.autosizeList.forEach(x => x.resizeToFitContent(true));\r\n });\r\n }\r\n}\r\n","<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","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\nimport { TextEditorField } from '../../core';\r\n\r\n@Component({\r\n selector: 'bonc-link-popup',\r\n templateUrl: './link-popup.component.html',\r\n styleUrl: './link-popup.component.scss'\r\n})\r\nexport class LinkPopupComponent {\r\n public readonly TextEditorField = TextEditorField;\r\n @Output()\r\n public linkChange: EventEmitter<LocalizedString> = new EventEmitter();\r\n\r\n @Output()\r\n public startEditing: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public changed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public blurred: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public open: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n public closed: EventEmitter<void> = new EventEmitter();\r\n\r\n @Input({ required: true })\r\n public field!: TextEditorField;\r\n public LinkPopupField = TextEditorField;\r\n\r\n @Input()\r\n public maxRows?: number;\r\n\r\n @Input()\r\n public minRows?: number;\r\n\r\n @Input({ required: true })\r\n public linkTitle!: LocalizedString; // todo: allready in weblink\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input({ required: true })\r\n public link!: LocalizedString;\r\n\r\n public popupIsShown = false;\r\n\r\n public onClick() {\r\n this.startEditing.emit();\r\n }\r\n\r\n public onChange() {\r\n console.log('change link pop up')\r\n this.changed.emit();\r\n }\r\n\r\n public onBlur() {\r\n this.blurred.emit();\r\n }\r\n\r\n public showPopup(): void {\r\n this.popupIsShown = true;\r\n this.open.emit();\r\n }\r\n\r\n public hidePopup(): void {\r\n this.popupIsShown = false;\r\n this.closed.emit();\r\n }\r\n}\r\n","<bonc-translation-input *ngIf=\"field === TextEditorField.Input\"\r\n (click)=\"showPopup()\"\r\n [text]=\"linkTitle\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"onClick()\"\r\n (changed)=\"onChange()\"\r\n (blurred)=\"onBlur()\">\r\n</bonc-translation-input>\r\n\r\n<bonc-translation-textarea *ngIf=\"field === TextEditorField.Textarea\"\r\n (click)=\"showPopup()\"\r\n [text]=\"linkTitle\"\r\n [locale]=\"locale\"\r\n [minRows]=\"minRows\"\r\n [maxRows]=\"maxRows\"\r\n (startEditing)=\"onClick()\"\r\n (changed)=\"onChange()\"\r\n (blurred)=\"onBlur()\">\r\n</bonc-translation-textarea>\r\n\r\n<div *ngIf=\"popupIsShown\">\r\n <div class=\"popup\">\r\n <a (click)=\"hidePopup()\" class=\"close\">close</a>\r\n\r\n <label>Link\r\n <input [(ngModel)]=\"link[locale]\"\r\n (click)=\"onClick()\"\r\n (keyup)=\"onChange()\"\r\n (blur)=\"onBlur()\">\r\n </label>\r\n\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { EditableDirective } from '../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-form-controls',\r\n templateUrl: './form-controls.component.html',\r\n styleUrls: ['./form-controls.component.scss']\r\n})\r\nexport class FormControlsComponent {\r\n @Input({ required: true })\r\n public editable!: EditableDirective<any>;\r\n}\r\n","<div [class.edit]=\"editable.inEditMode\" class=\"content\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<div [class.hidden]=\"!editable.inEditMode\" class=\"controls\">\r\n <a *ngIf=\"!editable.isDirty\" (click)=\"editable.cancel()\" class=\"close\">close</a>\r\n <ng-container *ngIf=\"editable.isDirty\">\r\n <a (click)=\"editable.cancel()\">reset</a>\r\n <a (click)=\"editable.requestSave()\" class=\"apply\">apply</a>\r\n </ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { catchError, last, map, Observable } from 'rxjs';\r\n\r\nimport { FileMeta, FileSrc } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-file-uploader',\r\n templateUrl: './file-uploader.component.html',\r\n styleUrls: ['./file-uploader.component.scss']\r\n})\r\nexport class FileUploaderComponent {\r\n @ViewChild('fileInput', { static: true })\r\n public fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Output()\r\n public srcChange = new EventEmitter<FileSrc<FileMeta>>();\r\n\r\n @Input({ required: true })\r\n public uploadUrlMap!: ReadonlyMap<string, string>;\r\n\r\n public progress = 0;\r\n public isUploading = false;\r\n\r\n public autoplay = true;\r\n public clipStyle?: SafeStyle;\r\n\r\n public fileTypeMask?: string = undefined;\r\n\r\n private _uploadTypes: string[] = [];\r\n private _src?: FileSrc<FileMeta>;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient, private readonly cd: ChangeDetectorRef) {\r\n }\r\n\r\n @Input()\r\n public set src(newSrc: FileSrc<FileMeta> | undefined) {\r\n if (this._src === newSrc)\r\n return;\r\n\r\n this._src = newSrc;\r\n }\r\n\r\n public get src(): FileSrc<FileMeta> | undefined {\r\n return this._src;\r\n }\r\n\r\n @Input()\r\n public set uploadTypes(newUploadType: string[]) {\r\n this._uploadTypes.splice(0, this._uploadTypes.length);\r\n\r\n this._uploadTypes.push(...newUploadType);\r\n\r\n this.fileTypeMask = this._uploadTypes.length === 0 ? undefined : this._uploadTypes.join(',');\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n public get uploadTypes(): string[] {\r\n return this._uploadTypes;\r\n }\r\n\r\n public onFileSelect(fileInput: HTMLInputElement) {\r\n if (fileInput.files === undefined || fileInput.files === null || fileInput.files.length !== 1)\r\n return;\r\n\r\n const file = fileInput.files[0];\r\n\r\n const uploadUrl = this.uploadUrlMap.get(file.type) ?? this.uploadUrlMap.get(\"\");\r\n\r\n if (uploadUrl === undefined || uploadUrl === null) {\r\n console.error(`upload map doesn't have url for type '${file.type}'`);\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append('file', file);\r\n\r\n this.progress = 0;\r\n this.isUploading = true;\r\n\r\n this.updateClip();\r\n\r\n const request = new HttpRequest('POST', uploadUrl, formData, {\r\n reportProgress: true\r\n });\r\n\r\n this.http\r\n .request<FileSrc<FileMeta>>(request)\r\n .pipe\r\n (\r\n map(event => this.getEventMessage(event)),\r\n // tap(message => this.showProgress(message)),\r\n last(), // return last (completed) message to caller\r\n catchError(this.handleError(file))\r\n ).subscribe\r\n (\r\n () => { this.isUploading = false; }\r\n );\r\n }\r\n\r\n public selectFile(event: Event): void {\r\n // ignore buble click on file picker\r\n if (event.target === this.fileInput.nativeElement)\r\n return;\r\n\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n private getEventMessage(event: HttpEvent<FileSrc<FileMeta>>): void {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n return;\r\n\r\n case HttpEventType.UploadProgress:\r\n this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;\r\n this.updateClip();\r\n return;\r\n\r\n case HttpEventType.Response:\r\n if (event.body === null || event.body === undefined) {\r\n console.warn(`empty body from uploader`);\r\n return;\r\n }\r\n\r\n this.srcChange.emit(event.body);\r\n return;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private updateClip(): void {\r\n this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);\r\n }\r\n\r\n private handleError(file: File): (p1: unknown, p2: Observable<unknown>) => Observable<unknown> {\r\n const func = (error: unknown, p2: Observable<unknown>): Observable<unknown> => {\r\n const message = `error uploadingFile ${file.name}.`;\r\n console.error(message, error, p2);\r\n alert(message);\r\n return new Observable<unknown>();\r\n };\r\n\r\n return func;\r\n }\r\n}\r\n","<div *ngIf=\"src === undefined || src.url === undefined || src?.url?.length === 0\">Upload file</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, ImageMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\n\r\nconst DefaultImageMimeTypes = ['image/png', 'image/jpeg'];\r\n\r\n@Component({\r\n selector: 'bonc-one-image-form',\r\n templateUrl: './one-image-form.component.html',\r\n styleUrls: ['./one-image-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class OneImageFormComponent extends FormBaseComponent<FileSrc<ImageMeta>> implements OnInit {\r\n private readonly cd = inject(ChangeDetectorRef);\r\n\r\n public uploadMap = new Map<string, string>();\r\n\r\n private _mimeTypes = DefaultImageMimeTypes;\r\n\r\n private _uploadUrl = '/api/admin/upload/image';\r\n\r\n private _label = ''\r\n\r\n constructor(@Host() editable: EditableDirective<FileSrc<ImageMeta>>) {\r\n super(editable)\r\n\r\n this.uploadMap.set('', this._uploadUrl);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set label(newValue: string) {\r\n this._label = newValue;\r\n }\r\n\r\n public get label(): string {\r\n return this._label;\r\n }\r\n\r\n @Input()\r\n public set uploadUrl(newValue: string) {\r\n this._uploadUrl = newValue;\r\n\r\n this.uploadMap.set('', this._uploadUrl);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n @Input()\r\n public set mimeTypes(newValue: string[]) {\r\n this._mimeTypes = newValue.length === 0 ? DefaultImageMimeTypes : newValue;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public get mimeTypes(): string[] {\r\n return this._mimeTypes;\r\n }\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<ImageMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { OpenGraphData } from '@candy-kingdom/bonnie';\r\n\r\nimport { EditableDirective, FormBaseComponent } from '../../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-seo-form',\r\n templateUrl: './seo-form.component.html',\r\n styleUrls: ['./seo-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SeoFormComponent extends FormBaseComponent<OpenGraphData> implements OnInit {\r\n public readonly imageWidth = 1200;\r\n public readonly imageHeight = 630;\r\n\r\n private _pageId = '';\r\n public ogImageUploadUrl = '';\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set pageId(value: string) {\r\n this._pageId = value;\r\n this.ogImageUploadUrl = `/api/admin/page/Og-Image?pageId=${this.pageId}`; // todo: replace with link to single image api\r\n }\r\n\r\n public get pageId(): string {\r\n return this._pageId;\r\n }\r\n\r\n public ResToSrc(res: { url: string }): string {\r\n return res.url;\r\n }\r\n}\r\n","<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\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 </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\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 </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\n\r\n@Component({\r\n selector: 'bonc-svg-form',\r\n templateUrl: './svg-form.component.html',\r\n styleUrls: ['./svg-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SvgFormComponent extends FormBaseComponent<FileSrc<SvgMeta>> implements OnInit {\r\n private readonly cd = inject(ChangeDetectorRef);\r\n\r\n public readonly SvgMime = 'image/svg+xml';\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public uploadMap = new Map<string, string>();\r\n\r\n private _uploadUrl = '/api/admin/upload/image/svg';\r\n\r\n constructor(@Host() editable: EditableDirective<FileSrc<SvgMeta>>) {\r\n super(editable)\r\n\r\n this.uploadMap.set(this.SvgMime, this._uploadUrl);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input()\r\n public set uploadUrl(newValue: string) {\r\n this._uploadUrl = newValue;\r\n\r\n this.uploadMap.set(this.SvgMime, this._uploadUrl);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"[SvgMime]\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\n@Component({\r\n selector: 'bonc-file-form',\r\n templateUrl: './file-form.component.html',\r\n styleUrls: ['./file-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class FileFormComponent extends FormBaseComponent<FileSrc<FileMeta>> implements OnInit {\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input({ required: true })\r\n public uploadTypes: string[] = [];\r\n\r\n @Input({ required: true })\r\n public uploadMap = new Map<string, string>();;\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"uploadTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <div *ngIf=\"editable.value?.url?.length ?? 0 > 0\">{{editable.value?.url}}</div>\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n</bonc-form-controls>\r\n","\r\nexport enum TextInputStyle {\r\n NotSet = 0,\r\n SingleLine = 1,\r\n MultiLine = 2\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TextInputStyle } from './TextInputStyle';\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-text-form',\r\n templateUrl: './text-form.component.html',\r\n styleUrls: ['./text-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class TextFormComponent extends FormBaseComponent<string> implements OnInit {\r\n public readonly TextInputStyle = TextInputStyle;\r\n\r\n @Input()\r\n public label = '';\r\n\r\n @Input()\r\n public type = TextInputStyle.SingleLine;\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<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","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { FileMeta, FileSrc, SvgMeta } from '@candy-kingdom/bonnie';\r\n\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\nimport { EditableDirective } from '../../core-components/editable.directive';\r\nimport { AnimationOptions } from 'ngx-lottie';\r\n\r\n@Component({\r\n selector: 'bonc-lottie-form',\r\n templateUrl: './lottie-form.component.html',\r\n styleUrls: ['./lottie-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class LottieFormComponent extends FormBaseComponent<FileSrc<FileMeta>> implements OnInit {\r\n public readonly LottieMimeType = 'application/json';\r\n\r\n public animOptions?: AnimationOptions;\r\n\r\n @Input()\r\n public label = '';\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n\r\n this.editable.valueChange.subscribe(x => {\r\n const url = x?.url ?? '';\r\n this.animOptions = url.length === 0 ? undefined : { path: url };\r\n })\r\n }\r\n\r\n @Input({ required: true })\r\n public uploadMap = new Map<string, string>();;\r\n\r\n public onFileUploaded(fileSrc: FileSrc<FileMeta>): void {\r\n this.editable.startEditing();\r\n\r\n const svgSrc = fileSrc as FileSrc<SvgMeta>;\r\n\r\n this.editable.value = svgSrc;\r\n\r\n this.editable.updateDirty();\r\n }\r\n\r\n}\r\n","<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"[LottieMimeType]\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n\r\n <ng-lottie *ngIf=\"animOptions\"\r\n [options]=\"animOptions\"></ng-lottie>\r\n\r\n\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n</bonc-form-controls>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { LocalizedString } from '@candy-kingdom/bonnie';\r\n\r\nimport { EditableDirective, FormBaseComponent } from '../../core-components';\r\nimport { TextEditorField } from '../../core';\r\n\r\n@Component({\r\n selector: 'bonc-translation-form',\r\n templateUrl: './translation-form.component.html',\r\n styleUrls: ['./translation-form.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class TranslationFormComponent extends FormBaseComponent<LocalizedString> implements OnInit {\r\n public readonly TextEditorField = TextEditorField;\r\n\r\n @Input({ required: true })\r\n public field!: TextEditorField;\r\n\r\n @Input() label?: string;\r\n\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<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","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBaseComponent } from '../../core-components/form-base.component';\r\n\r\n@Component({\r\n selector: 'bonc-unknown-form',\r\n templateUrl: './unknown-form.component.html',\r\n styleUrls: ['./unknown-form.component.scss']\r\n})\r\nexport class UnknownFormComponent extends FormBaseComponent<string> implements OnInit {\r\n @Input()\r\n public label = '';\r\n\r\n ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.editable.save();\r\n });\r\n }\r\n}\r\n","<label>Unknown form:<b>{{label}}</b></label>\r\n<pre><ng-content></ng-content></pre>\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const API_BASE_URL = new InjectionToken<string>('ApiBaseUrl');\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable, combineLatest, map, merge, mergeMap, of } from 'rxjs';\r\n\r\nimport { PageBase, View } from '@candy-kingdom/bonnie';\r\n\r\nimport { SettingData } from \"../generated\";\r\nimport { API_BASE_URL } from \"./API_BASE_URL\";\r\n\r\ntype DataDictionary = { [n: string]: Observable<unknown> };\r\n\r\nexport type SettingDataDict = { [id: string]: SettingData };\r\n\r\n@Injectable()\r\nexport class DataService {\r\n constructor(private readonly http: HttpClient, @Inject(API_BASE_URL) private baseHref: string) {\r\n }\r\n\r\n public getView(viewCode: string): Observable<Readonly<PageBase>> {\r\n const pageOb = this.getSkeleton<PageBase>(`${this.baseHref}api/views/${viewCode}`);\r\n return pageOb;\r\n }\r\n\r\n public getPage(pageRoute: string): Observable<Readonly<PageBase>> {\r\n const pageUrl = `/${pageRoute}`\r\n\r\n const pageOb = this.getSkeleton<PageBase>(`${this.baseHref}api/pages/?url=${encodeURIComponent(pageUrl)}`);\r\n return pageOb;\r\n }\r\n\r\n public getSettings(ids: string[]): Observable<Readonly<SettingDataDict>> {\r\n const pageOb = this.http.get<SettingDataDict>(`${this.baseHref}api/settings`, {\r\n params: { ids: ids }\r\n });\r\n\r\n return pageOb;\r\n }\r\n\r\n private getSkeleton<T extends (PageBase | View)>(url: string): Observable<Readonly<T>> {\r\n const skeletonOb = this.http.get<T>(url);\r\n\r\n const routeDataObs = skeletonOb\r\n .pipe\r\n (\r\n map(\r\n x => {\r\n const notEmptyDataRoutes = x.bones\r\n .map(b => ('dataRoute' in b) && typeof (b.dataRoute) === 'string' ? b.dataRoute : '')\r\n .filter(x => x.length > 0);\r\n\r\n if (notEmptyDataRoutes.length === 0) {\r\n const emptyData: DataDictionary = {};\r\n return { page: of(x), data: of(emptyData) };\r\n }\r\n\r\n return {\r\n page: of(x),\r\n data: combineLatest\r\n (\r\n notEmptyDataRoutes\r\n .map(dataRoute => {\r\n const url = `${this.baseHref}api/Pages/Children/?url=${dataRoute}`;\r\n\r\n return {\r\n route: dataRoute,\r\n json: this.http.get(url)\r\n }\r\n })\r\n .reduce(\r\n (prev, curr) => {\r\n prev[curr.route] = curr.json;\r\n return prev;\r\n }, {} as DataDictionary\r\n )\r\n )\r\n }\r\n }\r\n\r\n ),\r\n map(x => combineLatest(x)),\r\n mergeMap(res => merge(res)),\r\n map(x => {\r\n\r\n for (const bone of x.page.bones) {\r\n if (!('dataRoute' in bone) || typeof bone.dataRoute !== 'string' || bone.dataRoute.length === 0)\r\n continue;\r\n\r\n const data = x.data[bone.dataRoute];\r\n\r\n if (data === undefined || data === null)\r\n throw new Error(`Data ${bone.dataRoute} have not been preloaded`);\r\n\r\n (bone as any).data = data; // todo: fix\r\n }\r\n\r\n return x.page;\r\n })\r\n );\r\n\r\n return routeDataObs;\r\n }\r\n}\r\n\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageBase } from \"@candy-kingdom/bonnie\";\r\n\r\nimport { SettingBase, SettingGroup } from \"../generated\";\r\nimport { API_BASE_URL } from \"./API_BASE_URL\";\r\n\r\n@Injectable()\r\nexport class AdminDataService {\r\n constructor(private readonly http: HttpClient, @Inject(API_BASE_URL) private baseHref: string) {\r\n console.log('baseHref: ' + baseHref);\r\n }\r\n\r\n public getSettingGroups(): Observable<SettingGroup[]> {\r\n const pageOb = this.http.get<SettingGroup[]>(`${this.baseHref}api/admin/settings`);\r\n return pageOb;\r\n }\r\n\r\n public getPage(url: string): Observable<SettingGroup[]> {\r\n const pageOb = this.http.get<SettingGroup[]>(`${this.baseHref}api/admin/pages/${url}`);\r\n return pageOb;\r\n }\r\n\r\n public storePage(page: PageBase): Observable<void> {\r\n const ob = this.http.post<void>(`${this.baseHref}api/admin/pages`, page);\r\n return ob;\r\n }\r\n\r\n public updateSettings(settings: SettingBase[]): Observable<void> {\r\n const ob = this.http.post<void>(`${this.baseHref}api/admin/settings`, settings);\r\n return ob;\r\n }\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { DeviceType } from '../core';\r\nimport { EditableGroupComponent } from '../core-components';\r\n\r\n@Component({\r\n selector: 'bonc-admin-controls',\r\n templateUrl: './admin-controls.component.html',\r\n styleUrls: ['./admin-controls.component.scss']\r\n})\r\nexport class AdminControlsComponent {\r\n public readonly DeviceType = DeviceType;\r\n\r\n @Input({ required: true })\r\n public editableGroup!: EditableGroupComponent;\r\n\r\n @Input()\r\n public deviceControls = false;\r\n\r\n public locale = 'en';\r\n public device = this.DeviceType.Desktop;\r\n\r\n public changeLocale(): void {\r\n this.locale = this.locale === 'en' ? 'ru' : 'en';\r\n }\r\n\r\n public changeDevice(): void {\r\n switch (this.device) {\r\n case DeviceType.Desktop:\r\n this.device = DeviceType.Tablet;\r\n return;\r\n\r\n case DeviceType.Tablet:\r\n this.device = DeviceType.Mobile;\r\n return;\r\n\r\n case DeviceType.Mobile:\r\n this.device = DeviceType.Desktop;\r\n return;\r\n\r\n default:\r\n this.device = DeviceType.Desktop;\r\n return;\r\n }\r\n }\r\n}\r\n","<div class=\"page-controls\">\r\n <a (click)=\"changeLocale()\" class=\"locale\">Locale: {{locale}}</a>\r\n\r\n <!-- todo: return this functionality -->\r\n <!-- <a *ngIf=\"deviceControls\" (click)=\"changeDevice()\" class=\"device\">\r\n <span *ngIf=\"device === DeviceType.Desktop\">DESKTOP</span>\r\n <span *ngIf=\"device === DeviceType.Tablet\">TABLET</span>\r\n <span *ngIf=\"device === DeviceType.Mobile\">MOBILE</span>\r\n </a> -->\r\n\r\n <a *ngIf=\"editableGroup && editableGroup.inEditMode\"\r\n (click)=\"editableGroup.saveAll()\"\r\n class=\"save\">Save all</a>\r\n\r\n <a *ngIf=\"editableGroup && editableGroup.inEditMode\"\r\n (click)=\"editableGroup.cancelAll()\"\r\n class=\"cancel\">Cancel all</a>\r\n</div>\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { catchError, last, map, Observable } from 'rxjs';\r\n\r\nimport { MediaObjectFit, PixMediaUnion } from '@candy-kingdom/bonnie';\r\nimport { MediaType } from '../core';\r\n\r\nconst imageMimeTypes = ['image/png', 'image/jpeg'];\r\nconst videoMimeTypes = ['video/mp4'];\r\n\r\nconst imageFileTypes = imageMimeTypes.join(',');\r\nconst videoFileTypes = videoMimeTypes.join(',');\r\n\r\nconst allMediaFileTypes = `${imageFileTypes},${videoFileTypes}`;\r\n\r\n@Component({\r\n selector: 'bonc-media-uploader',\r\n templateUrl: './media-uploader.component.html',\r\n styleUrls: ['./media-uploader.component.scss']\r\n})\r\nexport class MediaUploaderComponent {\r\n public readonly MediaObjectFit = MediaObjectFit;\r\n\r\n @ViewChild('fileInput', { static: true })\r\n public fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Output()\r\n public srcChange = new EventEmitter<PixMediaUnion>();\r\n\r\n @Input({ required: true })\r\n public uploadUrlMap!: ReadonlyMap<MediaType, string>;\r\n\r\n @Input()\r\n public forceRatio?: number;\r\n\r\n public progress = 0;\r\n public isUploading = false;\r\n\r\n public autoplay = true;\r\n public clipStyle?: SafeStyle;\r\n public fileTypeMask = allMediaFileTypes;\r\n\r\n private _uploadType?: MediaType;\r\n private _src?: PixMediaUnion;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\r\n }\r\n\r\n @Input()\r\n public set src(newSrc: PixMediaUnion | undefined) {\r\n if (this._src === newSrc)\r\n return;\r\n\r\n this._src = newSrc;\r\n }\r\n\r\n public get src(): PixMediaUnion | undefined {\r\n return this._src;\r\n }\r\n\r\n @Input()\r\n public set uploadType(newUploadType: MediaType | undefined) {\r\n switch (newUploadType) {\r\n case \"image\":\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = imageFileTypes;\r\n break;\r\n\r\n case \"video\":\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = videoFileTypes;\r\n break;\r\n\r\n case undefined:\r\n default:\r\n this._uploadType = newUploadType;\r\n this.fileTypeMask = allMediaFileTypes;\r\n break;\r\n }\r\n }\r\n\r\n public get uploadType(): MediaType | undefined {\r\n return this._uploadType;\r\n }\r\n\r\n public onFileSelect(fileInput: HTMLInputElement) {\r\n if (fileInput.files === undefined || fileInput.files === null || fileInput.files.length !== 1)\r\n return;\r\n\r\n const file = fileInput.files[0];\r\n\r\n let uploadingMediaType: MediaType;\r\n\r\n if (this._uploadType !== undefined && this._uploadType !== null) {\r\n uploadingMediaType = this._uploadType;\r\n }\r\n else if (imageMimeTypes.includes(file.type)) {\r\n uploadingMediaType = 'image';\r\n }\r\n else if (videoMimeTypes.includes(file.type)) {\r\n uploadingMediaType = 'video';\r\n }\r\n else {\r\n console.error(`unknown media type ${file.type} (${file.name})`);\r\n return;\r\n }\r\n\r\n const uploadUrl = this.uploadUrlMap.get(uploadingMediaType);\r\n\r\n if (uploadUrl === undefined || uploadUrl === null) {\r\n console.error(`upload map doesn't have url for type ${uploadingMediaType}`);\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n\r\n formData.append('file', file);\r\n formData.append('ratio', `${this.forceRatio ?? 0}`);\r\n\r\n this.progress = 0;\r\n this.isUploading = true;\r\n\r\n this.updateClip();\r\n\r\n const request = new HttpRequest('POST', uploadUrl, formData, {\r\n reportProgress: true\r\n });\r\n\r\n this.http\r\n .request<PixMediaUnion>(request)\r\n .pipe\r\n (\r\n map(event => this.getEventMessage(event)),\r\n // tap(message => this.showProgress(message)),\r\n last(), // return last (completed) message to caller\r\n catchError(this.handleError(file))\r\n ).subscribe\r\n (\r\n () => { this.isUploading = false; }\r\n );\r\n }\r\n\r\n public selectFile(event: Event): void {\r\n // ignore buble click on file picker\r\n if (event.target === this.fileInput.nativeElement)\r\n return;\r\n\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n private getEventMessage(event: HttpEvent<PixMediaUnion>): void {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n return;\r\n\r\n case HttpEventType.UploadProgress:\r\n this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;\r\n this.updateClip();\r\n return;\r\n\r\n case HttpEventType.Response:\r\n if (event.body === undefined || event.body === null) {\r\n console.error('media deserialization error. Response body in undefined');\r\n } else {\r\n // remove this\r\n // needed for C# deserialization\r\n const pixmedia = {\r\n $type: event.body.type,\r\n ...event.body as any,\r\n };\r\n\r\n this.srcChange.emit(pixmedia);\r\n }\r\n return;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private updateClip(): void {\r\n this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);\r\n }\r\n\r\n private handleError(file: File): (p1: unknown, p2: Observable<unknown>) => Observable<unknown> {\r\n const func = (error: unknown, p2: Observable<unknown>): Observable<unknown> => {\r\n const message = `error uploadingFile ${file.name}.`;\r\n console.error(message, error, p2);\r\n alert(message);\r\n return new Observable<unknown>();\r\n };\r\n\r\n return func;\r\n }\r\n}\r\n","<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[boncSkeletonEditorAnchor]'\r\n})\r\nexport class SkeletonEditorAnchorDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { EventEmitter, HostBinding, Component, Input } from '@angular/core';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { ContentPreset } from '../skeleton-editor/ContentPreset';\r\nimport { IBoneEditor } from '../skeleton-editor/IBoneEditor';\r\nimport { DeviceType } from '../core';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BoneEditorBaseComponent<TBone extends Bone> implements IBoneEditor<TBone> {\r\n public readonly editing: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public readonly saved: EventEmitter<Bone> = new EventEmitter<Bone>();\r\n public readonly removed: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public readonly noPresets: boolean;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n public device = DeviceType.NotSet;\r\n\r\n private _bone!: TBone;\r\n private _storedData: string = '';\r\n\r\n private _currentPreset: ContentPreset<TBone> | undefined;\r\n\r\n protected readonly presets: ReadonlyArray<ContentPreset<TBone>>;\r\n private _isDirty = false;\r\n private _isEditing = false;\r\n\r\n public abstract onReset(): void;\r\n public abstract onFinishEditing(): void;\r\n\r\n protected abstract getPresets(): ContentPreset<TBone>[];\r\n\r\n constructor() {\r\n this.presets = this.getPresets();\r\n\r\n if (this.presets === undefined || this.presets === null)\r\n throw new Error('presets cannot be undefined in ContentPreset constructor');\r\n\r\n if (this.presets.length === 0) {\r\n this.presets = [\r\n\r\n {\r\n title: 'default',\r\n isActive: () => true,\r\n transformer: bone => bone,\r\n clean: bone => bone,\r\n }\r\n ];\r\n }\r\n\r\n this.noPresets = this.presets.length === 1;\r\n }\r\n\r\n @HostBinding('class.mobile') get isMobile(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Mobile;\r\n }\r\n\r\n @HostBinding('class.tablet') get isTablet(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Tablet;\r\n }\r\n\r\n @HostBinding('class.desktop') get isDesktop(): boolean {\r\n return this.device !== undefined && this.device === DeviceType.Desktop;\r\n }\r\n\r\n public get currentPreset(): ContentPreset<TBone> | undefined {\r\n return this._currentPreset;\r\n }\r\n\r\n public get bone(): TBone {\r\n return this._bone;\r\n }\r\n\r\n @Input({ required: true })\r\n public set bone(newData: TBone) {\r\n this._isDirty = false;\r\n this._storedData = JSON.stringify(newData);\r\n this._bone = JSON.parse(this._storedData);\r\n this.updatePresetByData();\r\n }\r\n\r\n public get isDirty(): boolean {\r\n return this._isDirty;\r\n }\r\n\r\n public get isEditing(): boolean {\r\n return this._isEditing;\r\n }\r\n\r\n public resetData(): void {\r\n this._isEditing = false;\r\n this.bone = JSON.parse(this._storedData);\r\n\r\n if (this.onReset !== undefined)\r\n this.onReset();\r\n\r\n this.editing.emit(false);\r\n }\r\n\r\n public updateDirty(): void {\r\n this._isDirty = JSON.stringify(this._bone) !== this._storedData;\r\n }\r\n\r\n public markAsDirty(): void {\r\n this._isDirty = true;\r\n }\r\n\r\n public remove(): void {\r\n this.removed.next();\r\n }\r\n\r\n public save(): void {\r\n if (!this.isDirty)\r\n return;\r\n\r\n this._isDirty = false;\r\n\r\n this.finishEditing();\r\n\r\n this._storedData = JSON.stringify(this._bone);\r\n\r\n const clonedData: TBone = JSON.parse(this._storedData);\r\n this.saved.emit(clonedData);\r\n }\r\n\r\n public startEditing(): void {\r\n if (this._isEditing) {\r\n this.updateDirty();\r\n return;\r\n }\r\n\r\n this._isEditing = true;\r\n this.updateDirty();\r\n\r\n this.editing.emit(true);\r\n }\r\n\r\n public finishEditing(): void {\r\n if (this._isDirty)\r\n throw new Error('Нельзя закрывать редактирование когда есть изменения. Надо сохранить либо зарезетить.');\r\n\r\n if (this.onFinishEditing !== undefined)\r\n this.onFinishEditing();\r\n\r\n this._isEditing = false;\r\n }\r\n\r\n public nextPreset(): void {\r\n const newIndex = this._currentPreset === undefined ? 0 : this.presets.indexOf(this._currentPreset) + 1;\r\n this.applyPresetAtIndex(newIndex);\r\n }\r\n\r\n private applyPresetAtIndex = (newIndex: number): void => {\r\n newIndex = newIndex < 0 ? 0 : newIndex % this.presets.length;\r\n\r\n const currentIndex = this._currentPreset === undefined ? -1 : this.presets.indexOf(this._currentPreset);\r\n if (currentIndex === newIndex)\r\n return;\r\n\r\n this._currentPreset = this.presets[newIndex];\r\n this._currentPreset.transformer(this._bone);\r\n\r\n this.updateDirty();\r\n }\r\n\r\n private updatePresetByData = (): void => {\r\n const countOfActive = this.presets.map(p => p.isActive(this._bone)).filter(p => p).length;\r\n\r\n if (countOfActive !== 1)\r\n throw new Error(`active preset count should be equal 1, but it was: ${countOfActive}. ${this.constructor.name}`);\r\n\r\n for (let i = 0; this.presets.length; i++) {\r\n const preset = this.presets[i];\r\n\r\n if (preset.isActive(this._bone)) {\r\n this.applyPresetAtIndex(i);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { ContentPreset } from '../../skeleton-editor/ContentPreset';\r\nimport { BoneEditorBaseComponent } from '../bone-editor-base.component';\r\n\r\n@Component({\r\n selector: 'bonc-unknown-bone-editor',\r\n templateUrl: './unknown-bone-editor.component.html',\r\n styleUrls: ['./unknown-bone-editor.component.scss']\r\n})\r\nexport class UnknownBoneEditorComponent extends BoneEditorBaseComponent<Bone> {\r\n public onFinishEditing(): void { }\r\n public onReset(): void { }\r\n\r\n protected getPresets(): ContentPreset<Bone>[] {\r\n return [];\r\n }\r\n}\r\n","<p>Unknown Bone Editor | bone type: {{bone.type}}</p>\r\n<pre>{{bone | json}}</pre>\r\n","import { Component, ComponentFactoryResolver, EventEmitter, Input, OnChanges, Output, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\n\r\nimport { SkeletonEditorAnchorDirective } from '../skeleton-editor-anchor.directive';\r\nimport { DeviceType } from '../../core';\r\nimport { IBoneEditor } from '../IBoneEditor';\r\nimport { BoneEditorMap } from '../BoneEditorMap';\r\nimport { UnknownBoneEditorComponent } from '../../bone-editors/unknown-bone-editor/unknown-bone-editor.component';\r\n\r\n// todo: rename class\r\n@Component({\r\n selector: 'bonc-bone-editor-container',\r\n templateUrl: './bone-editor-container.component.html',\r\n styleUrls: ['./bone-editor-container.component.scss']\r\n})\r\nexport class BoneEditorContainerComponent implements OnChanges {\r\n @ViewChild(SkeletonEditorAnchorDirective, { static: true })\r\n public anchor!: SkeletonEditorAnchorDirective;\r\n\r\n @Output()\r\n public removed: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public saved: EventEmitter<Bone> = new EventEmitter<Bone>();\r\n\r\n @Output()\r\n public editing: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public DeviceType = DeviceType;\r\n\r\n public editor!: IBoneEditor;\r\n\r\n public themePopupIsShown = false;\r\n\r\n private _bone!: Bone;\r\n\r\n private removeSubscription?: Subscription;\r\n private saveSubscription?: Subscription;\r\n private changedSubscription?: Subscription;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device = DeviceType.NotSet;\r\n\r\n constructor(private readonly componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.editor === undefined || this.editor === null)\r\n return;\r\n\r\n this.editor.locale = this.locale;\r\n this.editor.device = this.device;\r\n }\r\n\r\n @Input({ required: true })\r\n public map!: BoneEditorMap\r\n\r\n public get bone(): Bone {\r\n return this._bone;\r\n }\r\n\r\n @Input({ required: true })\r\n public set bone(newBone: Bone) {\r\n this._bone = newBone;\r\n\r\n if (this.removeSubscription) {\r\n this.removeSubscription.unsubscribe();\r\n this.removeSubscription = undefined;\r\n }\r\n\r\n if (this.saveSubscription) {\r\n this.saveSubscription.unsubscribe();\r\n this.saveSubscription = undefined;\r\n }\r\n\r\n if (this.changedSubscription) {\r\n this.changedSubscription.unsubscribe();\r\n this.changedSubscription = undefined;\r\n }\r\n\r\n const viewContainerRef = this.anchor.viewContainerRef;\r\n\r\n viewContainerRef.clear();\r\n\r\n const componentType = this.map.get(newBone.type) ?? UnknownBoneEditorComponent;\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n const boneEditorRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n this.editor = boneEditorRef.instance;\r\n this.editor.bone = newBone;\r\n\r\n this.removeSubscription = this.editor.removed.subscribe(() => {\r\n this.removed.next();\r\n });\r\n\r\n this.changedSubscription = this.editor.editing.subscribe\r\n (\r\n (isEditing: boolean) => {\r\n this.editing.next(isEditing);\r\n }\r\n );\r\n\r\n this.saveSubscription = this.editor.saved.subscribe(\r\n (newBoneValue: Bone) => {\r\n this.saved.next(newBoneValue);\r\n }\r\n );\r\n\r\n this.ngOnChanges();\r\n }\r\n\r\n public nextPreset = (): void => {\r\n if (this.editor === undefined || this.editor === null)\r\n return;\r\n\r\n this.editor.nextPreset();\r\n }\r\n\r\n // todo: add or remove visibility feature\r\n\r\n // public setDisabled = (disabled: boolean): void => {\r\n // if (this.editor === undefined || this.editor === null)\r\n // return;\r\n\r\n // this.editor.startEditing();\r\n\r\n // if (this.device === DeviceType.Desktop)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Desktop, !disabled);\r\n // else if (this.device === DeviceType.Tablet)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Tablet, !disabled);\r\n // else if (this.device === DeviceType.Mobile)\r\n // this.editor.bone.visibility = setOrRemoveFlag(this.editor.bone.visibility, DeviceVisibility.Mobile, !disabled);\r\n\r\n // this.editor.updateDirty();\r\n // }\r\n\r\n public get disabled(): boolean {\r\n if (this.editor === undefined || this.editor === null)\r\n throw new Error('editor should have been set');\r\n\r\n return false;\r\n // todo: add or remove visibility feature\r\n // const visibility = this.editor.bone.visibility;\r\n\r\n // if (this.device === DeviceType.Desktop && hasFlag(visibility, DeviceVisibility.Desktop))\r\n // return false;\r\n\r\n // if (this.device === DeviceType.Tablet && hasFlag(visibility, DeviceVisibility.Tablet))\r\n // return false;\r\n\r\n // if (this.device === DeviceType.Mobile && hasFlag(visibility, DeviceVisibility.Mobile))\r\n // return false;\r\n\r\n // return true;\r\n }\r\n}\r\n","<div *ngIf=\"editor\" class=\"left bar\" [class.inactive]=\"editor.noPresets\">\r\n <!-- <a *ngFor=\"let control of editor.controls\" (click)=\"control.activate()\">{{control.label}}</a> -->\r\n <!-- <a (click)=\"setDisabled(!disabled)\" class=\"disabled\">block {{disabled ? 'disabled' : 'enabled'}} ({{editor.bone.visibility}})</a> -->\r\n <a *ngIf=\"editor.currentPreset && !editor.noPresets\" (click)=\"nextPreset()\" class=\"preset\">style:<br />{{editor.currentPreset.title}}</a>\r\n</div>\r\n\r\n<div class=\"editor-container\"\r\n [class.disabled]=\"disabled\"\r\n [style.width]=\"\r\n device === DeviceType.Desktop ? '75vw'\r\n : device === DeviceType.Tablet ? '55vw'\r\n : device === DeviceType.Mobile ? '35vw'\r\n : '75vw' \">\r\n <ng-template boncSkeletonEditorAnchor>\r\n </ng-template>\r\n</div>\r\n\r\n<div *ngIf=\"editor\" [class.active]=\"editor.isEditing || editor.isDirty\" class=\"right bar\">\r\n <!-- <a *ngIf=\"!editor.isEditing\" (click)=\"editor.remove()\" class=\"delete\">!!! remove</a> -->\r\n <a *ngIf=\"editor.isDirty\" (click)=\"editor.resetData()\" class=\"reset\">reset</a>\r\n <a *ngIf=\"editor.isEditing && !editor.isDirty\" (click)=\"editor.finishEditing()\" class=\"close\">close</a>\r\n <a *ngIf=\"editor.isDirty\" (click)=\"editor.save()\" class=\"save\">apply</a>\r\n</div>\r\n","import { Component, Host, Input, OnChanges, OnInit, QueryList, ViewChildren } from '@angular/core';\r\n\r\nimport { Bone } from '@candy-kingdom/bonnie';\r\nimport { BoneEditorContainerComponent } from './bone-editor-container/bone-editor-container.component';\r\nimport { EditableDirective } from '../core-components/editable.directive';\r\nimport { DeviceType } from '../core';\r\nimport { IBoneTemplate } from './IBoneTemplate';\r\nimport { BoneEditorMap } from './BoneEditorMap';\r\n\r\n// todo: rename class\r\n@Component({\r\n selector: 'bonc-skeleton-editor',\r\n templateUrl: './skeleton-editor.component.html',\r\n styleUrls: ['./skeleton-editor.component.scss'],\r\n hostDirectives: [EditableDirective]\r\n})\r\nexport class SkeletonEditorComponent implements OnInit, OnChanges {\r\n @ViewChildren('boneEditorContainer')\r\n public boneEditorContainerList!: QueryList<BoneEditorContainerComponent>;\r\n\r\n @Input({ required: true })\r\n public locale!: string;\r\n\r\n @Input()\r\n public device = DeviceType.NotSet;\r\n\r\n public readonly templatesAreShown: boolean[] = [];\r\n\r\n constructor(@Host() public editable: EditableDirective<Bone[]>) {\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.editable.externalSaveCall.subscribe(() => {\r\n this.boneEditorContainerList.forEach\r\n (\r\n editorContainer => editorContainer.editor?.save()\r\n );\r\n\r\n this.editable.save();\r\n });\r\n\r\n this.editable.canceled.subscribe(() => {\r\n this.boneEditorContainerList.forEach\r\n (\r\n editorContainer => editorContainer.editor?.resetData()\r\n );\r\n\r\n this.editable.save();\r\n });\r\n }\r\n\r\n @Input({ required: true })\r\n public map!: BoneEditorMap;\r\n\r\n public ngOnChanges(): void {\r\n this.templatesAreShown.splice(0, this.templatesAreShown.length);\r\n if (this.bones === undefined)\r\n return;\r\n\r\n this.bones.forEach(() => this.templatesAreShown.push(false));\r\n this.templatesAreShown.push(false);\r\n }\r\n\r\n @Input({ required: true })\r\n public templates!: ReadonlyArray<IBoneTemplate>;\r\n\r\n\r\n public get bones(): Bone[] {\r\n return this.editable?.value ?? [];\r\n }\r\n\r\n public boneEditHandler(isEditing: boolean): void {\r\n if (isEditing)\r\n this.editable.startEditing();\r\n else {\r\n const allClosed = this.boneEditorContainerList\r\n .filter(x => x.editor !== undefined && x.editor.isEditing)\r\n .length === 0;\r\n\r\n this.editable.updateDirty();\r\n\r\n if (!this.editable.isDirty && allClosed)\r\n this.editable.close();\r\n }\r\n }\r\n\r\n public boneChangeHandler(index: number, newBoneValue: Bone): void {\r\n if (Array.isArray(this.editable.value)) {\r\n this.editable.value[index] = newBoneValue;\r\n }\r\n\r\n this.editable.save();\r\n }\r\n\r\n public removeBone(boneIndex: number): void {\r\n if (this.bones === undefined || this.bones === null)\r\n return;\r\n\r\n if (!confirm('Вы уверены, что хотите удалить компонент?'))\r\n return;\r\n\r\n this.bones.splice(boneIndex, 1);\r\n\r\n if (!this.editable.inEditMode)\r\n this.editable.startEditing();\r\n\r\n this.editable.save();\r\n }\r\n\r\n public moveDown(boneIndex: number): void {\r\n if (boneIndex >= this.bones.length - 1)\r\n return;\r\n\r\n this.swapBones(boneIndex, boneIndex + 1);\r\n }\r\n\r\n public moveUp(boneIndex: number): void {\r\n if (boneIndex <= 0)\r\n return;\r\n\r\n this.swapBones(boneIndex - 1, boneIndex);\r\n }\r\n\r\n public createBone(index: number, selectedTemplate: IBoneTemplate): void {\r\n const newBone = selectedTemplate.boneFactory();\r\n\r\n this.bones.splice(index, 0, newBone);\r\n }\r\n\r\n private swapBones(index1: number, index2: number): void {\r\n if (index1 < 0 || index2 < 0 || index1 >= this.bones.length || index2 >= this.bones.length)\r\n throw new Error(`ошибка swapBones. неправильные индексы ${index1} и ${index2}. bone count: ${this.bones.length}`);\r\n\r\n const tempBone = this.bones[index1];\r\n this.bones[index1] = this.bones[index2];\r\n this.bones[index2] = tempBone;\r\n }\r\n}\r\n\r\n\r\n","<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","import { Bone } from '@candy-kingdom/bonnie';\r\n\r\nexport interface ContentPreset<out TBone extends Bone> {\r\n title: string;\r\n isActive(data: TBone): boolean;\r\n clean(data: TBone): void;\r\n transformer(bone: TBone): void;\r\n}\r\n\r\nexport function createPreset<TBone extends Bone>(params: { title: string, style: string }): ContentPreset<TBone> {\r\n return {\r\n title: params.title,\r\n isActive: x => x.style === params.style,\r\n transformer: bone => bone.style = params.style,\r\n clean: bone => bone.style = params.style,\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { LottieComponent } from 'ngx-lottie';\r\n\r\n\r\nimport { BonnieModule } from '@candy-kingdom/bonnie';\r\n\r\nimport { AdminControlsComponent } from './admin-controls/';\r\nimport { EditableDirective, LinkPopupComponent } from './core-components';\r\nimport { TextFormComponent } from './forms/text-form';\r\nimport { EditableGroupComponent } from './core-components';\r\nimport { FormControlsComponent } from './form-controls';\r\nimport { SeoFormComponent } from './forms/seo-form';\r\nimport { TranslationTextareaComponent } from './translation-textarea';\r\nimport { TranslationInputComponent } from './translation-input';\r\nimport { BoneEditorContainerComponent, SkeletonEditorAnchorDirective, SkeletonEditorComponent } from './skeleton-editor';\r\nimport { UnknownBoneEditorComponent } from './bone-editors/unknown-bone-editor/unknown-bone-editor.component';\r\nimport { MediaUploaderComponent } from './media-uploader/media-uploader.component';\r\nimport { DataService } from './services/data.service';\r\nimport { AdminDataService } from './services/admin-data.service';\r\nimport { TranslationFormComponent } from './forms/translation-form';\r\nimport { SvgFormComponent } from './forms/svg-form';\r\nimport { UnknownFormComponent } from './forms/unknown-form/unknown-form.component';\r\nimport { FileUploaderComponent } from './file-uploader';\r\nimport { FileFormComponent } from './forms/file-form';\r\nimport { LottieFormComponent } from './forms/lottie-form/lottie-form.component';\r\nimport { OneImageFormComponent } from './forms/one-image-form/one-image-form.component';\r\n\r\nconst formComponents = [\r\n TranslationFormComponent,\r\n TextFormComponent,\r\n SeoFormComponent,\r\n SvgFormComponent,\r\n OneImageFormComponent,\r\n FileFormComponent,\r\n LottieFormComponent,\r\n UnknownFormComponent\r\n];\r\n\r\nconst components = [\r\n ...formComponents,\r\n TranslationInputComponent,\r\n TranslationTextareaComponent,\r\n AdminControlsComponent,\r\n EditableGroupComponent,\r\n FormControlsComponent,\r\n SkeletonEditorComponent,\r\n SkeletonEditorAnchorDirective,\r\n BoneEditorContainerComponent,\r\n UnknownBoneEditorComponent,\r\n MediaUploaderComponent,\r\n FileUploaderComponent,\r\n LinkPopupComponent\r\n];\r\n\r\nconst standaloneDirectives = [\r\n EditableDirective\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ],\r\n providers:\r\n [\r\n DataService,\r\n AdminDataService\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CdkTextareaAutosize,\r\n BonnieModule,\r\n LottieComponent,\r\n ...standaloneDirectives\r\n ],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n BonnieModule,\r\n LottieFormComponent,\r\n ...components,\r\n ...standaloneDirectives\r\n ]\r\n})\r\nexport class BonnieCmsModule { } // todo: move to standalone\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EditableDirective","i1","i2","i3.TranslationInputComponent","i4.TranslationTextareaComponent","i3","i3.FormControlsComponent","i4.FileUploaderComponent","i4.OneImageFormComponent","i5.TranslationInputComponent","i6.TranslationTextareaComponent","i7.FormControlsComponent","i4.FormControlsComponent","i5.FileUploaderComponent","i5.FormControlsComponent","i2.SkeletonEditorAnchorDirective","i3.BoneEditorContainerComponent"],"mappings":"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"}
|
package/lib/generated/index.d.ts
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* Any changes made to this file can be lost when this file is regenerated.
|
|
4
4
|
*/
|
|
5
5
|
export * from './file-setting-data';
|
|
6
|
-
export * from './setting-group';
|
|
7
|
-
export * from './text-setting-data';
|
|
8
|
-
export * from './one-image-setting-data';
|
|
9
|
-
export * from './lottie-setting-data';
|
|
10
6
|
export * from './i-equatable';
|
|
7
|
+
export * from './i-setting';
|
|
8
|
+
export * from './localized-text-setting-data';
|
|
9
|
+
export * from './lottie-setting-data';
|
|
10
|
+
export * from './one-image-setting-data';
|
|
11
11
|
export * from './setting-base';
|
|
12
|
-
export * from './svg-setting-data';
|
|
13
12
|
export * from './setting-data';
|
|
13
|
+
export * from './setting-group';
|
|
14
14
|
export * from './setting';
|
|
15
|
+
export * from './svg-setting-data';
|
|
16
|
+
export * from './text-setting-data';
|
|
15
17
|
export * from './text-setting-type';
|
|
16
|
-
export * from './i-setting';
|
|
17
|
-
export * from './localized-text-setting-data';
|