@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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
import { TabPanelSettings } from "./tab-panel-settings";
|
|
3
|
+
export interface TabPanelAttrs {
|
|
4
|
+
/** Labels of the tabs, in order. Any undefined labels or children are completely ignored. */
|
|
5
|
+
labels: (string | m.Vnode<any> | undefined)[];
|
|
6
|
+
/** Optional settings to apply to the tab panel, alongside any default settings */
|
|
7
|
+
settings?: TabPanelSettings;
|
|
8
|
+
/** If present, this field is given a function that can then be used to request tab index changes */
|
|
9
|
+
getRequestFn?: (requestFn: (index: number) => void) => any;
|
|
10
|
+
}
|
|
11
|
+
interface TabPanelState {
|
|
12
|
+
/** The currently selected index */
|
|
13
|
+
index: number;
|
|
14
|
+
/** Function to set the selected index, clamping it within actual possibilities */
|
|
15
|
+
setIndex: (index: number) => void;
|
|
16
|
+
/** The total number of tabs in the panel (completely ignoring undefined children) */
|
|
17
|
+
tabCount: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* If a child pane is undefined, it is completely ignored.
|
|
21
|
+
*/
|
|
22
|
+
export declare const TabPanel: m.Component<TabPanelAttrs, TabPanelState>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
import { DEFAULT_TAB_PANEL_SETTINGS as SETTINGS } from "./tab-panel-default-settings";
|
|
3
|
+
/**
|
|
4
|
+
* If a child pane is undefined, it is completely ignored.
|
|
5
|
+
*/
|
|
6
|
+
export const TabPanel = {
|
|
7
|
+
oninit({ attrs, state, children }) {
|
|
8
|
+
var _a, _b, _c;
|
|
9
|
+
state.tabCount = countChildren(children);
|
|
10
|
+
state.setIndex = (index) => {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const lastIndex = state.tabCount - 1;
|
|
13
|
+
if (index < 0)
|
|
14
|
+
index = 0;
|
|
15
|
+
if (index > lastIndex)
|
|
16
|
+
index = lastIndex;
|
|
17
|
+
state.index = index;
|
|
18
|
+
if ((_a = attrs.settings) === null || _a === void 0 ? void 0 : _a.persistenceKey)
|
|
19
|
+
localStorage.setItem((_b = attrs.settings) === null || _b === void 0 ? void 0 : _b.persistenceKey, String(index));
|
|
20
|
+
};
|
|
21
|
+
if ((_a = attrs.settings) === null || _a === void 0 ? void 0 : _a.persistenceKey) {
|
|
22
|
+
const loaded = localStorage.getItem((_b = attrs.settings) === null || _b === void 0 ? void 0 : _b.persistenceKey);
|
|
23
|
+
state.setIndex(Number(loaded));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
state.setIndex(((_c = attrs.settings) === null || _c === void 0 ? void 0 : _c.initialIndex) || 0);
|
|
27
|
+
}
|
|
28
|
+
// If a request function has been asked for, return it
|
|
29
|
+
if (attrs.getRequestFn) {
|
|
30
|
+
attrs.getRequestFn(state.setIndex);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
onremove({ attrs, state }) {
|
|
34
|
+
state.setIndex = () => undefined;
|
|
35
|
+
},
|
|
36
|
+
onbeforeupdate({ attrs, state, children }) {
|
|
37
|
+
// Ensure any children added/removed since last redraw are accounted for
|
|
38
|
+
if (children instanceof Array)
|
|
39
|
+
children = children.filter(c => c !== undefined);
|
|
40
|
+
state.tabCount = countChildren(children);
|
|
41
|
+
},
|
|
42
|
+
view({ attrs, state, children }) {
|
|
43
|
+
var _a, _b, _c, _d, _e, _f;
|
|
44
|
+
// Ignore undefined children and labels
|
|
45
|
+
if (children instanceof Array)
|
|
46
|
+
children = children.filter(c => c !== undefined);
|
|
47
|
+
const labels = attrs.labels.filter(l => l !== undefined);
|
|
48
|
+
return m("", {
|
|
49
|
+
class: `${SETTINGS.class.tabPanel} ${(_b = (_a = attrs.settings) === null || _a === void 0 ? void 0 : _a.classes) === null || _b === void 0 ? void 0 : _b.tabPanel}`,
|
|
50
|
+
}, [
|
|
51
|
+
// m(Draggable, {
|
|
52
|
+
// // TODO: wire up to allow draggable scrolling on desktop
|
|
53
|
+
// ondrag: ({ x, y }) => {},
|
|
54
|
+
// }, [
|
|
55
|
+
m("", {
|
|
56
|
+
class: `${SETTINGS.class.buttonBar} ${(_d = (_c = attrs.settings) === null || _c === void 0 ? void 0 : _c.classes) === null || _d === void 0 ? void 0 : _d.buttonBar}`,
|
|
57
|
+
}, indices(state.tabCount).map(index => {
|
|
58
|
+
var _a, _b, _c, _d, _e, _f;
|
|
59
|
+
return m("button", {
|
|
60
|
+
class: (SETTINGS.class.tabButton + " " + ((_b = (_a = attrs.settings) === null || _a === void 0 ? void 0 : _a.classes) === null || _b === void 0 ? void 0 : _b.tabButton) + " " +
|
|
61
|
+
(state.index === index ? SETTINGS.class.tabButtonSelected : SETTINGS.class.tabButtonUnselected) + " " +
|
|
62
|
+
(state.index === index ? (_d = (_c = attrs.settings) === null || _c === void 0 ? void 0 : _c.classes) === null || _d === void 0 ? void 0 : _d.tabButtonSelected : (_f = (_e = attrs.settings) === null || _e === void 0 ? void 0 : _e.classes) === null || _f === void 0 ? void 0 : _f.tabButtonUnselected)),
|
|
63
|
+
onclick: () => state.setIndex(index),
|
|
64
|
+
}, labels[index] || `Tab ${index + 1}`);
|
|
65
|
+
})),
|
|
66
|
+
// ]),
|
|
67
|
+
m("div", {
|
|
68
|
+
class: `${SETTINGS.class.selectedPane} ${(_f = (_e = attrs.settings) === null || _e === void 0 ? void 0 : _e.classes) === null || _f === void 0 ? void 0 : _f.selectedPane}`,
|
|
69
|
+
}, [
|
|
70
|
+
(!(children instanceof Array)) ? children :
|
|
71
|
+
children.map((child, index) => m("", {
|
|
72
|
+
style: `display: ${index === state.index ? "block" : "none"}`,
|
|
73
|
+
}, child)),
|
|
74
|
+
]),
|
|
75
|
+
]);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
function countChildren(children) {
|
|
79
|
+
if (children === undefined)
|
|
80
|
+
return 0;
|
|
81
|
+
if (children instanceof Array)
|
|
82
|
+
return children.filter(c => c !== undefined).length;
|
|
83
|
+
return 1;
|
|
84
|
+
}
|
|
85
|
+
/** Converts a count to a list of indices */
|
|
86
|
+
function indices(count) {
|
|
87
|
+
return Array(count).fill(0).map((val, index) => index);
|
|
88
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const DEFAULT_TAB_PANEL_SETTINGS: {
|
|
2
|
+
/** Optional CSS classes to apply to parts of the tab panel */
|
|
3
|
+
class: {
|
|
4
|
+
/** Space-separated CSS classes to apply to the entire tab panel */
|
|
5
|
+
tabPanel: string;
|
|
6
|
+
/** Space-separated CSS classes to apply to the panel's button bar */
|
|
7
|
+
buttonBar: string;
|
|
8
|
+
/** Space-separated CSS classes to apply to all tab buttons */
|
|
9
|
+
tabButton: string;
|
|
10
|
+
/** Space-separated CSS classes to apply to the currently-selected tab button */
|
|
11
|
+
tabButtonUnselected: string;
|
|
12
|
+
/** Space-separated CSS classes to apply to all the currently-unselected tab buttons */
|
|
13
|
+
tabButtonSelected: string;
|
|
14
|
+
/** Space-separated CSS classes to apply to the tab's contents pane displaying the selected child */
|
|
15
|
+
selectedPane: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const DEFAULT_TAB_PANEL_SETTINGS = {
|
|
2
|
+
/** Optional CSS classes to apply to parts of the tab panel */
|
|
3
|
+
class: {
|
|
4
|
+
/** Space-separated CSS classes to apply to the entire tab panel */
|
|
5
|
+
tabPanel: "",
|
|
6
|
+
/** Space-separated CSS classes to apply to the panel's button bar */
|
|
7
|
+
buttonBar: "",
|
|
8
|
+
/** Space-separated CSS classes to apply to all tab buttons */
|
|
9
|
+
tabButton: "",
|
|
10
|
+
/** Space-separated CSS classes to apply to the currently-selected tab button */
|
|
11
|
+
tabButtonUnselected: "",
|
|
12
|
+
/** Space-separated CSS classes to apply to all the currently-unselected tab buttons */
|
|
13
|
+
tabButtonSelected: "",
|
|
14
|
+
/** Space-separated CSS classes to apply to the tab's contents pane displaying the selected child */
|
|
15
|
+
selectedPane: "",
|
|
16
|
+
},
|
|
17
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings that customise the behaviour of a tab panel
|
|
3
|
+
*/
|
|
4
|
+
export interface TabPanelSettings {
|
|
5
|
+
/** The index of the tab initially selected, default = 0 */
|
|
6
|
+
initialIndex?: number;
|
|
7
|
+
/** How to position the tabs in the row, default = "left" (NOT IMPLEMENTED) */
|
|
8
|
+
align?: "left" | "right" | "center" | "justify";
|
|
9
|
+
/** How to handle overflowing tabs in the row (NOT IMPLEMENTED) */
|
|
10
|
+
overflow?: "scroll" | "wrap" | "hide";
|
|
11
|
+
/** Optional key to use to persist the tab panel's selected tab to local storage */
|
|
12
|
+
persistenceKey?: string;
|
|
13
|
+
/** Optional CSS classes to apply to parts of the tab panel */
|
|
14
|
+
classes?: {
|
|
15
|
+
/** Space-separated CSS classes to apply to the entire tab panel */
|
|
16
|
+
tabPanel?: string;
|
|
17
|
+
/** Space-separated CSS classes to apply to the panel's button bar */
|
|
18
|
+
buttonBar?: string;
|
|
19
|
+
/** Space-separated CSS classes to apply to all tab buttons */
|
|
20
|
+
tabButton?: string;
|
|
21
|
+
/** Space-separated CSS classes to apply to the currently-selected tab button */
|
|
22
|
+
tabButtonSelected?: string;
|
|
23
|
+
/** Space-separated CSS classes to apply to all the currently-unselected tab buttons */
|
|
24
|
+
tabButtonUnselected?: string;
|
|
25
|
+
/** Space-separated CSS classes to apply to the tab's contents pane displaying the selected child */
|
|
26
|
+
selectedPane?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
// export const DEFAULT_TAB_PANEL_SETTINGS: TabPanelSettings = {
|
|
3
|
+
// classes: {
|
|
4
|
+
// tabPanel: "w-full my-4",
|
|
5
|
+
// buttonBar: "flex flex-row items-center overflow-scroll hide-scrollbar border-gray-800 border-b-2",
|
|
6
|
+
// tabButton: "btn border border-gray-800 outline-none focus:outline-none",
|
|
7
|
+
// tabButtonUnselected: "btn-dark",
|
|
8
|
+
// tabButtonSelected: "text-black bg-white",
|
|
9
|
+
// selectedPane: "",
|
|
10
|
+
// },
|
|
11
|
+
// };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
export type TableCellDisplayFn<T> = (item: T, index: number) => m.Children;
|
|
3
|
+
export interface TableColumnDefinitionOptions {
|
|
4
|
+
/** CSS classes to apply to all the cells in the column, including the header */
|
|
5
|
+
class?: string;
|
|
6
|
+
/** CSS stylees to apply to all the cells in the column, including the header */
|
|
7
|
+
style?: string;
|
|
8
|
+
}
|
|
9
|
+
export type TableColumnDefinition<T> = {
|
|
10
|
+
header: string | m.Vnode<any, any>;
|
|
11
|
+
cell: TableCellDisplayFn<T>;
|
|
12
|
+
/** Optional settings to tweak the column's behaviour */
|
|
13
|
+
options?: TableColumnDefinitionOptions;
|
|
14
|
+
};
|
|
15
|
+
export interface TableAttrs<T> {
|
|
16
|
+
/** The list of items to display as rows */
|
|
17
|
+
data: T[];
|
|
18
|
+
/** The definitions of the table columns */
|
|
19
|
+
columns: TableColumnDefinition<T>[];
|
|
20
|
+
/** Set the table to automatically size columns to fit (default), or use fixed column widths */
|
|
21
|
+
layout?: "auto" | "fixed";
|
|
22
|
+
/** Override the default message displayed when there are no data items */
|
|
23
|
+
emptyMessage?: string;
|
|
24
|
+
/** Any CSS classes to apply to the table */
|
|
25
|
+
class?: string;
|
|
26
|
+
/** Any CSS styles to apply to the table */
|
|
27
|
+
style?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface TableState<T> {
|
|
30
|
+
}
|
|
31
|
+
/** Helper function to make it easier to define table columns */
|
|
32
|
+
export type TableColumnDefinitionFn<T> = (
|
|
33
|
+
/** The label or other element to display in the header */
|
|
34
|
+
header: string | m.Vnode<any, any>,
|
|
35
|
+
/** Function defining how to display a cell in the column using the given row item */
|
|
36
|
+
cell: TableCellDisplayFn<T>,
|
|
37
|
+
/** Optional settings to tweak the column's behaviour */
|
|
38
|
+
options?: TableColumnDefinitionOptions) => TableColumnDefinition<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Build a typed Table component which includes type checking for column definitions
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const PersonTable = typedTable<Person>();
|
|
44
|
+
* m(PersonTable, {
|
|
45
|
+
* data: people, // `data` is type checked
|
|
46
|
+
* columns: [
|
|
47
|
+
* PersonTable.col("Name", p => p.name), // `p` is type checked
|
|
48
|
+
* PersonTable.col("Age", p => findAge(p.dob)), // `p` is type checked
|
|
49
|
+
* ],
|
|
50
|
+
* }),
|
|
51
|
+
* ```
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
export declare function typedTable<T>(): {
|
|
55
|
+
col: TableColumnDefinitionFn<T>;
|
|
56
|
+
oninit?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.Vnode<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): any;
|
|
57
|
+
oncreate?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.VnodeDOM<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): any;
|
|
58
|
+
onbeforeremove?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.VnodeDOM<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): void | Promise<any>;
|
|
59
|
+
onremove?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.VnodeDOM<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): any;
|
|
60
|
+
onbeforeupdate?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.Vnode<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>, old: m.VnodeDOM<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): boolean | void;
|
|
61
|
+
onupdate?(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.VnodeDOM<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): any;
|
|
62
|
+
view(this: m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>, vnode: m.Vnode<TableAttrs<T>, m._NoLifecycle<m.Component<TableAttrs<T>, TableState<T>> & TableState<T>>>): void | m.Children;
|
|
63
|
+
};
|
|
64
|
+
export declare const Table: m.Component<TableAttrs<any>, TableState<any>>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import m from "mithril";
|
|
2
|
+
/**
|
|
3
|
+
* Build a typed Table component which includes type checking for column definitions
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const PersonTable = typedTable<Person>();
|
|
7
|
+
* m(PersonTable, {
|
|
8
|
+
* data: people, // `data` is type checked
|
|
9
|
+
* columns: [
|
|
10
|
+
* PersonTable.col("Name", p => p.name), // `p` is type checked
|
|
11
|
+
* PersonTable.col("Age", p => findAge(p.dob)), // `p` is type checked
|
|
12
|
+
* ],
|
|
13
|
+
* }),
|
|
14
|
+
* ```
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export function typedTable() {
|
|
18
|
+
const typedTable = Table;
|
|
19
|
+
const col = (header, cell, options) => {
|
|
20
|
+
return { header, cell, options };
|
|
21
|
+
};
|
|
22
|
+
return Object.assign(Object.assign({}, typedTable), { col });
|
|
23
|
+
}
|
|
24
|
+
export const Table = {
|
|
25
|
+
view({ attrs }) {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
return m("table.mico-table", {
|
|
28
|
+
class: attrs.class,
|
|
29
|
+
style: `${(_a = attrs.style) !== null && _a !== void 0 ? _a : ""} table-layout: ${((_b = attrs.layout) !== null && _b !== void 0 ? _b : "auto")};`,
|
|
30
|
+
}, [
|
|
31
|
+
m("thead", [
|
|
32
|
+
m("tr", [
|
|
33
|
+
attrs.columns.map(col => {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
return m("th", {
|
|
36
|
+
class: (_a = col.options) === null || _a === void 0 ? void 0 : _a.class,
|
|
37
|
+
style: (_b = col.options) === null || _b === void 0 ? void 0 : _b.style,
|
|
38
|
+
}, [
|
|
39
|
+
col.header,
|
|
40
|
+
]);
|
|
41
|
+
}),
|
|
42
|
+
]),
|
|
43
|
+
]),
|
|
44
|
+
m("tbody", [
|
|
45
|
+
attrs.data.map((item, dataIndex) => {
|
|
46
|
+
return m("tr", [
|
|
47
|
+
attrs.columns.map((col, colIndex) => {
|
|
48
|
+
var _a, _b, _c;
|
|
49
|
+
return m("td", {
|
|
50
|
+
class: (_a = col.options) === null || _a === void 0 ? void 0 : _a.class,
|
|
51
|
+
style: (_b = col.options) === null || _b === void 0 ? void 0 : _b.style,
|
|
52
|
+
}, [
|
|
53
|
+
(_c = col.cell) === null || _c === void 0 ? void 0 : _c.call(col, item, dataIndex),
|
|
54
|
+
]);
|
|
55
|
+
}),
|
|
56
|
+
]);
|
|
57
|
+
}),
|
|
58
|
+
((_c = attrs.data) === null || _c === void 0 ? void 0 : _c.length) === 0 ? m("tr", [
|
|
59
|
+
m("td.text-center.text-medium", {
|
|
60
|
+
colspan: attrs.columns.length,
|
|
61
|
+
}, [
|
|
62
|
+
(_d = attrs.emptyMessage) !== null && _d !== void 0 ? _d : "No items",
|
|
63
|
+
]),
|
|
64
|
+
]) : [],
|
|
65
|
+
]),
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Table";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Table";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./toast";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./toast";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Toastify, { Options } from "toastify-js";
|
|
2
|
+
import m from "mithril";
|
|
3
|
+
import "toastify-js/src/toastify.css";
|
|
4
|
+
export declare const DefaultToastOptions: Partial<Options>;
|
|
5
|
+
/**
|
|
6
|
+
* Display a toast
|
|
7
|
+
* @param message The message string of Vnode to display
|
|
8
|
+
* @param options See this link for all options: https://github.com/apvarun/toastify-js#documentation
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function toast(message: string | m.Vnode<any, any>, options?: Options): {
|
|
12
|
+
options: Toastify.Options;
|
|
13
|
+
element: Element | null;
|
|
14
|
+
hide: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import Toastify, { reposition } from "toastify-js";
|
|
2
|
+
import m from "mithril";
|
|
3
|
+
import "toastify-js/src/toastify.css";
|
|
4
|
+
export const DefaultToastOptions = {
|
|
5
|
+
className: "mico-toast",
|
|
6
|
+
gravity: "bottom",
|
|
7
|
+
oldestFirst: true,
|
|
8
|
+
position: "left",
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Display a toast
|
|
12
|
+
* @param message The message string of Vnode to display
|
|
13
|
+
* @param options See this link for all options: https://github.com/apvarun/toastify-js#documentation
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export function toast(message, options) {
|
|
17
|
+
if (!message)
|
|
18
|
+
message = "toast";
|
|
19
|
+
const toastifyOpts = Object.assign({}, DefaultToastOptions, options, typeof message === "string" ? { text: message } : undefined);
|
|
20
|
+
const toastify = Toastify(toastifyOpts);
|
|
21
|
+
toastify.showToast();
|
|
22
|
+
if (toastify.toastElement && typeof message !== "string" && "tag" in message) {
|
|
23
|
+
m.render(toastify.toastElement, message);
|
|
24
|
+
reposition();
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
options: toastify.options,
|
|
28
|
+
element: toastify.toastElement,
|
|
29
|
+
hide: () => toastify.hideToast(),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TooltipPosition } from "./tooltip-interfaces";
|
|
2
|
+
export declare const TOOLTIP_DEFAULTS: {
|
|
3
|
+
/** How to position the tooltips by default */
|
|
4
|
+
DEFAULT_POS: TooltipPosition;
|
|
5
|
+
/** Delay in milliseconds before showing the tooltip */
|
|
6
|
+
DEFAULT_DELAY: number;
|
|
7
|
+
/** CSS class to apply to all tooltips */
|
|
8
|
+
TOOLTIP_CLASS: string;
|
|
9
|
+
/** Maximum width in pixels */
|
|
10
|
+
MAX_WIDTH_PX: number;
|
|
11
|
+
/** Maximum height in pixels */
|
|
12
|
+
MAX_HEIGHT_PX: number;
|
|
13
|
+
/** Maximum width in pixels when the "jumbo" flag is set */
|
|
14
|
+
MAX_WIDTH_JUMBO_PX: number;
|
|
15
|
+
/** Maximum height in pixels when the "jumbo" flag is set */
|
|
16
|
+
MAX_HEIGHT_JUMBO_PX: number;
|
|
17
|
+
/** Whether to attach tooltips to the document body instead of the target element */
|
|
18
|
+
ATTACH_TO_BODY: boolean;
|
|
19
|
+
/** Optionally disable tooltips globally, e.g. on touch screens */
|
|
20
|
+
IS_ENABLED: boolean;
|
|
21
|
+
/** Log debug messages to the console */
|
|
22
|
+
ENABLE_DEBUG: boolean;
|
|
23
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const TOOLTIP_DEFAULTS = {
|
|
2
|
+
/** How to position the tooltips by default */
|
|
3
|
+
DEFAULT_POS: "cursor",
|
|
4
|
+
/** Delay in milliseconds before showing the tooltip */
|
|
5
|
+
DEFAULT_DELAY: 500,
|
|
6
|
+
/** CSS class to apply to all tooltips */
|
|
7
|
+
TOOLTIP_CLASS: "mico-tooltip",
|
|
8
|
+
/** Maximum width in pixels */
|
|
9
|
+
MAX_WIDTH_PX: 250,
|
|
10
|
+
/** Maximum height in pixels */
|
|
11
|
+
MAX_HEIGHT_PX: 100,
|
|
12
|
+
/** Maximum width in pixels when the "jumbo" flag is set */
|
|
13
|
+
MAX_WIDTH_JUMBO_PX: 400,
|
|
14
|
+
/** Maximum height in pixels when the "jumbo" flag is set */
|
|
15
|
+
MAX_HEIGHT_JUMBO_PX: 300,
|
|
16
|
+
/** Whether to attach tooltips to the document body instead of the target element */
|
|
17
|
+
ATTACH_TO_BODY: false,
|
|
18
|
+
/** Optionally disable tooltips globally, e.g. on touch screens */
|
|
19
|
+
IS_ENABLED: true,
|
|
20
|
+
/** Log debug messages to the console */
|
|
21
|
+
ENABLE_DEBUG: false,
|
|
22
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TooltipOptions } from "./tooltip-interfaces";
|
|
2
|
+
/**
|
|
3
|
+
* Display a tooltip using the given mouse event.
|
|
4
|
+
* Call this function from an element's "mouseenter" event.
|
|
5
|
+
*
|
|
6
|
+
* e.g.:
|
|
7
|
+
* ```
|
|
8
|
+
* onmouseenter: (ev: MouseEvent) => tooltip(ev, "Howdy!"),
|
|
9
|
+
* ```
|
|
10
|
+
* @param ev
|
|
11
|
+
* @param tooltip Nothing is displayed if the tooltip text is empty
|
|
12
|
+
* @param opts
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare function tooltip(ev: MouseEvent, tooltip: string, opts?: Partial<TooltipOptions>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Return an object that can be spread into an element's attrs to add a tooltip using the mouseenter event
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* m("button", {
|
|
22
|
+
* ...tooltipSpread("Click the button"),
|
|
23
|
+
* }, "Click me"),
|
|
24
|
+
* // is equivalent to:
|
|
25
|
+
* m("button", {
|
|
26
|
+
* onmousenter: (ev: Mousevent) => tooltip(ev, "Click the button"),
|
|
27
|
+
* }, "Click me"),
|
|
28
|
+
* ```
|
|
29
|
+
* @param value
|
|
30
|
+
* @param opts
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
export declare function tooltipSpread(value: string, opts?: Partial<TooltipOptions>): {
|
|
34
|
+
onmouseenter: (ev: MouseEvent) => void;
|
|
35
|
+
};
|