@hypericon/mico 0.4.2 → 0.5.1

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.
Files changed (88) hide show
  1. package/dist/cjs/components/menu/Menu.d.ts +2 -0
  2. package/dist/cjs/components/menu/menu-manager.d.ts +2 -0
  3. package/dist/cjs/components/menu/menu-manager.js +18 -1
  4. package/dist/cjs/components/table/Table.d.ts +4 -0
  5. package/dist/cjs/components/table/Table.js +5 -1
  6. package/dist/cjs/components/tooltip/tooltip-function.d.ts +1 -1
  7. package/dist/cjs/components/tooltip/tooltip-function.js +1 -1
  8. package/dist/esm/components/accordion/index.d.ts +1 -0
  9. package/dist/esm/components/accordion/index.js +1 -0
  10. package/dist/esm/components/data-grid/index.d.ts +1 -0
  11. package/dist/esm/components/data-grid/index.js +1 -0
  12. package/dist/esm/components/data-table/index.d.ts +1 -0
  13. package/dist/esm/components/data-table/index.js +1 -0
  14. package/dist/esm/components/dialog/Dialog.js +2 -1
  15. package/dist/esm/components/dialog/dialog-manager.js +20 -13
  16. package/dist/esm/components/dialog/index.js +17 -1
  17. package/dist/esm/components/drag-handler/DragHandler.js +9 -3
  18. package/dist/esm/components/drag-handler/index.js +17 -1
  19. package/dist/esm/components/drawer/index.d.ts +1 -0
  20. package/dist/esm/components/drawer/index.js +1 -0
  21. package/dist/esm/components/drop-target/DropTarget.js +15 -9
  22. package/dist/esm/components/drop-target/drop-target.state.js +14 -10
  23. package/dist/esm/components/drop-target/index.js +17 -1
  24. package/dist/esm/components/form/Form.js +4 -1
  25. package/dist/esm/components/form/index.js +17 -1
  26. package/dist/esm/components/icon/Icon.js +9 -3
  27. package/dist/esm/components/icon/icons.js +2 -1
  28. package/dist/esm/components/icon/index.js +18 -2
  29. package/dist/esm/components/index.js +28 -12
  30. package/dist/esm/components/markdown/Markdown.js +15 -9
  31. package/dist/esm/components/markdown/index.js +17 -1
  32. package/dist/esm/components/markdown-editor/MarkdownEditor.js +70 -44
  33. package/dist/esm/components/markdown-editor/index.js +17 -1
  34. package/dist/esm/components/markdown-editor/markdown-editor.state.js +11 -7
  35. package/dist/esm/components/menu/Menu.d.ts +2 -0
  36. package/dist/esm/components/menu/Menu.js +16 -10
  37. package/dist/esm/components/menu/MenuButton.js +31 -25
  38. package/dist/esm/components/menu/MenuSeparator.js +11 -5
  39. package/dist/esm/components/menu/index.js +22 -6
  40. package/dist/esm/components/menu/menu-constants.js +4 -1
  41. package/dist/esm/components/menu/menu-manager.d.ts +2 -0
  42. package/dist/esm/components/menu/menu-manager.js +35 -11
  43. package/dist/esm/components/menu/menu-settings.js +4 -1
  44. package/dist/esm/components/modal/index.d.ts +1 -0
  45. package/dist/esm/components/modal/index.js +1 -0
  46. package/dist/esm/components/pagination/Pagination.js +35 -29
  47. package/dist/esm/components/pagination/index.js +18 -2
  48. package/dist/esm/components/pagination/pagination-settings.js +4 -1
  49. package/dist/esm/components/panel-tree/PanelTree.js +27 -21
  50. package/dist/esm/components/panel-tree/index.d.ts +1 -0
  51. package/dist/esm/components/panel-tree/index.js +1 -0
  52. package/dist/esm/components/panel-tree/panel-tree-constants.js +5 -2
  53. package/dist/esm/components/panel-tree/panel-tree-store.js +13 -9
  54. package/dist/esm/components/panel-tree/panel-tree-utils.js +7 -3
  55. package/dist/esm/components/popover/index.d.ts +1 -0
  56. package/dist/esm/components/popover/index.js +1 -0
  57. package/dist/esm/components/reorderable-list/RedorderableList.js +17 -11
  58. package/dist/esm/components/reorderable-list/index.d.ts +1 -0
  59. package/dist/esm/components/reorderable-list/index.js +1 -0
  60. package/dist/esm/components/select/Select.js +18 -12
  61. package/dist/esm/components/select/SelectOptionsPanel.js +19 -13
  62. package/dist/esm/components/select/constants.js +5 -2
  63. package/dist/esm/components/select/index.js +18 -2
  64. package/dist/esm/components/select/select-options-manager.js +7 -3
  65. package/dist/esm/components/tab-panel/TabPanel.js +19 -13
  66. package/dist/esm/components/tab-panel/index.js +19 -3
  67. package/dist/esm/components/tab-panel/tab-panel-default-settings.js +4 -1
  68. package/dist/esm/components/tab-panel/tab-panel-settings.js +2 -1
  69. package/dist/esm/components/table/Table.d.ts +4 -0
  70. package/dist/esm/components/table/Table.js +24 -13
  71. package/dist/esm/components/table/index.js +17 -1
  72. package/dist/esm/components/toast/index.js +17 -1
  73. package/dist/esm/components/toast/toast.js +39 -9
  74. package/dist/esm/components/tooltip/index.js +19 -3
  75. package/dist/esm/components/tooltip/tooltip-defaults.js +4 -1
  76. package/dist/esm/components/tooltip/tooltip-function.d.ts +1 -1
  77. package/dist/esm/components/tooltip/tooltip-function.js +26 -21
  78. package/dist/esm/components/tooltip/tooltip-interfaces.js +2 -1
  79. package/dist/esm/components/tree/Tree.js +29 -22
  80. package/dist/esm/components/tree/index.js +19 -3
  81. package/dist/esm/components/tree/tree-node.interface.js +2 -1
  82. package/dist/esm/components/tree/tree-utils.js +5 -1
  83. package/dist/esm/index.js +18 -2
  84. package/dist/esm/utils/date-time.js +7 -2
  85. package/dist/esm/utils/dom.js +7 -2
  86. package/dist/esm/utils/events.js +5 -1
  87. package/dist/esm/utils/index.js +19 -3
  88. package/package.json +1 -1
