@milkdown/plugin-tooltip 5.2.0 → 5.2.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 (44) hide show
  1. package/lib/index.cjs.js +102 -0
  2. package/lib/index.cjs.js.map +1 -0
  3. package/lib/index.es.js +581 -0
  4. package/lib/index.es.js.map +1 -0
  5. package/package.json +18 -8
  6. package/src/utility/input.ts +1 -1
  7. package/lib/button-manager/calc-button-pos.js +0 -17
  8. package/lib/button-manager/calc-button-pos.js.map +0 -1
  9. package/lib/button-manager/create-tooltip.js +0 -20
  10. package/lib/button-manager/create-tooltip.js.map +0 -1
  11. package/lib/button-manager/filter-button.js +0 -22
  12. package/lib/button-manager/filter-button.js.map +0 -1
  13. package/lib/button-manager/index.js +0 -35
  14. package/lib/button-manager/index.js.map +0 -1
  15. package/lib/button-manager/no-active.js +0 -6
  16. package/lib/button-manager/no-active.js.map +0 -1
  17. package/lib/button-manager/style.js +0 -50
  18. package/lib/button-manager/style.js.map +0 -1
  19. package/lib/index.js +0 -45
  20. package/lib/index.js.map +0 -1
  21. package/lib/input-manager/calc-input-pos.js +0 -13
  22. package/lib/input-manager/calc-input-pos.js.map +0 -1
  23. package/lib/input-manager/create-input.js +0 -30
  24. package/lib/input-manager/create-input.js.map +0 -1
  25. package/lib/input-manager/filter-input.js +0 -19
  26. package/lib/input-manager/filter-input.js.map +0 -1
  27. package/lib/input-manager/index.js +0 -49
  28. package/lib/input-manager/index.js.map +0 -1
  29. package/lib/input-manager/style.js +0 -66
  30. package/lib/input-manager/style.js.map +0 -1
  31. package/lib/item.js +0 -36
  32. package/lib/item.js.map +0 -1
  33. package/lib/selection-marks-tooltip.js +0 -39
  34. package/lib/selection-marks-tooltip.js.map +0 -1
  35. package/lib/utility/element.js +0 -3
  36. package/lib/utility/element.js.map +0 -1
  37. package/lib/utility/index.js +0 -6
  38. package/lib/utility/index.js.map +0 -1
  39. package/lib/utility/input.js +0 -121
  40. package/lib/utility/input.js.map +0 -1
  41. package/lib/utility/prosemirror.js +0 -22
  42. package/lib/utility/prosemirror.js.map +0 -1
  43. package/lib/utility/toggle.js +0 -11
  44. package/lib/utility/toggle.js.map +0 -1
