@hypericon/mico 0.3.24 → 0.4.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/README.md +2 -0
- package/dist/esm/components/accordion/index.d.ts +0 -0
- package/dist/esm/components/accordion/index.js +1 -0
- package/dist/esm/components/data-grid/index.d.ts +0 -0
- package/dist/esm/components/data-grid/index.js +1 -0
- package/dist/esm/components/data-table/index.d.ts +0 -0
- package/dist/esm/components/data-table/index.js +1 -0
- package/dist/esm/components/dialog/Dialog.d.ts +1 -0
- package/dist/esm/components/dialog/Dialog.js +10 -0
- package/dist/esm/components/dialog/dialog-manager.d.ts +45 -0
- package/dist/esm/components/dialog/dialog-manager.js +163 -0
- package/dist/esm/components/dialog/index.d.ts +1 -0
- package/dist/esm/components/dialog/index.js +2 -0
- package/dist/esm/components/drag-handler/DragHandler.d.ts +40 -0
- package/dist/esm/components/drag-handler/DragHandler.js +104 -0
- package/dist/esm/components/drag-handler/index.d.ts +1 -0
- package/dist/esm/components/drag-handler/index.js +1 -0
- package/dist/esm/components/drawer/index.d.ts +0 -0
- package/dist/esm/components/drawer/index.js +1 -0
- package/dist/esm/components/drop-target/DropTarget.d.ts +24 -0
- package/dist/esm/components/drop-target/DropTarget.js +56 -0
- package/dist/esm/components/drop-target/drop-target.state.d.ts +9 -0
- package/dist/esm/components/drop-target/drop-target.state.js +73 -0
- package/dist/esm/components/drop-target/index.d.ts +1 -0
- package/dist/esm/components/drop-target/index.js +1 -0
- package/dist/esm/components/form/Form.d.ts +2 -0
- package/dist/esm/components/form/Form.js +9 -0
- package/dist/esm/components/form/index.d.ts +1 -0
- package/dist/esm/components/form/index.js +1 -0
- package/dist/esm/components/icon/Icon.d.ts +21 -0
- package/dist/esm/components/icon/Icon.js +22 -0
- package/dist/esm/components/icon/icons.d.ts +3 -0
- package/dist/esm/components/icon/icons.js +1 -0
- package/dist/esm/components/icon/index.d.ts +2 -0
- package/dist/esm/components/icon/index.js +2 -0
- package/dist/esm/components/index.d.ts +12 -0
- package/dist/esm/components/index.js +20 -0
- package/dist/esm/components/markdown/Markdown.d.ts +34 -0
- package/dist/esm/components/markdown/Markdown.js +55 -0
- package/dist/esm/components/markdown/index.d.ts +1 -0
- package/dist/esm/components/markdown/index.js +1 -0
- package/dist/esm/components/markdown-editor/MarkdownEditor.d.ts +21 -0
- package/dist/esm/components/markdown-editor/MarkdownEditor.js +181 -0
- package/dist/esm/components/markdown-editor/index.d.ts +1 -0
- package/dist/esm/components/markdown-editor/index.js +1 -0
- package/dist/esm/components/markdown-editor/markdown-editor.state.d.ts +31 -0
- package/dist/esm/components/markdown-editor/markdown-editor.state.js +255 -0
- package/dist/esm/components/menu/Menu.d.ts +14 -0
- package/dist/esm/components/menu/Menu.js +81 -0
- package/dist/esm/components/menu/MenuButton.d.ts +16 -0
- package/dist/esm/components/menu/MenuButton.js +75 -0
- package/dist/esm/components/menu/MenuSeparator.d.ts +2 -0
- package/dist/esm/components/menu/MenuSeparator.js +11 -0
- package/dist/esm/components/menu/index.d.ts +6 -0
- package/dist/esm/components/menu/index.js +6 -0
- package/dist/esm/components/menu/menu-constants.d.ts +4 -0
- package/dist/esm/components/menu/menu-constants.js +4 -0
- package/dist/esm/components/menu/menu-manager.d.ts +22 -0
- package/dist/esm/components/menu/menu-manager.js +72 -0
- package/dist/esm/components/menu/menu-settings.d.ts +9 -0
- package/dist/esm/components/menu/menu-settings.js +9 -0
- package/dist/esm/components/modal/index.d.ts +0 -0
- package/dist/esm/components/modal/index.js +1 -0
- package/dist/esm/components/pagination/Pagination.d.ts +40 -0
- package/dist/esm/components/pagination/Pagination.js +66 -0
- package/dist/esm/components/pagination/index.d.ts +2 -0
- package/dist/esm/components/pagination/index.js +2 -0
- package/dist/esm/components/pagination/pagination-settings.d.ts +17 -0
- package/dist/esm/components/pagination/pagination-settings.js +16 -0
- package/dist/esm/components/panel-tree/PanelTree.d.ts +26 -0
- package/dist/esm/components/panel-tree/PanelTree.js +174 -0
- package/dist/esm/components/panel-tree/index.d.ts +0 -0
- package/dist/esm/components/panel-tree/index.js +1 -0
- package/dist/esm/components/panel-tree/panel-tree-constants.d.ts +3 -0
- package/dist/esm/components/panel-tree/panel-tree-constants.js +3 -0
- package/dist/esm/components/panel-tree/panel-tree-store.d.ts +23 -0
- package/dist/esm/components/panel-tree/panel-tree-store.js +59 -0
- package/dist/esm/components/panel-tree/panel-tree-utils.d.ts +17 -0
- package/dist/esm/components/panel-tree/panel-tree-utils.js +55 -0
- package/dist/esm/components/popover/index.d.ts +0 -0
- package/dist/esm/components/popover/index.js +1 -0
- package/dist/esm/components/reorderable-list/RedorderableList.d.ts +55 -0
- package/dist/esm/components/reorderable-list/RedorderableList.js +202 -0
- package/dist/esm/components/reorderable-list/index.d.ts +0 -0
- package/dist/esm/components/reorderable-list/index.js +1 -0
- package/dist/esm/components/select/Select.d.ts +44 -0
- package/dist/esm/components/select/Select.js +108 -0
- package/dist/esm/components/select/SelectOptionsPanel.d.ts +21 -0
- package/dist/esm/components/select/SelectOptionsPanel.js +168 -0
- package/dist/esm/components/select/constants.d.ts +2 -0
- package/dist/esm/components/select/constants.js +2 -0
- package/dist/esm/components/select/index.d.ts +2 -0
- package/dist/esm/components/select/index.js +3 -0
- package/dist/esm/components/select/select-options-manager.d.ts +39 -0
- package/dist/esm/components/select/select-options-manager.js +63 -0
- package/dist/esm/components/tab-panel/TabPanel.d.ts +23 -0
- package/dist/esm/components/tab-panel/TabPanel.js +88 -0
- package/dist/esm/components/tab-panel/index.d.ts +3 -0
- package/dist/esm/components/tab-panel/index.js +3 -0
- package/dist/esm/components/tab-panel/tab-panel-default-settings.d.ts +17 -0
- package/dist/esm/components/tab-panel/tab-panel-default-settings.js +17 -0
- package/dist/esm/components/tab-panel/tab-panel-settings.d.ts +28 -0
- package/dist/esm/components/tab-panel/tab-panel-settings.js +11 -0
- package/dist/esm/components/table/Table.d.ts +64 -0
- package/dist/esm/components/table/Table.js +68 -0
- package/dist/esm/components/table/index.d.ts +1 -0
- package/dist/esm/components/table/index.js +1 -0
- package/dist/esm/components/toast/index.d.ts +1 -0
- package/dist/esm/components/toast/index.js +1 -0
- package/dist/esm/components/toast/toast.d.ts +15 -0
- package/dist/esm/components/toast/toast.js +31 -0
- package/dist/esm/components/tooltip/index.d.ts +3 -0
- package/dist/esm/components/tooltip/index.js +3 -0
- package/dist/esm/components/tooltip/tooltip-defaults.d.ts +23 -0
- package/dist/esm/components/tooltip/tooltip-defaults.js +22 -0
- package/dist/esm/components/tooltip/tooltip-function.d.ts +35 -0
- package/dist/esm/components/tooltip/tooltip-function.js +200 -0
- package/dist/esm/components/tooltip/tooltip-interfaces.d.ts +11 -0
- package/dist/esm/components/tooltip/tooltip-interfaces.js +1 -0
- package/dist/esm/components/tree/Tree.d.ts +110 -0
- package/dist/esm/components/tree/Tree.js +222 -0
- package/dist/esm/components/tree/index.d.ts +3 -0
- package/dist/esm/components/tree/index.js +3 -0
- package/dist/esm/components/tree/tree-node.interface.d.ts +9 -0
- package/dist/esm/components/tree/tree-node.interface.js +1 -0
- package/dist/esm/components/tree/tree-utils.d.ts +11 -0
- package/dist/esm/components/tree/tree-utils.js +18 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/utils/date-time.d.ts +3 -0
- package/dist/esm/utils/date-time.js +22 -0
- package/dist/esm/utils/dom.d.ts +16 -0
- package/dist/esm/utils/dom.js +28 -0
- package/dist/esm/utils/events.d.ts +1 -0
- package/dist/esm/utils/events.js +25 -0
- package/dist/esm/utils/index.d.ts +3 -0
- package/dist/esm/utils/index.js +3 -0
- package/package.json +7 -3
- /package/dist/{components → cjs/components}/accordion/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/accordion/index.js +0 -0
- /package/dist/{components → cjs/components}/data-grid/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/data-grid/index.js +0 -0
- /package/dist/{components → cjs/components}/data-table/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/data-table/index.js +0 -0
- /package/dist/{components → cjs/components}/dialog/Dialog.d.ts +0 -0
- /package/dist/{components → cjs/components}/dialog/Dialog.js +0 -0
- /package/dist/{components → cjs/components}/dialog/dialog-manager.d.ts +0 -0
- /package/dist/{components → cjs/components}/dialog/dialog-manager.js +0 -0
- /package/dist/{components → cjs/components}/dialog/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/dialog/index.js +0 -0
- /package/dist/{components → cjs/components}/drag-handler/DragHandler.d.ts +0 -0
- /package/dist/{components → cjs/components}/drag-handler/DragHandler.js +0 -0
- /package/dist/{components → cjs/components}/drag-handler/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/drag-handler/index.js +0 -0
- /package/dist/{components → cjs/components}/drawer/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/drawer/index.js +0 -0
- /package/dist/{components → cjs/components}/drop-target/DropTarget.d.ts +0 -0
- /package/dist/{components → cjs/components}/drop-target/DropTarget.js +0 -0
- /package/dist/{components → cjs/components}/drop-target/drop-target.state.d.ts +0 -0
- /package/dist/{components → cjs/components}/drop-target/drop-target.state.js +0 -0
- /package/dist/{components → cjs/components}/drop-target/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/drop-target/index.js +0 -0
- /package/dist/{components → cjs/components}/form/Form.d.ts +0 -0
- /package/dist/{components → cjs/components}/form/Form.js +0 -0
- /package/dist/{components → cjs/components}/form/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/form/index.js +0 -0
- /package/dist/{components → cjs/components}/icon/Icon.d.ts +0 -0
- /package/dist/{components → cjs/components}/icon/Icon.js +0 -0
- /package/dist/{components → cjs/components}/icon/icons.d.ts +0 -0
- /package/dist/{components → cjs/components}/icon/icons.js +0 -0
- /package/dist/{components → cjs/components}/icon/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/icon/index.js +0 -0
- /package/dist/{components → cjs/components}/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/index.js +0 -0
- /package/dist/{components → cjs/components}/markdown/Markdown.d.ts +0 -0
- /package/dist/{components → cjs/components}/markdown/Markdown.js +0 -0
- /package/dist/{components → cjs/components}/markdown/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/markdown/index.js +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/MarkdownEditor.d.ts +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/MarkdownEditor.js +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/index.js +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/markdown-editor.state.d.ts +0 -0
- /package/dist/{components → cjs/components}/markdown-editor/markdown-editor.state.js +0 -0
- /package/dist/{components → cjs/components}/menu/Menu.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/Menu.js +0 -0
- /package/dist/{components → cjs/components}/menu/MenuButton.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/MenuButton.js +0 -0
- /package/dist/{components → cjs/components}/menu/MenuSeparator.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/MenuSeparator.js +0 -0
- /package/dist/{components → cjs/components}/menu/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/index.js +0 -0
- /package/dist/{components → cjs/components}/menu/menu-constants.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/menu-constants.js +0 -0
- /package/dist/{components → cjs/components}/menu/menu-manager.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/menu-manager.js +0 -0
- /package/dist/{components → cjs/components}/menu/menu-settings.d.ts +0 -0
- /package/dist/{components → cjs/components}/menu/menu-settings.js +0 -0
- /package/dist/{components → cjs/components}/modal/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/modal/index.js +0 -0
- /package/dist/{components → cjs/components}/pagination/Pagination.d.ts +0 -0
- /package/dist/{components → cjs/components}/pagination/Pagination.js +0 -0
- /package/dist/{components → cjs/components}/pagination/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/pagination/index.js +0 -0
- /package/dist/{components → cjs/components}/pagination/pagination-settings.d.ts +0 -0
- /package/dist/{components → cjs/components}/pagination/pagination-settings.js +0 -0
- /package/dist/{components → cjs/components}/panel-tree/PanelTree.d.ts +0 -0
- /package/dist/{components → cjs/components}/panel-tree/PanelTree.js +0 -0
- /package/dist/{components → cjs/components}/panel-tree/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/panel-tree/index.js +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-constants.d.ts +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-constants.js +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-store.d.ts +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-store.js +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-utils.d.ts +0 -0
- /package/dist/{components → cjs/components}/panel-tree/panel-tree-utils.js +0 -0
- /package/dist/{components → cjs/components}/popover/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/popover/index.js +0 -0
- /package/dist/{components → cjs/components}/reorderable-list/RedorderableList.d.ts +0 -0
- /package/dist/{components → cjs/components}/reorderable-list/RedorderableList.js +0 -0
- /package/dist/{components → cjs/components}/reorderable-list/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/reorderable-list/index.js +0 -0
- /package/dist/{components → cjs/components}/select/Select.d.ts +0 -0
- /package/dist/{components → cjs/components}/select/Select.js +0 -0
- /package/dist/{components → cjs/components}/select/SelectOptionsPanel.d.ts +0 -0
- /package/dist/{components → cjs/components}/select/SelectOptionsPanel.js +0 -0
- /package/dist/{components → cjs/components}/select/constants.d.ts +0 -0
- /package/dist/{components → cjs/components}/select/constants.js +0 -0
- /package/dist/{components → cjs/components}/select/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/select/index.js +0 -0
- /package/dist/{components → cjs/components}/select/select-options-manager.d.ts +0 -0
- /package/dist/{components → cjs/components}/select/select-options-manager.js +0 -0
- /package/dist/{components → cjs/components}/tab-panel/TabPanel.d.ts +0 -0
- /package/dist/{components → cjs/components}/tab-panel/TabPanel.js +0 -0
- /package/dist/{components → cjs/components}/tab-panel/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/tab-panel/index.js +0 -0
- /package/dist/{components → cjs/components}/tab-panel/tab-panel-default-settings.d.ts +0 -0
- /package/dist/{components → cjs/components}/tab-panel/tab-panel-default-settings.js +0 -0
- /package/dist/{components → cjs/components}/tab-panel/tab-panel-settings.d.ts +0 -0
- /package/dist/{components → cjs/components}/tab-panel/tab-panel-settings.js +0 -0
- /package/dist/{components → cjs/components}/table/Table.d.ts +0 -0
- /package/dist/{components → cjs/components}/table/Table.js +0 -0
- /package/dist/{components → cjs/components}/table/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/table/index.js +0 -0
- /package/dist/{components → cjs/components}/toast/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/toast/index.js +0 -0
- /package/dist/{components → cjs/components}/toast/toast.d.ts +0 -0
- /package/dist/{components → cjs/components}/toast/toast.js +0 -0
- /package/dist/{components → cjs/components}/tooltip/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/tooltip/index.js +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-defaults.d.ts +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-defaults.js +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-function.d.ts +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-function.js +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-interfaces.d.ts +0 -0
- /package/dist/{components → cjs/components}/tooltip/tooltip-interfaces.js +0 -0
- /package/dist/{components → cjs/components}/tree/Tree.d.ts +0 -0
- /package/dist/{components → cjs/components}/tree/Tree.js +0 -0
- /package/dist/{components → cjs/components}/tree/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/tree/index.js +0 -0
- /package/dist/{components → cjs/components}/tree/tree-node.interface.d.ts +0 -0
- /package/dist/{components → cjs/components}/tree/tree-node.interface.js +0 -0
- /package/dist/{components → cjs/components}/tree/tree-utils.d.ts +0 -0
- /package/dist/{components → cjs/components}/tree/tree-utils.js +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{index.js → cjs/index.js} +0 -0
- /package/dist/{utils → cjs/utils}/date-time.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/date-time.js +0 -0
- /package/dist/{utils → cjs/utils}/dom.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/dom.js +0 -0
- /package/dist/{utils → cjs/utils}/events.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/events.js +0 -0
- /package/dist/{utils → cjs/utils}/index.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/index.js +0 -0
package/README.md
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
export interface DialogManagerOptions {
|
|
3
|
+
containerEl?: HTMLElement;
|
|
4
|
+
debug?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface OpenDialogResult {
|
|
7
|
+
close: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare class DialogManager {
|
|
10
|
+
private containerEl;
|
|
11
|
+
private currentDialog;
|
|
12
|
+
get isOpen(): boolean;
|
|
13
|
+
private debug;
|
|
14
|
+
constructor(options?: DialogManagerOptions);
|
|
15
|
+
/**
|
|
16
|
+
* Open a new dialog with the given contents.
|
|
17
|
+
*
|
|
18
|
+
* Note: to make use of Mithril's auto-redraw system, the dialog must be defined as a component,
|
|
19
|
+
* not a Vnode.
|
|
20
|
+
*
|
|
21
|
+
* Example:
|
|
22
|
+
* ```ts
|
|
23
|
+
* open(MyDialog, { ... }); // WILL redraw
|
|
24
|
+
* open(m("h1", "...")); // will NOT redraw
|
|
25
|
+
* ```
|
|
26
|
+
* @param dialog
|
|
27
|
+
* @param attrs
|
|
28
|
+
* @returns once the dialog has been created and is being displayed to the user
|
|
29
|
+
*/
|
|
30
|
+
open<A = {}>(dialog: m.Component<A, any> | m.Vnode<any, any>, attrs?: A, opts?: {
|
|
31
|
+
backdropDismiss?: boolean;
|
|
32
|
+
noEscape?: boolean;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
private _open;
|
|
35
|
+
private openWithComponent;
|
|
36
|
+
private openWithVnode;
|
|
37
|
+
/**
|
|
38
|
+
* Close the open dialog.
|
|
39
|
+
*
|
|
40
|
+
* Silently does nothing if no dialog is open.
|
|
41
|
+
*/
|
|
42
|
+
close(): void;
|
|
43
|
+
private closeThis;
|
|
44
|
+
}
|
|
45
|
+
export declare const dialogMgr: DialogManager;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import m from "mithril";
|
|
11
|
+
import { mouseWithinElement } from "../../utils";
|
|
12
|
+
export class DialogManager {
|
|
13
|
+
get isOpen() { return this.currentDialog !== undefined; }
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this.debug = false;
|
|
16
|
+
if (options === null || options === void 0 ? void 0 : options.debug)
|
|
17
|
+
this.debug = options.debug;
|
|
18
|
+
if (options === null || options === void 0 ? void 0 : options.containerEl) {
|
|
19
|
+
this.containerEl = options.containerEl;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.containerEl = document.createElement("div");
|
|
23
|
+
this.containerEl.classList.add("mico-dialog-container");
|
|
24
|
+
document.body.append(this.containerEl);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Open a new dialog with the given contents.
|
|
29
|
+
*
|
|
30
|
+
* Note: to make use of Mithril's auto-redraw system, the dialog must be defined as a component,
|
|
31
|
+
* not a Vnode.
|
|
32
|
+
*
|
|
33
|
+
* Example:
|
|
34
|
+
* ```ts
|
|
35
|
+
* open(MyDialog, { ... }); // WILL redraw
|
|
36
|
+
* open(m("h1", "...")); // will NOT redraw
|
|
37
|
+
* ```
|
|
38
|
+
* @param dialog
|
|
39
|
+
* @param attrs
|
|
40
|
+
* @returns once the dialog has been created and is being displayed to the user
|
|
41
|
+
*/
|
|
42
|
+
open(dialog, attrs, opts) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const element = this.containerEl;
|
|
45
|
+
const manager = this;
|
|
46
|
+
const dialogId = `${Math.random().toString().replace("0.", "")}`;
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
m.mount(element, {
|
|
49
|
+
oninit() {
|
|
50
|
+
//
|
|
51
|
+
},
|
|
52
|
+
oncreate({ dom }) {
|
|
53
|
+
var _a;
|
|
54
|
+
const dialog = dom;
|
|
55
|
+
(_a = dialog.showModal) === null || _a === void 0 ? void 0 : _a.call(dialog);
|
|
56
|
+
manager.currentDialog = dialog;
|
|
57
|
+
// Optionally wire up the backdrop to dismiss the dialog
|
|
58
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.backdropDismiss) === true) {
|
|
59
|
+
dialog.addEventListener("click", (ev) => {
|
|
60
|
+
// console.log(ev);
|
|
61
|
+
if (ev.target !== dom)
|
|
62
|
+
return;
|
|
63
|
+
const isInDialog = mouseWithinElement(ev, dom);
|
|
64
|
+
if (!isInDialog)
|
|
65
|
+
manager.close();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
resolve();
|
|
69
|
+
},
|
|
70
|
+
onremove() {
|
|
71
|
+
manager.debug && console.log("mounted component onremove()");
|
|
72
|
+
resolve(undefined);
|
|
73
|
+
},
|
|
74
|
+
view() {
|
|
75
|
+
return m("dialog", {
|
|
76
|
+
id: dialogId,
|
|
77
|
+
key: dialogId,
|
|
78
|
+
class: "mico-dialog",
|
|
79
|
+
onclose: () => {
|
|
80
|
+
manager.debug && console.log("dialog onclose()");
|
|
81
|
+
m.mount(manager.containerEl, null);
|
|
82
|
+
},
|
|
83
|
+
oncancel: (ev) => {
|
|
84
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.noEscape) === true) {
|
|
85
|
+
ev.preventDefault();
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
}, [
|
|
89
|
+
("view" in dialog)
|
|
90
|
+
? m(dialog, Object.assign({}, attrs))
|
|
91
|
+
: dialog,
|
|
92
|
+
]);
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// This was attempting to intercept a certain function and then return a result from open()
|
|
99
|
+
// asynchronously, but it was all getting needlessly complicated
|
|
100
|
+
_open(dialog, attrs, options) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const element = this.containerEl;
|
|
103
|
+
const manager = this;
|
|
104
|
+
const dialogId = `${Math.random().toString()}`;
|
|
105
|
+
// const resultFnKey = options?.resultFn;
|
|
106
|
+
// if (resultFnKey) {
|
|
107
|
+
// if (attrs) {
|
|
108
|
+
// attrs[resultFnKey] =
|
|
109
|
+
// }
|
|
110
|
+
// }
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
m.mount(element, {
|
|
113
|
+
oninit() {
|
|
114
|
+
//
|
|
115
|
+
},
|
|
116
|
+
oncreate({ dom }) {
|
|
117
|
+
var _a;
|
|
118
|
+
const dialog = dom;
|
|
119
|
+
(_a = dialog.showModal) === null || _a === void 0 ? void 0 : _a.call(dialog);
|
|
120
|
+
manager.currentDialog = dialog;
|
|
121
|
+
},
|
|
122
|
+
onremove() {
|
|
123
|
+
console.log("mounted component onremove()");
|
|
124
|
+
resolve(undefined);
|
|
125
|
+
},
|
|
126
|
+
view() {
|
|
127
|
+
return m("dialog", {
|
|
128
|
+
id: dialogId,
|
|
129
|
+
key: dialogId,
|
|
130
|
+
onclose: () => {
|
|
131
|
+
console.log("dialog onclose()");
|
|
132
|
+
m.mount(manager.containerEl, null);
|
|
133
|
+
},
|
|
134
|
+
}, [
|
|
135
|
+
("view" in dialog)
|
|
136
|
+
? m(dialog, Object.assign({}, attrs))
|
|
137
|
+
: dialog,
|
|
138
|
+
]);
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
openWithComponent(dialog) { }
|
|
145
|
+
openWithVnode(dialog) { }
|
|
146
|
+
/**
|
|
147
|
+
* Close the open dialog.
|
|
148
|
+
*
|
|
149
|
+
* Silently does nothing if no dialog is open.
|
|
150
|
+
*/
|
|
151
|
+
close() {
|
|
152
|
+
var _a;
|
|
153
|
+
// m.mount(this.containerEl, null);
|
|
154
|
+
(_a = this.currentDialog) === null || _a === void 0 ? void 0 : _a.close();
|
|
155
|
+
}
|
|
156
|
+
// an attempt to close a specific dialog, but only one can be open at once anyway
|
|
157
|
+
closeThis(dialog) {
|
|
158
|
+
console.log("close:");
|
|
159
|
+
console.log(dialog);
|
|
160
|
+
console.log(dialog.prototype);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export const dialogMgr = new DialogManager();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./dialog-manager";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
export interface DragHandlerAttrs {
|
|
3
|
+
/** Enable dragging this element */
|
|
4
|
+
enableDrag?: boolean;
|
|
5
|
+
/** Enable dropping dragged elements on this element */
|
|
6
|
+
enableDrop?: boolean;
|
|
7
|
+
/** Optionally specify what sort of effect should be allowed using this drag */
|
|
8
|
+
dragEffect?: "link" | "copy" | "none" | "copyLink" | "copyMove" | "linkMove" | "move" | "all" | "uninitialized";
|
|
9
|
+
dragData?: string | (() => string);
|
|
10
|
+
onDragStart?: (args: {
|
|
11
|
+
ev: DragEvent;
|
|
12
|
+
dragData?: string;
|
|
13
|
+
}) => any;
|
|
14
|
+
onDragOver?: (args: {
|
|
15
|
+
ev: DragEvent;
|
|
16
|
+
dragData?: string;
|
|
17
|
+
}) => any;
|
|
18
|
+
onDrop?: (args: {
|
|
19
|
+
ev: DragEvent;
|
|
20
|
+
dragData?: string;
|
|
21
|
+
}) => any;
|
|
22
|
+
/** Enable debug logging for events */
|
|
23
|
+
enableLogging?: boolean;
|
|
24
|
+
/** CSS classes to apply to the wrapper div */
|
|
25
|
+
class?: string;
|
|
26
|
+
/** CSS styles to apply to the wrapper div */
|
|
27
|
+
style?: string;
|
|
28
|
+
/** CSS classes to apply to the div while it is being dragged (if dragging is enabled) */
|
|
29
|
+
classDragging?: string;
|
|
30
|
+
/** CSS styles to apply to the div while it is being dragged (if dragging is enabled) */
|
|
31
|
+
styleDragging?: string;
|
|
32
|
+
/** CSS classes to apply to the div while it is being dragged over (if dropping is enabled) */
|
|
33
|
+
classDraggingOver?: string;
|
|
34
|
+
/** CSS styles to apply to the div while it is being dragged over (if dropping is enabled) */
|
|
35
|
+
styleDraggingOver?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare const DragHandler: m.Component<DragHandlerAttrs, {
|
|
38
|
+
isDragging: boolean;
|
|
39
|
+
isDraggingOver: boolean;
|
|
40
|
+
}>;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
const DEFAULT_DATA_FORMAT = "application/mico-drag-handler";
|
|
3
|
+
export const DragHandler = {
|
|
4
|
+
oninit() {
|
|
5
|
+
this.isDragging = false;
|
|
6
|
+
this.isDraggingOver = false;
|
|
7
|
+
},
|
|
8
|
+
view({ attrs, children }) {
|
|
9
|
+
var _a, _b, _c, _d, _e, _f;
|
|
10
|
+
return m("", {
|
|
11
|
+
class: `${(_a = attrs.class) !== null && _a !== void 0 ? _a : ""} ${this.isDragging ? (_b = attrs.classDragging) !== null && _b !== void 0 ? _b : "" : ""} ${this.isDraggingOver ? (_c = attrs.classDraggingOver) !== null && _c !== void 0 ? _c : "" : ""}`,
|
|
12
|
+
style: `${(_d = attrs.style) !== null && _d !== void 0 ? _d : ""} ${this.isDragging ? (_e = attrs.classDragging) !== null && _e !== void 0 ? _e : "" : ""} ${this.isDraggingOver ? (_f = attrs.classDraggingOver) !== null && _f !== void 0 ? _f : "" : ""}`,
|
|
13
|
+
draggable: attrs.enableDrag,
|
|
14
|
+
ondragstart: (ev) => {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
if (!attrs.enableDrag)
|
|
17
|
+
return;
|
|
18
|
+
if (!ev.dataTransfer)
|
|
19
|
+
return;
|
|
20
|
+
let dragData;
|
|
21
|
+
if (attrs.dragData !== undefined) {
|
|
22
|
+
if (typeof attrs.dragData === "function") {
|
|
23
|
+
dragData = (_a = attrs.dragData) === null || _a === void 0 ? void 0 : _a.call(attrs);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
dragData = attrs.dragData;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (dragData !== undefined) {
|
|
30
|
+
ev.dataTransfer.setData(DEFAULT_DATA_FORMAT, dragData);
|
|
31
|
+
}
|
|
32
|
+
if (attrs.dragEffect) {
|
|
33
|
+
ev.dataTransfer.effectAllowed = attrs.dragEffect;
|
|
34
|
+
}
|
|
35
|
+
this.isDragging = true;
|
|
36
|
+
attrs.enableLogging && console.log(`start dragging, effect: ${ev.dataTransfer.effectAllowed}, data:`, dragData);
|
|
37
|
+
(_b = attrs.onDragStart) === null || _b === void 0 ? void 0 : _b.call(attrs, { ev, dragData });
|
|
38
|
+
},
|
|
39
|
+
ondrag: (ev) => {
|
|
40
|
+
// attrs.enableLogging && console.log(`on drag`, item.data);
|
|
41
|
+
},
|
|
42
|
+
// ondragenter: (ev: DragEvent) => {
|
|
43
|
+
// ev.preventDefault();
|
|
44
|
+
// if (!attrs.enableDrop) return false;
|
|
45
|
+
// if (attrs.enableLogging) {
|
|
46
|
+
// const dragData = ev.dataTransfer?.getData(DEFAULT_DATA_FORMAT);
|
|
47
|
+
// console.log(`drag enter, effect: ${attrs.dragEffect}, data:`, dragData);
|
|
48
|
+
// }
|
|
49
|
+
// this.isDraggingOver = true;
|
|
50
|
+
// },
|
|
51
|
+
ondragover: (ev) => {
|
|
52
|
+
var _a, _b, _c;
|
|
53
|
+
ev.preventDefault();
|
|
54
|
+
if (!attrs.enableDrop)
|
|
55
|
+
return false;
|
|
56
|
+
// const overDiv = ev.currentTarget as HTMLElement;
|
|
57
|
+
// const targetRect = overDiv.getBoundingClientRect();
|
|
58
|
+
// const topToMouse = ev.clientY - targetRect.top;
|
|
59
|
+
// const isAbove = topToMouse < (targetRect.height - topToMouse);
|
|
60
|
+
// this.isTargettingAbove = isAbove;
|
|
61
|
+
this.isDraggingOver = true;
|
|
62
|
+
const dragData = (_a = ev.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData(DEFAULT_DATA_FORMAT);
|
|
63
|
+
attrs.enableLogging && console.log(`drag over, effect: ${(_b = ev.dataTransfer) === null || _b === void 0 ? void 0 : _b.effectAllowed}, data:`, dragData);
|
|
64
|
+
(_c = attrs.onDragOver) === null || _c === void 0 ? void 0 : _c.call(attrs, { ev, dragData });
|
|
65
|
+
return false;
|
|
66
|
+
},
|
|
67
|
+
ondragleave: (ev) => {
|
|
68
|
+
this.isDraggingOver = false;
|
|
69
|
+
},
|
|
70
|
+
ondrop: (ev) => {
|
|
71
|
+
var _a, _b, _c;
|
|
72
|
+
ev.stopPropagation();
|
|
73
|
+
ev.preventDefault();
|
|
74
|
+
if (!attrs.enableDrop)
|
|
75
|
+
return;
|
|
76
|
+
// if (ev.dataTransfer) {
|
|
77
|
+
// ev.dataTransfer.dropEffect = "move";
|
|
78
|
+
// const movedNodeData = JSON.parse(ev.dataTransfer.getData(DEFAULT_DATA_FORMAT)) as TNodeData;
|
|
79
|
+
// attrs.enableLogging && console.log(`on drop`, movedNodeData, "on", node.data);
|
|
80
|
+
// // attrs.reorderfinish?.();
|
|
81
|
+
// const droppedOnSelf = compareObjects(movedNodeData, node.data);
|
|
82
|
+
// if (!droppedOnSelf) {
|
|
83
|
+
// attrs.onreorder?.({ moved: movedNodeData, target: node.data, above: this.isTargettingAbove });
|
|
84
|
+
// }
|
|
85
|
+
// }
|
|
86
|
+
this.isDragging = false;
|
|
87
|
+
this.isDraggingOver = false;
|
|
88
|
+
const dragData = (_a = ev.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData(DEFAULT_DATA_FORMAT);
|
|
89
|
+
attrs.enableLogging && console.log(`on drop, effect:`, (_b = ev.dataTransfer) === null || _b === void 0 ? void 0 : _b.dropEffect, "dragData:", dragData);
|
|
90
|
+
(_c = attrs.onDrop) === null || _c === void 0 ? void 0 : _c.call(attrs, { ev, dragData });
|
|
91
|
+
},
|
|
92
|
+
ondragend: (ev) => {
|
|
93
|
+
var _a;
|
|
94
|
+
attrs.enableLogging && console.log(`drag end, dropEffect:`, (_a = ev.dataTransfer) === null || _a === void 0 ? void 0 : _a.dropEffect);
|
|
95
|
+
// "move" on success, "none" on failure/cancellation
|
|
96
|
+
// attrs.reorderfinish?.();
|
|
97
|
+
this.isDragging = false;
|
|
98
|
+
this.isDraggingOver = false;
|
|
99
|
+
},
|
|
100
|
+
}, [
|
|
101
|
+
children,
|
|
102
|
+
]);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DragHandler";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DragHandler";
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
import { DropTargetState } from "./drop-target.state";
|
|
3
|
+
export declare const DropTarget: m.Component<{
|
|
4
|
+
/**
|
|
5
|
+
* Function called when the user drops one or more files onto the drop target
|
|
6
|
+
* @param result
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
onDropFiles: (result: {
|
|
10
|
+
files: File[];
|
|
11
|
+
ev: DragEvent;
|
|
12
|
+
}) => any;
|
|
13
|
+
/** The message to display in the drop target */
|
|
14
|
+
dropMessage?: string | m.Children;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to automatically set the height of the drop target baed on the height of the wrapped elements
|
|
17
|
+
* @default true
|
|
18
|
+
*/
|
|
19
|
+
autoHeight?: boolean;
|
|
20
|
+
class?: string;
|
|
21
|
+
style?: string;
|
|
22
|
+
}, {
|
|
23
|
+
state: DropTargetState;
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
import { DropTargetState } from "./drop-target.state";
|
|
3
|
+
import { dragEventFiles } from "../../utils";
|
|
4
|
+
export const DropTarget = {
|
|
5
|
+
oninit() {
|
|
6
|
+
this.state = new DropTargetState();
|
|
7
|
+
},
|
|
8
|
+
oncreate({ dom }) {
|
|
9
|
+
this.state.lastHeight = dom.clientHeight;
|
|
10
|
+
},
|
|
11
|
+
onupdate({ dom }) {
|
|
12
|
+
if (!this.state.isDragging) {
|
|
13
|
+
this.state.lastHeight = dom.clientHeight;
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
view({ attrs, children }) {
|
|
17
|
+
const autoHeightStr = (attrs.autoHeight !== false) ? `height: ${this.state.lastHeight}px;` : "";
|
|
18
|
+
return m(".mico-drop-container", {
|
|
19
|
+
class: attrs.class,
|
|
20
|
+
style: attrs.style,
|
|
21
|
+
}, [
|
|
22
|
+
this.state.isDragging ? [
|
|
23
|
+
m("", {
|
|
24
|
+
class: `mico-drop-target ${this.state.isOver ? "highlighted" : ""}`,
|
|
25
|
+
style: `${autoHeightStr} display: flex; flex-direction: column; align-items: center; justify-content: center;`,
|
|
26
|
+
ondragover: (ev) => {
|
|
27
|
+
this.state.isOver = true;
|
|
28
|
+
},
|
|
29
|
+
ondragleave: (ev) => {
|
|
30
|
+
const containsNewTarget = ev.currentTarget.contains(ev.relatedTarget);
|
|
31
|
+
if (!containsNewTarget) {
|
|
32
|
+
this.state.isOver = false;
|
|
33
|
+
}
|
|
34
|
+
ev.preventDefault();
|
|
35
|
+
return false;
|
|
36
|
+
},
|
|
37
|
+
ondrop: (ev) => {
|
|
38
|
+
// console.log("ondrop", ev);
|
|
39
|
+
this.state.isOver = false;
|
|
40
|
+
ev.preventDefault();
|
|
41
|
+
const files = dragEventFiles(ev);
|
|
42
|
+
if (files.length > 0) {
|
|
43
|
+
attrs.onDropFiles({ ev, files });
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
}, [
|
|
47
|
+
(attrs.dropMessage && typeof attrs.dropMessage === "object")
|
|
48
|
+
? attrs.dropMessage
|
|
49
|
+
: m("span.mico-drop-target-message", attrs.dropMessage || "Drop files here"),
|
|
50
|
+
]),
|
|
51
|
+
] : [
|
|
52
|
+
children,
|
|
53
|
+
],
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { redraw } from "mithril";
|
|
2
|
+
import { Subscription } from "rxjs";
|
|
3
|
+
export class DropTargetState {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.subs = new Subscription();
|
|
6
|
+
this.isDragging = false;
|
|
7
|
+
this.isOver = false;
|
|
8
|
+
this.lastHeight = 100;
|
|
9
|
+
this.initialise();
|
|
10
|
+
}
|
|
11
|
+
initialise() {
|
|
12
|
+
this.destroy();
|
|
13
|
+
this.subs = new Subscription();
|
|
14
|
+
this.isDragging = false;
|
|
15
|
+
this.isOver = false;
|
|
16
|
+
const onclick = () => {
|
|
17
|
+
this.isDragging = false;
|
|
18
|
+
redraw();
|
|
19
|
+
};
|
|
20
|
+
const ondragstart = (ev) => {
|
|
21
|
+
ev.preventDefault();
|
|
22
|
+
};
|
|
23
|
+
const ondragend = (ev) => {
|
|
24
|
+
this.isDragging = false;
|
|
25
|
+
redraw();
|
|
26
|
+
ev.preventDefault();
|
|
27
|
+
};
|
|
28
|
+
const ondragenter = (ev) => {
|
|
29
|
+
this.isDragging = true;
|
|
30
|
+
redraw();
|
|
31
|
+
ev.preventDefault();
|
|
32
|
+
};
|
|
33
|
+
const ondragover = (ev) => {
|
|
34
|
+
ev.preventDefault();
|
|
35
|
+
};
|
|
36
|
+
const ondragleave = (ev) => {
|
|
37
|
+
// if the drag moved from the element to outside the element
|
|
38
|
+
const containsTarget = ev.currentTarget.contains(ev.relatedTarget);
|
|
39
|
+
if (!containsTarget) {
|
|
40
|
+
// console.log("page ondragleave, isDragging=false")
|
|
41
|
+
this.isDragging = false;
|
|
42
|
+
redraw();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const ondrag = (ev) => {
|
|
46
|
+
ev.preventDefault();
|
|
47
|
+
};
|
|
48
|
+
const ondrop = (ev) => {
|
|
49
|
+
this.isDragging = false;
|
|
50
|
+
redraw();
|
|
51
|
+
ev.preventDefault();
|
|
52
|
+
};
|
|
53
|
+
document.addEventListener("click", onclick);
|
|
54
|
+
this.subs.add(() => document.removeEventListener("click", onclick));
|
|
55
|
+
document.addEventListener("dragstart", ondragstart);
|
|
56
|
+
this.subs.add(() => document.removeEventListener("dragstart", ondragstart));
|
|
57
|
+
document.addEventListener("dragend", ondragend);
|
|
58
|
+
this.subs.add(() => document.removeEventListener("dragend", ondragend));
|
|
59
|
+
document.addEventListener("dragenter", ondragenter);
|
|
60
|
+
this.subs.add(() => document.removeEventListener("dragenter", ondragenter));
|
|
61
|
+
document.addEventListener("dragover", ondragover);
|
|
62
|
+
this.subs.add(() => document.removeEventListener("dragover", ondragover));
|
|
63
|
+
document.addEventListener("dragleave", ondragleave);
|
|
64
|
+
this.subs.add(() => document.removeEventListener("dragleave", ondragleave));
|
|
65
|
+
document.addEventListener("drag", ondrag);
|
|
66
|
+
this.subs.add(() => document.removeEventListener("drag", ondrag));
|
|
67
|
+
document.addEventListener("drop", ondrop);
|
|
68
|
+
this.subs.add(() => document.removeEventListener("drop", ondrop));
|
|
69
|
+
}
|
|
70
|
+
destroy() {
|
|
71
|
+
this.subs.unsubscribe();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DropTarget";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DropTarget";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Form";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Form";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
import { IconSolid, IconRegular, IconBrand } from "./icons";
|
|
3
|
+
export type IconAttrs = ({
|
|
4
|
+
fab: IconBrand;
|
|
5
|
+
} | {
|
|
6
|
+
far: IconRegular;
|
|
7
|
+
} | {
|
|
8
|
+
fas: IconSolid;
|
|
9
|
+
}) & {
|
|
10
|
+
class?: string;
|
|
11
|
+
style?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Font Awesome Icon
|
|
15
|
+
*
|
|
16
|
+
* Specify the icon string with one of the keys: `fas`, `far`, or `fab`.
|
|
17
|
+
* Icon strings can be autocompleted on these keys.
|
|
18
|
+
*
|
|
19
|
+
* @see https://fontawesome.com/search
|
|
20
|
+
*/
|
|
21
|
+
export declare const Icon: m.Component<IconAttrs>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
/**
|
|
3
|
+
* Font Awesome Icon
|
|
4
|
+
*
|
|
5
|
+
* Specify the icon string with one of the keys: `fas`, `far`, or `fab`.
|
|
6
|
+
* Icon strings can be autocompleted on these keys.
|
|
7
|
+
*
|
|
8
|
+
* @see https://fontawesome.com/search
|
|
9
|
+
*/
|
|
10
|
+
export const Icon = {
|
|
11
|
+
view({ attrs }) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const icon = ("fas" in attrs) ? `fas fa-${attrs.fas}` :
|
|
14
|
+
("far" in attrs) ? `far fa-${attrs.far}` :
|
|
15
|
+
("fab" in attrs) ? `fab fa-${attrs.fab}` :
|
|
16
|
+
"";
|
|
17
|
+
return m("i", {
|
|
18
|
+
class: `${(_a = attrs.class) !== null && _a !== void 0 ? _a : ""} ${icon}`,
|
|
19
|
+
style: `${(_b = attrs.style) !== null && _b !== void 0 ? _b : ""}`,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|