@gravity-ui/markdown-editor 15.24.0 → 15.25.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 (125) hide show
  1. package/build/cjs/bundle/Editor.js +56 -23
  2. package/build/cjs/bundle/Editor.js.map +1 -1
  3. package/build/cjs/extensions/base/BaseSchema/BaseSchemaSpecs/index.js +9 -1
  4. package/build/cjs/extensions/base/BaseSchema/BaseSchemaSpecs/index.js.map +1 -1
  5. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +11 -4
  6. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  7. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockSpecs/index.d.ts +1 -0
  8. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockSpecs/index.js +8 -0
  9. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockSpecs/index.js.map +1 -1
  10. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/const.d.ts +3 -0
  11. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/const.js +4 -1
  12. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/const.js.map +1 -1
  13. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/parser.js +9 -1
  14. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/parser.js.map +1 -1
  15. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/schema.js +3 -2
  16. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/schema.js.map +1 -1
  17. package/build/cjs/extensions/markdown/Lists/ListsSpecs/const.d.ts +2 -1
  18. package/build/cjs/extensions/markdown/Lists/ListsSpecs/const.js +1 -0
  19. package/build/cjs/extensions/markdown/Lists/ListsSpecs/const.js.map +1 -1
  20. package/build/cjs/extensions/markdown/Lists/ListsSpecs/parser.js +4 -1
  21. package/build/cjs/extensions/markdown/Lists/ListsSpecs/parser.js.map +1 -1
  22. package/build/cjs/extensions/markdown/Lists/ListsSpecs/schema.js +3 -2
  23. package/build/cjs/extensions/markdown/Lists/ListsSpecs/schema.js.map +1 -1
  24. package/build/cjs/extensions/markdown/Table/TableSpecs/const.d.ts +2 -1
  25. package/build/cjs/extensions/markdown/Table/TableSpecs/const.js +1 -0
  26. package/build/cjs/extensions/markdown/Table/TableSpecs/const.js.map +1 -1
  27. package/build/cjs/extensions/markdown/Table/TableSpecs/parser.js +9 -1
  28. package/build/cjs/extensions/markdown/Table/TableSpecs/parser.js.map +1 -1
  29. package/build/cjs/extensions/markdown/Table/TableSpecs/schema.js +3 -2
  30. package/build/cjs/extensions/markdown/Table/TableSpecs/schema.js.map +1 -1
  31. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/const.d.ts +1 -0
  32. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/const.js +1 -0
  33. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/const.js.map +1 -1
  34. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/schema.js +1 -0
  35. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/schema.js.map +1 -1
  36. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/const.d.ts +1 -0
  37. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/const.js +1 -0
  38. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/const.js.map +1 -1
  39. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/parser.js +14 -1
  40. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/parser.js.map +1 -1
  41. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/schema.js +4 -1
  42. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/schema.js.map +1 -1
  43. package/build/cjs/extensions/yfm/YfmCut/const.d.ts +1 -1
  44. package/build/cjs/extensions/yfm/YfmCut/const.js +2 -1
  45. package/build/cjs/extensions/yfm/YfmCut/const.js.map +1 -1
  46. package/build/cjs/extensions/yfm/YfmCut/nodeviews/yfm-cut-title.js +10 -0
  47. package/build/cjs/extensions/yfm/YfmCut/nodeviews/yfm-cut-title.js.map +1 -1
  48. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/const.d.ts +2 -1
  49. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/const.js +1 -0
  50. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/const.js.map +1 -1
  51. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/parser.js +14 -1
  52. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/parser.js.map +1 -1
  53. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/schema.js +3 -2
  54. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/schema.js.map +1 -1
  55. package/build/cjs/utils/index.d.ts +1 -0
  56. package/build/cjs/utils/index.js +1 -0
  57. package/build/cjs/utils/index.js.map +1 -1
  58. package/build/cjs/utils/node-descedants.d.ts +10 -0
  59. package/build/cjs/utils/node-descedants.js +23 -0
  60. package/build/cjs/utils/node-descedants.js.map +1 -0
  61. package/build/cjs/version.js +1 -1
  62. package/build/cjs/version.js.map +1 -1
  63. package/build/esm/bundle/Editor.js +56 -23
  64. package/build/esm/bundle/Editor.js.map +1 -1
  65. package/build/esm/extensions/base/BaseSchema/BaseSchemaSpecs/index.js +9 -1
  66. package/build/esm/extensions/base/BaseSchema/BaseSchemaSpecs/index.js.map +1 -1
  67. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +11 -4
  68. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  69. package/build/esm/extensions/markdown/CodeBlock/CodeBlockSpecs/index.d.ts +1 -0
  70. package/build/esm/extensions/markdown/CodeBlock/CodeBlockSpecs/index.js +8 -0
  71. package/build/esm/extensions/markdown/CodeBlock/CodeBlockSpecs/index.js.map +1 -1
  72. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/const.d.ts +3 -0
  73. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/const.js +3 -0
  74. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/const.js.map +1 -1
  75. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/parser.js +10 -2
  76. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/parser.js.map +1 -1
  77. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/schema.js +4 -3
  78. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/schema.js.map +1 -1
  79. package/build/esm/extensions/markdown/Lists/ListsSpecs/const.d.ts +2 -1
  80. package/build/esm/extensions/markdown/Lists/ListsSpecs/const.js +1 -0
  81. package/build/esm/extensions/markdown/Lists/ListsSpecs/const.js.map +1 -1
  82. package/build/esm/extensions/markdown/Lists/ListsSpecs/parser.js +4 -1
  83. package/build/esm/extensions/markdown/Lists/ListsSpecs/parser.js.map +1 -1
  84. package/build/esm/extensions/markdown/Lists/ListsSpecs/schema.js +3 -2
  85. package/build/esm/extensions/markdown/Lists/ListsSpecs/schema.js.map +1 -1
  86. package/build/esm/extensions/markdown/Table/TableSpecs/const.d.ts +2 -1
  87. package/build/esm/extensions/markdown/Table/TableSpecs/const.js +1 -0
  88. package/build/esm/extensions/markdown/Table/TableSpecs/const.js.map +1 -1
  89. package/build/esm/extensions/markdown/Table/TableSpecs/parser.js +9 -1
  90. package/build/esm/extensions/markdown/Table/TableSpecs/parser.js.map +1 -1
  91. package/build/esm/extensions/markdown/Table/TableSpecs/schema.js +3 -2
  92. package/build/esm/extensions/markdown/Table/TableSpecs/schema.js.map +1 -1
  93. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/const.d.ts +1 -0
  94. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/const.js +1 -0
  95. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/const.js.map +1 -1
  96. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/schema.js +1 -0
  97. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/schema.js.map +1 -1
  98. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/const.d.ts +1 -0
  99. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/const.js +1 -0
  100. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/const.js.map +1 -1
  101. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/parser.js +14 -1
  102. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/parser.js.map +1 -1
  103. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/schema.js +4 -1
  104. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/schema.js.map +1 -1
  105. package/build/esm/extensions/yfm/YfmCut/const.d.ts +1 -1
  106. package/build/esm/extensions/yfm/YfmCut/const.js +1 -1
  107. package/build/esm/extensions/yfm/YfmCut/const.js.map +1 -1
  108. package/build/esm/extensions/yfm/YfmCut/nodeviews/yfm-cut-title.js +11 -1
  109. package/build/esm/extensions/yfm/YfmCut/nodeviews/yfm-cut-title.js.map +1 -1
  110. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/const.d.ts +2 -1
  111. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/const.js +1 -0
  112. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/const.js.map +1 -1
  113. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/parser.js +15 -2
  114. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/parser.js.map +1 -1
  115. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/schema.js +3 -2
  116. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/schema.js.map +1 -1
  117. package/build/esm/utils/index.d.ts +1 -0
  118. package/build/esm/utils/index.js +1 -0
  119. package/build/esm/utils/index.js.map +1 -1
  120. package/build/esm/utils/node-descedants.d.ts +10 -0
  121. package/build/esm/utils/node-descedants.js +19 -0
  122. package/build/esm/utils/node-descedants.js.map +1 -0
  123. package/build/esm/version.js +1 -1
  124. package/build/esm/version.js.map +1 -1
  125. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"yfm-cut-title.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmCut/nodeviews/yfm-cut-title.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAC,oBAAiB;AAEzC,6BAA8B;AAE9B,MAAM,OAAO,mBAAmB;IACnB,GAAG,CAAc;IACjB,UAAU,CAAc;IAEzB,IAAI,CAAO;IAEnB,YAAY,IAAU;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,IAAU;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEO,aAAa,GAAG,CAAC,CAAa,EAAE,EAAE;QACtC,MAAM,EAAC,aAAa,EAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,aAAa,YAAY,WAAW,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC;YAC3C,IAAI,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,yDAAyD;gBACzD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;QAC3C,uCAAuC;QACvC,2DAA2D;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC,CAAC;CACL","sourcesContent":["import type {Node} from '#pm/model';\nimport type {NodeView} from '#pm/view';\n\nimport {YfmCutClassName} from '../const';\n\nimport './yfm-cut-title.scss';\n\nexport class YfmCutTitleNodeView implements NodeView {\n readonly dom: HTMLElement;\n readonly contentDOM: HTMLElement;\n\n private node: Node;\n\n constructor(node: Node) {\n this.node = node;\n\n this.dom = document.createElement('div');\n this.dom.classList.add(YfmCutClassName.Title);\n this.dom.addEventListener('click', this._onTitleClick);\n\n this.contentDOM = this.dom.appendChild(document.createElement('div'));\n this.contentDOM.classList.add(YfmCutClassName.TitleInner);\n this.contentDOM.addEventListener('click', this._onTitleInnerClick);\n }\n\n update(node: Node): boolean {\n if (this.node.type !== node.type) return false;\n this.node = node;\n return true;\n }\n\n destroy() {\n this.dom.removeEventListener('click', this._onTitleClick);\n this.contentDOM.removeEventListener('click', this._onTitleInnerClick);\n }\n\n private _onTitleClick = (e: MouseEvent) => {\n const {currentTarget} = e;\n if (currentTarget instanceof HTMLElement) {\n const parent = currentTarget.parentElement;\n if (parent?.classList.contains(YfmCutClassName.Cut)) {\n // TODO: toggle open classname via prosemirror decoration\n parent.classList.toggle(YfmCutClassName.Open);\n }\n }\n };\n\n private _onTitleInnerClick = (e: MouseEvent) => {\n // ignore clicking on the title content\n // you can open/close yfm-cut by clicking on the arrow icon\n e.stopPropagation();\n e.preventDefault();\n };\n}\n"]}
