@web-atoms/web-controls 2.3.67 → 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.
@@ -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
- import AtomHtmlEditor from "../AtomHtmlEditor";
2
- export default function AttachFile({ eventInsertHtml, insertCommand }: {
3
- eventInsertHtml?: (source: AtomHtmlEditor, e: Event) => void;
4
- insertCommand?: import("./HtmlCommands").IHtmlCommand;
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":"AAAA,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAiC/C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,eAkBC,EACD,aAAwC,EAC3C;+BApB8B,cAAc,KAAK,KAAK;;CAoBtD,OAQA"}
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"}