@web-atoms/web-controls 2.3.66 → 2.3.68
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/dist/basic/UploadEvent.d.ts +38 -0
- package/dist/basic/UploadEvent.d.ts.map +1 -0
- package/dist/basic/UploadEvent.js +168 -0
- package/dist/basic/UploadEvent.js.map +1 -0
- package/dist/html-editor/HtmlEditorCommands.d.ts +7 -0
- package/dist/html-editor/HtmlEditorCommands.d.ts.map +1 -0
- package/dist/html-editor/HtmlEditorCommands.js +19 -0
- package/dist/html-editor/HtmlEditorCommands.js.map +1 -0
- package/dist/html-editor/InlineHtmlEditor.d.ts +37 -0
- package/dist/html-editor/InlineHtmlEditor.d.ts.map +1 -0
- package/dist/html-editor/InlineHtmlEditor.js +149 -0
- package/dist/html-editor/InlineHtmlEditor.js.map +1 -0
- package/dist/html-editor/RangeEditor.d.ts +19 -0
- package/dist/html-editor/RangeEditor.d.ts.map +1 -0
- package/dist/html-editor/RangeEditor.js +71 -0
- package/dist/html-editor/RangeEditor.js.map +1 -0
- package/dist/html-editor/commands/AttachFile.d.ts +6 -4
- package/dist/html-editor/commands/AttachFile.d.ts.map +1 -1
- package/dist/html-editor/commands/AttachFile.js +24 -59
- package/dist/html-editor/commands/AttachFile.js.map +1 -1
- package/dist/player/AtomVideoPlayer.d.ts +2 -1
- package/dist/player/AtomVideoPlayer.d.ts.map +1 -1
- package/dist/player/AtomVideoPlayer.js +6 -0
- package/dist/player/AtomVideoPlayer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/basic/UploadEvent.tsx +203 -0
- package/src/html-editor/HtmlEditorCommands.tsx +16 -0
- package/src/html-editor/InlineHtmlEditor.tsx +209 -0
- package/src/html-editor/RangeEditor.tsx +99 -0
- package/src/html-editor/commands/AttachFile.tsx +30 -56
- package/src/player/AtomVideoPlayer.tsx +8 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const isFileType: (acceptType: string) => any;
|
|
2
|
+
export type FilesAvailableEventArgs<T = any> = CustomEvent<{
|
|
3
|
+
files: File[];
|
|
4
|
+
extra: T;
|
|
5
|
+
}>;
|
|
6
|
+
export interface IUploadParams<T = any> {
|
|
7
|
+
"event-files-available"?: (ce: FilesAvailableEventArgs<T>) => any;
|
|
8
|
+
uploadEvent?: string;
|
|
9
|
+
accept?: string;
|
|
10
|
+
capture?: string;
|
|
11
|
+
multiple?: any;
|
|
12
|
+
/** Will enforce that the selected file matches the given accept types */
|
|
13
|
+
forceType?: boolean;
|
|
14
|
+
maxSize?: number;
|
|
15
|
+
upload?: boolean;
|
|
16
|
+
/** Extra will hold other information that will be available in upload event */
|
|
17
|
+
extra?: T;
|
|
18
|
+
authorize?: boolean;
|
|
19
|
+
ariaLabel?: string;
|
|
20
|
+
}
|
|
21
|
+
export default class UploadEvent {
|
|
22
|
+
static AttachUploadAction({ uploadEvent, accept, capture, multiple, forceType, maxSize, extra, upload, authorize, ariaLabel, ...others }: IUploadParams): {
|
|
23
|
+
"data-upload-event": string;
|
|
24
|
+
"data-accept": string;
|
|
25
|
+
"data-multiple": string;
|
|
26
|
+
"data-capture": string;
|
|
27
|
+
"data-upload": string;
|
|
28
|
+
"data-force-type": string;
|
|
29
|
+
"data-max-size": string;
|
|
30
|
+
"data-authorize": string;
|
|
31
|
+
"aria-label": string;
|
|
32
|
+
extra: any;
|
|
33
|
+
"data-click-command": string;
|
|
34
|
+
commandParameter: any;
|
|
35
|
+
"event-files-available"?: (ce: FilesAvailableEventArgs<any>) => any;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=UploadEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadEvent.d.ts","sourceRoot":"","sources":["../../src/basic/UploadEvent.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,eAAgB,MAAM,QA6B5C,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAExF,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IAClC,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAqHD,MAAM,CAAC,OAAO,OAAO,WAAW;WAEd,kBAAkB,CAAC,EAC7B,WAA+B,EAC/B,MAAc,EACd,OAAO,EACP,QAAgB,EAChB,SAAgB,EAChB,OAAmB,EACnB,KAAK,EACL,MAAa,EACb,SAAgB,EAChB,SAAoB,EACpB,GAAI,MAAM,EACb,EAAE,aAAa;;;;;;;;;;;;;;;CAgBnB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core/Command", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/services/PopupService"], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var __rest, App, Command, AtomControl, PopupService, UploadEvent, acceptCache, isFileType, requestUpload, previousFile, id;
|
|
5
|
+
_export("default", void 0);
|
|
6
|
+
return {
|
|
7
|
+
setters: [function (_tslib) {
|
|
8
|
+
__rest = _tslib.__rest;
|
|
9
|
+
}, function (_webAtomsCoreDistApp) {
|
|
10
|
+
App = _webAtomsCoreDistApp.App;
|
|
11
|
+
}, function (_webAtomsCoreDistCoreCommand) {
|
|
12
|
+
Command = _webAtomsCoreDistCoreCommand.default;
|
|
13
|
+
}, function (_webAtomsCoreDistWebControlsAtomControl) {
|
|
14
|
+
AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
|
|
15
|
+
}, function (_webAtomsCoreDistWebServicesPopupService) {
|
|
16
|
+
PopupService = _webAtomsCoreDistWebServicesPopupService.default;
|
|
17
|
+
}],
|
|
18
|
+
execute: function () {
|
|
19
|
+
acceptCache = {};
|
|
20
|
+
_export("isFileType", isFileType = acceptType => {
|
|
21
|
+
var _a;
|
|
22
|
+
function isFileTypeFactory(accept) {
|
|
23
|
+
if (!accept || accept === "*/*") {
|
|
24
|
+
return () => true;
|
|
25
|
+
}
|
|
26
|
+
const types = accept.split(/\,/g).map(x => {
|
|
27
|
+
x = x.trim();
|
|
28
|
+
if (x.startsWith(".")) {
|
|
29
|
+
return file => file.name.endsWith(x);
|
|
30
|
+
}
|
|
31
|
+
if (x.endsWith("/*")) {
|
|
32
|
+
const prefix = x.substring(0, x.length - 1);
|
|
33
|
+
return file => file.type.startsWith(prefix);
|
|
34
|
+
}
|
|
35
|
+
return file => file.type === x;
|
|
36
|
+
});
|
|
37
|
+
return file => {
|
|
38
|
+
for (const iterator of types) {
|
|
39
|
+
if (iterator(file)) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return (_a = acceptCache[acceptType]) !== null && _a !== void 0 ? _a : acceptCache[acceptType] = isFileTypeFactory(acceptType);
|
|
47
|
+
});
|
|
48
|
+
requestUpload = new Command();
|
|
49
|
+
requestUpload.eventScope.listen(ce => {
|
|
50
|
+
const element = ce.target;
|
|
51
|
+
const authorize = element.dataset.authorize;
|
|
52
|
+
if (authorize === "true") {
|
|
53
|
+
if (!App.authorize()) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const multiple = element.dataset.multiple === "true";
|
|
58
|
+
const extra = element.extra;
|
|
59
|
+
const upload = element.dataset.upload === "true";
|
|
60
|
+
const uploadEvent = element.getAttribute("data-upload-event");
|
|
61
|
+
const chain = [];
|
|
62
|
+
let start = element;
|
|
63
|
+
while (start) {
|
|
64
|
+
chain.push(start);
|
|
65
|
+
start = start.parentElement;
|
|
66
|
+
}
|
|
67
|
+
previousFile === null || previousFile === void 0 ? void 0 : previousFile.remove();
|
|
68
|
+
const file = document.createElement("input");
|
|
69
|
+
file.type = "file";
|
|
70
|
+
file.multiple = multiple;
|
|
71
|
+
const accept = element.dataset.accept || "*/*";
|
|
72
|
+
file.accept = accept;
|
|
73
|
+
const capture = element.dataset.capture;
|
|
74
|
+
if (capture) {
|
|
75
|
+
file.capture = capture;
|
|
76
|
+
}
|
|
77
|
+
file.style.position = "absolute";
|
|
78
|
+
file.style.left = "-1000px";
|
|
79
|
+
file.style.top = "-1000px";
|
|
80
|
+
document.body.append(file);
|
|
81
|
+
previousFile = file;
|
|
82
|
+
const maxSize = parseInt(element.dataset.maxSize || "0", 10);
|
|
83
|
+
const forceType = element.dataset.forceType === "true";
|
|
84
|
+
file.addEventListener("change", () => {
|
|
85
|
+
let files = Array.from(file.files);
|
|
86
|
+
let msg = "";
|
|
87
|
+
if (forceType || maxSize) {
|
|
88
|
+
const validated = [];
|
|
89
|
+
const checkFileType = isFileType(accept);
|
|
90
|
+
for (const iterator of files) {
|
|
91
|
+
if (maxSize && iterator.size > maxSize) {
|
|
92
|
+
msg += `Size of ${iterator.name} is more than ${maxSize}`;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (forceType) {
|
|
96
|
+
if (!checkFileType(iterator)) {
|
|
97
|
+
msg += `${iterator.name} is invalid file.`;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
validated.push(iterator);
|
|
102
|
+
}
|
|
103
|
+
files = validated;
|
|
104
|
+
}
|
|
105
|
+
file.remove();
|
|
106
|
+
previousFile = null;
|
|
107
|
+
chain.reverse();
|
|
108
|
+
while (chain.length) {
|
|
109
|
+
const root = chain.pop();
|
|
110
|
+
if (root.isConnected) {
|
|
111
|
+
const control = AtomControl.from(root);
|
|
112
|
+
if (msg) {
|
|
113
|
+
control.app.runAsync(() => PopupService.alert({
|
|
114
|
+
message: msg
|
|
115
|
+
}));
|
|
116
|
+
if (files.length === 0) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
root.dispatchEvent(new CustomEvent(uploadEvent, {
|
|
121
|
+
detail: {
|
|
122
|
+
files,
|
|
123
|
+
extra
|
|
124
|
+
},
|
|
125
|
+
bubbles: true
|
|
126
|
+
}));
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
file.dispatchEvent(new MouseEvent("click"));
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
id = 1;
|
|
136
|
+
_export("default", UploadEvent = class UploadEvent {
|
|
137
|
+
static AttachUploadAction(_a) {
|
|
138
|
+
var {
|
|
139
|
+
uploadEvent = "files-available",
|
|
140
|
+
accept = "*/*",
|
|
141
|
+
capture,
|
|
142
|
+
multiple = false,
|
|
143
|
+
forceType = true,
|
|
144
|
+
maxSize = 524288000,
|
|
145
|
+
extra,
|
|
146
|
+
upload = true,
|
|
147
|
+
authorize = true,
|
|
148
|
+
ariaLabel = "Upload"
|
|
149
|
+
} = _a,
|
|
150
|
+
others = __rest(_a, ["uploadEvent", "accept", "capture", "multiple", "forceType", "maxSize", "extra", "upload", "authorize", "ariaLabel"]);
|
|
151
|
+
return Object.assign(Object.assign(Object.assign({}, others), requestUpload.registerOnClick("")), {
|
|
152
|
+
"data-upload-event": uploadEvent,
|
|
153
|
+
"data-accept": accept,
|
|
154
|
+
"data-multiple": multiple ? "true" : "false",
|
|
155
|
+
"data-capture": capture,
|
|
156
|
+
"data-upload": upload ? "true" : "false",
|
|
157
|
+
"data-force-type": forceType ? "true" : "false",
|
|
158
|
+
"data-max-size": maxSize ? maxSize.toString() : undefined,
|
|
159
|
+
"data-authorize": authorize.toString(),
|
|
160
|
+
"aria-label": ariaLabel,
|
|
161
|
+
extra
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
//# sourceMappingURL=UploadEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UploadEvent","acceptCache","isFileType","requestUpload","previousFile","id","_export","setters","_tslib","App","_webAtomsCoreDistApp","_webAtomsCoreDistCoreCommand","Command","default","_webAtomsCoreDistWebControlsAtomControl","AtomControl","_webAtomsCoreDistWebServicesPopupService","PopupService","execute","acceptType","isFileTypeFactory","accept","types","split","map","x","trim","startsWith","file","name","endsWith","prefix","substring","length","type","iterator","_a","eventScope","listen","ce","element","target","authorize","dataset","multiple","extra","upload","uploadEvent","getAttribute","chain","start","push","parentElement","remove","document","createElement","capture","style","position","left","top","body","append","maxSize","parseInt","forceType","addEventListener","files","Array","from","msg","validated","checkFileType","size","reverse","root","pop","isConnected","control","app","runAsync","alert","message","dispatchEvent","CustomEvent","detail","bubbles","setTimeout","MouseEvent","AttachUploadAction","ariaLabel","others","__rest","Object","assign","registerOnClick","toString","undefined"],"sources":["../../src/basic/UploadEvent.tsx"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IRangeUpdate } from "./RangeEditor";
|
|
2
|
+
export interface IHtmlEditorCommand {
|
|
3
|
+
[key: string]: (e: IRangeUpdate) => void;
|
|
4
|
+
}
|
|
5
|
+
declare const HtmlEditorCommands: IHtmlEditorCommand;
|
|
6
|
+
export default HtmlEditorCommands;
|
|
7
|
+
//# sourceMappingURL=HtmlEditorCommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlEditorCommands.d.ts","sourceRoot":"","sources":["../../src/html-editor/HtmlEditorCommands.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAC5C;AAGD,QAAA,MAAM,kBAAkB,oBAMD,CAAC;AAExB,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
System.register([], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var HtmlEditorCommands;
|
|
5
|
+
return {
|
|
6
|
+
setters: [],
|
|
7
|
+
execute: function () {
|
|
8
|
+
HtmlEditorCommands = {
|
|
9
|
+
bold({
|
|
10
|
+
range,
|
|
11
|
+
check,
|
|
12
|
+
update
|
|
13
|
+
}) {}
|
|
14
|
+
};
|
|
15
|
+
_export("default", HtmlEditorCommands);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=HtmlEditorCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HtmlEditorCommands","bold","range","check","update","_export"],"sources":["../../src/html-editor/HtmlEditorCommands.tsx"],"sourcesContent":[null],"mappings":";;;;;;;MAOMA,kBAAkB,GAAG;QAEvBC,IAAIA,CAAC;UAAEC,KAAK;UAAEC,KAAK;UAAEC;QAAM,CAAC,GAE5B;OAEmB;MAAAC,OAAA,YAERL,kBAAkB;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import XNode from "@web-atoms/core/dist/core/XNode";
|
|
2
|
+
import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
|
|
3
|
+
import "@web-atoms/data-styles/data-styles";
|
|
4
|
+
import { FilesAvailableEventArgs } from "../basic/UploadEvent";
|
|
5
|
+
export default class InlineHtmlEditor extends AtomControl {
|
|
6
|
+
/**
|
|
7
|
+
* Maximum undo limit
|
|
8
|
+
*/
|
|
9
|
+
undoLimit: number;
|
|
10
|
+
"event-content-changed"?: (ce: CustomEvent<string>) => any;
|
|
11
|
+
"event-content-ready"?: (ce: CustomEvent<HTMLElement>) => any;
|
|
12
|
+
"event-load-suggestions"?: (ce: CustomEvent<string>) => any;
|
|
13
|
+
"event-files-available"?: (ce: FilesAvailableEventArgs) => any;
|
|
14
|
+
editableSelector: string;
|
|
15
|
+
get htmlContent(): string;
|
|
16
|
+
set htmlContent(v: string);
|
|
17
|
+
get content(): string;
|
|
18
|
+
set content(value: string);
|
|
19
|
+
set toolbar(v: () => XNode);
|
|
20
|
+
private version;
|
|
21
|
+
private selection;
|
|
22
|
+
private editor;
|
|
23
|
+
private toolbarElement;
|
|
24
|
+
private token;
|
|
25
|
+
protected executeCommand(command: string, showUI?: boolean, value?: string): boolean;
|
|
26
|
+
protected getStyle(name: string): any;
|
|
27
|
+
protected queryCommandState(command: string): boolean;
|
|
28
|
+
protected onContentSet(): void;
|
|
29
|
+
protected saveSelection(): void;
|
|
30
|
+
insertImage(s: any, e: Event): string | Promise<string>;
|
|
31
|
+
protected preCreate(): void;
|
|
32
|
+
protected updateQueryCommand(): void;
|
|
33
|
+
protected onDrop(e: DragEvent): void;
|
|
34
|
+
protected contentModified(): void;
|
|
35
|
+
private onContentInput;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=InlineHtmlEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineHtmlEditor.d.ts","sourceRoot":"","sources":["../../src/html-editor/InlineHtmlEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,iCAAiC,CAAC;AAIpD,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAK5E,OAAO,oCAAoC,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAgB/D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IAErD;;OAEG;IACI,SAAS,SAAO;IAEhB,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAC3D,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;IAC9D,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAC5D,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,GAAG,CAAC;IAE/D,gBAAgB,EAAE,MAAM,CAAe;IAE9C,IAAW,WAAW,IAII,MAAM,CAF/B;IAED,IAAW,WAAW,CAAC,CAAC,EAAE,MAAM,EAE/B;IAED,IAAW,OAAO,IAIQ,MAAM,CAF/B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAG/B;IAED,IAAW,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,EAIhC;IAED,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,KAAK,CAAc;IAE3B,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM;IAuB1E,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAgB/B,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAgB3C,SAAS,CAAC,YAAY;IAYtB,SAAS,CAAC,aAAa;IAKhB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK;IAInC,SAAS,CAAC,SAAS,IAAI,IAAI;IAoB3B,SAAS,CAAC,kBAAkB;IAI5B,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS;IAkB7B,SAAS,CAAC,eAAe;IAIzB,OAAO,CAAC,cAAc;CAYzB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/core/sleep", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/core/dist/web/styles/CSS", "@web-atoms/data-styles/data-styles", "./commands/AddImage"], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var __awaiter, XNode, sleep, CancelToken, StyleRule, AtomControl, descendentElementIterator, CSS, showImageDialog, InlineHtmlEditor;
|
|
5
|
+
_export("default", void 0);
|
|
6
|
+
return {
|
|
7
|
+
setters: [function (_tslib) {
|
|
8
|
+
__awaiter = _tslib.__awaiter;
|
|
9
|
+
}, function (_webAtomsCoreDistCoreXNode) {
|
|
10
|
+
XNode = _webAtomsCoreDistCoreXNode.default;
|
|
11
|
+
}, function (_webAtomsCoreDistCoreSleep) {
|
|
12
|
+
sleep = _webAtomsCoreDistCoreSleep.default;
|
|
13
|
+
}, function (_webAtomsCoreDistCoreTypes) {
|
|
14
|
+
CancelToken = _webAtomsCoreDistCoreTypes.CancelToken;
|
|
15
|
+
}, function (_webAtomsCoreDistStyleStyleRule) {
|
|
16
|
+
StyleRule = _webAtomsCoreDistStyleStyleRule.default;
|
|
17
|
+
}, function (_webAtomsCoreDistWebControlsAtomControl) {
|
|
18
|
+
AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
|
|
19
|
+
}, function (_webAtomsCoreDistWebCoreAtomUI) {
|
|
20
|
+
descendentElementIterator = _webAtomsCoreDistWebCoreAtomUI.descendentElementIterator;
|
|
21
|
+
}, function (_webAtomsCoreDistWebStylesCSS) {
|
|
22
|
+
CSS = _webAtomsCoreDistWebStylesCSS.default;
|
|
23
|
+
}, function (_webAtomsDataStylesDataStyles) {}, function (_commandsAddImage) {
|
|
24
|
+
showImageDialog = _commandsAddImage.showImageDialog;
|
|
25
|
+
}],
|
|
26
|
+
execute: function () {
|
|
27
|
+
CSS(StyleRule().child(StyleRule("[data-element=toolbar]").verticalFlexLayout({}).child(StyleRule(".toolbar").flexLayout({}).nested(StyleRule(".command").and(StyleRule(".pressed").fontWeight("bold"))))), "[data-inline-editor=inline-editor]");
|
|
28
|
+
_export("default", InlineHtmlEditor = class InlineHtmlEditor extends AtomControl {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.undoLimit = 100;
|
|
32
|
+
this.editableSelector = ".editable";
|
|
33
|
+
}
|
|
34
|
+
get htmlContent() {
|
|
35
|
+
return this.content;
|
|
36
|
+
}
|
|
37
|
+
set htmlContent(v) {
|
|
38
|
+
this.content = v;
|
|
39
|
+
}
|
|
40
|
+
get content() {
|
|
41
|
+
return this.editor.innerHTML;
|
|
42
|
+
}
|
|
43
|
+
set content(value) {
|
|
44
|
+
this.editor.innerHTML = value;
|
|
45
|
+
setTimeout(() => this.onContentSet(), 100);
|
|
46
|
+
}
|
|
47
|
+
set toolbar(v) {
|
|
48
|
+
this.dispose(this.toolbarElement);
|
|
49
|
+
this.toolbarElement.innerHTML = "";
|
|
50
|
+
this.render(v(), this.toolbarElement, this);
|
|
51
|
+
}
|
|
52
|
+
executeCommand(command, showUI, value) {
|
|
53
|
+
const selection = window.getSelection();
|
|
54
|
+
selection.removeAllRanges();
|
|
55
|
+
selection.addRange(this.selection);
|
|
56
|
+
return document.execCommand(command, showUI, value);
|
|
57
|
+
}
|
|
58
|
+
getStyle(name) {
|
|
59
|
+
const selection = this.selection;
|
|
60
|
+
if (!selection) {
|
|
61
|
+
return void 0;
|
|
62
|
+
}
|
|
63
|
+
const node = selection;
|
|
64
|
+
const e = node.startContainer.parentElement;
|
|
65
|
+
return window.getComputedStyle(e)[name];
|
|
66
|
+
}
|
|
67
|
+
queryCommandState(command) {
|
|
68
|
+
return document.queryCommandState(command);
|
|
69
|
+
}
|
|
70
|
+
onContentSet() {
|
|
71
|
+
const start = this.editor.querySelector(this.editableSelector);
|
|
72
|
+
if (start) {
|
|
73
|
+
start.contentEditable = "true";
|
|
74
|
+
} else {
|
|
75
|
+
this.editor.firstElementChild.contentEditable = "true";
|
|
76
|
+
}
|
|
77
|
+
this.editor.dispatchEvent(new CustomEvent("contentReady", {
|
|
78
|
+
detail: this.editor.innerHTML,
|
|
79
|
+
bubbles: true
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
saveSelection() {
|
|
83
|
+
const selection = window.getSelection();
|
|
84
|
+
this.selection = selection.rangeCount === 0 ? null : selection.getRangeAt(0);
|
|
85
|
+
}
|
|
86
|
+
insertImage(s, e) {
|
|
87
|
+
return showImageDialog(s, e);
|
|
88
|
+
}
|
|
89
|
+
preCreate() {
|
|
90
|
+
this.version = 1;
|
|
91
|
+
this.element.setAttribute("data-inline-editor", "inline-editor");
|
|
92
|
+
this.render(XNode.create("div", null, XNode.create("div", {
|
|
93
|
+
"data-element": "toolbar"
|
|
94
|
+
}), XNode.create("div", {
|
|
95
|
+
"data-element": "editor"
|
|
96
|
+
})));
|
|
97
|
+
this.editor = this.element.querySelector(`[data-element=editor]`);
|
|
98
|
+
this.toolbarElement = this.element.querySelector(`[data-element=toolbar]`);
|
|
99
|
+
this.bindEvent(this.editor, "blur", () => this.saveSelection(), void 0, true);
|
|
100
|
+
this.bindEvent(this.editor, "input", e => this.onContentInput(e));
|
|
101
|
+
this.bindEvent(this.editor, "keydown", e => this.updateQueryCommand());
|
|
102
|
+
this.bindEvent(this.editor, "click", e => this.updateQueryCommand());
|
|
103
|
+
this.bindEvent(this.editor, "paste", () => this.onContentInput());
|
|
104
|
+
this.bindEvent(this.editor, "cut", () => this.onContentInput());
|
|
105
|
+
this.bindEvent(this.editor, "drop", e => this.onDrop(e));
|
|
106
|
+
}
|
|
107
|
+
updateQueryCommand() {
|
|
108
|
+
this.version++;
|
|
109
|
+
}
|
|
110
|
+
onDrop(e) {
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
const text = e.dataTransfer.getData("text/plain");
|
|
113
|
+
if (!text) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
let last = null;
|
|
117
|
+
for (const node of descendentElementIterator(this.element)) {
|
|
118
|
+
if (node.isContentEditable) {
|
|
119
|
+
last = node;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (last) {
|
|
124
|
+
last.appendChild(document.createTextNode(text));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
contentModified() {
|
|
128
|
+
this.element.dispatchEvent(new CustomEvent("contentChanged", {
|
|
129
|
+
detail: this.editor.innerHTML,
|
|
130
|
+
bubbles: true
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
onContentInput(e) {
|
|
134
|
+
var _a;
|
|
135
|
+
(_a = this.token) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
136
|
+
const token = this.token = new CancelToken();
|
|
137
|
+
this.app.runAsync(() => __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
yield sleep(500, token, false);
|
|
139
|
+
if (token.cancelled) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this.contentModified();
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=InlineHtmlEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["InlineHtmlEditor","_export","setters","_tslib","XNode","_webAtomsCoreDistCoreXNode","default","_webAtomsCoreDistCoreSleep","sleep","_webAtomsCoreDistCoreTypes","CancelToken","_webAtomsCoreDistStyleStyleRule","StyleRule","_webAtomsCoreDistWebControlsAtomControl","AtomControl","_webAtomsCoreDistWebCoreAtomUI","descendentElementIterator","_webAtomsCoreDistWebStylesCSS","CSS","_webAtomsDataStylesDataStyles","_commandsAddImage","showImageDialog","execute","child","verticalFlexLayout","flexLayout","nested","and","fontWeight","constructor","undoLimit","editableSelector","htmlContent","content","v","editor","innerHTML","value","setTimeout","onContentSet","toolbar","dispose","toolbarElement","render","executeCommand","command","showUI","selection","window","getSelection","removeAllRanges","addRange","document","execCommand","getStyle","name","node","e","startContainer","parentElement","getComputedStyle","queryCommandState","start","querySelector","contentEditable","firstElementChild","dispatchEvent","CustomEvent","detail","bubbles","saveSelection","rangeCount","getRangeAt","insertImage","s","preCreate","version","element","setAttribute","create","bindEvent","onContentInput","updateQueryCommand","onDrop","preventDefault","text","dataTransfer","getData","last","isContentEditable","appendChild","createTextNode","contentModified","_a","token","cancel","app","runAsync","__awaiter","cancelled"],"sources":["../../src/html-editor/InlineHtmlEditor.tsx"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const checkAnyParent: (check: (e: HTMLElement) => boolean) => (e: HTMLElement) => boolean;
|
|
2
|
+
export interface IRangeUpdate {
|
|
3
|
+
range: Range;
|
|
4
|
+
check: (e: HTMLElement) => boolean;
|
|
5
|
+
update: (e: HTMLElement, v?: any) => HTMLElement;
|
|
6
|
+
value?: any;
|
|
7
|
+
}
|
|
8
|
+
export interface IRangeCommand {
|
|
9
|
+
check: (e: HTMLElement) => boolean;
|
|
10
|
+
update: (e: HTMLElement, v?: any) => HTMLElement;
|
|
11
|
+
value?: any;
|
|
12
|
+
}
|
|
13
|
+
export default class RangeEditor {
|
|
14
|
+
static updateAttribute(range: Range, name: string, value: string, anyParent?: boolean): void;
|
|
15
|
+
static checkRange({ range, check, }: IRangeUpdate): boolean;
|
|
16
|
+
static updateRange({ range, check, update, value }: IRangeUpdate): void;
|
|
17
|
+
}
|
|
18
|
+
export declare const RangeEditorCommands: Record<string, IRangeCommand>;
|
|
19
|
+
//# sourceMappingURL=RangeEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RangeEditor.d.ts","sourceRoot":"","sources":["../../src/html-editor/RangeEditor.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,cAAe,WAAW,KAAK,OAAO,SAAS,WAAW,YAQpF,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,WAAW,CAAC;IACjD,KAAK,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,WAAW,CAAC;IACjD,KAAK,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,CAAC,OAAO,OAAO,WAAW;WAEd,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc;WAUpF,UAAU,CACpB,EACI,KAAK,EACL,KAAK,GACR,EAAE,YAAY;WASL,WAAW,CACrB,EACI,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACR,EAAE,YAAY;CAKtB;AAkBD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAmB7D,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
System.register([], function (_export, _context) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var RangeEditor, checkAnyParent, updateAttribute, updateStyle, RangeEditorCommands;
|
|
5
|
+
_export("default", void 0);
|
|
6
|
+
return {
|
|
7
|
+
setters: [],
|
|
8
|
+
execute: function () {
|
|
9
|
+
_export("checkAnyParent", checkAnyParent = check => e => {
|
|
10
|
+
while (e) {
|
|
11
|
+
if (check(e)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
e = e.parentElement;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
});
|
|
18
|
+
_export("default", RangeEditor = class RangeEditor {
|
|
19
|
+
static updateAttribute(range, name, value, anyParent = true) {
|
|
20
|
+
return this.updateRange({
|
|
21
|
+
range,
|
|
22
|
+
check: anyParent ? checkAnyParent(e => e.getAttribute(name) === value) : e => e.getAttribute(name) === value,
|
|
23
|
+
update: e => (e.setAttribute(name, value), e)
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static checkRange({
|
|
27
|
+
range,
|
|
28
|
+
check
|
|
29
|
+
}) {
|
|
30
|
+
const root = range.startContainer.nodeType !== Node.ELEMENT_NODE ? range.startContainer.parentElement : range.startContainer;
|
|
31
|
+
return check(root);
|
|
32
|
+
}
|
|
33
|
+
static updateRange({
|
|
34
|
+
range,
|
|
35
|
+
check,
|
|
36
|
+
update,
|
|
37
|
+
value
|
|
38
|
+
}) {}
|
|
39
|
+
});
|
|
40
|
+
updateAttribute = (name, value, anyParent = true) => ({
|
|
41
|
+
update: (e, v = value) => (e.setAttribute(name, v), e),
|
|
42
|
+
check: anyParent ? checkAnyParent(e => e.getAttribute(name) === value) : e => e.getAttribute(name) === value
|
|
43
|
+
});
|
|
44
|
+
updateStyle = (name, value, anyParent = true) => ({
|
|
45
|
+
update: (e, v = value) => (e.style[name] = v, e),
|
|
46
|
+
check: anyParent ? checkAnyParent(e => e.style[name] === value) : e => e.style[name] === value
|
|
47
|
+
});
|
|
48
|
+
_export("RangeEditorCommands", RangeEditorCommands = {
|
|
49
|
+
bold: updateStyle("fontWeight", "bold"),
|
|
50
|
+
italic: updateStyle("fontStyle", "italic"),
|
|
51
|
+
underline: updateStyle("textDecoration", "underline"),
|
|
52
|
+
strikeThrough: updateStyle("textDecoration", "line-through"),
|
|
53
|
+
foreColor: {
|
|
54
|
+
check: () => false,
|
|
55
|
+
update: (e, value) => {
|
|
56
|
+
e.style.color = value;
|
|
57
|
+
return e;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
removeFormat: {
|
|
61
|
+
check: () => false,
|
|
62
|
+
update: e => {
|
|
63
|
+
e.removeAttribute("style");
|
|
64
|
+
return e;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=RangeEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RangeEditor","checkAnyParent","updateAttribute","updateStyle","RangeEditorCommands","_export","setters","execute","check","e","parentElement","range","name","value","anyParent","updateRange","getAttribute","update","setAttribute","checkRange","root","startContainer","nodeType","Node","ELEMENT_NODE","v","style","bold","italic","underline","strikeThrough","foreColor","color","removeFormat","removeAttribute"],"sources":["../../src/html-editor/RangeEditor.tsx"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export default function AttachFile({ accept, maxSize, authorize, capture, ariaLabel }: {
|
|
2
|
+
accept?: string;
|
|
3
|
+
maxSize?: number;
|
|
4
|
+
authorize?: boolean;
|
|
5
|
+
capture?: string;
|
|
6
|
+
ariaLabel?: string;
|
|
5
7
|
}): any;
|
|
6
8
|
//# sourceMappingURL=AttachFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachFile.d.ts","sourceRoot":"","sources":["../../../src/html-editor/commands/AttachFile.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AttachFile.d.ts","sourceRoot":"","sources":["../../../src/html-editor/commands/AttachFile.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,MAAkB,EAClB,OAAgB,EAChB,SAAgB,EAChB,OAAwB,EACxB,SAAoB,EACvB;;;;;;CAAA,OAuBA"}
|