1
+ {"version":3,"file":"yfm-cut-title.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmCut/nodeviews/yfm-cut-title.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,oBAAiB;AAElD,6BAA8B;AAE9B,MAAM,OAAO,mBAAmB;IACnB,GAAG,CAAc;IACjB,UAAU,CAAc;IAEzB,IAAI,CAAO;IAEnB,YAAY,IAAU;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,IAAU;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEO,aAAa,GAAG,CAAC,CAAa,EAAE,EAAE;QACtC,MAAM,EAAC,aAAa,EAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,aAAa,YAAY,WAAW,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC;YAC3C,IAAI,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,yDAAyD;gBACzD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;QAC3C,uCAAuC;QACvC,2DAA2D;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC,CAAC;CACL;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,IAAY,EAAE,KAAgC;IACrF,IAAI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC","sourcesContent":["import type {Node} from '#pm/model';\nimport type {NodeView} from '#pm/view';\n\nimport {CutAttr, YfmCutClassName} from '../const';\n\nimport './yfm-cut-title.scss';\n\nexport class YfmCutTitleNodeView implements NodeView {\n readonly dom: HTMLElement;\n readonly contentDOM: HTMLElement;\n\n private node: Node;\n\n constructor(node: Node) {\n this.node = node;\n\n this.dom = document.createElement('div');\n this.dom.classList.add(YfmCutClassName.Title);\n this.dom.addEventListener('click', this._onTitleClick);\n updateDomAttribute(this.dom, CutAttr.Line, node.attrs[CutAttr.Line]);\n\n this.contentDOM = this.dom.appendChild(document.createElement('div'));\n this.contentDOM.classList.add(YfmCutClassName.TitleInner);\n this.contentDOM.addEventListener('click', this._onTitleInnerClick);\n }\n\n update(node: Node): boolean {\n if (this.node.type !== node.type) return false;\n this.node = node;\n updateDomAttribute(this.dom, CutAttr.Line, node.attrs[CutAttr.Line]);\n return true;\n }\n\n destroy() {\n this.dom.removeEventListener('click', this._onTitleClick);\n this.contentDOM.removeEventListener('click', this._onTitleInnerClick);\n }\n\n private _onTitleClick = (e: MouseEvent) => {\n const {currentTarget} = e;\n if (currentTarget instanceof HTMLElement) {\n const parent = currentTarget.parentElement;\n if (parent?.classList.contains(YfmCutClassName.Cut)) {\n // TODO: toggle open classname via prosemirror decoration\n parent.classList.toggle(YfmCutClassName.Open);\n }\n }\n };\n\n private _onTitleInnerClick = (e: MouseEvent) => {\n // ignore clicking on the title content\n // you can open/close yfm-cut by clicking on the arrow icon\n e.stopPropagation();\n e.preventDefault();\n };\n}\n\nfunction updateDomAttribute(elem: Element, attr: string, value: string | null | undefined) {\n if (value) {\n elem.setAttribute(attr, value);\n } else {\n elem.removeAttribute(attr);\n }\n}\n"]}
@@ -5,5 +5,6 @@ export declare enum NoteNode {
5
5
  }