@@ -1,121 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { commandsCtx } from '@milkdown/core';
3
- import { ModifyInlineMath } from '@milkdown/plugin-math';
4
- import { ModifyImage, ModifyLink } from '@milkdown/preset-commonmark';
5
- import { findSelectedNodeOfType } from '@milkdown/prose';
6
- import { elementIsTag } from './element';
7
- export const modifyLink = (ctx) => (e) => {
8
- const { target } = e;
9
- if (!(target instanceof HTMLElement)) {
10
- return () => true;
11
- }
12
- if (elementIsTag(target, 'input')) {
13
- target.focus();
14
- return () => false;
15
- }
16
- const parent = target.parentNode;
17
- if (!parent)
18
- return () => false;
19
- const inputEl = Array.from(parent.children).find((el) => el.tagName === 'INPUT');
20
- if (!(inputEl instanceof HTMLInputElement))
21
- return () => false;
22
- return ctx.get(commandsCtx).call(ModifyLink, inputEl.value);
23
- };
24
- export const modifyInlineMath = (ctx) => (e) => {
25
- const { target } = e;
26
- if (!(target instanceof HTMLElement)) {
27
- return () => true;
28
- }
29
- const parent = target.parentNode;
30
- if (!parent)
31
- return () => false;
32
- const inputEl = Array.from(parent.children).find((el) => el.tagName === 'INPUT');
33
- if (!(inputEl instanceof HTMLInputElement))
34
- return () => false;
35
- return ctx.get(commandsCtx).call(ModifyInlineMath, inputEl.value);
36
- };
37
- export const modifyImage = (ctx) => (e) => {
38
- const { target } = e;
39
- if (!(target instanceof HTMLElement)) {
40
- return () => true;
41
- }
42
- if (elementIsTag(target, 'input')) {
43
- target.focus();
44
- return () => false;
45
- }
46
- const parent = target.parentNode;
47
- if (!parent)
48
- return () => false;
49
- const inputEl = Array.from(parent.children).find((el) => el.tagName === 'INPUT');
50
- if (!(inputEl instanceof HTMLInputElement))
51
- return () => false;
52
- return ctx.get(commandsCtx).call(ModifyImage, inputEl.value);
53
- };
54
- export const updateLinkView = (view, $) => {
55
- const { marks } = view.state.schema;
56
- const { firstChild, lastElementChild } = $;
57
- if (!(firstChild instanceof HTMLInputElement) || !(lastElementChild instanceof HTMLButtonElement))
58
- return;
59
- const { selection } = view.state;
60
- let node;
61
- view.state.doc.nodesBetween(selection.from, selection.to, (n) => {
62
- if (marks.link.isInSet(n.marks)) {
63
- node = n;
64
- return false;
65
- }
66
- return;
67
- });
68
- if (!node)
69
- return;
70
- const mark = node.marks.find((m) => m.type === marks.link);
71
- if (!mark)
72
- return;
73
- const value = mark.attrs.href;
74
- firstChild.value = value;
75
- if (!value) {
76
- lastElementChild.classList.add('disable');
77
- return;
78
- }
79
- if (lastElementChild.classList.contains('disable')) {
80
- lastElementChild.classList.remove('disable');
81
- }
82
- };
83
- export const updateInlineMathView = (view, $) => {
84
- const { nodes } = view.state.schema;
85
- const { firstChild, lastElementChild } = $;
86
- if (!(firstChild instanceof HTMLInputElement) || !(lastElementChild instanceof HTMLButtonElement))
87
- return;
88
- const result = findSelectedNodeOfType(view.state.selection, nodes.math_inline);
89
- if (!result)
90
- return;
91
- const { node } = result;
92
- const value = node.attrs.value;
93
- firstChild.value = value;
94
- if (!value) {
95
- lastElementChild.classList.add('disable');
96
- return;
97
- }
98
- if (lastElementChild.classList.contains('disable')) {
99
- lastElementChild.classList.remove('disable');
100
- }
101
- };
102
- export const updateImageView = (view, $) => {
103
- const { nodes } = view.state.schema;
104
- const { firstChild, lastElementChild } = $;
105
- if (!(firstChild instanceof HTMLInputElement) || !(lastElementChild instanceof HTMLButtonElement))
106
- return;
107
- const result = findSelectedNodeOfType(view.state.selection, nodes.image);
108
- if (!result)
109
- return;
110
- const { node } = result;
111
- const value = node.attrs.src;
112
- firstChild.value = value;
113
- if (!value) {
114
- lastElementChild.classList.add('disable');
115
- return;
116
- }
117
- if (lastElementChild.classList.contains('disable')) {
118
- lastElementChild.classList.remove('disable');
119
- }
120
- };
121
- //# sourceMappingURL=input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/utility/input.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { findParentNode, TextSelection } from '@milkdown/prose';
3
- export const hasMark = (editorState, type) => {
4
- const { from, to } = editorState.selection;
5
- return editorState.doc.rangeHasMark(from, from === to ? to + 1 : to, type);
6
- };
7
- export const isTextSelection = (editorState) => {
8
- const { selection } = editorState;
9
- if (selection instanceof TextSelection) {
10
- const text = editorState.doc.textBetween(selection.from, selection.to);
11
- if (!text)
12
- return false;
13
- return true;
14
- }
15
- return false;
16
- };
17
- export const isInCodeFence = (editorState) => Boolean(findParentNode((node) => !!node.type.spec.code)(editorState.selection));
18
- export const isTextAndNotHasMark = (editorState, mark) => !isTextSelection(editorState) || isInCodeFence(editorState) || hasMark(editorState, mark);
19
- export const equalNodeType = (nodeType, node) => {
20
- return (Array.isArray(nodeType) && nodeType.indexOf(node.type) > -1) || node.type === nodeType;
21
- };
22
- //# sourceMappingURL=prosemirror.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prosemirror.js","sourceRoot":"","sources":["../../src/utility/prosemirror.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAe,cAAc,EAA4B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOvG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,WAAwB,EAAE,IAAc,EAAW,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC;IAE3C,OAAO,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAwB,EAAW,EAAE;IACjE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAClC,IAAI,SAAS,YAAY,aAAa,EAAE;QACpC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAwB,EAAW,EAAE,CAC/D,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAwB,EAAE,IAAc,EAAW,EAAE,CACrF,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAkB,EAAE,IAAU,EAAE,EAAE;IAC5D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnG,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { commandsCtx, themeToolCtx } from '@milkdown/core';
3
- import { hasMark, isTextAndNotHasMark } from './prosemirror';
4
- export const createToggleIcon = (ctx, iconName, commandKey, mark, disableForMark) => ({
5
- $: ctx.get(themeToolCtx).slots.icon(iconName),
6
- command: () => ctx.get(commandsCtx).call(commandKey),
7
- active: (view) => hasMark(view.state, mark),
8
- disable: (view) => isTextAndNotHasMark(view.state, disableForMark),
9
- enable: (view) => !!mark && !!view.state.schema.marks[mark.name],
10
- });
11
- //# sourceMappingURL=toggle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/utility/toggle.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAU,WAAW,EAAO,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKxE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,GAAQ,EACR,QAAc,EACd,UAAqB,EACrB,IAAc,EACd,cAAwB,EACd,EAAE,CAAC,CAAC;IACd,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC;IAClE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;CACnE,CAAC,CAAC"}