@firestitch/html-editor 12.0.3 → 12.1.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.
- package/app/{classes → modules/html-editor/classes}/plugin.d.ts +7 -7
- package/app/{components → modules/html-editor/components}/html-editor/html-editor.component.d.ts +58 -58
- package/app/{consts → modules/html-editor/consts}/paragraph-buttons.const.d.ts +1 -1
- package/app/{consts → modules/html-editor/consts}/rich-buttons.const.d.ts +1 -1
- package/app/{consts → modules/html-editor/consts}/text-buttons.const.d.ts +1 -1
- package/app/{enums → modules/html-editor/enums}/default-plugin.enum.d.ts +15 -15
- package/app/{fs-html-editor.module.d.ts → modules/html-editor/fs-html-editor.module.d.ts} +43 -42
- package/app/{injects → modules/html-editor/injects}/config.inject.d.ts +3 -3
- package/app/{interfaces → modules/html-editor/interfaces}/html-editor-config.d.ts +40 -40
- package/app/{interfaces → modules/html-editor/interfaces}/plugin-button.d.ts +12 -12
- package/app/{interfaces → modules/html-editor/interfaces}/plugin-config.d.ts +5 -5
- package/app/{plugins → modules/html-editor/plugins}/checklist.plugin.d.ts +7 -7
- package/app/{plugins → modules/html-editor/plugins}/code.plugin.d.ts +9 -9
- package/app/{plugins → modules/html-editor/plugins}/configs/mention-plugin.config.d.ts +13 -13
- package/app/{plugins → modules/html-editor/plugins}/configs/screen-record-plugin.config.d.ts +7 -7
- package/app/{plugins → modules/html-editor/plugins}/mention.plugin.d.ts +15 -15
- package/app/modules/html-editor/plugins/realtime.plugin.d.ts +7 -0
- package/app/{plugins → modules/html-editor/plugins}/screen-record.plugin.d.ts +11 -11
- package/app/{services → modules/html-editor/services}/froala-loader.service.d.ts +20 -20
- package/app/{utils → modules/html-editor/utils}/loader.d.ts +7 -7
- package/app/{components → modules/html-renderer/components}/html-renderer/html-renderer.component.d.ts +12 -12
- package/app/modules/html-renderer/fs-html-renderer.module.d.ts +8 -0
- package/bundles/firestitch-html-editor.umd.js +1449 -1400
- package/bundles/firestitch-html-editor.umd.js.map +1 -1
- package/esm2015/app/modules/html-editor/classes/plugin.js +5 -0
- package/esm2015/app/modules/html-editor/components/html-editor/html-editor.component.js +493 -0
- package/esm2015/app/modules/html-editor/consts/paragraph-buttons.const.js +9 -0
- package/esm2015/app/modules/html-editor/consts/rich-buttons.const.js +7 -0
- package/esm2015/app/modules/html-editor/consts/text-buttons.const.js +19 -0
- package/esm2015/app/modules/html-editor/enums/default-plugin.enum.js +2 -0
- package/esm2015/app/modules/html-editor/fs-html-editor.module.js +68 -0
- package/esm2015/app/modules/html-editor/injects/config.inject.js +4 -0
- package/esm2015/app/modules/html-editor/interfaces/html-editor-config.js +2 -0
- package/esm2015/app/modules/html-editor/interfaces/plugin-button.js +2 -0
- package/esm2015/app/modules/html-editor/interfaces/plugin-config.js +2 -0
- package/esm2015/app/modules/html-editor/plugins/checklist.plugin.js +35 -0
- package/esm2015/app/modules/html-editor/plugins/code.plugin.js +63 -0
- package/esm2015/app/modules/html-editor/plugins/configs/mention-plugin.config.js +2 -0
- package/esm2015/app/modules/html-editor/plugins/configs/screen-record-plugin.config.js +2 -0
- package/esm2015/app/modules/html-editor/plugins/mention.plugin.js +87 -0
- package/esm2015/app/modules/html-editor/plugins/realtime.plugin.js +13 -0
- package/esm2015/app/modules/html-editor/plugins/screen-record.plugin.js +94 -0
- package/esm2015/app/modules/html-editor/services/froala-loader.service.js +80 -0
- package/esm2015/app/modules/html-editor/utils/loader.js +84 -0
- package/esm2015/app/modules/html-renderer/components/html-renderer/html-renderer.component.js +29 -0
- package/esm2015/app/modules/html-renderer/fs-html-renderer.module.js +26 -0
- package/esm2015/firestitch-html-editor.js +4 -4
- package/esm2015/public_api.js +14 -12
- package/fesm2015/firestitch-html-editor.js +1040 -999
- package/fesm2015/firestitch-html-editor.js.map +1 -1
- package/firestitch-html-editor.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +18 -16
- package/esm2015/app/classes/plugin.js +0 -5
- package/esm2015/app/components/html-editor/html-editor.component.js +0 -489
- package/esm2015/app/components/html-renderer/html-renderer.component.js +0 -29
- package/esm2015/app/consts/paragraph-buttons.const.js +0 -9
- package/esm2015/app/consts/rich-buttons.const.js +0 -7
- package/esm2015/app/consts/text-buttons.const.js +0 -19
- package/esm2015/app/enums/default-plugin.enum.js +0 -2
- package/esm2015/app/fs-html-editor.module.js +0 -65
- package/esm2015/app/injects/config.inject.js +0 -4
- package/esm2015/app/interfaces/html-editor-config.js +0 -2
- package/esm2015/app/interfaces/plugin-button.js +0 -2
- package/esm2015/app/interfaces/plugin-config.js +0 -2
- package/esm2015/app/plugins/checklist.plugin.js +0 -35
- package/esm2015/app/plugins/code.plugin.js +0 -63
- package/esm2015/app/plugins/configs/mention-plugin.config.js +0 -2
- package/esm2015/app/plugins/configs/screen-record-plugin.config.js +0 -2
- package/esm2015/app/plugins/mention.plugin.js +0 -87
- package/esm2015/app/plugins/screen-record.plugin.js +0 -94
- package/esm2015/app/services/froala-loader.service.js +0 -80
- package/esm2015/app/utils/loader.js +0 -84
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { shareReplay } from 'rxjs/operators';
|
|
3
|
-
function resourceLoaderFactory() {
|
|
4
|
-
let resourceBase = '/assets/js/froala/';
|
|
5
|
-
let stylesBase = '/assets/css/';
|
|
6
|
-
const head = document.getElementsByTagName('head')[0];
|
|
7
|
-
const files = new Map();
|
|
8
|
-
const resourcePaths = {
|
|
9
|
-
froala: 'froala_editor.min.js',
|
|
10
|
-
align: 'plugins/align.min.js',
|
|
11
|
-
colors: 'plugins/colors.min.js',
|
|
12
|
-
image: 'plugins/image.min.js',
|
|
13
|
-
link: 'plugins/link.min.js',
|
|
14
|
-
lists: 'plugins/lists.min.js',
|
|
15
|
-
paragraph_format: 'plugins/paragraph_format.min.js',
|
|
16
|
-
table: 'plugins/table.min.js',
|
|
17
|
-
url: 'plugins/url.min.js',
|
|
18
|
-
video: 'plugins/video.min.js',
|
|
19
|
-
quote: 'plugins/quote.min.js',
|
|
20
|
-
draggable: 'plugins/draggable.min.js',
|
|
21
|
-
font_size: 'plugins/font_size.min.js',
|
|
22
|
-
quick_insert: 'plugins/quick_insert.min.js',
|
|
23
|
-
};
|
|
24
|
-
const stylesPaths = {
|
|
25
|
-
froala: 'froala_editor.pkgd.min.css',
|
|
26
|
-
};
|
|
27
|
-
const loadResource = function (scriptPath) {
|
|
28
|
-
if (!files.has(scriptPath)) {
|
|
29
|
-
const obs$ = new Observable((obs) => {
|
|
30
|
-
const script = document.createElement('script');
|
|
31
|
-
script.src = scriptPath;
|
|
32
|
-
head.appendChild(script);
|
|
33
|
-
script.onload = () => {
|
|
34
|
-
obs.next();
|
|
35
|
-
obs.complete();
|
|
36
|
-
};
|
|
37
|
-
script.onerror = (err) => {
|
|
38
|
-
obs.error(err);
|
|
39
|
-
};
|
|
40
|
-
})
|
|
41
|
-
.pipe(shareReplay(1));
|
|
42
|
-
files.set(scriptPath, obs$);
|
|
43
|
-
}
|
|
44
|
-
return files.get(scriptPath);
|
|
45
|
-
};
|
|
46
|
-
const loadStyles = function (stylePath) {
|
|
47
|
-
if (!files.has(stylePath)) {
|
|
48
|
-
const obs$ = new Observable((obs) => {
|
|
49
|
-
const style = document.createElement('link');
|
|
50
|
-
style.id = stylePath;
|
|
51
|
-
style.rel = 'stylesheet';
|
|
52
|
-
style.href = `${stylePath}`;
|
|
53
|
-
head.appendChild(style);
|
|
54
|
-
style.onload = () => {
|
|
55
|
-
obs.next();
|
|
56
|
-
obs.complete();
|
|
57
|
-
};
|
|
58
|
-
style.onerror = (err) => {
|
|
59
|
-
obs.error(err);
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
files.set(stylePath, obs$);
|
|
63
|
-
}
|
|
64
|
-
return files.get(stylePath);
|
|
65
|
-
};
|
|
66
|
-
return {
|
|
67
|
-
setResourceBase: (path) => {
|
|
68
|
-
resourceBase = path;
|
|
69
|
-
},
|
|
70
|
-
setStylesBase: (path) => {
|
|
71
|
-
stylesBase = path;
|
|
72
|
-
},
|
|
73
|
-
loadResource: (resourceName) => {
|
|
74
|
-
const path = resourcePaths[resourceName] || resourceName;
|
|
75
|
-
return loadResource(resourceBase + path);
|
|
76
|
-
},
|
|
77
|
-
loadStyles: (resourceName) => {
|
|
78
|
-
const path = stylesPaths[resourceName] || resourceName;
|
|
79
|
-
return loadStyles(stylesBase + path);
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
export const ResourceLoader = resourceLoaderFactory();
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC91dGlscy9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUyxxQkFBcUI7SUFDNUIsSUFBSSxZQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFDeEMsSUFBSSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBRWhDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztJQUVyRCxNQUFNLGFBQWEsR0FBRztRQUNwQixNQUFNLEVBQUUsc0JBQXNCO1FBQzlCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixnQkFBZ0IsRUFBRSxpQ0FBaUM7UUFDbkQsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixTQUFTLEVBQUUsMEJBQTBCO1FBQ3JDLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsWUFBWSxFQUFFLDZCQUE2QjtLQUM1QyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLDRCQUE0QjtLQUNyQyxDQUFBO0lBRUQsTUFBTSxZQUFZLEdBQUcsVUFBVSxVQUFrQjtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQixN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QUFHLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZnVuY3Rpb24gcmVzb3VyY2VMb2FkZXJGYWN0b3J5KCkge1xuICBsZXQgcmVzb3VyY2VCYXNlID0gJy9hc3NldHMvanMvZnJvYWxhLyc7XG4gIGxldCBzdHlsZXNCYXNlID0gJy9hc3NldHMvY3NzLyc7XG5cbiAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gIGNvbnN0IGZpbGVzID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8dW5rbm93bj4+KCk7XG5cbiAgY29uc3QgcmVzb3VyY2VQYXRocyA9IHtcbiAgICBmcm9hbGE6ICdmcm9hbGFfZWRpdG9yLm1pbi5qcycsXG4gICAgYWxpZ246ICdwbHVnaW5zL2FsaWduLm1pbi5qcycsXG4gICAgY29sb3JzOiAncGx1Z2lucy9jb2xvcnMubWluLmpzJyxcbiAgICBpbWFnZTogJ3BsdWdpbnMvaW1hZ2UubWluLmpzJyxcbiAgICBsaW5rOiAncGx1Z2lucy9saW5rLm1pbi5qcycsXG4gICAgbGlzdHM6ICdwbHVnaW5zL2xpc3RzLm1pbi5qcycsXG4gICAgcGFyYWdyYXBoX2Zvcm1hdDogJ3BsdWdpbnMvcGFyYWdyYXBoX2Zvcm1hdC5taW4uanMnLFxuICAgIHRhYmxlOiAncGx1Z2lucy90YWJsZS5taW4uanMnLFxuICAgIHVybDogJ3BsdWdpbnMvdXJsLm1pbi5qcycsXG4gICAgdmlkZW86ICdwbHVnaW5zL3ZpZGVvLm1pbi5qcycsXG4gICAgcXVvdGU6ICdwbHVnaW5zL3F1b3RlLm1pbi5qcycsXG4gICAgZHJhZ2dhYmxlOiAncGx1Z2lucy9kcmFnZ2FibGUubWluLmpzJyxcbiAgICBmb250X3NpemU6ICdwbHVnaW5zL2ZvbnRfc2l6ZS5taW4uanMnLFxuICAgIHF1aWNrX2luc2VydDogJ3BsdWdpbnMvcXVpY2tfaW5zZXJ0Lm1pbi5qcycsXG4gIH1cblxuICBjb25zdCBzdHlsZXNQYXRocyA9IHtcbiAgICBmcm9hbGE6ICdmcm9hbGFfZWRpdG9yLnBrZ2QubWluLmNzcycsXG4gIH1cblxuICBjb25zdCBsb2FkUmVzb3VyY2UgPSBmdW5jdGlvbiAoc2NyaXB0UGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgaWYgKCFmaWxlcy5oYXMoc2NyaXB0UGF0aCkpIHtcbiAgICAgIGNvbnN0IG9icyQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzKSA9PiB7XG5cbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC5zcmMgPSBzY3JpcHRQYXRoO1xuXG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIG9icy5uZXh0KCk7XG4gICAgICAgICAgb2JzLmNvbXBsZXRlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgb2JzLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgICApO1xuXG4gICAgICBmaWxlcy5zZXQoc2NyaXB0UGF0aCwgb2JzJCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVzLmdldChzY3JpcHRQYXRoKTtcbiAgfTtcblxuICBjb25zdCBsb2FkU3R5bGVzID0gZnVuY3Rpb24gKHN0eWxlUGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgaWYgKCFmaWxlcy5oYXMoc3R5bGVQYXRoKSkge1xuICAgICAgY29uc3Qgb2JzJCA9IG5ldyBPYnNlcnZhYmxlKChvYnMpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlLmlkID0gc3R5bGVQYXRoO1xuICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlLmhyZWYgPSBgJHtzdHlsZVBhdGh9YDtcblxuICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgICAgICBzdHlsZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgb2JzLm5leHQoKTtcbiAgICAgICAgICBvYnMuY29tcGxldGUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzdHlsZS5vbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgICAgIG9icy5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgZmlsZXMuc2V0KHN0eWxlUGF0aCwgb2JzJCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVzLmdldChzdHlsZVBhdGgpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgc2V0UmVzb3VyY2VCYXNlOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICByZXNvdXJjZUJhc2UgPSBwYXRoO1xuICAgIH0sXG4gICAgc2V0U3R5bGVzQmFzZTogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgc3R5bGVzQmFzZSA9IHBhdGg7XG4gICAgfSxcbiAgICBsb2FkUmVzb3VyY2U6IChyZXNvdXJjZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IHJlc291cmNlUGF0aHNbcmVzb3VyY2VOYW1lXSB8fCByZXNvdXJjZU5hbWU7XG5cbiAgICAgIHJldHVybiBsb2FkUmVzb3VyY2UocmVzb3VyY2VCYXNlICsgcGF0aCk7XG4gICAgfSxcbiAgICBsb2FkU3R5bGVzOiAocmVzb3VyY2VOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBhdGggPSBzdHlsZXNQYXRoc1tyZXNvdXJjZU5hbWVdIHx8IHJlc291cmNlTmFtZTtcblxuICAgICAgcmV0dXJuIGxvYWRTdHlsZXMoc3R5bGVzQmFzZSArIHBhdGgpO1xuICAgIH1cbiAgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBSZXNvdXJjZUxvYWRlciA9IHJlc291cmNlTG9hZGVyRmFjdG9yeSgpO1xuIl19
|