6
6
  export declare enum NoteAttrs {
7
7
  Class = "class",
8
- Type = "note-type"
8
+ Type = "note-type",
9
+ Line = "data-line"
9
10
  }
@@ -8,5 +8,6 @@ export var NoteAttrs;
8
8
  (function (NoteAttrs) {
9
9
  NoteAttrs["Class"] = "class";
10
10
  NoteAttrs["Type"] = "note-type";
11
+ NoteAttrs["Line"] = "data-line";
11
12
  })(NoteAttrs || (NoteAttrs = {}));
12
13
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,wCAA4B,CAAA;IAC5B,4CAAgC,CAAA;AACpC,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,+BAAkB,CAAA;AACtB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB","sourcesContent":["export enum NoteNode {\n Note = 'yfm_note',\n NoteTitle = 'yfm_note_title',\n NoteContent = 'yfm_note_content',\n}\n\nexport enum NoteAttrs {\n Class = 'class',\n Type = 'note-type',\n}\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,wCAA4B,CAAA;IAC5B,4CAAgC,CAAA;AACpC,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,+BAAkB,CAAA;AACtB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB","sourcesContent":["export enum NoteNode {\n Note = 'yfm_note',\n NoteTitle = 'yfm_note_title',\n NoteContent = 'yfm_note_content',\n}\n\nexport enum NoteAttrs {\n Class = 'class',\n Type = 'note-type',\n Line = 'data-line',\n}\n"]}
@@ -1,11 +1,24 @@
1
- import { NoteNode } from "./const.js";
1
+ import { NoteAttrs, NoteNode } from "./const.js";
2
2
  export const parserTokens = {
3
3
  [NoteNode.Note]: {
4
4
  name: NoteNode.Note,
5
5
  type: 'block',
6
6
  getAttrs: (token) => (token.attrs ? Object.fromEntries(token.attrs) : {}),
7
7
  },
8
- [NoteNode.NoteTitle]: { name: NoteNode.NoteTitle, type: 'block' },
8
+ [NoteNode.NoteTitle]: {
9
+ name: NoteNode.NoteTitle,
10
+ type: 'block',
11
+ getAttrs: (token, tokens, index) => {
12
+ let dataLine = token.attrGet('data-line');
13
+ if (!dataLine) {
14
+ const prevToken = tokens[index - 1];
15
+ if (prevToken?.type === 'yfm_note_open') {
16
+ dataLine = prevToken.attrGet('data-line');
17
+ }
18
+ }
19
+ return { [NoteAttrs.Line]: dataLine };
20
+ },
21
+ },
9
22
  [NoteNode.NoteContent]: { name: NoteNode.NoteContent, type: 'block' },
10
23
  };
