@hypericon/mico 0.3.23 → 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.
Files changed (275) hide show
  1. package/README.md +2 -0
  2. package/dist/{components → cjs/components}/index.d.ts +2 -0
  3. package/dist/{components → cjs/components}/index.js +2 -2
  4. package/dist/cjs/components/toast/index.d.ts +1 -0
  5. package/dist/cjs/components/toast/index.js +17 -0
  6. package/dist/cjs/components/toast/toast.d.ts +15 -0
  7. package/dist/cjs/components/toast/toast.js +61 -0
  8. package/dist/cjs/components/tooltip/index.d.ts +3 -0
  9. package/dist/cjs/components/tooltip/index.js +19 -0
  10. package/dist/cjs/components/tooltip/tooltip-defaults.d.ts +23 -0
  11. package/dist/cjs/components/tooltip/tooltip-defaults.js +25 -0
  12. package/dist/cjs/components/tooltip/tooltip-function.d.ts +35 -0
  13. package/dist/cjs/components/tooltip/tooltip-function.js +205 -0
  14. package/dist/cjs/components/tooltip/tooltip-interfaces.d.ts +11 -0
  15. package/dist/cjs/components/tree/tree-node.interface.js +2 -0
  16. package/dist/esm/components/data-table/index.js +1 -0
  17. package/dist/esm/components/dialog/Dialog.d.ts +1 -0
  18. package/dist/esm/components/dialog/Dialog.js +10 -0
  19. package/dist/esm/components/dialog/dialog-manager.d.ts +45 -0
  20. package/dist/esm/components/dialog/dialog-manager.js +163 -0
  21. package/dist/esm/components/dialog/index.d.ts +1 -0
  22. package/dist/esm/components/dialog/index.js +2 -0
  23. package/dist/esm/components/drag-handler/DragHandler.d.ts +40 -0
  24. package/dist/esm/components/drag-handler/DragHandler.js +104 -0
  25. package/dist/esm/components/drag-handler/index.d.ts +1 -0
  26. package/dist/esm/components/drag-handler/index.js +1 -0
  27. package/dist/esm/components/drawer/index.d.ts +0 -0
  28. package/dist/esm/components/drawer/index.js +1 -0
  29. package/dist/esm/components/drop-target/DropTarget.d.ts +24 -0
  30. package/dist/esm/components/drop-target/DropTarget.js +56 -0
  31. package/dist/esm/components/drop-target/drop-target.state.d.ts +9 -0
  32. package/dist/esm/components/drop-target/drop-target.state.js +73 -0
  33. package/dist/esm/components/drop-target/index.d.ts +1 -0
  34. package/dist/esm/components/drop-target/index.js +1 -0
  35. package/dist/esm/components/form/Form.d.ts +2 -0
  36. package/dist/esm/components/form/Form.js +9 -0
  37. package/dist/esm/components/form/index.d.ts +1 -0
  38. package/dist/esm/components/form/index.js +1 -0
  39. package/dist/esm/components/icon/Icon.d.ts +21 -0
  40. package/dist/esm/components/icon/Icon.js +22 -0
  41. package/dist/esm/components/icon/icons.d.ts +3 -0
  42. package/dist/esm/components/icon/icons.js +1 -0
  43. package/dist/esm/components/icon/index.d.ts +2 -0
  44. package/dist/esm/components/icon/index.js +2 -0
  45. package/dist/esm/components/index.d.ts +12 -0
  46. package/dist/esm/components/index.js +20 -0
  47. package/dist/esm/components/markdown/Markdown.d.ts +34 -0
  48. package/dist/esm/components/markdown/Markdown.js +55 -0
  49. package/dist/esm/components/markdown/index.d.ts +1 -0
  50. package/dist/esm/components/markdown/index.js +1 -0
  51. package/dist/esm/components/markdown-editor/MarkdownEditor.d.ts +21 -0
  52. package/dist/esm/components/markdown-editor/MarkdownEditor.js +181 -0
  53. package/dist/esm/components/markdown-editor/index.d.ts +1 -0
  54. package/dist/esm/components/markdown-editor/index.js +1 -0
  55. package/dist/esm/components/markdown-editor/markdown-editor.state.d.ts +31 -0
  56. package/dist/esm/components/markdown-editor/markdown-editor.state.js +255 -0
  57. package/dist/esm/components/menu/Menu.d.ts +14 -0
  58. package/dist/esm/components/menu/Menu.js +81 -0
  59. package/dist/esm/components/menu/MenuButton.d.ts +16 -0
  60. package/dist/esm/components/menu/MenuButton.js +75 -0
  61. package/dist/esm/components/menu/MenuSeparator.d.ts +2 -0
  62. package/dist/esm/components/menu/MenuSeparator.js +11 -0
  63. package/dist/esm/components/menu/index.d.ts +6 -0
  64. package/dist/esm/components/menu/index.js +6 -0
  65. package/dist/esm/components/menu/menu-constants.d.ts +4 -0
  66. package/dist/esm/components/menu/menu-constants.js +4 -0
  67. package/dist/esm/components/menu/menu-manager.d.ts +22 -0
  68. package/dist/esm/components/menu/menu-manager.js +72 -0
  69. package/dist/esm/components/menu/menu-settings.d.ts +9 -0
  70. package/dist/esm/components/menu/menu-settings.js +9 -0
  71. package/dist/esm/components/modal/index.d.ts +0 -0
  72. package/dist/esm/components/modal/index.js +1 -0
  73. package/dist/esm/components/pagination/Pagination.d.ts +40 -0
  74. package/dist/esm/components/pagination/Pagination.js +66 -0
  75. package/dist/esm/components/pagination/index.d.ts +2 -0
  76. package/dist/esm/components/pagination/index.js +2 -0
  77. package/dist/esm/components/pagination/pagination-settings.d.ts +17 -0
  78. package/dist/esm/components/pagination/pagination-settings.js +16 -0
  79. package/dist/esm/components/panel-tree/PanelTree.d.ts +26 -0
  80. package/dist/esm/components/panel-tree/PanelTree.js +174 -0
  81. package/dist/esm/components/panel-tree/index.d.ts +0 -0
  82. package/dist/esm/components/panel-tree/index.js +1 -0
  83. package/dist/esm/components/panel-tree/panel-tree-constants.d.ts +3 -0
  84. package/dist/esm/components/panel-tree/panel-tree-constants.js +3 -0
  85. package/dist/esm/components/panel-tree/panel-tree-store.d.ts +23 -0
  86. package/dist/esm/components/panel-tree/panel-tree-store.js +59 -0
  87. package/dist/esm/components/panel-tree/panel-tree-utils.d.ts +17 -0
  88. package/dist/esm/components/panel-tree/panel-tree-utils.js +55 -0
  89. package/dist/esm/components/popover/index.d.ts +0 -0
  90. package/dist/esm/components/popover/index.js +1 -0
  91. package/dist/esm/components/reorderable-list/RedorderableList.d.ts +55 -0
  92. package/dist/esm/components/reorderable-list/RedorderableList.js +202 -0
  93. package/dist/esm/components/reorderable-list/index.d.ts +0 -0
  94. package/dist/esm/components/reorderable-list/index.js +1 -0
  95. package/dist/esm/components/select/Select.d.ts +44 -0
  96. package/dist/esm/components/select/Select.js +108 -0
  97. package/dist/esm/components/select/SelectOptionsPanel.d.ts +21 -0
  98. package/dist/esm/components/select/SelectOptionsPanel.js +168 -0
  99. package/dist/esm/components/select/constants.d.ts +2 -0
  100. package/dist/esm/components/select/constants.js +2 -0
  101. package/dist/esm/components/select/index.d.ts +2 -0
  102. package/dist/esm/components/select/index.js +3 -0
  103. package/dist/esm/components/select/select-options-manager.d.ts +39 -0
  104. package/dist/esm/components/select/select-options-manager.js +63 -0
  105. package/dist/esm/components/tab-panel/TabPanel.d.ts +23 -0
  106. package/dist/esm/components/tab-panel/TabPanel.js +88 -0
  107. package/dist/esm/components/tab-panel/index.d.ts +3 -0
  108. package/dist/esm/components/tab-panel/index.js +3 -0
  109. package/dist/esm/components/tab-panel/tab-panel-default-settings.d.ts +17 -0
  110. package/dist/esm/components/tab-panel/tab-panel-default-settings.js +17 -0
  111. package/dist/esm/components/tab-panel/tab-panel-settings.d.ts +28 -0
  112. package/dist/esm/components/tab-panel/tab-panel-settings.js +11 -0
  113. package/dist/esm/components/table/Table.d.ts +64 -0
  114. package/dist/esm/components/table/Table.js +68 -0
  115. package/dist/esm/components/table/index.d.ts +1 -0
  116. package/dist/esm/components/table/index.js +1 -0
  117. package/dist/esm/components/toast/index.d.ts +1 -0
  118. package/dist/esm/components/toast/index.js +1 -0
  119. package/dist/esm/components/toast/toast.d.ts +15 -0
  120. package/dist/esm/components/toast/toast.js +31 -0
  121. package/dist/esm/components/tooltip/index.d.ts +3 -0
  122. package/dist/esm/components/tooltip/index.js +3 -0
  123. package/dist/esm/components/tooltip/tooltip-defaults.d.ts +23 -0
  124. package/dist/esm/components/tooltip/tooltip-defaults.js +22 -0
  125. package/dist/esm/components/tooltip/tooltip-function.d.ts +35 -0
  126. package/dist/esm/components/tooltip/tooltip-function.js +200 -0
  127. package/dist/esm/components/tooltip/tooltip-interfaces.d.ts +11 -0
  128. package/dist/esm/components/tooltip/tooltip-interfaces.js +1 -0
  129. package/dist/esm/components/tree/Tree.d.ts +110 -0
  130. package/dist/esm/components/tree/Tree.js +222 -0
  131. package/dist/esm/components/tree/index.d.ts +3 -0
  132. package/dist/esm/components/tree/index.js +3 -0
  133. package/dist/esm/components/tree/tree-node.interface.d.ts +9 -0
  134. package/dist/esm/components/tree/tree-node.interface.js +1 -0
  135. package/dist/esm/components/tree/tree-utils.d.ts +11 -0
  136. package/dist/esm/components/tree/tree-utils.js +18 -0
  137. package/dist/esm/index.d.ts +2 -0
  138. package/dist/esm/index.js +2 -0
  139. package/dist/esm/utils/date-time.d.ts +3 -0
  140. package/dist/esm/utils/date-time.js +22 -0
  141. package/dist/esm/utils/dom.d.ts +16 -0
  142. package/dist/esm/utils/dom.js +28 -0
  143. package/dist/esm/utils/events.d.ts +1 -0
  144. package/dist/esm/utils/events.js +25 -0
  145. package/dist/esm/utils/index.d.ts +3 -0
  146. package/dist/esm/utils/index.js +3 -0
  147. package/package.json +10 -4
  148. package/dist/components/tooltip/tooltip-function.js +0 -204
  149. /package/dist/{components → cjs/components}/accordion/index.d.ts +0 -0
  150. /package/dist/{components → cjs/components}/accordion/index.js +0 -0
  151. /package/dist/{components → cjs/components}/data-grid/index.d.ts +0 -0
  152. /package/dist/{components → cjs/components}/data-grid/index.js +0 -0
  153. /package/dist/{components → cjs/components}/data-table/index.d.ts +0 -0
  154. /package/dist/{components → cjs/components}/data-table/index.js +0 -0
  155. /package/dist/{components → cjs/components}/dialog/Dialog.d.ts +0 -0
  156. /package/dist/{components → cjs/components}/dialog/Dialog.js +0 -0
  157. /package/dist/{components → cjs/components}/dialog/dialog-manager.d.ts +0 -0
  158. /package/dist/{components → cjs/components}/dialog/dialog-manager.js +0 -0
  159. /package/dist/{components → cjs/components}/dialog/index.d.ts +0 -0
  160. /package/dist/{components → cjs/components}/dialog/index.js +0 -0
  161. /package/dist/{components → cjs/components}/drag-handler/DragHandler.d.ts +0 -0
  162. /package/dist/{components → cjs/components}/drag-handler/DragHandler.js +0 -0
  163. /package/dist/{components → cjs/components}/drag-handler/index.d.ts +0 -0
  164. /package/dist/{components → cjs/components}/drag-handler/index.js +0 -0
  165. /package/dist/{components → cjs/components}/drawer/index.d.ts +0 -0
  166. /package/dist/{components → cjs/components}/drawer/index.js +0 -0
  167. /package/dist/{components → cjs/components}/drop-target/DropTarget.d.ts +0 -0
  168. /package/dist/{components → cjs/components}/drop-target/DropTarget.js +0 -0
  169. /package/dist/{components → cjs/components}/drop-target/drop-target.state.d.ts +0 -0
  170. /package/dist/{components → cjs/components}/drop-target/drop-target.state.js +0 -0
  171. /package/dist/{components → cjs/components}/drop-target/index.d.ts +0 -0
  172. /package/dist/{components → cjs/components}/drop-target/index.js +0 -0
  173. /package/dist/{components → cjs/components}/form/Form.d.ts +0 -0
  174. /package/dist/{components → cjs/components}/form/Form.js +0 -0
  175. /package/dist/{components → cjs/components}/form/index.d.ts +0 -0
  176. /package/dist/{components → cjs/components}/form/index.js +0 -0
  177. /package/dist/{components → cjs/components}/icon/Icon.d.ts +0 -0
  178. /package/dist/{components → cjs/components}/icon/Icon.js +0 -0
  179. /package/dist/{components → cjs/components}/icon/icons.d.ts +0 -0
  180. /package/dist/{components → cjs/components}/icon/icons.js +0 -0
  181. /package/dist/{components → cjs/components}/icon/index.d.ts +0 -0
  182. /package/dist/{components → cjs/components}/icon/index.js +0 -0
  183. /package/dist/{components → cjs/components}/markdown/Markdown.d.ts +0 -0
  184. /package/dist/{components → cjs/components}/markdown/Markdown.js +0 -0
  185. /package/dist/{components → cjs/components}/markdown/index.d.ts +0 -0
  186. /package/dist/{components → cjs/components}/markdown/index.js +0 -0
  187. /package/dist/{components → cjs/components}/markdown-editor/MarkdownEditor.d.ts +0 -0
  188. /package/dist/{components → cjs/components}/markdown-editor/MarkdownEditor.js +0 -0
  189. /package/dist/{components → cjs/components}/markdown-editor/index.d.ts +0 -0
  190. /package/dist/{components → cjs/components}/markdown-editor/index.js +0 -0
  191. /package/dist/{components → cjs/components}/markdown-editor/markdown-editor.state.d.ts +0 -0
  192. /package/dist/{components → cjs/components}/markdown-editor/markdown-editor.state.js +0 -0
  193. /package/dist/{components → cjs/components}/menu/Menu.d.ts +0 -0
  194. /package/dist/{components → cjs/components}/menu/Menu.js +0 -0
  195. /package/dist/{components → cjs/components}/menu/MenuButton.d.ts +0 -0
  196. /package/dist/{components → cjs/components}/menu/MenuButton.js +0 -0
  197. /package/dist/{components → cjs/components}/menu/MenuSeparator.d.ts +0 -0
  198. /package/dist/{components → cjs/components}/menu/MenuSeparator.js +0 -0
  199. /package/dist/{components → cjs/components}/menu/index.d.ts +0 -0
  200. /package/dist/{components → cjs/components}/menu/index.js +0 -0
  201. /package/dist/{components → cjs/components}/menu/menu-constants.d.ts +0 -0
  202. /package/dist/{components → cjs/components}/menu/menu-constants.js +0 -0
  203. /package/dist/{components → cjs/components}/menu/menu-manager.d.ts +0 -0
  204. /package/dist/{components → cjs/components}/menu/menu-manager.js +0 -0
  205. /package/dist/{components → cjs/components}/menu/menu-settings.d.ts +0 -0
  206. /package/dist/{components → cjs/components}/menu/menu-settings.js +0 -0
  207. /package/dist/{components → cjs/components}/modal/index.d.ts +0 -0
  208. /package/dist/{components → cjs/components}/modal/index.js +0 -0
  209. /package/dist/{components → cjs/components}/pagination/Pagination.d.ts +0 -0
  210. /package/dist/{components → cjs/components}/pagination/Pagination.js +0 -0
  211. /package/dist/{components → cjs/components}/pagination/index.d.ts +0 -0
  212. /package/dist/{components → cjs/components}/pagination/index.js +0 -0
  213. /package/dist/{components → cjs/components}/pagination/pagination-settings.d.ts +0 -0
  214. /package/dist/{components → cjs/components}/pagination/pagination-settings.js +0 -0
  215. /package/dist/{components → cjs/components}/panel-tree/PanelTree.d.ts +0 -0
  216. /package/dist/{components → cjs/components}/panel-tree/PanelTree.js +0 -0
  217. /package/dist/{components → cjs/components}/panel-tree/index.d.ts +0 -0
  218. /package/dist/{components → cjs/components}/panel-tree/index.js +0 -0
  219. /package/dist/{components → cjs/components}/panel-tree/panel-tree-constants.d.ts +0 -0
  220. /package/dist/{components → cjs/components}/panel-tree/panel-tree-constants.js +0 -0
  221. /package/dist/{components → cjs/components}/panel-tree/panel-tree-store.d.ts +0 -0
  222. /package/dist/{components → cjs/components}/panel-tree/panel-tree-store.js +0 -0
  223. /package/dist/{components → cjs/components}/panel-tree/panel-tree-utils.d.ts +0 -0
  224. /package/dist/{components → cjs/components}/panel-tree/panel-tree-utils.js +0 -0
  225. /package/dist/{components → cjs/components}/popover/index.d.ts +0 -0
  226. /package/dist/{components → cjs/components}/popover/index.js +0 -0
  227. /package/dist/{components → cjs/components}/reorderable-list/RedorderableList.d.ts +0 -0
  228. /package/dist/{components → cjs/components}/reorderable-list/RedorderableList.js +0 -0
  229. /package/dist/{components → cjs/components}/reorderable-list/index.d.ts +0 -0
  230. /package/dist/{components → cjs/components}/reorderable-list/index.js +0 -0
  231. /package/dist/{components → cjs/components}/select/Select.d.ts +0 -0
  232. /package/dist/{components → cjs/components}/select/Select.js +0 -0
  233. /package/dist/{components → cjs/components}/select/SelectOptionsPanel.d.ts +0 -0
  234. /package/dist/{components → cjs/components}/select/SelectOptionsPanel.js +0 -0
  235. /package/dist/{components → cjs/components}/select/constants.d.ts +0 -0
  236. /package/dist/{components → cjs/components}/select/constants.js +0 -0
  237. /package/dist/{components → cjs/components}/select/index.d.ts +0 -0
  238. /package/dist/{components → cjs/components}/select/index.js +0 -0
  239. /package/dist/{components → cjs/components}/select/select-options-manager.d.ts +0 -0
  240. /package/dist/{components → cjs/components}/select/select-options-manager.js +0 -0
  241. /package/dist/{components → cjs/components}/tab-panel/TabPanel.d.ts +0 -0
  242. /package/dist/{components → cjs/components}/tab-panel/TabPanel.js +0 -0
  243. /package/dist/{components → cjs/components}/tab-panel/index.d.ts +0 -0
  244. /package/dist/{components → cjs/components}/tab-panel/index.js +0 -0
  245. /package/dist/{components → cjs/components}/tab-panel/tab-panel-default-settings.d.ts +0 -0
  246. /package/dist/{components → cjs/components}/tab-panel/tab-panel-default-settings.js +0 -0
  247. /package/dist/{components → cjs/components}/tab-panel/tab-panel-settings.d.ts +0 -0
  248. /package/dist/{components → cjs/components}/tab-panel/tab-panel-settings.js +0 -0
  249. /package/dist/{components → cjs/components}/table/Table.d.ts +0 -0
  250. /package/dist/{components → cjs/components}/table/Table.js +0 -0
  251. /package/dist/{components → cjs/components}/table/index.d.ts +0 -0
  252. /package/dist/{components → cjs/components}/table/index.js +0 -0
  253. /package/dist/{components/tree/tree-node.interface.js → cjs/components/tooltip/tooltip-interfaces.js} +0 -0
  254. /package/dist/{components → cjs/components}/tree/Tree.d.ts +0 -0
  255. /package/dist/{components → cjs/components}/tree/Tree.js +0 -0
  256. /package/dist/{components → cjs/components}/tree/index.d.ts +0 -0
  257. /package/dist/{components → cjs/components}/tree/index.js +0 -0
  258. /package/dist/{components → cjs/components}/tree/tree-node.interface.d.ts +0 -0
  259. /package/dist/{components → cjs/components}/tree/tree-utils.d.ts +0 -0
  260. /package/dist/{components → cjs/components}/tree/tree-utils.js +0 -0
  261. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  262. /package/dist/{index.js → cjs/index.js} +0 -0
  263. /package/dist/{utils → cjs/utils}/date-time.d.ts +0 -0
  264. /package/dist/{utils → cjs/utils}/date-time.js +0 -0
  265. /package/dist/{utils → cjs/utils}/dom.d.ts +0 -0
  266. /package/dist/{utils → cjs/utils}/dom.js +0 -0
  267. /package/dist/{utils → cjs/utils}/events.d.ts +0 -0
  268. /package/dist/{utils → cjs/utils}/events.js +0 -0
  269. /package/dist/{utils → cjs/utils}/index.d.ts +0 -0
  270. /package/dist/{utils → cjs/utils}/index.js +0 -0
  271. /package/dist/{components/toast → esm/components/accordion}/index.d.ts +0 -0
  272. /package/dist/{components/toast → esm/components/accordion}/index.js +0 -0
  273. /package/dist/{components/tooltip → esm/components/data-grid}/index.d.ts +0 -0
  274. /package/dist/{components/tooltip → esm/components/data-grid}/index.js +0 -0
  275. /package/dist/{components/tooltip/tooltip-function.d.ts → esm/components/data-table/index.d.ts} +0 -0
@@ -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,2 @@
1
+ // export * from "./Dialog";
2
+ 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,9 @@
1
+ export declare class DropTargetState {
2
+ private subs;
3
+ isDragging: boolean;
4
+ isOver: boolean;
5
+ lastHeight: number;
6
+ constructor();
7
+ initialise(): void;
8
+ destroy(): void;
9
+ }
@@ -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,2 @@
1
+ import m from "mithril";
2
+ export declare const Form: m.Component<{}>;
@@ -0,0 +1,9 @@
1
+ // type FormItem =
2
+ // | InputText
3
+ // | InputNumber
4
+ // | InputDate
5
+ // | InputCheckbox
6
+ // | InputTextarea
7
+ export const Form = {
8
+ view() { }
9
+ };
@@ -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
+ };