{"version":3,"sources":["../../src/react/LineHeightPlugin.tsx","../../src/lib/BaseLineHeightPlugin.ts","../../src/lib/transforms/setLineHeight.ts"],"sourcesContent":["import { toPlatePlugin } from '@udecode/plate/react';\n\nimport { BaseLineHeightPlugin } from '../lib';\n\nexport const LineHeightPlugin = toPlatePlugin(BaseLineHeightPlugin);\n","import { bindFirst, createSlatePlugin, KEYS } from '@udecode/plate';\n\nimport { setLineHeight } from './transforms';\n\n/**\n * Enables support for text alignment, useful to align your content to left,\n * right and center it.\n */\nexport const BaseLineHeightPlugin = createSlatePlugin({\n  key: KEYS.lineHeight,\n  inject: {\n    isBlock: true,\n    nodeProps: {\n      defaultNodeValue: 1.5,\n      nodeKey: 'lineHeight',\n    },\n    targetPlugins: [KEYS.p],\n    targetPluginToInject: ({ editor, plugin }) => ({\n      parsers: {\n        html: {\n          deserializer: {\n            parse: ({ element }) => {\n              if (element.style.lineHeight) {\n                return {\n                  [editor.getType(plugin.key)]: element.style.lineHeight,\n                };\n              }\n            },\n          },\n        },\n      },\n    }),\n  },\n}).extendTransforms(({ editor }) => ({\n  setNodes: bindFirst(setLineHeight, editor),\n}));\n","import {\n  type SetNodesOptions,\n  type SlateEditor,\n  getInjectMatch,\n  KEYS,\n} from '@udecode/plate';\n\nimport { BaseLineHeightPlugin } from '../BaseLineHeightPlugin';\n\nexport const setLineHeight = (\n  editor: SlateEditor,\n  value: number,\n  setNodesOptions?: SetNodesOptions\n): void => {\n  const { defaultNodeValue, nodeKey } =\n    editor.getInjectProps(BaseLineHeightPlugin);\n\n  const match = getInjectMatch(\n    editor,\n    editor.getPlugin({ key: KEYS.lineHeight })\n  );\n\n  if (value === defaultNodeValue) {\n    editor.tf.unsetNodes(nodeKey!, {\n      match,\n      ...setNodesOptions,\n    });\n  } else {\n    editor.tf.setNodes(\n      { [nodeKey!]: value },\n      {\n        match: match as any,\n        ...setNodesOptions,\n      }\n    );\n  }\n};\n"],"mappings":";AAAA,SAAS,qBAAqB;;;ACA9B,SAAS,WAAW,mBAAmB,QAAAA,aAAY;;;ACAnD;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AAIA,IAAM,gBAAgB,CAC3B,QACA,OACA,oBACS;AACT,QAAM,EAAE,kBAAkB,QAAQ,IAChC,OAAO,eAAe,oBAAoB;AAE5C,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA,OAAO,UAAU,EAAE,KAAK,KAAK,WAAW,CAAC;AAAA,EAC3C;AAEA,MAAI,UAAU,kBAAkB;AAC9B,WAAO,GAAG,WAAW,SAAU;AAAA,MAC7B;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAAA,EACH,OAAO;AACL,WAAO,GAAG;AAAA,MACR,EAAE,CAAC,OAAQ,GAAG,MAAM;AAAA,MACpB;AAAA,QACE;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;;;AD5BO,IAAM,uBAAuB,kBAAkB;AAAA,EACpD,KAAKC,MAAK;AAAA,EACV,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,MACT,kBAAkB;AAAA,MAClB,SAAS;AAAA,IACX;AAAA,IACA,eAAe,CAACA,MAAK,CAAC;AAAA,IACtB,sBAAsB,CAAC,EAAE,QAAQ,OAAO,OAAO;AAAA,MAC7C,SAAS;AAAA,QACP,MAAM;AAAA,UACJ,cAAc;AAAA,YACZ,OAAO,CAAC,EAAE,QAAQ,MAAM;AACtB,kBAAI,QAAQ,MAAM,YAAY;AAC5B,uBAAO;AAAA,kBACL,CAAC,OAAO,QAAQ,OAAO,GAAG,CAAC,GAAG,QAAQ,MAAM;AAAA,gBAC9C;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC,EAAE,iBAAiB,CAAC,EAAE,OAAO,OAAO;AAAA,EACnC,UAAU,UAAU,eAAe,MAAM;AAC3C,EAAE;;;AD/BK,IAAM,mBAAmB,cAAc,oBAAoB;","names":["KEYS","KEYS"]}