11
24
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,mBAAgB;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAkC;IACvD,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACb,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E;IACD,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC;IAC/D,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAC;CACtE,CAAC","sourcesContent":["import type {ParserToken} from '../../../../core';\n\nimport {NoteNode} from './const';\n\nexport const parserTokens: Record<NoteNode, ParserToken> = {\n [NoteNode.Note]: {\n name: NoteNode.Note,\n type: 'block',\n getAttrs: (token) => (token.attrs ? Object.fromEntries(token.attrs) : {}),\n },\n [NoteNode.NoteTitle]: {name: NoteNode.NoteTitle, type: 'block'},\n [NoteNode.NoteContent]: {name: NoteNode.NoteContent, type: 'block'},\n};\n"]}
1
+ {"version":3,"file":"parser.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,mBAAgB;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAkC;IACvD,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACb,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E;IACD,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAClB,IAAI,EAAE,QAAQ,CAAC,SAAS;QACxB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACpC,IAAI,SAAS,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;oBACtC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;YACD,OAAO,EAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAC,CAAC;QACxC,CAAC;KACJ;IACD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAC;CACtE,CAAC","sourcesContent":["import type {ParserToken} from '../../../../core';\n\nimport {NoteAttrs, NoteNode} from './const';\n\nexport const parserTokens: Record<NoteNode, ParserToken> = {\n [NoteNode.Note]: {\n name: NoteNode.Note,\n type: 'block',\n getAttrs: (token) => (token.attrs ? Object.fromEntries(token.attrs) : {}),\n },\n [NoteNode.NoteTitle]: {\n name: NoteNode.NoteTitle,\n type: 'block',\n getAttrs: (token, tokens, index) => {\n let dataLine = token.attrGet('data-line');\n if (!dataLine) {\n const prevToken = tokens[index - 1];\n if (prevToken?.type === 'yfm_note_open') {\n dataLine = prevToken.attrGet('data-line');\n }\n }\n return {[NoteAttrs.Line]: dataLine};\n },\n },\n [NoteNode.NoteContent]: {name: NoteNode.NoteContent, type: 'block'},\n};\n"]}
@@ -27,6 +27,7 @@ export const getSchemaSpecs = (opts, placeholder) => ({
27
27
  complex: 'root',
28
28
  },
29
29
  [NoteNode.NoteTitle]: {
30
+ attrs: { [NoteAttrs.Line]: { default: null } },
30
31
  content: 'inline*',
31
32
  group: 'block yfm-note',
32
33
  parseDOM: [
@@ -35,8 +36,8 @@ export const getSchemaSpecs = (opts, placeholder) => ({
35
36
  priority: 100,
36
37
  },
37
38
  ],
38
- toDOM() {
39
- return ['p', { class: 'yfm-note-title' }, 0];
39
+ toDOM(node) {
40
+ return ['p', { class: 'yfm-note-title', ...node.attrs }, 0];
40
41
  },
41
42
  selectable: false,
42
43
  allowSelection: false,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,mBAAgB;AAI5C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,IAA0B,EAC1B,WAAgC,EACN,EAAE,CAAC,CAAC;IAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACb,KAAK,EAAE;YACH,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAC,OAAO,EAAE,0BAA0B,EAAC;YACxD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC;SACtC;QACD,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxD,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,cAAc;gBACnB,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAG,IAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;oBACxE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAG,IAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM;iBAC7E,CAAC;aACL;SACJ;QACD,KAAK,CAAC,IAAI;YACN,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,MAAM;KAClB;IAED,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,kBAAkB;gBACvB,QAAQ,EAAE,GAAG;aAChB;SACJ;QACD,KAAK;YACD,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE;YACT,OAAO,EACH,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACjC,IAAI,EAAE,uBAAuB;gBAC7B,yBAAyB;YAC7B,aAAa,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;KAClB;IACD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACpB,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,sBAAsB;gBAC3B,QAAQ,EAAE,GAAG;aAChB;SACJ;QACD,KAAK;YACD,OAAO,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAC,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE;YACT,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,2BAA2B;YAC3E,aAAa,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;KAClB;CACJ,CAAC,CAAC","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport type {PlaceholderOptions} from '../../../../utils/placeholder';\n\nimport {NoteAttrs, NoteNode} from './const';\n\nimport type {YfmNoteSpecsOptions} from './index';\n\nconst DEFAULT_TITLE_PLACEHOLDER = 'Note';\nconst DEFAULT_CONTENT_PLACEHOLDER = 'Note content';\n\nexport const getSchemaSpecs = (\n opts?: YfmNoteSpecsOptions,\n placeholder?: PlaceholderOptions,\n): Record<NoteNode, NodeSpec> => ({\n [NoteNode.Note]: {\n attrs: {\n [NoteAttrs.Class]: {default: 'yfm-note yfm-accent-info'},\n [NoteAttrs.Type]: {default: 'info'},\n },\n content: `${NoteNode.NoteTitle} ${NoteNode.NoteContent}`,\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'div.yfm-note',\n priority: 100,\n getAttrs: (node) => ({\n [NoteAttrs.Class]: (node as Element).getAttribute(NoteAttrs.Class) || '',\n [NoteAttrs.Type]: (node as Element).getAttribute(NoteAttrs.Type) || 'info',\n }),\n },\n ],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: true,\n allowSelection: true,\n complex: 'root',\n },\n\n [NoteNode.NoteTitle]: {\n content: 'inline*',\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'p.yfm-note-title',\n priority: 100,\n },\n ],\n toDOM() {\n return ['p', {class: 'yfm-note-title'}, 0];\n },\n selectable: false,\n allowSelection: false,\n placeholder: {\n content:\n placeholder?.[NoteNode.NoteTitle] ??\n opts?.yfmNoteTitlePlaceholder ??\n DEFAULT_TITLE_PLACEHOLDER,\n alwaysVisible: true,\n },\n complex: 'leaf',\n },\n [NoteNode.NoteContent]: {\n content: '(block | paragraph)+',\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'div.yfm-note-content',\n priority: 100,\n },\n ],\n toDOM() {\n return ['div', {class: 'yfm-note-content'}, 0];\n },\n selectable: false,\n allowSelection: false,\n placeholder: {\n content: placeholder?.[NoteNode.NoteContent] ?? DEFAULT_CONTENT_PLACEHOLDER,\n alwaysVisible: true,\n },\n complex: 'leaf',\n },\n});\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,mBAAgB;AAI5C,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,IAA0B,EAC1B,WAAgC,EACN,EAAE,CAAC,CAAC;IAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACb,KAAK,EAAE;YACH,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAC,OAAO,EAAE,0BAA0B,EAAC;YACxD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC;SACtC;QACD,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxD,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,cAAc;gBACnB,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAG,IAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;oBACxE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAG,IAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM;iBAC7E,CAAC;aACL;SACJ;QACD,KAAK,CAAC,IAAI;YACN,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,MAAM;KAClB;IAED,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAClB,KAAK,EAAE,EAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC;QAC1C,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,kBAAkB;gBACvB,QAAQ,EAAE,GAAG;aAChB;SACJ;QACD,KAAK,CAAC,IAAI;YACN,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE;YACT,OAAO,EACH,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACjC,IAAI,EAAE,uBAAuB;gBAC7B,yBAAyB;YAC7B,aAAa,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;KAClB;IACD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACpB,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,sBAAsB;gBAC3B,QAAQ,EAAE,GAAG;aAChB;SACJ;QACD,KAAK;YACD,OAAO,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAC,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE;YACT,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,2BAA2B;YAC3E,aAAa,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;KAClB;CACJ,CAAC,CAAC","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport type {PlaceholderOptions} from '../../../../utils/placeholder';\n\nimport {NoteAttrs, NoteNode} from './const';\n\nimport type {YfmNoteSpecsOptions} from './index';\n\nconst DEFAULT_TITLE_PLACEHOLDER = 'Note';\nconst DEFAULT_CONTENT_PLACEHOLDER = 'Note content';\n\nexport const getSchemaSpecs = (\n opts?: YfmNoteSpecsOptions,\n placeholder?: PlaceholderOptions,\n): Record<NoteNode, NodeSpec> => ({\n [NoteNode.Note]: {\n attrs: {\n [NoteAttrs.Class]: {default: 'yfm-note yfm-accent-info'},\n [NoteAttrs.Type]: {default: 'info'},\n },\n content: `${NoteNode.NoteTitle} ${NoteNode.NoteContent}`,\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'div.yfm-note',\n priority: 100,\n getAttrs: (node) => ({\n [NoteAttrs.Class]: (node as Element).getAttribute(NoteAttrs.Class) || '',\n [NoteAttrs.Type]: (node as Element).getAttribute(NoteAttrs.Type) || 'info',\n }),\n },\n ],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: true,\n allowSelection: true,\n complex: 'root',\n },\n\n [NoteNode.NoteTitle]: {\n attrs: {[NoteAttrs.Line]: {default: null}},\n content: 'inline*',\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'p.yfm-note-title',\n priority: 100,\n },\n ],\n toDOM(node) {\n return ['p', {class: 'yfm-note-title', ...node.attrs}, 0];\n },\n selectable: false,\n allowSelection: false,\n placeholder: {\n content:\n placeholder?.[NoteNode.NoteTitle] ??\n opts?.yfmNoteTitlePlaceholder ??\n DEFAULT_TITLE_PLACEHOLDER,\n alwaysVisible: true,\n },\n complex: 'leaf',\n },\n [NoteNode.NoteContent]: {\n content: '(block | paragraph)+',\n group: 'block yfm-note',\n parseDOM: [\n {\n tag: 'div.yfm-note-content',\n priority: 100,\n },\n ],\n toDOM() {\n return ['div', {class: 'yfm-note-content'}, 0];\n },\n selectable: false,\n allowSelection: false,\n placeholder: {\n content: placeholder?.[NoteNode.NoteContent] ?? DEFAULT_CONTENT_PLACEHOLDER,\n alwaysVisible: true,\n },\n complex: 'leaf',\n },\n});\n"]}
@@ -11,6 +11,7 @@ export * from "./inputrules.js";
11
11
  export * from "./keymap.js";
12
12
  export * from "./marks.js";
13
13
  export * from "./node-children.js";
14
+ export * from "./node-descedants.js";
14
15
  export * from "./nodes.js";
15
16
  export * from "./placeholder.js";
16
17
  export * from "./platform.js";
@@ -11,6 +11,7 @@ export * from "./inputrules.js";
11
11
  export * from "./keymap.js";
12
12
  export * from "./marks.js";
13
13
  export * from "./node-children.js";
14
+ export * from "./node-descedants.js";
14
15
  export * from "./nodes.js";
15
16
  export * from "./placeholder.js";
16
17
  export * from "./platform.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,6BAA0B;AAC1B,wCAAqC;AACrC,oCAA2B;AAC3B,+BAA4B;AAC5B,gCAA6B;AAC7B,iCAA8B;AAC9B,+BAA4B;AAC5B,mCAAgC;AAChC,6BAA0B;AAC1B,gCAA6B;AAC7B,4BAAyB;AACzB,2BAAwB;AACxB,mCAAgC;AAChC,2BAAwB;AACxB,iCAA8B;AAC9B,8BAA2B;AAC3B,iCAA8B;AAC9B,4BAAyB;AACzB,+BAA4B;AAC5B,6CAA0C;AAC1C,iCAA8B;AAC9B,4BAAyB;AACzB,2CAAwC","sourcesContent":["export * from './actions';\nexport * from './autocomplete-popup';\nexport * from './carousel';\nexport * from './clipboard';\nexport * from './descedants';\nexport * from './ecapeRegexp';\nexport * from './entity-id';\nexport * from './event-emitter';\nexport * from './helpers';\nexport * from './inputrules';\nexport * from './keymap';\nexport * from './marks';\nexport * from './node-children';\nexport * from './nodes';\nexport * from './placeholder';\nexport * from './platform';\nexport * from './remove-node';\nexport * from './schema';\nexport * from './selection';\nexport * from './serialize-for-clipboard';\nexport * from './sync-scroll';\nexport * from './upload';\nexport * from './get-proportional-size';\nexport type {DirectiveSyntaxValue, DirectiveSyntaxOption} from './directive';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,6BAA0B;AAC1B,wCAAqC;AACrC,oCAA2B;AAC3B,+BAA4B;AAC5B,gCAA6B;AAC7B,iCAA8B;AAC9B,+BAA4B;AAC5B,mCAAgC;AAChC,6BAA0B;AAC1B,gCAA6B;AAC7B,4BAAyB;AACzB,2BAAwB;AACxB,mCAAgC;AAChC,qCAAkC;AAClC,2BAAwB;AACxB,iCAA8B;AAC9B,8BAA2B;AAC3B,iCAA8B;AAC9B,4BAAyB;AACzB,+BAA4B;AAC5B,6CAA0C;AAC1C,iCAA8B;AAC9B,4BAAyB;AACzB,2CAAwC","sourcesContent":["export * from './actions';\nexport * from './autocomplete-popup';\nexport * from './carousel';\nexport * from './clipboard';\nexport * from './descedants';\nexport * from './ecapeRegexp';\nexport * from './entity-id';\nexport * from './event-emitter';\nexport * from './helpers';\nexport * from './inputrules';\nexport * from './keymap';\nexport * from './marks';\nexport * from './node-children';\nexport * from './node-descedants';\nexport * from './nodes';\nexport * from './placeholder';\nexport * from './platform';\nexport * from './remove-node';\nexport * from './schema';\nexport * from './selection';\nexport * from './serialize-for-clipboard';\nexport * from './sync-scroll';\nexport * from './upload';\nexport * from './get-proportional-size';\nexport type {DirectiveSyntaxValue, DirectiveSyntaxOption} from './directive';\n"]}
