@abp/ng.cms-kit 10.2.0-rc.1

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.
@@ -0,0 +1,231 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, ViewChild, Component, inject, PLATFORM_ID, DestroyRef } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { EditorState } from '@codemirror/state';
5
+ import { EditorView, lineNumbers } from '@codemirror/view';
6
+ import { basicSetup } from 'codemirror';
7
+ import { isPlatformBrowser } from '@angular/common';
8
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
+ import Editor from '@toast-ui/editor';
10
+ import { AbpLocalStorageService } from '@abp/ng.core';
11
+ import { THEME_CHANGE_TOKEN } from '@abp/ng.theme.shared';
12
+
13
+ class CodeMirrorEditorComponent {
14
+ constructor() {
15
+ this.value = '';
16
+ this.onChange = (value) => { };
17
+ this.onTouched = () => { };
18
+ }
19
+ writeValue(value) {
20
+ this.value = value || '';
21
+ if (this.view) {
22
+ this.view.dispatch({
23
+ changes: {
24
+ from: 0,
25
+ to: this.view.state.doc.length,
26
+ insert: this.value,
27
+ },
28
+ });
29
+ }
30
+ }
31
+ registerOnChange(fn) {
32
+ this.onChange = fn;
33
+ }
34
+ registerOnTouched(fn) {
35
+ this.onTouched = fn;
36
+ }
37
+ ngAfterViewInit() {
38
+ const startState = EditorState.create({
39
+ doc: this.value,
40
+ extensions: [
41
+ basicSetup,
42
+ EditorView.updateListener.of(update => {
43
+ if (update.docChanged) {
44
+ const text = update.state.doc.toString();
45
+ this.onChange(text);
46
+ }
47
+ }),
48
+ lineNumbers(),
49
+ ],
50
+ });
51
+ this.view = new EditorView({
52
+ state: startState,
53
+ parent: this.host.nativeElement,
54
+ });
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CodeMirrorEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: CodeMirrorEditorComponent, isStandalone: true, selector: "abp-codemirror-editor", providers: [
58
+ {
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: forwardRef(() => CodeMirrorEditorComponent),
61
+ multi: true,
62
+ },
63
+ ], viewQueries: [{ propertyName: "host", first: true, predicate: ["cmHost"], descendants: true, static: true }], ngImport: i0, template: `<div #cmHost class="codemirror-container"></div>`, isInline: true }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: CodeMirrorEditorComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'abp-codemirror-editor',
69
+ template: `<div #cmHost class="codemirror-container"></div>`,
70
+ providers: [
71
+ {
72
+ provide: NG_VALUE_ACCESSOR,
73
+ useExisting: forwardRef(() => CodeMirrorEditorComponent),
74
+ multi: true,
75
+ },
76
+ ],
77
+ }]
78
+ }], propDecorators: { host: [{
79
+ type: ViewChild,
80
+ args: ['cmHost', { static: true }]
81
+ }] } });
82
+
83
+ class ToastuiEditorComponent {
84
+ constructor() {
85
+ this.value = '';
86
+ this.platformId = inject(PLATFORM_ID);
87
+ this.localStorageService = inject(AbpLocalStorageService);
88
+ this.destroyRef = inject(DestroyRef);
89
+ this.themeChange$ = inject(THEME_CHANGE_TOKEN, { optional: true });
90
+ this.onChange = () => { };
91
+ this.onTouched = () => { };
92
+ }
93
+ writeValue(value) {
94
+ this.value = value || '';
95
+ if (this.editor) {
96
+ this.editor.setMarkdown(this.value);
97
+ }
98
+ }
99
+ registerOnChange(fn) {
100
+ this.onChange = fn;
101
+ }
102
+ registerOnTouched(fn) {
103
+ this.onTouched = fn;
104
+ }
105
+ ngAfterViewInit() {
106
+ if (!isPlatformBrowser(this.platformId)) {
107
+ return;
108
+ }
109
+ this.initializeEditor();
110
+ if (this.themeChange$) {
111
+ this.setupThemeListener();
112
+ }
113
+ }
114
+ getTheme() {
115
+ return this.localStorageService.getItem('LPX_THEME') || 'light';
116
+ }
117
+ initializeEditor() {
118
+ const theme = this.getTheme();
119
+ this.editor = new Editor({
120
+ el: this.editorContainer.nativeElement,
121
+ previewStyle: 'tab',
122
+ height: '500px',
123
+ theme: theme,
124
+ initialValue: this.value,
125
+ });
126
+ this.editor.addHook('change', () => {
127
+ const value = this.editor.getMarkdown();
128
+ this.onChange(value);
129
+ });
130
+ }
131
+ setupThemeListener() {
132
+ this.themeChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(style => {
133
+ if (!this.editor) {
134
+ return;
135
+ }
136
+ const wrapper = this.editorContainer.nativeElement.querySelector('.toastui-editor-defaultUI') ??
137
+ this.editorContainer.nativeElement;
138
+ const { styleName } = style;
139
+ switch (styleName) {
140
+ case 'dark':
141
+ wrapper.classList.add('toastui-editor-dark');
142
+ break;
143
+ case 'system':
144
+ const isSystemDark = typeof window !== 'undefined' &&
145
+ window.matchMedia('(prefers-color-scheme: dark)').matches;
146
+ if (!isSystemDark) {
147
+ wrapper.classList.remove('toastui-editor-dark');
148
+ }
149
+ else {
150
+ wrapper.classList.add('toastui-editor-dark');
151
+ }
152
+ break;
153
+ default:
154
+ wrapper.classList.remove('toastui-editor-dark');
155
+ }
156
+ });
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ToastuiEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: ToastuiEditorComponent, isStandalone: true, selector: "abp-toastui-editor", providers: [
160
+ {
161
+ provide: NG_VALUE_ACCESSOR,
162
+ useExisting: forwardRef(() => ToastuiEditorComponent),
163
+ multi: true,
164
+ },
165
+ ], viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: `<div #editorContainer></div>`, isInline: true }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ToastuiEditorComponent, decorators: [{
168
+ type: Component,
169
+ args: [{
170
+ selector: 'abp-toastui-editor',
171
+ template: `<div #editorContainer></div>`,
172
+ providers: [
173
+ {
174
+ provide: NG_VALUE_ACCESSOR,
175
+ useExisting: forwardRef(() => ToastuiEditorComponent),
176
+ multi: true,
177
+ },
178
+ ],
179
+ }]
180
+ }], propDecorators: { editorContainer: [{
181
+ type: ViewChild,
182
+ args: ['editorContainer', { static: true }]
183
+ }] } });
184
+
185
+ function dasharize(text) {
186
+ return text
187
+ .trim()
188
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
189
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
190
+ .replace(/[\s_]+/g, '-')
191
+ .replace(/[^\w\s-]/g, '')
192
+ .replace(/-+/g, '-')
193
+ .replace(/^-+|-+$/g, '')
194
+ .toLowerCase();
195
+ }
196
+
197
+ /**
198
+ * Sets up automatic slug generation from a source control (e.g., title, name) to a target control (slug).
199
+ * The slug is automatically updated when the source control value changes.
200
+ *
201
+ * @param form - The form group containing the controls
202
+ * @param sourceControlName - Name of the source control (e.g., 'title', 'name')
203
+ * @param targetControlName - Name of the target control (e.g., 'slug')
204
+ * @param destroyRef - DestroyRef for automatic subscription cleanup
205
+ */
206
+ function prepareSlugFromControl(form, sourceControlName, targetControlName, destroyRef) {
207
+ const sourceControl = form.get(sourceControlName);
208
+ const targetControl = form.get(targetControlName);
209
+ if (!sourceControl || !targetControl) {
210
+ return;
211
+ }
212
+ sourceControl.valueChanges.pipe(takeUntilDestroyed(destroyRef)).subscribe(value => {
213
+ if (value && typeof value === 'string') {
214
+ const dasharized = dasharize(value);
215
+ const currentSlug = targetControl.value || '';
216
+ if (dasharized !== currentSlug) {
217
+ targetControl.setValue(dasharized, { emitEvent: false });
218
+ }
219
+ }
220
+ });
221
+ }
222
+
223
+ // Main package entry point
224
+ // Use @abp/ng.cms-kit/admin or @abp/ng.cms-kit/public for specific functionality
225
+
226
+ /**
227
+ * Generated bundle index. Do not edit.
228
+ */
229
+
230
+ export { CodeMirrorEditorComponent, ToastuiEditorComponent, dasharize, prepareSlugFromControl };
231
+ //# sourceMappingURL=abp-ng.cms-kit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abp-ng.cms-kit.mjs","sources":["../../../../packages/cms-kit/src/components/code-mirror-editor/code-mirror-editor.component.ts","../../../../packages/cms-kit/src/components/toast-ui/toastui-editor.component.ts","../../../../packages/cms-kit/src/utils/text.utils.ts","../../../../packages/cms-kit/src/utils/form.utils.ts","../../../../packages/cms-kit/src/public-api.ts","../../../../packages/cms-kit/src/abp-ng.cms-kit.ts"],"sourcesContent":["import { Component, ElementRef, AfterViewInit, ViewChild, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { EditorState } from '@codemirror/state';\r\nimport { EditorView, lineNumbers } from '@codemirror/view';\r\nimport { basicSetup } from 'codemirror';\r\n\r\n@Component({\r\n selector: 'abp-codemirror-editor',\r\n template: `<div #cmHost class=\"codemirror-container\"></div>`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CodeMirrorEditorComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CodeMirrorEditorComponent implements AfterViewInit, ControlValueAccessor {\r\n @ViewChild('cmHost', { static: true })\r\n host!: ElementRef;\r\n\r\n private view!: EditorView;\r\n private value = '';\r\n\r\n private onChange = (value: string) => {};\r\n private onTouched = () => {};\r\n\r\n writeValue(value: string): void {\r\n this.value = value || '';\r\n\r\n if (this.view) {\r\n this.view.dispatch({\r\n changes: {\r\n from: 0,\r\n to: this.view.state.doc.length,\r\n insert: this.value,\r\n },\r\n });\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const startState = EditorState.create({\r\n doc: this.value,\r\n extensions: [\r\n basicSetup,\r\n EditorView.updateListener.of(update => {\r\n if (update.docChanged) {\r\n const text = update.state.doc.toString();\r\n this.onChange(text);\r\n }\r\n }),\r\n lineNumbers(),\r\n ],\r\n });\r\n\r\n this.view = new EditorView({\r\n state: startState,\r\n parent: this.host.nativeElement,\r\n });\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n Component,\r\n AfterViewInit,\r\n ViewChild,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n PLATFORM_ID,\r\n DestroyRef,\r\n} from '@angular/core';\r\nimport Editor from '@toast-ui/editor';\r\n\r\nimport { AbpLocalStorageService } from '@abp/ng.core';\r\nimport { THEME_CHANGE_TOKEN } from '@abp/ng.theme.shared';\r\n\r\n@Component({\r\n selector: 'abp-toastui-editor',\r\n template: `<div #editorContainer></div>`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToastuiEditorComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ToastuiEditorComponent implements AfterViewInit, ControlValueAccessor {\r\n @ViewChild('editorContainer', { static: true })\r\n editorContainer!: ElementRef<HTMLDivElement>;\r\n\r\n private editor!: Editor;\r\n private value = '';\r\n\r\n private platformId = inject(PLATFORM_ID);\r\n private localStorageService = inject(AbpLocalStorageService);\r\n private destroyRef = inject(DestroyRef);\r\n private themeChange$ = inject(THEME_CHANGE_TOKEN, { optional: true });\r\n\r\n private onChange: (value: string) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n writeValue(value: string): void {\r\n this.value = value || '';\r\n if (this.editor) {\r\n this.editor.setMarkdown(this.value);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n\r\n this.initializeEditor();\r\n if (this.themeChange$) {\r\n this.setupThemeListener();\r\n }\r\n }\r\n\r\n private getTheme(): string {\r\n return this.localStorageService.getItem('LPX_THEME') || 'light';\r\n }\r\n\r\n private initializeEditor(): void {\r\n const theme = this.getTheme();\r\n this.editor = new Editor({\r\n el: this.editorContainer.nativeElement,\r\n previewStyle: 'tab',\r\n height: '500px',\r\n theme: theme,\r\n initialValue: this.value,\r\n });\r\n\r\n this.editor.addHook('change', () => {\r\n const value = this.editor.getMarkdown();\r\n this.onChange(value);\r\n });\r\n }\r\n\r\n private setupThemeListener(): void {\r\n this.themeChange$!.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(style => {\r\n if (!this.editor) {\r\n return;\r\n }\r\n const wrapper =\r\n this.editorContainer.nativeElement.querySelector('.toastui-editor-defaultUI') ??\r\n this.editorContainer.nativeElement;\r\n\r\n const { styleName } = style;\r\n\r\n switch (styleName) {\r\n case 'dark':\r\n wrapper.classList.add('toastui-editor-dark');\r\n break;\r\n case 'system':\r\n const isSystemDark =\r\n typeof window !== 'undefined' &&\r\n window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n if (!isSystemDark) {\r\n wrapper.classList.remove('toastui-editor-dark');\r\n } else {\r\n wrapper.classList.add('toastui-editor-dark');\r\n }\r\n break;\r\n default:\r\n wrapper.classList.remove('toastui-editor-dark');\r\n }\r\n });\r\n }\r\n}\r\n","export function dasharize(text: string) {\r\n return text\r\n .trim()\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\r\n .replace(/[\\s_]+/g, '-')\r\n .replace(/[^\\w\\s-]/g, '')\r\n .replace(/-+/g, '-')\r\n .replace(/^-+|-+$/g, '')\r\n .toLowerCase();\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport { DestroyRef } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { dasharize } from './text.utils';\r\n\r\n/**\r\n * Sets up automatic slug generation from a source control (e.g., title, name) to a target control (slug).\r\n * The slug is automatically updated when the source control value changes.\r\n *\r\n * @param form - The form group containing the controls\r\n * @param sourceControlName - Name of the source control (e.g., 'title', 'name')\r\n * @param targetControlName - Name of the target control (e.g., 'slug')\r\n * @param destroyRef - DestroyRef for automatic subscription cleanup\r\n */\r\nexport function prepareSlugFromControl(\r\n form: FormGroup,\r\n sourceControlName: string,\r\n targetControlName: string,\r\n destroyRef: DestroyRef,\r\n): void {\r\n const sourceControl = form.get(sourceControlName);\r\n const targetControl = form.get(targetControlName);\r\n\r\n if (!sourceControl || !targetControl) {\r\n return;\r\n }\r\n\r\n sourceControl.valueChanges.pipe(takeUntilDestroyed(destroyRef)).subscribe(value => {\r\n if (value && typeof value === 'string') {\r\n const dasharized = dasharize(value);\r\n const currentSlug = targetControl.value || '';\r\n if (dasharized !== currentSlug) {\r\n targetControl.setValue(dasharized, { emitEvent: false });\r\n }\r\n }\r\n });\r\n}\r\n","// Main package entry point\r\n// Use @abp/ng.cms-kit/admin or @abp/ng.cms-kit/public for specific functionality\r\nexport * from './components';\r\nexport * from './utils';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@abp/ng.cms-kit",
3
+ "version": "10.2.0-rc.1",
4
+ "homepage": "https://abp.io",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/abpframework/abp.git"
8
+ },
9
+ "dependencies": {
10
+ "@abp/ng.components": "~10.2.0-rc.1",
11
+ "@abp/ng.setting-management": "~10.2.0-rc.1",
12
+ "@abp/ng.theme.shared": "~10.2.0-rc.1",
13
+ "@toast-ui/editor": "~3.0.0",
14
+ "codemirror": "~6.0.0",
15
+ "tslib": "^2.0.0"
16
+ },
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "module": "fesm2022/abp-ng.cms-kit.mjs",
21
+ "typings": "types/abp-ng.cms-kit.d.ts",
22
+ "exports": {
23
+ "./package.json": {
24
+ "default": "./package.json"
25
+ },
26
+ ".": {
27
+ "types": "./types/abp-ng.cms-kit.d.ts",
28
+ "default": "./fesm2022/abp-ng.cms-kit.mjs"
29
+ },
30
+ "./admin": {
31
+ "types": "./types/abp-ng.cms-kit-admin.d.ts",
32
+ "default": "./fesm2022/abp-ng.cms-kit-admin.mjs"
33
+ },
34
+ "./admin/config": {
35
+ "types": "./types/abp-ng.cms-kit-admin-config.d.ts",
36
+ "default": "./fesm2022/abp-ng.cms-kit-admin-config.mjs"
37
+ },
38
+ "./proxy": {
39
+ "types": "./types/abp-ng.cms-kit-proxy.d.ts",
40
+ "default": "./fesm2022/abp-ng.cms-kit-proxy.mjs"
41
+ },
42
+ "./public": {
43
+ "types": "./types/abp-ng.cms-kit-public.d.ts",
44
+ "default": "./fesm2022/abp-ng.cms-kit-public.mjs"
45
+ },
46
+ "./public/config": {
47
+ "types": "./types/abp-ng.cms-kit-public-config.d.ts",
48
+ "default": "./fesm2022/abp-ng.cms-kit-public-config.mjs"
49
+ }
50
+ },
51
+ "sideEffects": false
52
+ }
@@ -0,0 +1,38 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ declare enum eCmsKitAdminPolicyNames {
4
+ Cms = "CmsKit.Comments || CmsKit.Tags || CmsKit.Pages || CmsKit.Blogs || CmsKit.BlogPosts || CmsKit.Menus || CmsKit.GlobalResources",
5
+ Comments = "CmsKit.Comments",
6
+ Tags = "CmsKit.Tags",
7
+ Pages = "CmsKit.Pages",
8
+ Blogs = "CmsKit.Blogs",
9
+ BlogPosts = "CmsKit.BlogPosts",
10
+ Menus = "CmsKit.Menus",
11
+ GlobalResources = "CmsKit.GlobalResources"
12
+ }
13
+
14
+ declare enum eCmsKitAdminRouteNames {
15
+ Cms = "CmsKit::Menu:CMS",
16
+ Comments = "CmsKit::CmsKit.Comments",
17
+ Tags = "CmsKit::CmsKit.Tags",
18
+ Pages = "CmsKit::Pages",
19
+ Blogs = "CmsKit::Blogs",
20
+ BlogPosts = "CmsKit::BlogPosts",
21
+ Menus = "CmsKit::Menus",
22
+ GlobalResources = "CmsKit::GlobalResources"
23
+ }
24
+
25
+ declare function provideCmsKitAdminConfig(): _angular_core.EnvironmentProviders;
26
+
27
+ declare const CMS_KIT_ADMIN_ROUTE_PROVIDERS: _angular_core.EnvironmentProviders[];
28
+ declare function configureRoutes(): void;
29
+
30
+ declare const CMS_KIT_ADMIN_SETTING_TAB_PROVIDERS: _angular_core.EnvironmentProviders[];
31
+ declare function configureSettingTabs(): Promise<void>;
32
+
33
+ interface Settings {
34
+ commentRequireApprovement: boolean;
35
+ }
36
+
37
+ export { CMS_KIT_ADMIN_ROUTE_PROVIDERS, CMS_KIT_ADMIN_SETTING_TAB_PROVIDERS, configureRoutes, configureSettingTabs, eCmsKitAdminPolicyNames, eCmsKitAdminRouteNames, provideCmsKitAdminConfig };
38
+ export type { Settings };