@gravity-ui/markdown-editor 15.2.0 → 15.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 (83) hide show
  1. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
  2. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js +2 -2
  3. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  4. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js +2 -2
  5. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  6. package/build/cjs/extensions/markdown/Html/schema.js +2 -2
  7. package/build/cjs/extensions/markdown/Html/schema.js.map +1 -1
  8. package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js +3 -3
  9. package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
  10. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js +2 -2
  11. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  12. package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +2 -2
  13. package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
  14. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
  15. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +6 -6
  16. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
  17. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +3 -3
  18. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  19. package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js +3 -3
  20. package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
  21. package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js +2 -2
  22. package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
  23. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
  24. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js +7 -7
  25. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
  26. package/build/cjs/extensions/yfm/YfmConfigs/index.d.ts +2 -2
  27. package/build/cjs/extensions/yfm/YfmConfigs/index.js +2 -2
  28. package/build/cjs/extensions/yfm/YfmConfigs/index.js.map +1 -1
  29. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +3 -3
  30. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  31. package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js +3 -3
  32. package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
  33. package/build/cjs/extensions/yfm/YfmTabs/actions.js +4 -4
  34. package/build/cjs/extensions/yfm/YfmTabs/actions.js.map +1 -1
  35. package/build/cjs/extensions/yfm/YfmTabs/plugins.js +11 -11
  36. package/build/cjs/extensions/yfm/YfmTabs/plugins.js.map +1 -1
  37. package/build/cjs/markdown-it/emoji.d.ts +2 -2
  38. package/build/cjs/markdown-it/emoji.js +4 -4
  39. package/build/cjs/markdown-it/emoji.js.map +1 -1
  40. package/build/cjs/version.js +1 -1
  41. package/build/cjs/version.js.map +1 -1
  42. package/build/esm/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
  43. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js +1 -1
  44. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  45. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js +1 -1
  46. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  47. package/build/esm/extensions/markdown/Html/schema.js +1 -1
  48. package/build/esm/extensions/markdown/Html/schema.js.map +1 -1
  49. package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js +2 -2
  50. package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
  51. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js +1 -1
  52. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  53. package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +1 -1
  54. package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
  55. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
  56. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +1 -1
  57. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
  58. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +2 -2
  59. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  60. package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js +2 -2
  61. package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
  62. package/build/esm/extensions/yfm/Video/VideoSpecs/index.js +1 -1
  63. package/build/esm/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
  64. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
  65. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js +3 -3
  66. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
  67. package/build/esm/extensions/yfm/YfmConfigs/index.d.ts +2 -2
  68. package/build/esm/extensions/yfm/YfmConfigs/index.js +2 -2
  69. package/build/esm/extensions/yfm/YfmConfigs/index.js.map +1 -1
  70. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +2 -2
  71. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  72. package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js +2 -2
  73. package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
  74. package/build/esm/extensions/yfm/YfmTabs/actions.js +1 -1
  75. package/build/esm/extensions/yfm/YfmTabs/actions.js.map +1 -1
  76. package/build/esm/extensions/yfm/YfmTabs/plugins.js +1 -1
  77. package/build/esm/extensions/yfm/YfmTabs/plugins.js.map +1 -1
  78. package/build/esm/markdown-it/emoji.d.ts +2 -2
  79. package/build/esm/markdown-it/emoji.js +2 -2
  80. package/build/esm/markdown-it/emoji.js.map +1 -1
  81. package/build/esm/version.js +1 -1
  82. package/build/esm/version.js.map +1 -1
  83. package/package.json +1 -1
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YfmTableSpecs = exports.yfmTableCellType = exports.yfmTableRowType = exports.yfmTableBodyType = exports.yfmTableType = exports.YfmTableNode = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log"));
6
- const table_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/table"));
5
+ const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
6
+ const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/table/index.js"));
7
7
  const const_1 = require("./const.js");
8
8
  const parser_1 = require("./parser.js");
9
9
  const schema_1 = require("./schema.js");
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "yfmTableCellType", { enumerable: true, get: func
18
18
  const YfmTableSpecs = (builder, options) => {
19
19
  const schemaSpecs = (0, schema_1.getSchemaSpecs)(options, builder.context.get('placeholder'));
20
20
  builder
21
- .configureMd((md) => md.use(table_1.default, { log: log_1.default }))
21
+ .configureMd((md) => md.use(index_js_1.default, { log: log_js_1.default }))
22
22
  .addNode(const_1.YfmTableNode.Table, () => ({
23
23
  spec: schemaSpecs[const_1.YfmTableNode.Table],
24
24
  toMd: serializer_1.serializerTokens[const_1.YfmTableNode.Table],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,8EAA8C;AAC9C,0FAA6D;AAI7D,sCAAqC;AACrC,wCAAsC;AACtC,wCAAoE;AACpE,gDAA8C;AAE9C,oCAAqC;AAA7B,qGAAA,YAAY,OAAA;AACpB,oCAA0F;AAAlF,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAIlE,MAAM,aAAa,GAA+C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhF,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,eAAQ,EAAE,EAAC,GAAG,EAAH,aAAG,EAAC,CAAC,CAAC;SAC5C,OAAO,CAAC,oBAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,GAAG,CAAC;QACnC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,GAAG,CAAC;QACxC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAC;KACtD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAzBW,QAAA,aAAa,iBAyBxB","sourcesContent":["import log from '@diplodoc/transform/lib/log';\nimport yfmTable from '@diplodoc/transform/lib/plugins/table';\n\nimport type {ExtensionWithOptions} from '../../../../core';\n\nimport {YfmTableNode} from './const';\nimport {parserTokens} from './parser';\nimport {type YfmTableSchemaOptions, getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {YfmTableNode} from './const';\nexport {yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType} from './utils';\n\nexport type YfmTableSpecsOptions = YfmTableSchemaOptions & {};\n\nexport const YfmTableSpecs: ExtensionWithOptions<YfmTableSpecsOptions> = (builder, options) => {\n const schemaSpecs = getSchemaSpecs(options, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmTable, {log}))\n .addNode(YfmTableNode.Table, () => ({\n spec: schemaSpecs[YfmTableNode.Table],\n toMd: serializerTokens[YfmTableNode.Table],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Table]},\n }))\n .addNode(YfmTableNode.Body, () => ({\n spec: schemaSpecs[YfmTableNode.Body],\n toMd: serializerTokens[YfmTableNode.Body],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Body]},\n }))\n .addNode(YfmTableNode.Row, () => ({\n spec: schemaSpecs[YfmTableNode.Row],\n toMd: serializerTokens[YfmTableNode.Row],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Row]},\n }))\n .addNode(YfmTableNode.Cell, () => ({\n spec: schemaSpecs[YfmTableNode.Cell],\n toMd: serializerTokens[YfmTableNode.Cell],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Cell]},\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAiD;AACjD,sGAAsE;AAItE,sCAAqC;AACrC,wCAAsC;AACtC,wCAAoE;AACpE,gDAA8C;AAE9C,oCAAqC;AAA7B,qGAAA,YAAY,OAAA;AACpB,oCAA0F;AAAlF,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAIlE,MAAM,aAAa,GAA+C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhF,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAQ,EAAE,EAAC,GAAG,EAAH,gBAAG,EAAC,CAAC,CAAC;SAC5C,OAAO,CAAC,oBAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,GAAG,CAAC;QACnC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,GAAG,CAAC;QACxC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAC;KACtD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAzBW,QAAA,aAAa,iBAyBxB","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmTable from '@diplodoc/transform/lib/plugins/table/index.js';\n\nimport type {ExtensionWithOptions} from '../../../../core';\n\nimport {YfmTableNode} from './const';\nimport {parserTokens} from './parser';\nimport {type YfmTableSchemaOptions, getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {YfmTableNode} from './const';\nexport {yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType} from './utils';\n\nexport type YfmTableSpecsOptions = YfmTableSchemaOptions & {};\n\nexport const YfmTableSpecs: ExtensionWithOptions<YfmTableSpecsOptions> = (builder, options) => {\n const schemaSpecs = getSchemaSpecs(options, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmTable, {log}))\n .addNode(YfmTableNode.Table, () => ({\n spec: schemaSpecs[YfmTableNode.Table],\n toMd: serializerTokens[YfmTableNode.Table],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Table]},\n }))\n .addNode(YfmTableNode.Body, () => ({\n spec: schemaSpecs[YfmTableNode.Body],\n toMd: serializerTokens[YfmTableNode.Body],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Body]},\n }))\n .addNode(YfmTableNode.Row, () => ({\n spec: schemaSpecs[YfmTableNode.Row],\n toMd: serializerTokens[YfmTableNode.Row],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Row]},\n }))\n .addNode(YfmTableNode.Cell, () => ({\n spec: schemaSpecs[YfmTableNode.Cell],\n toMd: serializerTokens[YfmTableNode.Cell],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Cell]},\n }));\n};\n"]}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createYfmTabs = exports.createYfmTabsCommand = void 0;
4
- const utils_1 = require("@diplodoc/transform/lib/plugins/utils");
4
+ const utils_js_1 = require("@diplodoc/transform/lib/plugins/utils.js");
5
5
  const BaseSchema_1 = require("../../base/BaseSchema/index.js");
6
6
  const const_1 = require("./const.js");
7
7
  const createYfmTabsCommand = (state, dispatch) => {
8
8
  if (dispatch) {
9
9
  const { schema } = state;
10
- const tabId = (0, utils_1.generateID)();
11
- const panelId = (0, utils_1.generateID)();
10
+ const tabId = (0, utils_js_1.generateID)();
11
+ const panelId = (0, utils_js_1.generateID)();
12
12
  const yfmTabsList = (0, const_1.tabsListType)(schema);
13
13
  const yfmTabs = (0, const_1.tabsType)(schema);
14
14
  const yfmTabPanel = (0, const_1.tabPanelType)(state.schema).create({
@@ -24,7 +24,7 @@ const createYfmTabsCommand = (state, dispatch) => {
24
24
  [const_1.TabAttrs.dataDiplodocid]: tabId,
25
25
  [const_1.TabAttrs.dataDiplodocKey]: tabId,
26
26
  });
27
- const tabs = yfmTabs.create({ [const_1.TabsAttrs.dataDiplodocGroup]: (0, utils_1.generateID)() }, [
27
+ const tabs = yfmTabs.create({ [const_1.TabsAttrs.dataDiplodocGroup]: (0, utils_js_1.generateID)() }, [
28
28
  yfmTabsList.create(null, [yfmTab]),
29
29
  yfmTabPanel,
30
30
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AAGjE,+DAA4C;AAE5C,sCAUiB;AAEV,MAAM,oBAAoB,GAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAA,kBAAU,GAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACjD;YACI,CAAC,qBAAa,CAAC,cAAc,CAAC,EAAE,KAAK;YACrC,CAAC,qBAAa,CAAC,EAAE,CAAC,EAAE,OAAO;YAC3B,CAAC,qBAAa,CAAC,KAAK,CAAC,EAAE,+BAAuB;SACjD,EACD,IAAA,kBAAK,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACxC,CAAC,gBAAQ,CAAC,EAAE,CAAC,EAAE,KAAK;YACpB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,0BAAkB;YACpC,CAAC,gBAAQ,CAAC,YAAY,CAAC,EAAE,OAAO;YAChC,CAAC,gBAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM;YACvC,CAAC,gBAAQ,CAAC,cAAc,CAAC,EAAE,KAAK;YAChC,CAAC,gBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,iBAAS,CAAC,iBAAiB,CAAC,EAAE,IAAA,kBAAU,GAAE,EAAC,EAAE;YACvE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YAClC,WAAW;SACd,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAnCW,QAAA,oBAAoB,wBAmC/B;AAEW,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,4BAAoB;IAC9B,GAAG,EAAE,4BAAoB;CAC5B,CAAC","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils';\nimport type {Command} from 'prosemirror-state';\n\nimport {pType} from '../../base/BaseSchema';\n\nimport {\n TabAttrs,\n TabPanelAttrs,\n TabsAttrs,\n tabActiveClassname,\n tabPanelActiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\n\nexport const createYfmTabsCommand: Command = (state, dispatch) => {\n if (dispatch) {\n const {schema} = state;\n\n const tabId = generateID();\n const panelId = generateID();\n const yfmTabsList = tabsListType(schema);\n const yfmTabs = tabsType(schema);\n\n const yfmTabPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelActiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const yfmTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.class]: tabActiveClassname,\n [TabAttrs.ariaControls]: panelId,\n [TabAttrs.dataDiplodocIsActive]: 'true',\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n });\n\n const tabs = yfmTabs.create({[TabsAttrs.dataDiplodocGroup]: generateID()}, [\n yfmTabsList.create(null, [yfmTab]),\n yfmTabPanel,\n ]);\n\n dispatch(state.tr.replaceSelectionWith(tabs).scrollIntoView());\n }\n\n return true;\n};\n\nexport const createYfmTabs = {\n isEnable: createYfmTabsCommand,\n run: createYfmTabsCommand,\n};\n"]}
1
+ {"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAGpE,+DAA4C;AAE5C,sCAUiB;AAEV,MAAM,oBAAoB,GAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAA,qBAAU,GAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAA,qBAAU,GAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACjD;YACI,CAAC,qBAAa,CAAC,cAAc,CAAC,EAAE,KAAK;YACrC,CAAC,qBAAa,CAAC,EAAE,CAAC,EAAE,OAAO;YAC3B,CAAC,qBAAa,CAAC,KAAK,CAAC,EAAE,+BAAuB;SACjD,EACD,IAAA,kBAAK,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACxC,CAAC,gBAAQ,CAAC,EAAE,CAAC,EAAE,KAAK;YACpB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,0BAAkB;YACpC,CAAC,gBAAQ,CAAC,YAAY,CAAC,EAAE,OAAO;YAChC,CAAC,gBAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM;YACvC,CAAC,gBAAQ,CAAC,cAAc,CAAC,EAAE,KAAK;YAChC,CAAC,gBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,iBAAS,CAAC,iBAAiB,CAAC,EAAE,IAAA,qBAAU,GAAE,EAAC,EAAE;YACvE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YAClC,WAAW;SACd,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAnCW,QAAA,oBAAoB,wBAmC/B;AAEW,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,4BAAoB;IAC9B,GAAG,EAAE,4BAAoB;CAC5B,CAAC","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils.js';\nimport type {Command} from 'prosemirror-state';\n\nimport {pType} from '../../base/BaseSchema';\n\nimport {\n TabAttrs,\n TabPanelAttrs,\n TabsAttrs,\n tabActiveClassname,\n tabPanelActiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\n\nexport const createYfmTabsCommand: Command = (state, dispatch) => {\n if (dispatch) {\n const {schema} = state;\n\n const tabId = generateID();\n const panelId = generateID();\n const yfmTabsList = tabsListType(schema);\n const yfmTabs = tabsType(schema);\n\n const yfmTabPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelActiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const yfmTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.class]: tabActiveClassname,\n [TabAttrs.ariaControls]: panelId,\n [TabAttrs.dataDiplodocIsActive]: 'true',\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n });\n\n const tabs = yfmTabs.create({[TabsAttrs.dataDiplodocGroup]: generateID()}, [\n yfmTabsList.create(null, [yfmTab]),\n yfmTabPanel,\n ]);\n\n dispatch(state.tr.replaceSelectionWith(tabs).scrollIntoView());\n }\n\n return true;\n};\n\nexport const createYfmTabs = {\n isEnable: createYfmTabsCommand,\n run: createYfmTabsCommand,\n};\n"]}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.joinBackwardToOpenTab = exports.removeTabWhenCursorAtTheStartOfTab = exports.removeTab = exports.createTab = exports.liftEmptyBlockFromTabPanel = exports.tabEnter = exports.tabPanelArrowDown = exports.dragAutoSwitch = void 0;
4
- const utils_1 = require("@diplodoc/transform/lib/plugins/utils");
4
+ const utils_js_1 = require("@diplodoc/transform/lib/plugins/utils.js");
5
5
  const prosemirror_state_1 = require("prosemirror-state");
6
6
  const prosemirror_utils_1 = require("prosemirror-utils");
7
7
  const __1 = require("../../index.js");
8
8
  const lodash_1 = require("../../../lodash.js");
9
9
  const helpers_1 = require("../../../table-utils/helpers.js");
10
- const utils_2 = require("../../../utils/index.js");
10
+ const utils_1 = require("../../../utils/index.js");
11
11
  const selection_1 = require("../../../utils/selection.js");
12
12
  const const_1 = require("./YfmTabsSpecs/const.js");
13
13
  const const_2 = require("./const.js");
14
- const utils_3 = require("./utils.js");
14
+ const utils_2 = require("./utils.js");
15
15
  const dragAutoSwitch = () => new prosemirror_state_1.Plugin({
16
16
  view: TabsAutoSwitchOnDragOver.view,
17
17
  });
@@ -64,7 +64,7 @@ class TabsAutoSwitchOnDragOver {
64
64
  }
65
65
  _switchTab() {
66
66
  if (this._editorView.dragging && this._tabElem) {
67
- (0, utils_3.switchTabByElem)(this._tabElem);
67
+ (0, utils_2.switchTabByElem)(this._tabElem);
68
68
  }
69
69
  this._clear();
70
70
  }
@@ -72,7 +72,7 @@ class TabsAutoSwitchOnDragOver {
72
72
  const tabPanelArrowDown = (state, dispatch, view) => {
73
73
  const { selection: sel } = state;
74
74
  const tabsParentNode = (0, prosemirror_utils_1.findParentNodeOfType)((0, const_2.tabsType)(state.schema))(state.selection);
75
- if ((0, utils_3.atEndOfPanel)(view) && view?.endOfTextblock('down')) {
75
+ if ((0, utils_2.atEndOfPanel)(view) && view?.endOfTextblock('down')) {
76
76
  const [direction, $cursor] = ['after', sel.$to];
77
77
  let $pos;
78
78
  if ((0, selection_1.isTextSelection)(sel)) {
@@ -105,8 +105,8 @@ const liftEmptyBlockFromTabPanel = (state, dispatch) => {
105
105
  if (!$cursor || $cursor.parent.content.size)
106
106
  return false;
107
107
  if ($cursor.depth > 2 && // depth must be at least 3
108
- (0, utils_2.isSameNodeType)($cursor.node(-1), (0, const_2.tabPanelType)(schema)) &&
109
- (0, utils_2.isSameNodeType)($cursor.node(-2), (0, const_2.tabsType)(schema))) {
108
+ (0, utils_1.isSameNodeType)($cursor.node(-1), (0, const_2.tabPanelType)(schema)) &&
109
+ (0, utils_1.isSameNodeType)($cursor.node(-2), (0, const_2.tabsType)(schema))) {
110
110
  // current texblock is last child
111
111
  if ($cursor.after() === $cursor.end(-1)) {
112
112
  if (dispatch) {
@@ -131,8 +131,8 @@ const createTab = (afterTab, tabsParentNode) => (state, dispatch, view) => {
131
131
  });
132
132
  const afterPanelNode = tabPanels.filter((tabPanelNode) => tabPanelNode.node.attrs[const_1.TabPanelAttrs.ariaLabelledby] ===
133
133
  afterTab.node.attrs[const_1.TabAttrs.dataDiplodocid])[0];
134
- const tabId = (0, utils_1.generateID)();
135
- const panelId = (0, utils_1.generateID)();
134
+ const tabId = (0, utils_js_1.generateID)();
135
+ const panelId = (0, utils_js_1.generateID)();
136
136
  const newPanel = (0, const_2.tabPanelType)(state.schema).create({
137
137
  [const_1.TabPanelAttrs.ariaLabelledby]: tabId,
138
138
  [const_1.TabPanelAttrs.id]: panelId,
@@ -161,7 +161,7 @@ const createTab = (afterTab, tabsParentNode) => (state, dispatch, view) => {
161
161
  .setSelection(prosemirror_state_1.TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1)));
162
162
  view?.focus();
163
163
  if (view) {
164
- (0, utils_3.execAfterPaint)(() => (0, utils_3.switchTabById)(view.dom, tabId));
164
+ (0, utils_2.execAfterPaint)(() => (0, utils_2.switchTabById)(view.dom, tabId));
165
165
  }
166
166
  return true;
167
167
  };
@@ -201,7 +201,7 @@ const removeTab = (tabToRemove, tabsParentNode) => (state, dispatch, view) => {
201
201
  .setSelection(prosemirror_state_1.TextSelection.create(tr.doc, tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1)));
202
202
  // Set new active tab
203
203
  if (view)
204
- (0, utils_3.execAfterPaint)(() => (0, utils_3.switchTabById)(view.dom, newActiveTabId));
204
+ (0, utils_2.execAfterPaint)(() => (0, utils_2.switchTabById)(view.dom, newActiveTabId));
205
205
  }
206
206
  dispatch(tr);
207
207
  view?.focus();
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/plugins.ts"],"names":[],"mappings":"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","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils';\nimport type {Node} from 'prosemirror-model';\nimport {type Command, Plugin, type PluginView, TextSelection} from 'prosemirror-state';\nimport {\n type NodeWithPos,\n findChildren,\n findDomRefAtPos,\n findParentNodeOfType,\n findParentNodeOfTypeClosestToPos,\n // @ts-ignore // TODO: fix cjs build\n} from 'prosemirror-utils';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {\n createFakeParagraph,\n findFakeParaPosClosestToPos,\n findFakeParaPosForTextSelection,\n isGapCursorSelection,\n pType,\n} from '../../';\nimport {throttle} from '../../../lodash';\nimport {findChildIndex} from '../../../table-utils/helpers';\nimport {isSameNodeType} from '../../../utils';\nimport {get$Cursor, isTextSelection} from '../../../utils/selection';\n\nimport {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const';\nimport {\n tabInactiveClassname,\n tabPanelActiveClassname,\n tabPanelInactiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\nimport {atEndOfPanel, execAfterPaint, switchTabByElem, switchTabById} from './utils';\n\nexport const dragAutoSwitch = () =>\n new Plugin({\n view: TabsAutoSwitchOnDragOver.view,\n });\n\nclass TabsAutoSwitchOnDragOver implements PluginView {\n private static readonly TAB_SELECTOR = '.yfm-tab:not([data-diplodoc-is-active=true])';\n private static readonly OPEN_TIMEOUT = 500; //ms\n private static readonly THROTTLE_WAIT = 50; //ms\n\n static readonly view = (view: EditorView): PluginView => new this(view);\n\n private _tabElem: HTMLElement | null = null;\n private _editorView: EditorView;\n private _timeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _docListener;\n\n constructor(view: EditorView) {\n this._editorView = view;\n this._docListener = throttle(\n this._onDocEvent.bind(this),\n TabsAutoSwitchOnDragOver.THROTTLE_WAIT,\n );\n document.addEventListener('mousemove', this._docListener);\n document.addEventListener('dragover', this._docListener);\n }\n\n destroy(): void {\n this._clear();\n this._docListener.cancel();\n document.removeEventListener('mousemove', this._docListener);\n document.removeEventListener('dragover', this._docListener);\n }\n\n private _onDocEvent(event: MouseEvent) {\n const view = this._editorView;\n if (!view.dragging) return;\n const pos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (pos) {\n const elem = findDomRefAtPos(pos.pos, view.domAtPos.bind(view)) as HTMLElement;\n const tabElem = elem.closest(TabsAutoSwitchOnDragOver.TAB_SELECTOR);\n if (tabElem === this._tabElem) return;\n this._clear();\n if (tabElem) this._setTabElem(tabElem as HTMLElement);\n }\n }\n\n private _clear() {\n if (this._timeout !== null) clearTimeout(this._timeout);\n this._timeout = null;\n this._tabElem = null;\n }\n\n private _setTabElem(elem: HTMLElement) {\n this._tabElem = elem;\n this._timeout = setTimeout(\n this._switchTab.bind(this),\n TabsAutoSwitchOnDragOver.OPEN_TIMEOUT,\n );\n }\n\n private _switchTab() {\n if (this._editorView.dragging && this._tabElem) {\n switchTabByElem(this._tabElem);\n }\n this._clear();\n }\n}\n\nexport const tabPanelArrowDown: Command = (state, dispatch, view) => {\n const {selection: sel} = state;\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (atEndOfPanel(view) && view?.endOfTextblock('down')) {\n const [direction, $cursor] = ['after', sel.$to] as const;\n let $pos;\n if (isTextSelection(sel)) {\n $pos =\n findFakeParaPosForTextSelection(sel, direction) ??\n findFakeParaPosClosestToPos($cursor, $cursor.depth - 2, direction);\n }\n if (isGapCursorSelection(sel) && tabsParentNode) {\n $pos = state.doc.resolve(tabsParentNode.pos + tabsParentNode.node.nodeSize);\n }\n if ($pos) {\n dispatch?.(createFakeParagraph(state.tr, $pos, direction).scrollIntoView());\n return true;\n }\n }\n\n return false;\n};\n\nexport const tabEnter: Command = (state) => {\n const $cursor = get$Cursor(state.selection);\n return $cursor?.node($cursor.depth).type === tabType(state.schema);\n};\n\nexport const liftEmptyBlockFromTabPanel: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), tabPanelType(schema)) &&\n isSameNodeType($cursor.node(-2), tabsType(schema))\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n const copeidNode = $cursor.parent.copy();\n const tabsAfter = $cursor.after(-2);\n\n const {tr} = state;\n\n tr.insert(tabsAfter, copeidNode)\n .delete($cursor.before(), $cursor.after())\n .setSelection(TextSelection.create(tr.doc, tr.mapping.map(tabsAfter)));\n\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nexport const createTab: (afterTab: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (afterTab, tabsParentNode) => (state, dispatch, view) => {\n const tabNodes = findChildren(\n tabsParentNode.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const afterPanelNode = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n afterTab.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n const tabId = generateID();\n const panelId = generateID();\n\n const newPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelInactiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const newTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n [TabAttrs.dataDiplodocIsActive]: 'false',\n [TabAttrs.class]: tabInactiveClassname,\n [TabAttrs.role]: 'tab',\n [TabAttrs.ariaControls]: panelId,\n });\n\n const {tr} = state;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n dispatch?.(\n tr\n .insert(afterPanelNode.pos + afterPanelNode.node.nodeSize, newPanel)\n .insert(afterTab.pos + afterTab.node.nodeSize, newTab)\n .setSelection(\n TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1),\n ),\n );\n\n view?.focus();\n\n if (view) {\n execAfterPaint(() => switchTabById(view.dom, tabId));\n }\n\n return true;\n };\n\nexport const removeTab: (tabToRemove: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (tabToRemove, tabsParentNode) => (state, dispatch, view) => {\n const tabList = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabsListType(state.schema).name;\n })[0];\n const tabToRemoveIdx = findChildIndex(tabList.node, tabToRemove.node);\n\n const tabNodes = findChildren(\n tabList.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const panelToRemove = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n tabToRemove.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n if (panelToRemove && dispatch) {\n const {tr} = state;\n\n if (tabNodes.length <= 1) {\n tr.delete(tabsParentNode.pos, tabsParentNode.pos + tabsParentNode.node.nodeSize);\n } else {\n const newTabIdx = tabToRemoveIdx - 1 < 0 ? 1 : tabToRemoveIdx - 1;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 2;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n const newTabNode = tabNodes[newTabIdx];\n const newActiveTabId: string = newTabNode.node.attrs[TabAttrs.dataDiplodocid];\n\n tr\n // Delete panel\n .delete(panelToRemove.pos, panelToRemove.pos + panelToRemove.node.nodeSize)\n // Delete tab\n .delete(tabToRemove.pos, tabToRemove.pos + tabToRemove.node.nodeSize)\n .setSelection(\n TextSelection.create(\n tr.doc,\n tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1),\n ),\n );\n\n // Set new active tab\n if (view) execAfterPaint(() => switchTabById(view.dom, newActiveTabId));\n }\n dispatch(tr);\n view?.focus();\n\n return true;\n }\n\n return false;\n };\n\nexport const removeTabWhenCursorAtTheStartOfTab: Command = (state, dispatch) => {\n const tabToRemove = findParentNodeOfType(tabType(state.schema))(state.selection);\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (\n tabsParentNode &&\n tabToRemove &&\n state.selection.from === tabToRemove.pos + 1 &&\n state.selection.from === state.selection.to\n ) {\n return removeTab(tabToRemove, tabsParentNode)(state, dispatch);\n }\n\n return false;\n};\n\nexport const joinBackwardToOpenTab: Command = (state, dispatch) => {\n const $cursor = get$Cursor(state.selection);\n if (!$cursor || $cursor.parentOffset !== 0) return false;\n // --> cursor at start of textblock\n const textBlockIndex = $cursor.index($cursor.depth - 1);\n if (textBlockIndex <= 0) return false;\n const nodeBefore = $cursor.node($cursor.depth - 1).child(textBlockIndex - 1);\n\n if (nodeBefore.type !== tabsType(state.schema)) {\n return false;\n }\n\n const tabsParent = findParentNodeOfTypeClosestToPos(\n state.doc.resolve($cursor.pos - 2),\n tabsType(state.schema),\n );\n\n if (!tabsParent) {\n return false;\n }\n const activePanel = findChildren(\n tabsParent.node,\n (n: Node) => n.attrs.class === tabPanelActiveClassname,\n )[0];\n\n if (dispatch) {\n const posEndOfLastLayoutCell = activePanel.pos + tabsParent.pos + activePanel.node.nodeSize;\n const tr = state.tr;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(posEndOfLastLayoutCell, $cursor.parent);\n tr.setSelection(TextSelection.create(tr.doc, posEndOfLastLayoutCell + 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n};\n"]}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/plugins.ts"],"names":[],"mappings":"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","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils.js';\nimport type {Node} from 'prosemirror-model';\nimport {type Command, Plugin, type PluginView, TextSelection} from 'prosemirror-state';\nimport {\n type NodeWithPos,\n findChildren,\n findDomRefAtPos,\n findParentNodeOfType,\n findParentNodeOfTypeClosestToPos,\n // @ts-ignore // TODO: fix cjs build\n} from 'prosemirror-utils';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {\n createFakeParagraph,\n findFakeParaPosClosestToPos,\n findFakeParaPosForTextSelection,\n isGapCursorSelection,\n pType,\n} from '../../';\nimport {throttle} from '../../../lodash';\nimport {findChildIndex} from '../../../table-utils/helpers';\nimport {isSameNodeType} from '../../../utils';\nimport {get$Cursor, isTextSelection} from '../../../utils/selection';\n\nimport {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const';\nimport {\n tabInactiveClassname,\n tabPanelActiveClassname,\n tabPanelInactiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\nimport {atEndOfPanel, execAfterPaint, switchTabByElem, switchTabById} from './utils';\n\nexport const dragAutoSwitch = () =>\n new Plugin({\n view: TabsAutoSwitchOnDragOver.view,\n });\n\nclass TabsAutoSwitchOnDragOver implements PluginView {\n private static readonly TAB_SELECTOR = '.yfm-tab:not([data-diplodoc-is-active=true])';\n private static readonly OPEN_TIMEOUT = 500; //ms\n private static readonly THROTTLE_WAIT = 50; //ms\n\n static readonly view = (view: EditorView): PluginView => new this(view);\n\n private _tabElem: HTMLElement | null = null;\n private _editorView: EditorView;\n private _timeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _docListener;\n\n constructor(view: EditorView) {\n this._editorView = view;\n this._docListener = throttle(\n this._onDocEvent.bind(this),\n TabsAutoSwitchOnDragOver.THROTTLE_WAIT,\n );\n document.addEventListener('mousemove', this._docListener);\n document.addEventListener('dragover', this._docListener);\n }\n\n destroy(): void {\n this._clear();\n this._docListener.cancel();\n document.removeEventListener('mousemove', this._docListener);\n document.removeEventListener('dragover', this._docListener);\n }\n\n private _onDocEvent(event: MouseEvent) {\n const view = this._editorView;\n if (!view.dragging) return;\n const pos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (pos) {\n const elem = findDomRefAtPos(pos.pos, view.domAtPos.bind(view)) as HTMLElement;\n const tabElem = elem.closest(TabsAutoSwitchOnDragOver.TAB_SELECTOR);\n if (tabElem === this._tabElem) return;\n this._clear();\n if (tabElem) this._setTabElem(tabElem as HTMLElement);\n }\n }\n\n private _clear() {\n if (this._timeout !== null) clearTimeout(this._timeout);\n this._timeout = null;\n this._tabElem = null;\n }\n\n private _setTabElem(elem: HTMLElement) {\n this._tabElem = elem;\n this._timeout = setTimeout(\n this._switchTab.bind(this),\n TabsAutoSwitchOnDragOver.OPEN_TIMEOUT,\n );\n }\n\n private _switchTab() {\n if (this._editorView.dragging && this._tabElem) {\n switchTabByElem(this._tabElem);\n }\n this._clear();\n }\n}\n\nexport const tabPanelArrowDown: Command = (state, dispatch, view) => {\n const {selection: sel} = state;\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (atEndOfPanel(view) && view?.endOfTextblock('down')) {\n const [direction, $cursor] = ['after', sel.$to] as const;\n let $pos;\n if (isTextSelection(sel)) {\n $pos =\n findFakeParaPosForTextSelection(sel, direction) ??\n findFakeParaPosClosestToPos($cursor, $cursor.depth - 2, direction);\n }\n if (isGapCursorSelection(sel) && tabsParentNode) {\n $pos = state.doc.resolve(tabsParentNode.pos + tabsParentNode.node.nodeSize);\n }\n if ($pos) {\n dispatch?.(createFakeParagraph(state.tr, $pos, direction).scrollIntoView());\n return true;\n }\n }\n\n return false;\n};\n\nexport const tabEnter: Command = (state) => {\n const $cursor = get$Cursor(state.selection);\n return $cursor?.node($cursor.depth).type === tabType(state.schema);\n};\n\nexport const liftEmptyBlockFromTabPanel: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), tabPanelType(schema)) &&\n isSameNodeType($cursor.node(-2), tabsType(schema))\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n const copeidNode = $cursor.parent.copy();\n const tabsAfter = $cursor.after(-2);\n\n const {tr} = state;\n\n tr.insert(tabsAfter, copeidNode)\n .delete($cursor.before(), $cursor.after())\n .setSelection(TextSelection.create(tr.doc, tr.mapping.map(tabsAfter)));\n\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nexport const createTab: (afterTab: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (afterTab, tabsParentNode) => (state, dispatch, view) => {\n const tabNodes = findChildren(\n tabsParentNode.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const afterPanelNode = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n afterTab.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n const tabId = generateID();\n const panelId = generateID();\n\n const newPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelInactiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const newTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n [TabAttrs.dataDiplodocIsActive]: 'false',\n [TabAttrs.class]: tabInactiveClassname,\n [TabAttrs.role]: 'tab',\n [TabAttrs.ariaControls]: panelId,\n });\n\n const {tr} = state;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n dispatch?.(\n tr\n .insert(afterPanelNode.pos + afterPanelNode.node.nodeSize, newPanel)\n .insert(afterTab.pos + afterTab.node.nodeSize, newTab)\n .setSelection(\n TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1),\n ),\n );\n\n view?.focus();\n\n if (view) {\n execAfterPaint(() => switchTabById(view.dom, tabId));\n }\n\n return true;\n };\n\nexport const removeTab: (tabToRemove: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (tabToRemove, tabsParentNode) => (state, dispatch, view) => {\n const tabList = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabsListType(state.schema).name;\n })[0];\n const tabToRemoveIdx = findChildIndex(tabList.node, tabToRemove.node);\n\n const tabNodes = findChildren(\n tabList.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const panelToRemove = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n tabToRemove.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n if (panelToRemove && dispatch) {\n const {tr} = state;\n\n if (tabNodes.length <= 1) {\n tr.delete(tabsParentNode.pos, tabsParentNode.pos + tabsParentNode.node.nodeSize);\n } else {\n const newTabIdx = tabToRemoveIdx - 1 < 0 ? 1 : tabToRemoveIdx - 1;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 2;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n const newTabNode = tabNodes[newTabIdx];\n const newActiveTabId: string = newTabNode.node.attrs[TabAttrs.dataDiplodocid];\n\n tr\n // Delete panel\n .delete(panelToRemove.pos, panelToRemove.pos + panelToRemove.node.nodeSize)\n // Delete tab\n .delete(tabToRemove.pos, tabToRemove.pos + tabToRemove.node.nodeSize)\n .setSelection(\n TextSelection.create(\n tr.doc,\n tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1),\n ),\n );\n\n // Set new active tab\n if (view) execAfterPaint(() => switchTabById(view.dom, newActiveTabId));\n }\n dispatch(tr);\n view?.focus();\n\n return true;\n }\n\n return false;\n };\n\nexport const removeTabWhenCursorAtTheStartOfTab: Command = (state, dispatch) => {\n const tabToRemove = findParentNodeOfType(tabType(state.schema))(state.selection);\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (\n tabsParentNode &&\n tabToRemove &&\n state.selection.from === tabToRemove.pos + 1 &&\n state.selection.from === state.selection.to\n ) {\n return removeTab(tabToRemove, tabsParentNode)(state, dispatch);\n }\n\n return false;\n};\n\nexport const joinBackwardToOpenTab: Command = (state, dispatch) => {\n const $cursor = get$Cursor(state.selection);\n if (!$cursor || $cursor.parentOffset !== 0) return false;\n // --> cursor at start of textblock\n const textBlockIndex = $cursor.index($cursor.depth - 1);\n if (textBlockIndex <= 0) return false;\n const nodeBefore = $cursor.node($cursor.depth - 1).child(textBlockIndex - 1);\n\n if (nodeBefore.type !== tabsType(state.schema)) {\n return false;\n }\n\n const tabsParent = findParentNodeOfTypeClosestToPos(\n state.doc.resolve($cursor.pos - 2),\n tabsType(state.schema),\n );\n\n if (!tabsParent) {\n return false;\n }\n const activePanel = findChildren(\n tabsParent.node,\n (n: Node) => n.attrs.class === tabPanelActiveClassname,\n )[0];\n\n if (dispatch) {\n const posEndOfLastLayoutCell = activePanel.pos + tabsParent.pos + activePanel.node.nodeSize;\n const tr = state.tr;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(posEndOfLastLayoutCell, $cursor.parent);\n tr.setSelection(TextSelection.create(tr.doc, posEndOfLastLayoutCell + 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import emoji from 'markdown-it-emoji';
2
- import bare from 'markdown-it-emoji/bare';
3
- import light from 'markdown-it-emoji/light';
2
+ import bare from 'markdown-it-emoji/bare.js';
3
+ import light from 'markdown-it-emoji/light.js';
4
4
  export default emoji;
5
5
  export { bare, light };
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.light = exports.bare = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const markdown_it_emoji_1 = tslib_1.__importDefault(require("markdown-it-emoji"));
6
- const bare_1 = tslib_1.__importDefault(require("markdown-it-emoji/bare"));
7
- exports.bare = bare_1.default;
8
- const light_1 = tslib_1.__importDefault(require("markdown-it-emoji/light"));
9
- exports.light = light_1.default;
6
+ const bare_js_1 = tslib_1.__importDefault(require("markdown-it-emoji/bare.js"));
7
+ exports.bare = bare_js_1.default;
8
+ const light_js_1 = tslib_1.__importDefault(require("markdown-it-emoji/light.js"));
9
+ exports.light = light_js_1.default;
10
10
  exports.default = markdown_it_emoji_1.default;
11
11
  //# sourceMappingURL=emoji.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","sourceRoot":"../../../src","sources":["markdown-it/emoji.ts"],"names":[],"mappings":";;;;AAAA,kFAAsC;AACtC,0EAA0C;AAKlC,eALD,cAAI,CAKC;AAJZ,4EAA4C;AAI9B,gBAJP,eAAK,CAIO;AAFnB,kBAAe,2BAAK,CAAC","sourcesContent":["import emoji from 'markdown-it-emoji';\nimport bare from 'markdown-it-emoji/bare';\nimport light from 'markdown-it-emoji/light';\n\nexport default emoji;\n\nexport {bare, light};\n"]}
1
+ {"version":3,"file":"emoji.js","sourceRoot":"../../../src","sources":["markdown-it/emoji.ts"],"names":[],"mappings":";;;;AAAA,kFAAsC;AACtC,gFAA6C;AAKrC,eALD,iBAAI,CAKC;AAJZ,kFAA+C;AAIjC,gBAJP,kBAAK,CAIO;AAFnB,kBAAe,2BAAK,CAAC","sourcesContent":["import emoji from 'markdown-it-emoji';\nimport bare from 'markdown-it-emoji/bare.js';\nimport light from 'markdown-it-emoji/light.js';\n\nexport default emoji;\n\nexport {bare, light};\n"]}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  /** During build process, the current version will be injected here */
5
- exports.VERSION = typeof '15.2.0' !== 'undefined' ? '15.2.0' : 'unknown';
5
+ exports.VERSION = typeof '15.2.1' !== 'undefined' ? '15.2.1' : 'unknown';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,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.2.0' !== 'undefined' ? '15.2.0' : 'unknown';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../../src","sources":["version.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,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.2.1' !== 'undefined' ? '15.2.1' : 'unknown';\n"]}
@@ -1,4 +1,4 @@
1
- import { type SanitizeOptions } from '@diplodoc/transform/lib/sanitize';
1
+ import { type SanitizeOptions } from '@diplodoc/transform/lib/sanitize.js';
2
2
  export declare const getYfmHtmlBlockOptions: (defaultOptions: SanitizeOptions) => SanitizeOptions;
3
3
  export interface GetSanitizeYfmHtmlBlockArgs {
4
4
  options: SanitizeOptions;
@@ -1,4 +1,4 @@
1
- import diplodocSanitize, {} from '@diplodoc/transform/lib/sanitize';
1
+ import diplodocSanitize, {} from '@diplodoc/transform/lib/sanitize.js';
2
2
  // yfmHtmlBlock additional css properties white list
3
3
  const getYfmHtmlBlockWhiteList = () => {
4
4
  const whiteList = {};
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/additional/YfmHtmlBlock/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import diplodocSanitize, {type SanitizeOptions} from '@diplodoc/transform/lib/sanitize';\n\n// yfmHtmlBlock additional css properties white list\nconst getYfmHtmlBlockWhiteList = () => {\n const whiteList: Record<string, boolean> = {};\n\n // flex, grid, column\n whiteList['align-content'] = true; // default: auto\n whiteList['align-items'] = true; // default: auto\n whiteList['align-self'] = true; // default: auto\n whiteList.columns = true; // default: depending on individual properties\n whiteList['column-count'] = true; // default: auto\n whiteList['column-fill'] = true; // default: balance\n whiteList['column-gap'] = true; // default: normal\n whiteList['column-rule'] = true; // default: depending on individual properties\n whiteList['column-rule-color'] = true; // default: current color\n whiteList['column-rule-style'] = true; // default: medium\n whiteList['column-rule-width'] = true; // default: medium\n whiteList['column-span'] = true; // default: none\n whiteList['column-width'] = true; // default: auto\n whiteList.flex = true; // default: depending on individual properties\n whiteList['flex-basis'] = true; // default: auto\n whiteList['flex-direction'] = true; // default: row\n whiteList['flex-flow'] = true; // default: depending on individual properties\n whiteList['flex-grow'] = true; // default: 0\n whiteList['flex-shrink'] = true; // default: 1\n whiteList['flex-wrap'] = true; // default: nowrap\n whiteList.gap = true; // default: normal normal\n whiteList.grid = true; // default: depending on individual properties\n whiteList['grid-area'] = true; // default: depending on individual properties\n whiteList['grid-auto-columns'] = true; // default: auto\n whiteList['grid-auto-flow'] = true; // default: none\n whiteList['grid-auto-rows'] = true; // default: auto\n whiteList['grid-column'] = true; // default: depending on individual properties\n whiteList['grid-column-end'] = true; // default: auto\n whiteList['grid-column-start'] = true; // default: auto\n whiteList['grid-row'] = true; // default: depending on individual properties\n whiteList['grid-row-end'] = true; // default: auto\n whiteList['grid-row-start'] = true; // default: auto\n whiteList['grid-template'] = true; // default: depending on individual properties\n whiteList['grid-template-areas'] = true; // default: none\n whiteList['grid-template-columns'] = true; // default: none\n whiteList['grid-template-rows'] = true; // default: none\n whiteList['justify-content'] = true; // default: auto\n whiteList['justify-items'] = true; // default: auto\n whiteList['justify-self'] = true; // default: auto\n whiteList['line-height'] = true; // default: normal\n whiteList['object-fit'] = true; // default: fill\n whiteList['object-position'] = true; // default: 50% 50%\n whiteList.order = true; // default: 0\n whiteList.orphans = true; // default: 2\n whiteList['row-gap'] = true;\n\n // position, opacity, overflow\n whiteList['all'] = true; // default: depending on individual properties\n whiteList['bottom'] = true; // default: auto\n whiteList['content'] = true; // default: normal\n whiteList['cursor'] = true; // default: auto\n whiteList['direction'] = true; // default: ltr\n whiteList['left'] = true; // default: auto\n whiteList['line-break'] = true; // default: auto\n whiteList['opacity'] = true; // default: 1\n whiteList['overflow'] = true; // default: depending on individual properties\n whiteList['overflow-wrap'] = true; // default: normal\n whiteList['overflow-x'] = true; // default: visible\n whiteList['overflow-y'] = true; // default: visible\n whiteList['position'] = true; // default: static\n whiteList['right'] = true; // default: auto\n whiteList['top'] = true; // default: auto\n whiteList['white-space'] = true; // default: normal\n whiteList['z-index'] = true; // default: auto\n\n return whiteList;\n};\n\n// yfmHtmlBlock additional allowedTags\nconst yfmHtmlBlockAllowedTags = ['link', 'base', 'style'];\n\n// yfmHtmlBlock additional allowedTags\nconst yfmHtmlBlockAllowedAttributes = {\n link: ['rel', 'href'],\n base: ['target'],\n style: [],\n};\n\nexport const getYfmHtmlBlockOptions = (defaultOptions: SanitizeOptions): SanitizeOptions => {\n type AllowedAttributesType = Record<\n string,\n (string | {name: string; multiple?: boolean | undefined; values: string[]})[]\n >;\n const defaultAllowedAttributes = defaultOptions.allowedAttributes as AllowedAttributesType;\n\n return {\n ...defaultOptions,\n allowedAttributes: {\n ...defaultAllowedAttributes,\n ...yfmHtmlBlockAllowedAttributes,\n },\n allowedTags:\n typeof defaultOptions.allowedTags === 'boolean'\n ? defaultOptions.allowedTags\n : [...(defaultOptions.allowedTags ?? []), ...yfmHtmlBlockAllowedTags],\n cssWhiteList: {\n ...defaultOptions.cssWhiteList,\n ...getYfmHtmlBlockWhiteList(),\n },\n };\n};\n\nexport interface GetSanitizeYfmHtmlBlockArgs {\n options: SanitizeOptions;\n sanitize?: (html: string, options?: SanitizeOptions) => string;\n}\nexport const getSanitizeYfmHtmlBlock =\n ({options, sanitize = diplodocSanitize}: GetSanitizeYfmHtmlBlockArgs) =>\n (content: string) =>\n sanitize(content, getYfmHtmlBlockOptions(options));\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/additional/YfmHtmlBlock/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import diplodocSanitize, {type SanitizeOptions} from '@diplodoc/transform/lib/sanitize.js';\n\n// yfmHtmlBlock additional css properties white list\nconst getYfmHtmlBlockWhiteList = () => {\n const whiteList: Record<string, boolean> = {};\n\n // flex, grid, column\n whiteList['align-content'] = true; // default: auto\n whiteList['align-items'] = true; // default: auto\n whiteList['align-self'] = true; // default: auto\n whiteList.columns = true; // default: depending on individual properties\n whiteList['column-count'] = true; // default: auto\n whiteList['column-fill'] = true; // default: balance\n whiteList['column-gap'] = true; // default: normal\n whiteList['column-rule'] = true; // default: depending on individual properties\n whiteList['column-rule-color'] = true; // default: current color\n whiteList['column-rule-style'] = true; // default: medium\n whiteList['column-rule-width'] = true; // default: medium\n whiteList['column-span'] = true; // default: none\n whiteList['column-width'] = true; // default: auto\n whiteList.flex = true; // default: depending on individual properties\n whiteList['flex-basis'] = true; // default: auto\n whiteList['flex-direction'] = true; // default: row\n whiteList['flex-flow'] = true; // default: depending on individual properties\n whiteList['flex-grow'] = true; // default: 0\n whiteList['flex-shrink'] = true; // default: 1\n whiteList['flex-wrap'] = true; // default: nowrap\n whiteList.gap = true; // default: normal normal\n whiteList.grid = true; // default: depending on individual properties\n whiteList['grid-area'] = true; // default: depending on individual properties\n whiteList['grid-auto-columns'] = true; // default: auto\n whiteList['grid-auto-flow'] = true; // default: none\n whiteList['grid-auto-rows'] = true; // default: auto\n whiteList['grid-column'] = true; // default: depending on individual properties\n whiteList['grid-column-end'] = true; // default: auto\n whiteList['grid-column-start'] = true; // default: auto\n whiteList['grid-row'] = true; // default: depending on individual properties\n whiteList['grid-row-end'] = true; // default: auto\n whiteList['grid-row-start'] = true; // default: auto\n whiteList['grid-template'] = true; // default: depending on individual properties\n whiteList['grid-template-areas'] = true; // default: none\n whiteList['grid-template-columns'] = true; // default: none\n whiteList['grid-template-rows'] = true; // default: none\n whiteList['justify-content'] = true; // default: auto\n whiteList['justify-items'] = true; // default: auto\n whiteList['justify-self'] = true; // default: auto\n whiteList['line-height'] = true; // default: normal\n whiteList['object-fit'] = true; // default: fill\n whiteList['object-position'] = true; // default: 50% 50%\n whiteList.order = true; // default: 0\n whiteList.orphans = true; // default: 2\n whiteList['row-gap'] = true;\n\n // position, opacity, overflow\n whiteList['all'] = true; // default: depending on individual properties\n whiteList['bottom'] = true; // default: auto\n whiteList['content'] = true; // default: normal\n whiteList['cursor'] = true; // default: auto\n whiteList['direction'] = true; // default: ltr\n whiteList['left'] = true; // default: auto\n whiteList['line-break'] = true; // default: auto\n whiteList['opacity'] = true; // default: 1\n whiteList['overflow'] = true; // default: depending on individual properties\n whiteList['overflow-wrap'] = true; // default: normal\n whiteList['overflow-x'] = true; // default: visible\n whiteList['overflow-y'] = true; // default: visible\n whiteList['position'] = true; // default: static\n whiteList['right'] = true; // default: auto\n whiteList['top'] = true; // default: auto\n whiteList['white-space'] = true; // default: normal\n whiteList['z-index'] = true; // default: auto\n\n return whiteList;\n};\n\n// yfmHtmlBlock additional allowedTags\nconst yfmHtmlBlockAllowedTags = ['link', 'base', 'style'];\n\n// yfmHtmlBlock additional allowedTags\nconst yfmHtmlBlockAllowedAttributes = {\n link: ['rel', 'href'],\n base: ['target'],\n style: [],\n};\n\nexport const getYfmHtmlBlockOptions = (defaultOptions: SanitizeOptions): SanitizeOptions => {\n type AllowedAttributesType = Record<\n string,\n (string | {name: string; multiple?: boolean | undefined; values: string[]})[]\n >;\n const defaultAllowedAttributes = defaultOptions.allowedAttributes as AllowedAttributesType;\n\n return {\n ...defaultOptions,\n allowedAttributes: {\n ...defaultAllowedAttributes,\n ...yfmHtmlBlockAllowedAttributes,\n },\n allowedTags:\n typeof defaultOptions.allowedTags === 'boolean'\n ? defaultOptions.allowedTags\n : [...(defaultOptions.allowedTags ?? []), ...yfmHtmlBlockAllowedTags],\n cssWhiteList: {\n ...defaultOptions.cssWhiteList,\n ...getYfmHtmlBlockWhiteList(),\n },\n };\n};\n\nexport interface GetSanitizeYfmHtmlBlockArgs {\n options: SanitizeOptions;\n sanitize?: (html: string, options?: SanitizeOptions) => string;\n}\nexport const getSanitizeYfmHtmlBlock =\n ({options, sanitize = diplodocSanitize}: GetSanitizeYfmHtmlBlockArgs) =>\n (content: string) =>\n sanitize(content, getYfmHtmlBlockOptions(options));\n"]}
@@ -1,4 +1,4 @@
1
- import deflistPlugin from '@diplodoc/transform/lib/plugins/deflist';
1
+ import deflistPlugin from '@diplodoc/transform/lib/plugins/deflist.js';
2
2
  import { nodeTypeFactory } from "../../../../utils/schema.js";
3
3
  import { DeflistNode } from "./const.js";
4
4
  import { parserTokens } from "./parser.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Deflist/DeflistSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,WAAW,EAAC,mBAAgB;AACpC,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EAAC,WAAW,EAAC,mBAAgB;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAa7D,MAAM,CAAC,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,OAAO;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import deflistPlugin from '@diplodoc/transform/lib/plugins/deflist';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {nodeTypeFactory} from '../../../../utils/schema';\n\nimport {DeflistNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {DeflistNode} from './const';\nexport const defListType = nodeTypeFactory(DeflistNode.List);\nexport const defTermType = nodeTypeFactory(DeflistNode.Term);\nexport const defDescType = nodeTypeFactory(DeflistNode.Desc);\n\nexport type DeflistSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n deflistTermPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n deflistDescPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const DeflistSpecs: ExtensionAuto<DeflistSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder.configureMd((md) => md.use(deflistPlugin));\n builder\n .addNode(DeflistNode.List, () => ({\n spec: schemaSpecs[DeflistNode.List],\n fromMd: {tokenSpec: parserTokens[DeflistNode.List]},\n toMd: serializerTokens[DeflistNode.List],\n }))\n .addNode(DeflistNode.Term, () => ({\n spec: schemaSpecs[DeflistNode.Term],\n fromMd: {tokenSpec: parserTokens[DeflistNode.Term]},\n toMd: serializerTokens[DeflistNode.Term],\n }))\n .addNode(DeflistNode.Desc, () => ({\n spec: schemaSpecs[DeflistNode.Desc],\n fromMd: {tokenSpec: parserTokens[DeflistNode.Desc]},\n toMd: serializerTokens[DeflistNode.Desc],\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Deflist/DeflistSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,4CAA4C,CAAC;AAIvE,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,WAAW,EAAC,mBAAgB;AACpC,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EAAC,WAAW,EAAC,mBAAgB;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAa7D,MAAM,CAAC,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,OAAO;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;SACF,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;QACnD,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import deflistPlugin from '@diplodoc/transform/lib/plugins/deflist.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {nodeTypeFactory} from '../../../../utils/schema';\n\nimport {DeflistNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {DeflistNode} from './const';\nexport const defListType = nodeTypeFactory(DeflistNode.List);\nexport const defTermType = nodeTypeFactory(DeflistNode.Term);\nexport const defDescType = nodeTypeFactory(DeflistNode.Desc);\n\nexport type DeflistSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n deflistTermPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n deflistDescPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const DeflistSpecs: ExtensionAuto<DeflistSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder.configureMd((md) => md.use(deflistPlugin));\n builder\n .addNode(DeflistNode.List, () => ({\n spec: schemaSpecs[DeflistNode.List],\n fromMd: {tokenSpec: parserTokens[DeflistNode.List]},\n toMd: serializerTokens[DeflistNode.List],\n }))\n .addNode(DeflistNode.Term, () => ({\n spec: schemaSpecs[DeflistNode.Term],\n fromMd: {tokenSpec: parserTokens[DeflistNode.Term]},\n toMd: serializerTokens[DeflistNode.Term],\n }))\n .addNode(DeflistNode.Desc, () => ({\n spec: schemaSpecs[DeflistNode.Desc],\n fromMd: {tokenSpec: parserTokens[DeflistNode.Desc]},\n toMd: serializerTokens[DeflistNode.Desc],\n }));\n};\n"]}
@@ -1,4 +1,4 @@
1
- import sanitize from '@diplodoc/transform/lib/sanitize';
1
+ import sanitize from '@diplodoc/transform/lib/sanitize.js';
2
2
  import { HtmlAttr, HtmlNode } from "./const.js";
3
3
  var DomAttr;
4
4
  (function (DomAttr) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../../src","sources":["extensions/markdown/Html/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kCAAkC,CAAC;AAGxD,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,mBAAgB;AAE3C,IAAK,OAGJ;AAHD,WAAK,OAAO;IACR,6BAAkB,CAAA;IAClB,oCAAyB,CAAA;AAC7B,CAAC,EAHI,OAAO,KAAP,OAAO,QAGX;AAED,MAAM,CAAC,MAAM,WAAW,GAA+B;IACnD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACd,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAC;QAC/B,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,GAAG;gBAC3B,QAAQ,CAAC,GAAG;oBACR,MAAM,IAAI,GAAG,GAAkB,CAAC;oBAChC,OAAO;wBACH,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS;qBAC3E,CAAC;gBACN,CAAC;aACJ;SACJ;QACD,KAAK,CAAC,IAAI;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAW,CAAC;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;IAED,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACf,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAC;QAC/B,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,QAAQ,OAAO,CAAC,IAAI,GAAG;gBAC5B,QAAQ,CAAC,GAAG;oBACR,OAAO,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAG,GAAmB,CAAC,WAAW,EAAC,CAAC;gBAClE,CAAC;aACJ;SACJ;QACD,KAAK,CAAC,IAAI;YACN,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;CACJ,CAAC","sourcesContent":["import sanitize from '@diplodoc/transform/lib/sanitize';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport {HtmlAttr, HtmlNode} from './const';\n\nenum DomAttr {\n Html = 'data-html',\n HtmlRaw = 'data-html-raw',\n}\n\nexport const schemaSpecs: Record<HtmlNode, NodeSpec> = {\n [HtmlNode.Block]: {\n atom: true,\n group: 'block',\n attrs: {[HtmlAttr.Content]: {}},\n parseDOM: [\n {\n tag: `div[${DomAttr.Html}]`,\n getAttrs(dom) {\n const dom_ = dom as HTMLElement;\n return {\n [HtmlAttr.Content]: dom_.getAttribute(DomAttr.HtmlRaw) || dom_.innerHTML,\n };\n },\n },\n ],\n toDOM(node) {\n const htmlContent = node.attrs[HtmlAttr.Content] as string;\n const elem = document.createElement('div');\n elem.setAttribute(DomAttr.Html, '');\n elem.setAttribute(DomAttr.HtmlRaw, htmlContent);\n elem.contentEditable = 'false';\n elem.innerHTML = sanitize(htmlContent);\n return elem;\n },\n },\n\n [HtmlNode.Inline]: {\n atom: true,\n inline: true,\n group: 'inline',\n attrs: {[HtmlAttr.Content]: {}},\n parseDOM: [\n {\n tag: `span[${DomAttr.Html}]`,\n getAttrs(dom) {\n return {[HtmlAttr.Content]: (dom as HTMLElement).textContent};\n },\n },\n ],\n toDOM(node) {\n const elem = document.createElement('span');\n elem.setAttribute(DomAttr.Html, '');\n elem.contentEditable = 'false';\n elem.textContent = node.attrs[HtmlAttr.Content];\n return elem;\n },\n },\n};\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../../src","sources":["extensions/markdown/Html/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAG3D,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,mBAAgB;AAE3C,IAAK,OAGJ;AAHD,WAAK,OAAO;IACR,6BAAkB,CAAA;IAClB,oCAAyB,CAAA;AAC7B,CAAC,EAHI,OAAO,KAAP,OAAO,QAGX;AAED,MAAM,CAAC,MAAM,WAAW,GAA+B;IACnD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACd,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAC;QAC/B,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,GAAG;gBAC3B,QAAQ,CAAC,GAAG;oBACR,MAAM,IAAI,GAAG,GAAkB,CAAC;oBAChC,OAAO;wBACH,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS;qBAC3E,CAAC;gBACN,CAAC;aACJ;SACJ;QACD,KAAK,CAAC,IAAI;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAW,CAAC;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;IAED,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACf,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAC;QAC/B,QAAQ,EAAE;YACN;gBACI,GAAG,EAAE,QAAQ,OAAO,CAAC,IAAI,GAAG;gBAC5B,QAAQ,CAAC,GAAG;oBACR,OAAO,EAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAG,GAAmB,CAAC,WAAW,EAAC,CAAC;gBAClE,CAAC;aACJ;SACJ;QACD,KAAK,CAAC,IAAI;YACN,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;CACJ,CAAC","sourcesContent":["import sanitize from '@diplodoc/transform/lib/sanitize.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport {HtmlAttr, HtmlNode} from './const';\n\nenum DomAttr {\n Html = 'data-html',\n HtmlRaw = 'data-html-raw',\n}\n\nexport const schemaSpecs: Record<HtmlNode, NodeSpec> = {\n [HtmlNode.Block]: {\n atom: true,\n group: 'block',\n attrs: {[HtmlAttr.Content]: {}},\n parseDOM: [\n {\n tag: `div[${DomAttr.Html}]`,\n getAttrs(dom) {\n const dom_ = dom as HTMLElement;\n return {\n [HtmlAttr.Content]: dom_.getAttribute(DomAttr.HtmlRaw) || dom_.innerHTML,\n };\n },\n },\n ],\n toDOM(node) {\n const htmlContent = node.attrs[HtmlAttr.Content] as string;\n const elem = document.createElement('div');\n elem.setAttribute(DomAttr.Html, '');\n elem.setAttribute(DomAttr.HtmlRaw, htmlContent);\n elem.contentEditable = 'false';\n elem.innerHTML = sanitize(htmlContent);\n return elem;\n },\n },\n\n [HtmlNode.Inline]: {\n atom: true,\n inline: true,\n group: 'inline',\n attrs: {[HtmlAttr.Content]: {}},\n parseDOM: [\n {\n tag: `span[${DomAttr.Html}]`,\n getAttrs(dom) {\n return {[HtmlAttr.Content]: (dom as HTMLElement).textContent};\n },\n },\n ],\n toDOM(node) {\n const elem = document.createElement('span');\n elem.setAttribute(DomAttr.Html, '');\n elem.contentEditable = 'false';\n elem.textContent = node.attrs[HtmlAttr.Content];\n return elem;\n },\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import log from '@diplodoc/transform/lib/log';
2
- import sup from '@diplodoc/transform/lib/plugins/sup';
1
+ import log from '@diplodoc/transform/lib/log.js';
2
+ import sup from '@diplodoc/transform/lib/plugins/sup.js';
3
3
  import { markTypeFactory } from "../../../../utils/schema.js";
4
4
  export const superscriptMarkName = 'sup';
5
5
  export const superscriptType = markTypeFactory(superscriptMarkName);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Superscript/SuperscriptSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,6BAA6B,CAAC;AAC9C,OAAO,GAAG,MAAM,qCAAqC,CAAC;AAGtD,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,EAAE;IACvD,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;SACvC,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE;YACF,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC;YACxB,KAAK;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;SACJ;QACD,IAAI,EAAE;YACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACZ,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC9B,OAAO,GAAG,CAAC;YACf,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACb,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC/B,OAAO,GAAG,CAAC;YACf,CAAC;YACD,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,IAAI;SACjC;QACD,MAAM,EAAE,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAC,EAAC;KACjE,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log';\nimport sup from '@diplodoc/transform/lib/plugins/sup';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {markTypeFactory} from '../../../../utils/schema';\n\nexport const superscriptMarkName = 'sup';\nexport const superscriptType = markTypeFactory(superscriptMarkName);\n\nexport const SuperscriptSpecs: ExtensionAuto = (builder) => {\n builder\n .configureMd((md) => md.use(sup, {log}))\n .addMark(superscriptMarkName, () => ({\n spec: {\n excludes: '_',\n parseDOM: [{tag: 'sup'}],\n toDOM() {\n return ['sup'];\n },\n },\n toMd: {\n open: (state) => {\n state.escapeWhitespace = true;\n return '^';\n },\n close: (state) => {\n state.escapeWhitespace = false;\n return '^';\n },\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n fromMd: {tokenSpec: {name: superscriptMarkName, type: 'mark'}},\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/markdown/Superscript/SuperscriptSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gCAAgC,CAAC;AACjD,OAAO,GAAG,MAAM,wCAAwC,CAAC;AAGzD,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,EAAE;IACvD,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;SACvC,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE;YACF,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC;YACxB,KAAK;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;SACJ;QACD,IAAI,EAAE;YACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACZ,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC9B,OAAO,GAAG,CAAC;YACf,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACb,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC/B,OAAO,GAAG,CAAC;YACf,CAAC;YACD,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,IAAI;SACjC;QACD,MAAM,EAAE,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAC,EAAC;KACjE,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport sup from '@diplodoc/transform/lib/plugins/sup.js';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {markTypeFactory} from '../../../../utils/schema';\n\nexport const superscriptMarkName = 'sup';\nexport const superscriptType = markTypeFactory(superscriptMarkName);\n\nexport const SuperscriptSpecs: ExtensionAuto = (builder) => {\n builder\n .configureMd((md) => md.use(sup, {log}))\n .addMark(superscriptMarkName, () => ({\n spec: {\n excludes: '_',\n parseDOM: [{tag: 'sup'}],\n toDOM() {\n return ['sup'];\n },\n },\n toMd: {\n open: (state) => {\n state.escapeWhitespace = true;\n return '^';\n },\n close: (state) => {\n state.escapeWhitespace = false;\n return '^';\n },\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n fromMd: {tokenSpec: {name: superscriptMarkName, type: 'mark'}},\n }));\n};\n"]}
@@ -1,4 +1,4 @@
1
- import checkboxPlugin from '@diplodoc/transform/lib/plugins/checkbox';
1
+ import checkboxPlugin from '@diplodoc/transform/lib/plugins/checkbox/index.js';
2
2
  import { CheckboxNode, b, idPrefix } from "./const.js";
3
3
  import { parserTokens } from "./parser.js";
4
4
  import { getSchemaSpecs } from "./schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Checkbox/CheckboxSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,0CAA0C,CAAC;AAKtE,OAAO,EAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAC,mBAAgB;AAClD,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GACpB,mBAAgB;AAYjB,MAAM,CAAC,MAAM,aAAa,GAAwC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAChF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;SACtE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC;QACxC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC7C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC;SACjD;QACD,IAAI,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;SAC9C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS;KACvB,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;YAC3C,SAAS,EAAE,gBAAgB;SAC9B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import checkboxPlugin from '@diplodoc/transform/lib/plugins/checkbox';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto, ExtensionNodeSpec} from '../../../../core';\n\nimport {CheckboxNode, b, idPrefix} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {\n CheckboxAttr,\n CheckboxNode,\n checkboxType,\n checkboxLabelType,\n checkboxInputType,\n} from './const';\n\nexport type CheckboxSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n checkboxLabelPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n inputView?: ExtensionNodeSpec['view'];\n labelView?: ExtensionNodeSpec['view'];\n checkboxView?: ExtensionNodeSpec['view'];\n};\n\nexport const CheckboxSpecs: ExtensionAuto<CheckboxSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(checkboxPlugin, {idPrefix, divClass: b()}))\n .addNode(CheckboxNode.Checkbox, () => ({\n spec: schemaSpecs[CheckboxNode.Checkbox],\n toMd: serializerTokens[CheckboxNode.Checkbox],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Checkbox],\n },\n view: opts.checkboxView,\n }))\n .addNode(CheckboxNode.Input, () => ({\n spec: schemaSpecs[CheckboxNode.Input],\n toMd: serializerTokens[CheckboxNode.Input],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Input],\n },\n view: opts.inputView,\n }))\n .addNode(CheckboxNode.Label, () => ({\n spec: schemaSpecs[CheckboxNode.Label],\n toMd: serializerTokens[CheckboxNode.Label],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Label],\n tokenName: 'checkbox_label',\n },\n view: opts.labelView,\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Checkbox/CheckboxSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mDAAmD,CAAC;AAK/E,OAAO,EAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAC,mBAAgB;AAClD,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GACpB,mBAAgB;AAYjB,MAAM,CAAC,MAAM,aAAa,GAAwC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAChF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;SACtE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC;QACxC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC7C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC;SACjD;QACD,IAAI,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;SAC9C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS;KACvB,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;YAC3C,SAAS,EAAE,gBAAgB;SAC9B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import checkboxPlugin from '@diplodoc/transform/lib/plugins/checkbox/index.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto, ExtensionNodeSpec} from '../../../../core';\n\nimport {CheckboxNode, b, idPrefix} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {\n CheckboxAttr,\n CheckboxNode,\n checkboxType,\n checkboxLabelType,\n checkboxInputType,\n} from './const';\n\nexport type CheckboxSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n checkboxLabelPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n inputView?: ExtensionNodeSpec['view'];\n labelView?: ExtensionNodeSpec['view'];\n checkboxView?: ExtensionNodeSpec['view'];\n};\n\nexport const CheckboxSpecs: ExtensionAuto<CheckboxSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(checkboxPlugin, {idPrefix, divClass: b()}))\n .addNode(CheckboxNode.Checkbox, () => ({\n spec: schemaSpecs[CheckboxNode.Checkbox],\n toMd: serializerTokens[CheckboxNode.Checkbox],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Checkbox],\n },\n view: opts.checkboxView,\n }))\n .addNode(CheckboxNode.Input, () => ({\n spec: schemaSpecs[CheckboxNode.Input],\n toMd: serializerTokens[CheckboxNode.Input],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Input],\n },\n view: opts.inputView,\n }))\n .addNode(CheckboxNode.Label, () => ({\n spec: schemaSpecs[CheckboxNode.Label],\n toMd: serializerTokens[CheckboxNode.Label],\n fromMd: {\n tokenSpec: parserTokens[CheckboxNode.Label],\n tokenName: 'checkbox_label',\n },\n view: opts.labelView,\n }));\n};\n"]}
@@ -1,4 +1,4 @@
1
- import emojiPlugin from 'markdown-it-emoji/bare';
1
+ import emojiPlugin from 'markdown-it-emoji/bare.js';
2
2
  import { EmojiConsts, emojiTokenName, markupDataAttribute } from "./const.js";
3
3
  export { EmojiConsts } from "./const.js";
4
4
  const EmojiSpecsExtension = (builder, opts) => {
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiSpecs.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAC,mBAAgB;AAEzE,OAAO,EAAC,WAAW,EAAC,mBAAgB;AAOpC,MAAM,mBAAmB,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5E,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAU,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE;YACF,KAAK,EAAE,EAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAC;YAC3C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE;gBACN;oBACI,GAAG,EAAE,QAAQ,mBAAmB,GAAG;oBACnC,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;wBACf,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;4BAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;4BACtD,IAAI,MAAM,EAAE,CAAC;gCACT,OAAO,EAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAC,CAAC;4BACpD,CAAC;wBACL,CAAC;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC;iBACJ;aACJ;YACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACxD,OAAO,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAC,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE;gBACP,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAClB,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM;iBAC/C,CAAC;aACL;SACJ;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;KACJ,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import type {Options} from 'markdown-it-emoji';\nimport emojiPlugin from 'markdown-it-emoji/bare';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {EmojiConsts, emojiTokenName, markupDataAttribute} from './const';\n\nexport {EmojiConsts} from './const';\n\nexport type EmojiSpecsOptions = {\n defs?: Record<string, string>;\n shortcuts?: Partial<Record<string, string | string[]>>;\n};\n\nconst EmojiSpecsExtension: ExtensionAuto<EmojiSpecsOptions> = (builder, opts) => {\n builder.configureMd((md) => md.use<Options>(emojiPlugin, opts));\n builder.addNode(EmojiConsts.NodeName, () => ({\n spec: {\n attrs: {[EmojiConsts.NodeAttrs.Markup]: {}},\n atom: true,\n inline: true,\n content: 'text*',\n group: 'inline',\n selectable: false,\n parseDOM: [\n {\n tag: `span[${markupDataAttribute}]`,\n priority: 100,\n getAttrs: (node) => {\n if (node instanceof HTMLElement) {\n const markup = node.getAttribute(markupDataAttribute);\n if (markup) {\n return {[EmojiConsts.NodeAttrs.Markup]: markup};\n }\n }\n return false;\n },\n },\n ],\n toDOM: (node) => {\n const markup = node.attrs[EmojiConsts.NodeAttrs.Markup];\n return ['span', {contentEditable: false, [markupDataAttribute]: markup}, 0];\n },\n },\n fromMd: {\n tokenName: emojiTokenName,\n tokenSpec: {\n name: EmojiConsts.NodeName,\n type: 'block',\n noCloseToken: true,\n getAttrs: (token) => ({\n [EmojiConsts.NodeAttrs.Markup]: token.markup,\n }),\n },\n },\n toMd: (state, node) => {\n state.text(`:${node.attrs[EmojiConsts.NodeAttrs.Markup]}:`, false);\n },\n }));\n};\n\nexport const EmojiSpecs = Object.assign(EmojiSpecsExtension, EmojiConsts);\n"]}
1
+ {"version":3,"file":"EmojiSpecs.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAC,mBAAgB;AAEzE,OAAO,EAAC,WAAW,EAAC,mBAAgB;AAOpC,MAAM,mBAAmB,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5E,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAU,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE;YACF,KAAK,EAAE,EAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAC;YAC3C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE;gBACN;oBACI,GAAG,EAAE,QAAQ,mBAAmB,GAAG;oBACnC,QAAQ,EAAE,GAAG;oBACb,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;wBACf,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;4BAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;4BACtD,IAAI,MAAM,EAAE,CAAC;gCACT,OAAO,EAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAC,CAAC;4BACpD,CAAC;wBACL,CAAC;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC;iBACJ;aACJ;YACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACxD,OAAO,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAC,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE;gBACP,IAAI,EAAE,WAAW,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAClB,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM;iBAC/C,CAAC;aACL;SACJ;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;KACJ,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import type {Options} from 'markdown-it-emoji';\nimport emojiPlugin from 'markdown-it-emoji/bare.js';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {EmojiConsts, emojiTokenName, markupDataAttribute} from './const';\n\nexport {EmojiConsts} from './const';\n\nexport type EmojiSpecsOptions = {\n defs?: Record<string, string>;\n shortcuts?: Partial<Record<string, string | string[]>>;\n};\n\nconst EmojiSpecsExtension: ExtensionAuto<EmojiSpecsOptions> = (builder, opts) => {\n builder.configureMd((md) => md.use<Options>(emojiPlugin, opts));\n builder.addNode(EmojiConsts.NodeName, () => ({\n spec: {\n attrs: {[EmojiConsts.NodeAttrs.Markup]: {}},\n atom: true,\n inline: true,\n content: 'text*',\n group: 'inline',\n selectable: false,\n parseDOM: [\n {\n tag: `span[${markupDataAttribute}]`,\n priority: 100,\n getAttrs: (node) => {\n if (node instanceof HTMLElement) {\n const markup = node.getAttribute(markupDataAttribute);\n if (markup) {\n return {[EmojiConsts.NodeAttrs.Markup]: markup};\n }\n }\n return false;\n },\n },\n ],\n toDOM: (node) => {\n const markup = node.attrs[EmojiConsts.NodeAttrs.Markup];\n return ['span', {contentEditable: false, [markupDataAttribute]: markup}, 0];\n },\n },\n fromMd: {\n tokenName: emojiTokenName,\n tokenSpec: {\n name: EmojiConsts.NodeName,\n type: 'block',\n noCloseToken: true,\n getAttrs: (token) => ({\n [EmojiConsts.NodeAttrs.Markup]: token.markup,\n }),\n },\n },\n toMd: (state, node) => {\n state.text(`:${node.attrs[EmojiConsts.NodeAttrs.Markup]}:`, false);\n },\n }));\n};\n\nexport const EmojiSpecs = Object.assign(EmojiSpecsExtension, EmojiConsts);\n"]}
@@ -1,4 +1,4 @@
1
- import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const';
1
+ import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const.js';
2
2
  export declare const ImgSizeAttr: {
3
3
  readonly Alt: ImsizeAttr.Alt;
4
4
  readonly Src: ImsizeAttr.Src;
@@ -1,4 +1,4 @@
1
- import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const';
1
+ import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const.js';
2
2
  export const ImgSizeAttr = {
3
3
  Alt: ImsizeAttr.Alt,
4
4
  Src: ImsizeAttr.Src,
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,8CAA8C,CAAC;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import {ImsizeAttr} from '@diplodoc/transform/lib/plugins/imsize/const';\n\nexport const ImgSizeAttr = {\n Alt: ImsizeAttr.Alt,\n Src: ImsizeAttr.Src,\n Title: ImsizeAttr.Title,\n Width: ImsizeAttr.Width,\n Height: ImsizeAttr.Height,\n Loading: 'loading',\n} as const;\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iDAAiD,CAAC;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import {ImsizeAttr} from '@diplodoc/transform/lib/plugins/imsize/const.js';\n\nexport const ImgSizeAttr = {\n Alt: ImsizeAttr.Alt,\n Src: ImsizeAttr.Src,\n Title: ImsizeAttr.Title,\n Width: ImsizeAttr.Width,\n Height: ImsizeAttr.Height,\n Loading: 'loading',\n} as const;\n"]}
@@ -1,5 +1,5 @@
1
- import log from '@diplodoc/transform/lib/log';
2
- import imsize from '@diplodoc/transform/lib/plugins/imsize';
1
+ import log from '@diplodoc/transform/lib/log.js';
2
+ import imsize from '@diplodoc/transform/lib/plugins/imsize/index.js';
3
3
  import isNumber from 'is-number';
4
4
  import { imageNodeName } from "../../../markdown/Image/const.js";
5
5
  import { ImgSizeAttr } from "./const.js";