@@ -0,0 +1,10 @@
1
+ import type { Node } from "../pm/model.js";
2
+ type DescendantWithMeta = {
3
+ node: Node;
4
+ pos: number;
5
+ parent: Node | null;
6
+ index: number;
7
+ };
8
+ export declare function getDescedantBy(node: Node, f: (child: DescendantWithMeta) => boolean): DescendantWithMeta | null;
9
+ export declare function getDescedantByAttribute(node: Node, attr: string, value: unknown | unknown[]): DescendantWithMeta | null;
10
+ export {};
@@ -0,0 +1,19 @@
1
+ export function getDescedantBy(node, f) {
2
+ let result = null;
3
+ node.descendants((node, pos, parent, index) => {
4
+ if (result)
5
+ return false;
6
+ const child = { node, pos, parent, index };
7
+ if (f(child)) {
8
+ result = child;
9
+ return false;
10
+ }
11
+ return true;
12
+ });
13
+ return result;
14
+ }
15
+ export function getDescedantByAttribute(node, attr, value) {
16
+ const values = Array().concat(value);
17
+ return getDescedantBy(node, (item) => values.includes(item.node.attrs[attr]));
18
+ }
19
+ //# sourceMappingURL=node-descedants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-descedants.js","sourceRoot":"../../../src","sources":["utils/node-descedants.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,cAAc,CAC1B,IAAU,EACV,CAAyC;IAEzC,IAAI,MAAM,GAA8B,IAAI,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QAEzB,MAAM,KAAK,GAAuB,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,IAAU,EACV,IAAY,EACZ,KAA0B;IAE1B,MAAM,MAAM,GAAG,KAAK,EAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC","sourcesContent":["import type {Node} from '#pm/model';\n\ntype DescendantWithMeta = {\n node: Node;\n pos: number;\n parent: Node | null;\n index: number;\n};\n\nexport function getDescedantBy(\n node: Node,\n f: (child: DescendantWithMeta) => boolean,\n): DescendantWithMeta | null {\n let result: DescendantWithMeta | null = null;\n node.descendants((node, pos, parent, index) => {\n if (result) return false;\n\n const child: DescendantWithMeta = {node, pos, parent, index};\n if (f(child)) {\n result = child;\n return false;\n }\n\n return true;\n });\n return result;\n}\n\nexport function getDescedantByAttribute(\n node: Node,\n attr: string,\n value: unknown | unknown[],\n): DescendantWithMeta | null {\n const values = Array<unknown>().concat(value);\n return getDescedantBy(node, (item) => values.includes(item.node.attrs[attr]));\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  /** During build process, the current version will be injected here */
2
- export const VERSION = typeof '15.24.0' !== 'undefined' ? '15.24.0' : 'unknown';
2
+ export const VERSION = typeof '15.25.0' !== 'undefined' ? '15.25.0' : 'unknown';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.24.0' !== 'undefined' ? '15.24.0' : 'unknown';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC","sourcesContent":["/** During build process, the current version will be injected here */\nexport const VERSION = typeof '15.25.0' !== 'undefined' ? '15.25.0' : 'unknown';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/markdown-editor",
3
- "version": "15.24.0",
3
+ "version": "15.25.0",
4
4
  "description": "Markdown wysiwyg and markup editor",
5
5
  "license": "MIT",
6
6
  "repository": {