@@ -1 +1,17 @@
1
- export * from "./Markdown";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Markdown"), exports);
@@ -1,11 +1,37 @@
1
- import m, { redraw } from "mithril";
2
- import { Icon } from "../icon/Icon";
3
- import { Markdown } from "../markdown/Markdown";
4
- import { MenuButton, menuMgr } from "../menu";
5
- import { MarkdownEditorState } from "./markdown-editor.state";
6
- export const MarkdownEditor = {
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.MarkdownEditor = void 0;
27
+ const mithril_1 = __importStar(require("mithril"));
28
+ const Icon_1 = require("../icon/Icon");
29
+ const Markdown_1 = require("../markdown/Markdown");
30
+ const menu_1 = require("../menu");
31
+ const markdown_editor_state_1 = require("./markdown-editor.state");
32
+ exports.MarkdownEditor = {
7
33
  oninit({ attrs }) {
8
- this.state = new MarkdownEditorState(attrs.onEdit);
34
+ this.state = new markdown_editor_state_1.MarkdownEditorState(attrs.onEdit);
9
35
  },
10
36
  onremove() {
11
37
  this.state.destroy();
@@ -27,94 +53,94 @@ export const MarkdownEditor = {
27
53
  this.state.editValue = attrs.onEdit;
28
54
  this.state.setSelection(0, 0);
29
55
  setTimeout(() => {
30
- redraw();
56
+ (0, mithril_1.redraw)();
31
57
  }, 1);
32
58
  }
33
59
  if (this.state.requestSelection && this.state.editorEl) {
34
60
  this.state.editorEl.setSelectionRange(this.state.requestSelection.start, this.state.requestSelection.end);
35
61
  this.state.requestSelection = undefined;
36
- redraw();
62
+ (0, mithril_1.redraw)();
37
63
  }
38
64
  this.state.isEditingPrevious = this.state.isEditing;
39
65
  },
40
66
  view({ attrs }) {
41
- return m(".mico-markdown-editor", {
67
+ return (0, mithril_1.default)(".mico-markdown-editor", {
42
68
  class: attrs.class,
43
69
  style: attrs.style,
44
70
  }, [
45
71
  (!this.state.isEditing) ? [
46
- m(".render-container", {
72
+ (0, mithril_1.default)(".render-container", {
47
73
  tabindex: 0,
48
74
  onclick: () => {
49
75
  this.state.isEditing = true;
50
76
  },
51
77
  }, [
52
- m(Markdown, {
78
+ (0, mithril_1.default)(Markdown_1.Markdown, {
53
79
  highlight: attrs.highlight,
54
80
  markdown: attrs.markdown,
55
81
  }),
56
82
  ]),
57
83
  ] : [
58
- m(".editor-container", [
84
+ (0, mithril_1.default)(".editor-container", [
59
85
  // Editor buttons
60
- m(".editor-buttons", [
61
- m(".editor-button-group", [
62
- m("button", {
86
+ (0, mithril_1.default)(".editor-buttons", [
87
+ (0, mithril_1.default)(".editor-button-group", [
88
+ (0, mithril_1.default)("button", {
63
89
  title: "Ctrl+Shift+H",
64
90
  onclick: () => this.state.applyHeading(),
65
- }, m(Icon, { fas: "heading" })),
66
- m("button", {
67
- onclick: (ev) => menuMgr.show(ev, [
68
- m(MenuButton, { label: "Heading 1", onclick: () => this.state.applyHeading(1) }),
69
- m(MenuButton, { label: "Heading 2", onclick: () => this.state.applyHeading(2) }),
70
- m(MenuButton, { label: "Heading 3", onclick: () => this.state.applyHeading(3) }),
71
- m(MenuButton, { label: "Heading 4", onclick: () => this.state.applyHeading(4) }),
91
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "heading" })),
92
+ (0, mithril_1.default)("button", {
93
+ onclick: (ev) => menu_1.menuMgr.show(ev, [
94
+ (0, mithril_1.default)(menu_1.MenuButton, { label: "Heading 1", onclick: () => this.state.applyHeading(1) }),
95
+ (0, mithril_1.default)(menu_1.MenuButton, { label: "Heading 2", onclick: () => this.state.applyHeading(2) }),
96
+ (0, mithril_1.default)(menu_1.MenuButton, { label: "Heading 3", onclick: () => this.state.applyHeading(3) }),
97
+ (0, mithril_1.default)(menu_1.MenuButton, { label: "Heading 4", onclick: () => this.state.applyHeading(4) }),
72
98
  ], {
73
99
  noFlipH: true,
74
100
  noFlipV: true,
75
101
  }),
76
- }, m(Icon, { fas: "caret-down" })),
102
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "caret-down" })),
77
103
  ]),
78
- m(".editor-button-group", [
79
- m("button", {
104
+ (0, mithril_1.default)(".editor-button-group", [
105
+ (0, mithril_1.default)("button", {
80
106
  title: "Ctrl+Shift+B",
81
107
  onclick: () => this.state.applyBold(),
82
- }, m(Icon, { fas: "bold" })),
83
- m("button", {
108
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "bold" })),
109
+ (0, mithril_1.default)("button", {
84
110
  title: "Ctrl+Shift+I",
85
111
  onclick: () => this.state.applyItalic(),
86
- }, m(Icon, { fas: "italic" })),
87
- m("button", {
112
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "italic" })),
113
+ (0, mithril_1.default)("button", {
88
114
  title: "Ctrl+Shift+C",
89
115
  onclick: () => this.state.applyCode(),
90
- }, m(Icon, { fas: "code" })),
91
- m("button", {
116
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "code" })),
117
+ (0, mithril_1.default)("button", {
92
118
  title: "Ctrl+Shift+S",
93
119
  onclick: () => this.state.applyStrikethrough(),
94
- }, m(Icon, { fas: "strikethrough" })),
120
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "strikethrough" })),
95
121
  ]),
96
- m(".editor-button-group", [
97
- m("button", {
122
+ (0, mithril_1.default)(".editor-button-group", [
123
+ (0, mithril_1.default)("button", {
98
124
  title: "Ctrl+Shift+U",
99
125
  onclick: () => this.state.applyUnorderedList(),
100
- }, m(Icon, { fas: "list-ul" })),
101
- m("button", {
126
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "list-ul" })),
127
+ (0, mithril_1.default)("button", {
102
128
  title: "Ctrl+Shift+O",
103
129
  onclick: () => this.state.applyOrderedList(),
104
- }, m(Icon, { fas: "list-ol" })),
105
- m("button", {
130
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "list-ol" })),
131
+ (0, mithril_1.default)("button", {
106
132
  title: "Ctrl+Shift+L",
107
133
  onclick: () => this.state.applyLink(),
108
- }, m(Icon, { fas: "link" })),
134
+ }, (0, mithril_1.default)(Icon_1.Icon, { fas: "link" })),
109
135
  ]),
110
- attrs.onHelp !== undefined ? m(".editor-button-group", [
111
- m("button", {
136
+ attrs.onHelp !== undefined ? (0, mithril_1.default)(".editor-button-group", [
137
+ (0, mithril_1.default)("button", {
112
138
  onclick: () => { var _a; return (_a = attrs.onHelp) === null || _a === void 0 ? void 0 : _a.call(attrs); },
113
- }, m(Icon, { far: "circle-question" })),
139
+ }, (0, mithril_1.default)(Icon_1.Icon, { far: "circle-question" })),
114
140
  ]) : [],
115
141
  ]),
116
142
  // Editor content
117
- m("textarea.editor-textarea", {
143
+ (0, mithril_1.default)("textarea.editor-textarea", {
118
144
  rows: this.state.editorValue.split("\n").length + 1,
119
145
  value: this.state.editorValue,
120
146
  oninput: (e) => {
@@ -1 +1,17 @@
1
- export * from "./MarkdownEditor";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MarkdownEditor"), exports);
@@ -1,9 +1,12 @@
1
- import { Subscription } from "rxjs";
2
- import { mouseWithinElement } from "../../utils";
3
- import { redraw } from "mithril";
4
- export class MarkdownEditorState {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarkdownEditorState = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const utils_1 = require("../../utils");
6
+ const mithril_1 = require("mithril");
7
+ class MarkdownEditorState {
5
8
  constructor(editValue) {
6
- this.subs = new Subscription();
9
+ this.subs = new rxjs_1.Subscription();
7
10
  this.isEditing = false;
8
11
  this.isEditingPrevious = false;
9
12
  this.editorValue = "";
@@ -14,9 +17,9 @@ export class MarkdownEditorState {
14
17
  this.editValue = editValue;
15
18
  const onclick = (ev) => {
16
19
  if (this.isEditing && this.editorContainerEl) {
17
- if (!mouseWithinElement(ev, this.editorContainerEl)) {
20
+ if (!(0, utils_1.mouseWithinElement)(ev, this.editorContainerEl)) {
18
21
  this.isEditing = false;
19
- redraw();
22
+ (0, mithril_1.redraw)();
20
23
  }
21
24
  }
22
25
  };
@@ -253,3 +256,4 @@ export class MarkdownEditorState {
253
256
  this.requestSelection = { start: newSelection, end: newSelection };
254
257
  }
255
258
  }
259
+ exports.MarkdownEditorState = MarkdownEditorState;
@@ -4,6 +4,8 @@ export interface MenuOptions {
4
4
  noFlipH?: boolean;
5
5
  forceFlipV?: boolean;
6
6
  forceFlipH?: boolean;
7
+ /** Add the menu directly to the element which raised the event */
8
+ asChild?: boolean;
7
9
  }
8
10
  export declare const Menu: m.Component<{
9
11
  x: number | undefined;
@@ -1,7 +1,13 @@
1
- import m from "mithril";
2
- import { MENU_CONSTANTS } from "./menu-constants";
3
- import { MENU_SETTINGS } from "./menu-settings";
4
- export const Menu = {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Menu = void 0;
7
+ const mithril_1 = __importDefault(require("mithril"));
8
+ const menu_constants_1 = require("./menu-constants");
9
+ const menu_settings_1 = require("./menu-settings");
10
+ exports.Menu = {
5
11
  oninit() { },
6
12
  oncreate({ dom }) {
7
13
  if (dom) {
@@ -14,12 +20,12 @@ export const Menu = {
14
20
  },
15
21
  view({ attrs, children }) {
16
22
  var _a, _b, _c, _d, _e, _f;
17
- const maxWidthPx = Math.min(window.innerWidth, MENU_CONSTANTS.MAX_WIDTH_PX);
23
+ const maxWidthPx = Math.min(window.innerWidth, menu_constants_1.MENU_CONSTANTS.MAX_WIDTH_PX);
18
24
  const maxHeightPx = window.innerHeight / 2;
19
25
  const xPx = (_a = attrs.x) !== null && _a !== void 0 ? _a : 0;
20
26
  const yPx = (_b = attrs.y) !== null && _b !== void 0 ? _b : 0;
21
- let flipH = ((xPx + MENU_CONSTANTS.MIN_WIDTH_PX) > window.innerWidth);
22
- let flipV = MENU_SETTINGS.ANCHOR === "page"
27
+ let flipH = ((xPx + menu_constants_1.MENU_CONSTANTS.MIN_WIDTH_PX) > window.innerWidth);
28
+ let flipV = menu_settings_1.MENU_SETTINGS.ANCHOR === "page"
23
29
  ? ((yPx + maxHeightPx - window.scrollY) > window.innerHeight)
24
30
  : ((yPx + maxHeightPx) > window.innerHeight);
25
31
  if (((_c = attrs.options) === null || _c === void 0 ? void 0 : _c.noFlipH) === true)
@@ -40,10 +46,10 @@ export const Menu = {
40
46
  // TODO: don't let the menu width actually touch the screen width; it will fall off the left hand side
41
47
  const posH = flipH ? `right: ${window.innerWidth - xPx}px;` : `left: ${xPx}px;`;
42
48
  const posV = flipV ? `bottom: ${window.innerHeight - yPx}px;` : `top: ${yPx}px;`;
43
- return m("", {
49
+ return (0, mithril_1.default)("", {
44
50
  key: Date.now(),
45
- class: `mico-menu ${MENU_SETTINGS.MENU_CLASS}`,
46
- style: `position: absolute; overflow-y: auto; overflow-x: hidden; ${posH} ${posV} z-index: 100; min-width: ${MENU_CONSTANTS.MIN_WIDTH_PX}px; max-width: ${maxWidthPx}px; max-height: ${maxHeightPx}px;`,
51
+ class: `mico-menu ${menu_settings_1.MENU_SETTINGS.MENU_CLASS}`,
52
+ style: `position: absolute; overflow-y: auto; overflow-x: hidden; ${posH} ${posV} z-index: 100; min-width: ${menu_constants_1.MENU_CONSTANTS.MIN_WIDTH_PX}px; max-width: ${maxWidthPx}px; max-height: ${maxHeightPx}px;`,
47
53
  tabIndex: -1,
48
54
  onkeydown: (ev) => {
49
55
  var _a, _b, _c, _d, _e, _f;
@@ -1,55 +1,61 @@
1
- import m from "mithril";
2
- import { Icon } from "../icon";
3
- import { MENU_SETTINGS } from "./menu-settings";
4
- export const MenuButton = {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MenuButton = void 0;
7
+ const mithril_1 = __importDefault(require("mithril"));
8
+ const icon_1 = require("../icon");
9
+ const menu_settings_1 = require("./menu-settings");
10
+ exports.MenuButton = {
5
11
  view({ attrs }) {
6
12
  var _a, _b, _c, _d;
7
13
  return (attrs.href !== undefined) ? [
8
- m(m.route.Link, {
9
- class: `mico-menu-button ${(_a = attrs.class) !== null && _a !== void 0 ? _a : ""} ${MENU_SETTINGS.MENU_BUTTON_CLASS}`,
14
+ (0, mithril_1.default)(mithril_1.default.route.Link, {
15
+ class: `mico-menu-button ${(_a = attrs.class) !== null && _a !== void 0 ? _a : ""} ${menu_settings_1.MENU_SETTINGS.MENU_BUTTON_CLASS}`,
10
16
  style: `${(_b = attrs.style) !== null && _b !== void 0 ? _b : ""} width: 100%; height: 1.5rem; padding-right: 0.5rem; display: flex; align-items: center;`,
11
17
  href: attrs.href,
12
18
  disabled: attrs.disabled,
13
19
  onclick: (ev) => {
14
20
  var _a;
15
21
  (_a = attrs.onclick) === null || _a === void 0 ? void 0 : _a.call(attrs, ev);
16
- m.redraw();
22
+ mithril_1.default.redraw();
17
23
  },
18
24
  }, [
19
- m(ButtonIcon, { icon: attrs.icon }),
20
- m(ButtonLabel, { label: attrs.label }),
21
- m("", { style: "flex: 1 1 0%;" }),
22
- m(ButtonHint, { hint: attrs.hint }),
25
+ (0, mithril_1.default)(ButtonIcon, { icon: attrs.icon }),
26
+ (0, mithril_1.default)(ButtonLabel, { label: attrs.label }),
27
+ (0, mithril_1.default)("", { style: "flex: 1 1 0%;" }),
28
+ (0, mithril_1.default)(ButtonHint, { hint: attrs.hint }),
23
29
  ]),
24
30
  ] : [
25
- m("button", {
26
- class: `mico-menu-button ${(_c = attrs.class) !== null && _c !== void 0 ? _c : ""} ${MENU_SETTINGS.MENU_BUTTON_CLASS}`,
31
+ (0, mithril_1.default)("button", {
32
+ class: `mico-menu-button ${(_c = attrs.class) !== null && _c !== void 0 ? _c : ""} ${menu_settings_1.MENU_SETTINGS.MENU_BUTTON_CLASS}`,
27
33
  style: `${(_d = attrs.style) !== null && _d !== void 0 ? _d : ""} width: 100%; height: 1.5rem; padding-right: 0.5rem; display: flex; align-items: center;`,
28
34
  disabled: attrs.disabled,
29
35
  onclick: (ev) => {
30
36
  var _a;
31
37
  (_a = attrs.onclick) === null || _a === void 0 ? void 0 : _a.call(attrs, ev);
32
- m.redraw();
38
+ mithril_1.default.redraw();
33
39
  },
34
40
  }, [
35
- m(ButtonIcon, { icon: attrs.icon }),
36
- m(ButtonLabel, { label: attrs.label }),
37
- m("", { style: "flex: 1 1 0%;" }),
38
- m(ButtonHint, { hint: attrs.hint }),
41
+ (0, mithril_1.default)(ButtonIcon, { icon: attrs.icon }),
42
+ (0, mithril_1.default)(ButtonLabel, { label: attrs.label }),
43
+ (0, mithril_1.default)("", { style: "flex: 1 1 0%;" }),
44
+ (0, mithril_1.default)(ButtonHint, { hint: attrs.hint }),
39
45
  ]),
40
46
  ];
41
47
  }
42
48
  };
43
49
  const ButtonIcon = {
44
50
  view({ attrs }) {
45
- return m("", {
51
+ return (0, mithril_1.default)("", {
46
52
  // class: attrs.disabled ? "text-disabled" : "text-icon",
47
- class: `mico-menu-button-icon ${MENU_SETTINGS.MENU_BUTTON_ICON_CLASS}`,
53
+ class: `mico-menu-button-icon ${menu_settings_1.MENU_SETTINGS.MENU_BUTTON_ICON_CLASS}`,
48
54
  style: "width: 2rem; flex: none; display: flex; align-items: center; justify-content: space-around;",
49
55
  }, [
50
56
  attrs.icon ? [
51
57
  ("fas" in attrs.icon || "far" in attrs.icon || "fab" in attrs.icon)
52
- ? m(Icon, Object.assign({}, attrs.icon))
58
+ ? (0, mithril_1.default)(icon_1.Icon, Object.assign({}, attrs.icon))
53
59
  : attrs.icon,
54
60
  ] : [],
55
61
  ]);
@@ -57,8 +63,8 @@ const ButtonIcon = {
57
63
  };
58
64
  const ButtonLabel = {
59
65
  view({ attrs }) {
60
- return m("span", {
61
- class: `mico-menu-button-label ${MENU_SETTINGS.MENU_BUTTON_LABEL_CLASS}`,
66
+ return (0, mithril_1.default)("span", {
67
+ class: `mico-menu-button-label ${menu_settings_1.MENU_SETTINGS.MENU_BUTTON_LABEL_CLASS}`,
62
68
  style: "overflow: hidden; text-overflow: ellipsis; white-space: nowrap;",
63
69
  }, attrs.label);
64
70
  }
@@ -66,8 +72,8 @@ const ButtonLabel = {
66
72
  const ButtonHint = {
67
73
  view({ attrs }) {
68
74
  return attrs.hint
69
- ? m("span", {
70
- class: `mico-menu-button-hint ${MENU_SETTINGS.MENU_BUTTON_HINT_CLASS}`,
75
+ ? (0, mithril_1.default)("span", {
76
+ class: `mico-menu-button-hint ${menu_settings_1.MENU_SETTINGS.MENU_BUTTON_HINT_CLASS}`,
71
77
  style: "overflow: hidden; text-overflow: ellipsis; white-space: nowrap;",
72
78
  }, attrs.hint)
73
79
  : [];
@@ -1,10 +1,16 @@
1
- import m from "mithril";
2
- import { MENU_SETTINGS } from "./menu-settings";
3
- export const MenuSeparator = {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MenuSeparator = void 0;
7
+ const mithril_1 = __importDefault(require("mithril"));
8
+ const menu_settings_1 = require("./menu-settings");
9
+ exports.MenuSeparator = {
4
10
  view() {
5
11
  // return m(".my-2.ml-8.mr-2.border-b.border-slate-300");
6
- return m("", {
7
- class: `mico-menu-separator ${MENU_SETTINGS.MENU_SEPARATOR_CLASS}`,
12
+ return (0, mithril_1.default)("", {
13
+ class: `mico-menu-separator ${menu_settings_1.MENU_SETTINGS.MENU_SEPARATOR_CLASS}`,
8
14
  style: "margin: 0.25rem 0; border-bottom-width: 1px; border-bottom-style: solid;",
9
15
  });
10
16
  }
@@ -1,6 +1,22 @@
1
- export * from "./Menu";
2
- export * from "./MenuButton";
3
- export * from "./MenuSeparator";
4
- export * from "./menu-constants";
5
- export * from "./menu-manager";
6
- export * from "./menu-settings";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Menu"), exports);
18
+ __exportStar(require("./MenuButton"), exports);
19
+ __exportStar(require("./MenuSeparator"), exports);
20
+ __exportStar(require("./menu-constants"), exports);
21
+ __exportStar(require("./menu-manager"), exports);
22
+ __exportStar(require("./menu-settings"), exports);
@@ -1,4 +1,7 @@
1
- export const MENU_CONSTANTS = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MENU_CONSTANTS = void 0;
4
+ exports.MENU_CONSTANTS = {
2
5
  MIN_WIDTH_PX: 200,
3
6
  MAX_WIDTH_PX: 500,
4
7
  };
@@ -2,6 +2,8 @@ import m from "mithril";
2
2
  import { MenuOptions } from "./Menu";
3
3
  export declare class MenuManager {
4
4
  private containerEl;
5
+ private directParentEl;
6
+ private directParentWrapperEl;
5
7
  private _menuVnode;
6
8
  menuVnode$: import("rxjs").Observable<m.Vnode<any, any> | undefined>;
7
9
  get menuVnode(): m.Vnode<any, any> | undefined;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -7,18 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
- import m from "mithril";
11
- import { BehaviorSubject } from "rxjs";
12
- import { Menu } from "./Menu";
13
- import { MENU_SETTINGS } from "./menu-settings";
14
- export class MenuManager {
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.menuMgr = exports.MenuManager = void 0;
16
+ const mithril_1 = __importDefault(require("mithril"));
17
+ const rxjs_1 = require("rxjs");
18
+ const Menu_1 = require("./Menu");
19
+ const menu_settings_1 = require("./menu-settings");
20
+ class MenuManager {
15
21
  get menuVnode() { return this._menuVnode.value; }
16
22
  get isOpen() {
17
23
  return Boolean(this.menuVnode);
18
24
  }
19
25
  constructor() {
20
- this._menuVnode = new BehaviorSubject(undefined);
26
+ this._menuVnode = new rxjs_1.BehaviorSubject(undefined);
21
27
  this.menuVnode$ = this._menuVnode.asObservable();
28
+ // Set up the default container element for the menu
22
29
  this.containerEl = document.createElement("div");
23
30
  this.containerEl.classList.add("menu-container");
24
31
  document.body.append(this.containerEl);
@@ -51,22 +58,39 @@ export class MenuManager {
51
58
  yield new Promise((resolve, reject) => {
52
59
  setTimeout(() => resolve(), 0);
53
60
  });
54
- const menuVnode = m(Menu, {
61
+ const menuVnode = (0, mithril_1.default)(Menu_1.Menu, {
55
62
  x: ev === null || ev === void 0 ? void 0 : ev.clientX,
56
- y: MENU_SETTINGS.ANCHOR === "page" ? ev === null || ev === void 0 ? void 0 : ev.pageY : ev === null || ev === void 0 ? void 0 : ev.clientY,
63
+ y: menu_settings_1.MENU_SETTINGS.ANCHOR === "page" ? ev === null || ev === void 0 ? void 0 : ev.pageY : ev === null || ev === void 0 ? void 0 : ev.clientY,
57
64
  options,
58
65
  }, [
59
66
  menuContents,
60
67
  ]);
61
68
  this._menuVnode.next(menuVnode);
62
- m.render(this.containerEl, menuVnode);
69
+ // m.render(this.containerEl, menuVnode);
70
+ if ((options === null || options === void 0 ? void 0 : options.asChild) && (ev === null || ev === void 0 ? void 0 : ev.target) && ev.target instanceof HTMLElement) {
71
+ this.directParentEl = ev.target;
72
+ // m.render(ev.target, menuVnode);
73
+ // this.containerEl = ev.target;
74
+ this.directParentWrapperEl = document.createElement("div");
75
+ this.directParentEl.append(this.directParentWrapperEl);
76
+ mithril_1.default.render(this.directParentWrapperEl, menuVnode);
77
+ }
78
+ else {
79
+ mithril_1.default.render(this.containerEl, menuVnode);
80
+ }
81
+ // m.render(this.containerEl, menuVnode);
63
82
  // console.log("Added menu");
64
83
  });
65
84
  }
66
85
  hide() {
86
+ var _a;
67
87
  this._menuVnode.next(undefined);
68
- m.render(this.containerEl, []);
88
+ mithril_1.default.render(this.containerEl, []);
89
+ (_a = this.directParentWrapperEl) === null || _a === void 0 ? void 0 : _a.remove();
90
+ this.directParentWrapperEl = undefined;
91
+ this.directParentEl = undefined;
69
92
  // console.log("Closed menu");
70
93
  }
71
94
  }
72
- export const menuMgr = new MenuManager();
95
+ exports.MenuManager = MenuManager;
96
+ exports.menuMgr = new MenuManager();
@@ -1,4 +1,7 @@
1
- export const MENU_SETTINGS = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MENU_SETTINGS = void 0;
4
+ exports.MENU_SETTINGS = {
2
5
  ANCHOR: "page",
3
6
  MENU_CLASS: "",
4
7
  MENU_BUTTON_CLASS: "",
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1,2 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });