{"_id":"@asleepwalker/draft-js-import-element","_rev":"1-d0374152302a676a6f5e740226ebfaeb","name":"@asleepwalker/draft-js-import-element","dist-tags":{"latest":"1.4.0"},"versions":{"1.4.0":{"name":"@asleepwalker/draft-js-import-element","version":"1.4.0","description":"DraftJS: Import Element to ContentState","main":"lib/main.js","module":"esm/main.js","scripts":{"release":"npm run build && npm publish","build:cjs":"babel src --root-mode upward --out-dir lib --ignore \"_*\"","build:esm":"NODE_ENV=esm babel src --root-mode upward --out-dir esm --ignore \"_*\"","build":"yarn build:cjs && yarn build:esm"},"dependencies":{"draft-js-utils":"^1.4.0","synthetic-dom":"^1.4.0"},"peerDependencies":{"draft-js":">=0.10.0","immutable":"3.x.x"},"keywords":["draft-js","import-element"],"author":{"name":"sstur@me.com"},"contributors":[{"name":"Per Nilsson","url":"https://github.com/coopy"},{"name":"Simon Sturmer","url":"https://github.com/sstur"}],"license":"ISC","repository":{"type":"git","url":"https://github.com/sstur/draft-js-utils/tree/master/packages/draft-js-import-element"},"bugs":{"url":"https://github.com/sstur/draft-js-utils/issues"},"homepage":"https://github.com/sstur/draft-js-utils/blob/master/packages/draft-js-import-element/README.md","_id":"@asleepwalker/draft-js-import-element@1.4.0","_nodeVersion":"12.12.0","_npmVersion":"6.14.2","dist":{"integrity":"sha512-3vU7i3xHAZJmYXrhOGT3sCclsBf5SPkGyYGm0/xSmBvu13UsEjy6GrTsvHuTeMCKvoLGlz6qe2tMHDtGgBXdRg==","shasum":"cdd500de7cb31a283c611c202fd0dd1003c359bc","tarball":"https://registry.npmjs.org/@asleepwalker/draft-js-import-element/-/draft-js-import-element-1.4.0.tgz","fileCount":14,"unpackedSize":72816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJez8MfCRA9TVsSAnZWagAA48EP/2KTgnENSVfgdn4MLb9y\np7/Yulnc9+PsW0zhjaDHb7XEivz8d2ryXTImwPE/J1M23EJXumy3R8NMokO0\neh05D0pbgkQlyi5D8y05SpQlOSu6JzuoeduAVlwIVySN/2ZudjL6lNVJDiVi\nvNG2tPpbSxabJxPiCpH1dHfXrDmOQRSXCn69mlyL3tOjvS7eQG3GGVa7KAww\nth5lDPsMhgJFG05OYfbJbUYWRWAPfmgV9e/nvqwLd5FCj6k+IXhGzvfAPyCs\ndh6VbW+lOq2UKJpmEb2gip0cNpIyv759VCETSFAoNAV46uZRSoPF1Ai8SHYQ\nco/e8GF2W6UG8LVN9blS4VjDlECKPRFyOiQPM+f64rbPt/z3xiSB1ibcOgzJ\nJKp6vJy3x2yLurTUZ6RvmG4FZgCGH+nzybwyv6BUViFenfWiQ6l6XZOOYeoM\na7o1Q7bpfgJy/roZ/1+OzwVLIzKZl0Ic6s/yv74djoSv9MS5DHB4iaJzKxKz\nrz03y+5xo9N6TaKY1vpC1dvihMFK69t3PsbkidZMDonOikBngbeySIbqGUpr\n1+kMvRjevNTIV5RnLwrq1P1DWTM2iz1k5KBSM2SUkUhKVeh0DjQ+VQje1c52\nhHB7TH3X63esOKCCElchmH14QckdLoxVRQzZccarxtQpnMGNS6f+iXog4jHv\nBXw3\r\n=iDQG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwkp2kqeHlSbZTgbCTtDvJSf8hNI/wrn6lSkbV+gXqjQIgSY02ORNR2g+g4gkHHuH2TGeFJXF1C+ye+Ef43khtqIE="}]},"maintainers":[{"name":"asleepwalker","email":"mail@asleepwalker.ru"}],"_npmUser":{"name":"asleepwalker","email":"mail@asleepwalker.ru"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/draft-js-import-element_1.4.0_1590674206614_0.5392564597875735"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-28T13:56:46.579Z","1.4.0":"2020-05-28T13:56:46.763Z","modified":"2022-04-04T15:47:38.662Z"},"maintainers":[{"name":"asleepwalker","email":"mail@asleepwalker.ru"}],"description":"DraftJS: Import Element to ContentState","homepage":"https://github.com/sstur/draft-js-utils/blob/master/packages/draft-js-import-element/README.md","keywords":["draft-js","import-element"],"repository":{"type":"git","url":"https://github.com/sstur/draft-js-utils/tree/master/packages/draft-js-import-element"},"contributors":[{"name":"Per Nilsson","url":"https://github.com/coopy"},{"name":"Simon Sturmer","url":"https://github.com/sstur"}],"author":{"name":"sstur@me.com"},"bugs":{"url":"https://github.com/sstur/draft-js-utils/issues"},"license":"ISC","readme":"# DraftJS: Import Element to ContentState\n\nThis is a module for [DraftJS](https://github.com/facebook/draft-js) that will convert an HTML DOM Element to editor content.\n\nIt was extracted from [React-RTE](https://react-rte.org) and placed into a separate module for more general use. Hopefully it can be helpful in your projects.\n\n## Installation\n\n    npm install --save draft-js-import-element\n\nThis project is still under development. If you want to help out, please open an issue to discuss or join us on [Slack](https://draftjs.slack.com/).\n\n## Usage\n\n`stateFromElement` takes a DOM node `element` and returns a DraftJS [ContentState](https://facebook.github.io/draft-js/docs/api-reference-content-state.html).\n\n```js\nimport {stateFromElement} from 'draft-js-import-element';\nconst contentState = stateFromElement(element);\n```\n\n### Options\n\nYou can optionally pass a second `Object` argument to `stateFromElement` with the following supported properties:\n\n- `customBlockFn`: Function to specify block type/data based on HTML element. Example:\n```js\nlet options = {\n  // Should return null/undefined or an object with optional: type (string); data (plain object)\n  customBlockFn: (element) => {\n    if (element.tagName === 'ARTICLE') {\n      return {type: 'custom-block-type'};\n    }\n    if (element.tagName === 'CENTER') {\n      return {data: {align: 'center'}};\n    }\n  },\n};\nlet contentState = stateFromElement(element, options);\n```\n\n- `customInlineFn`: Function to specify how inline elements are handled. Example:\n\n```js\nlet options = {\n  // Should return a Style() or Entity() or null/undefined\n  customInlineFn: (element, {Style, Entity}) => {\n    if (element.tagName === 'SPAN' && element.className === 'emphasis') {\n      return Style('ITALIC');\n    } else if (element.tagName === 'IMG') {\n      return Entity('IMAGE', {src: element.getAttribute('src')});\n    }\n  },\n};\nlet contentState = stateFromElement(element, options);\n```\n\n- `elementStyles`: HTML element name as key, DraftJS style string as value. Example:\n```js\nstateFromElement(element, {\n  elementStyles: {\n    // Support `<sup>` (superscript) inline element:\n    'sup': 'SUPERSCRIPT',\n  },\n});\n```\n\n## License\n\nThis software is [BSD Licensed](/LICENSE).\n","readmeFilename":"README.md"}