This commit is contained in:
532
node_modules/decap-cms-widget-markdown/CHANGELOG.md
generated
vendored
Normal file
532
node_modules/decap-cms-widget-markdown/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,532 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.1.6](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.5...decap-cms-widget-markdown@3.1.6) (2024-08-13)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "Update dependencies (#7264)" ([22d483a](https://github.com/decaporg/decap-cms/commit/22d483a5b0c654071ae05735ac4f49abdc13d38c)), closes [#7264](https://github.com/decaporg/decap-cms/issues/7264)
|
||||
|
||||
## [3.1.5](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.4...decap-cms-widget-markdown@3.1.5) (2024-08-13)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.1.4](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.3...decap-cms-widget-markdown@3.1.4) (2024-08-07)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.1.3](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.2...decap-cms-widget-markdown@3.1.3) (2024-03-28)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.1.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.1...decap-cms-widget-markdown@3.1.2) (2024-03-21)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.1.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.0-beta.2...decap-cms-widget-markdown@3.1.1) (2024-03-08)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [3.1.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.0-beta.2...decap-cms-widget-markdown@3.1.0) (2024-02-01)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [3.1.0-beta.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.0-beta.1...decap-cms-widget-markdown@3.1.0-beta.2) (2024-01-31)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [3.1.0-beta.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.0-beta.0...decap-cms-widget-markdown@3.1.0-beta.1) (2024-01-16)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [3.1.0-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.1.0...decap-cms-widget-markdown@3.1.0-beta.0) (2023-10-20)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([b89fc89](https://github.com/decaporg/decap-cms/commit/b89fc894dfbb5f4136b2e5427fd25a29378a58c6))
|
||||
|
||||
## [3.0.3](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.0.2...decap-cms-widget-markdown@3.0.3) (2023-10-13)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.0.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.0.1...decap-cms-widget-markdown@3.0.2) (2023-10-10)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [3.0.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@3.0.0...decap-cms-widget-markdown@3.0.1) (2023-08-25)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- update peer dependencies ([#6886](https://github.com/decaporg/decap-cms/issues/6886)) ([e580ce5](https://github.com/decaporg/decap-cms/commit/e580ce52ce5f80fa040e8fbcab7fed0744f4f695))
|
||||
|
||||
# [3.0.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.16.0...decap-cms-widget-markdown@3.0.0) (2023-08-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.16.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.16.0-beta.0...decap-cms-widget-markdown@2.16.0) (2023-08-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# 2.16.0-beta.0 (2023-08-18)
|
||||
|
||||
### Features
|
||||
|
||||
- rename packages ([#6863](https://github.com/decaporg/decap-cms/issues/6863)) ([d515e7b](https://github.com/decaporg/decap-cms/commit/d515e7bd33216a775d96887b08c4f7b1962941bb))
|
||||
|
||||
## [2.15.2-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.15.1...decap-cms-widget-markdown@2.15.2-beta.0) (2023-07-27)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- accessibility - color contrast and keyboard navigation ([#6757](https://github.com/decaporg/decap-cms/issues/6757)) ([194d1ce](https://github.com/decaporg/decap-cms/commit/194d1ce351c35d3feed4c1be704fbf79ac3c0efa))
|
||||
|
||||
## [2.15.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.15.0...decap-cms-widget-markdown@2.15.1) (2022-04-13)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.15.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.14.4...decap-cms-widget-markdown@2.15.0) (2022-01-21)
|
||||
|
||||
### Features
|
||||
|
||||
- use keyboard shortcuts to insert bullet points ([#6134](https://github.com/decaporg/decap-cms/issues/6134)) ([dd149f6](https://github.com/decaporg/decap-cms/commit/dd149f6d0479d20eef0bc9cede738784c9cdb4fd))
|
||||
|
||||
## [2.14.4](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.14.3...decap-cms-widget-markdown@2.14.4) (2021-10-28)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **richtext:** improvement to the Rich Text Editor [#5446](https://github.com/decaporg/decap-cms/issues/5446) ([#5897](https://github.com/decaporg/decap-cms/issues/5897)) ([06c7e25](https://github.com/decaporg/decap-cms/commit/06c7e251ce5e97a4949aa308070c3a659b50c780))
|
||||
|
||||
## [2.14.3](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.14.2...decap-cms-widget-markdown@2.14.3) (2021-10-28)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- dropdown overflow in markdown widget ([#5879](https://github.com/decaporg/decap-cms/issues/5879)) ([3ec1611](https://github.com/decaporg/decap-cms/commit/3ec161122d13e01dacb65fa9c109be9612b54d47))
|
||||
|
||||
## [2.14.2](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.14.1...decap-cms-widget-markdown@2.14.2) (2021-08-17)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **markdown-widget:** support arbitrary component order ([#5597](https://github.com/decaporg/decap-cms/issues/5597)) ([fbfab7c](https://github.com/decaporg/decap-cms/commit/fbfab7cda54aba68c948188d0ad5660431d275fc))
|
||||
|
||||
## [2.14.1](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.14.0...decap-cms-widget-markdown@2.14.1) (2021-08-04)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **markdown-widget:** apply list item style on each block in a selection ([#5676](https://github.com/decaporg/decap-cms/issues/5676)) ([04e5305](https://github.com/decaporg/decap-cms/commit/04e53054ceba8e2b6f3a2e7f1de5ecc3abe8431a))
|
||||
|
||||
# [2.14.0](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.13.6...decap-cms-widget-markdown@2.14.0) (2021-07-25)
|
||||
|
||||
### Features
|
||||
|
||||
- **widget-markdown:** allow registering remark plugins ([#5633](https://github.com/decaporg/decap-cms/issues/5633)) ([437f4bc](https://github.com/decaporg/decap-cms/commit/437f4bc634c5a52758bd06ab1709f2e66a71dce7))
|
||||
|
||||
## [2.13.6](https://github.com/decaporg/decap-cms/compare/decap-cms-widget-markdown@2.13.5...decap-cms-widget-markdown@2.13.6) (2021-07-25)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** Hitting Enter key in a list item doesn't create a new list item ([#5550](https://github.com/decaporg/decap-cms/issues/5550)) ([ab3e8e1](https://github.com/decaporg/decap-cms/commit/ab3e8e1f5a5fecd343e32cc31912ec912449e713))
|
||||
|
||||
## [2.13.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.13.4...decap-cms-widget-markdown@2.13.5) (2021-06-24)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.13.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.13.3...decap-cms-widget-markdown@2.13.4) (2021-06-01)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.13.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.13.2...decap-cms-widget-markdown@2.13.3) (2021-05-30)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** fix quote block and list highlighting ([#5422](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/5422)) ([b9624fc](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/b9624fc67376cd6c6850f9b1adbfa5c80f2a0ac0))
|
||||
|
||||
## [2.13.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.13.1...decap-cms-widget-markdown@2.13.2) (2021-05-19)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.13.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.13.0...decap-cms-widget-markdown@2.13.1) (2021-05-19)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **deps:** update react-select to v3 ([#5394](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/5394)) ([03be13c](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/03be13c1e87b318fd10ae6f6ab54cd2634fb9662))
|
||||
|
||||
# [2.13.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.12...decap-cms-widget-markdown@2.13.0) (2021-05-04)
|
||||
|
||||
### Features
|
||||
|
||||
- added react 17 as peer dependency in packages ([#5316](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/5316)) ([9e42380](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/9e423805707321396eec137f5b732a5b07a0dd3f))
|
||||
|
||||
## [2.12.12](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.11...decap-cms-widget-markdown@2.12.12) (2021-04-01)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** improve UX in Markdown editor - link editing and selected heading underline ([#5104](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/5104)) ([dde1a9d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/dde1a9db5483912f626f13239d7a3d06d6c4e05c))
|
||||
|
||||
## [2.12.11](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.10...decap-cms-widget-markdown@2.12.11) (2021-02-23)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.12.10](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.9...decap-cms-widget-markdown@2.12.10) (2021-02-10)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** set toolbar item dropdown width to 'max-content' ([ecbf82e](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/ecbf82e961217869a2354e520cd7ccbfa8151c18))
|
||||
|
||||
## [2.12.9](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.8...decap-cms-widget-markdown@2.12.9) (2021-02-01)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **security-markdown-widget:** allow sanitization of preview content ([#4886](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/4886)) ([27aec85](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/27aec85550c0be52c55f7b33314ecd52727fdcb5))
|
||||
|
||||
## [2.12.8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.7...decap-cms-widget-markdown@2.12.8) (2020-11-30)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **deps:** update dependency is-hotkey to ^0.2.0 ([#4652](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/4652)) ([7828e15](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/7828e15453e55b5201f23b58817d73ecbd30a912))
|
||||
|
||||
## [2.12.7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.6...decap-cms-widget-markdown@2.12.7) (2020-10-20)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **locale:** remove hard coded strings ([#4432](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/4432)) ([a5750d7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/a5750d782e9b4f0060362459037086f4d2f18acf))
|
||||
|
||||
## [2.12.6](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.5...decap-cms-widget-markdown@2.12.6) (2020-09-20)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.12.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.4...decap-cms-widget-markdown@2.12.5) (2020-09-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **deps:** update dependency re-resizable to v6 ([#4308](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/4308)) ([de068cb](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/de068cba1d44ec76e47e28d724427a9f4a53e0fd))
|
||||
|
||||
## 2.12.4 (2020-09-08)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([828bb16](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/828bb16415b8c22a34caa19c50c38b24ffe9ceae))
|
||||
|
||||
## 2.12.3 (2020-08-20)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([8262487](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/82624879ccbcb16610090041db28f00714d924c8))
|
||||
|
||||
## 2.12.2 (2020-07-27)
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([118d50a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/118d50a7a70295f25073e564b5161aa2b9883056))
|
||||
|
||||
## [2.12.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.12.0...decap-cms-widget-markdown@2.12.1) (2020-07-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **prop-types:** check for react components via PropTypes.elementType ([#4025](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/4025)) ([d3831b1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/d3831b1ed44fcff51a63f6645a5aa68332467dab))
|
||||
|
||||
# [2.12.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.11.3...decap-cms-widget-markdown@2.12.0) (2020-06-18)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **deps:** update dependency react-monaco-editor to ^0.36.0 ([#3871](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3871)) ([dc429f8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/dc429f8ffa40bc6d5f024823a10ae99a49aebdb5))
|
||||
- **widget-markdown:** don't strip new lines from text nodes ([#3813](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3813)) ([7bc75d0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/7bc75d095bcdae0a85d95ed9d0c9188a89136805))
|
||||
- **widget-markdown:** headings dropdown not showing properly no firefox ([#3903](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3903)) ([2b01e00](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/2b01e009c69ecb932815eda69385703e5774d775))
|
||||
- update rehype-remark ([#3864](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3864)) ([53cba02](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/53cba022442ee2e996a8917fced57a311fe22da0))
|
||||
|
||||
### Features
|
||||
|
||||
- add widgets schema validation ([#3841](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3841)) ([2b46608](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/2b46608f86d22c8ad34f75e396be7c34462d9e99))
|
||||
|
||||
## [2.11.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.11.2...decap-cms-widget-markdown@2.11.3) (2020-05-19)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **deps:** update dependency rehype-stringify to v7 ([#3729](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3729)) ([a33aebb](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/a33aebbc58e345b3659a6fd93de9f9e755e57525))
|
||||
|
||||
## [2.11.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.11.1...decap-cms-widget-markdown@2.11.2) (2020-05-04)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- prevent escaping of footnotes and references ([#3646](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3646)) ([028ab53](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/028ab535df3e840bdf75c083ca7fbb275e0c61b3))
|
||||
|
||||
## [2.11.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.11.0...decap-cms-widget-markdown@2.11.1) (2020-04-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **markdown widget:** adds keyboard shortcuts ([#3005](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3005)) ([#3582](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3582)) ([99071c1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/99071c14e4a03d9897b21f1a43a5104510521dda))
|
||||
|
||||
# [2.11.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.10.2...decap-cms-widget-markdown@2.11.0) (2020-04-07)
|
||||
|
||||
### Features
|
||||
|
||||
- **yaml:** support comments ([#3529](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3529)) ([4afbbdd](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/4afbbdd8a99241d239f28c5be544bb0ca77e345b))
|
||||
|
||||
## [2.10.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.10.1...decap-cms-widget-markdown@2.10.2) (2020-03-30)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.10.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.10.0...decap-cms-widget-markdown@2.10.1) (2020-03-19)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.10.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.9.3...decap-cms-widget-markdown@2.10.0) (2020-03-12)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- ja locale labels ([#3367](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3367)) ([50837b0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/50837b0068ac8972ce16cbf5f238aa5a2c5bd6e9))
|
||||
|
||||
### Features
|
||||
|
||||
- Configure included editor components per field, add optional minimal height ([#3299](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3299)) ([b7b4bcb](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/b7b4bcb609fd90554c82bfd685f4af1b818083c1))
|
||||
|
||||
## [2.9.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.9.2...decap-cms-widget-markdown@2.9.3) (2020-02-19)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** don't add duplicate marks ([#3290](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3290)) ([2a0aef2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/2a0aef27d1c1c7eac146f890d896233262322c7f))
|
||||
|
||||
## [2.9.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.9.1...decap-cms-widget-markdown@2.9.2) (2020-02-17)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** allow shortcodes as list items ([#3278](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3278)) ([cdd3747](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/cdd3747850cca77f61b663cbfeda9765a72eb8d0))
|
||||
|
||||
## [2.9.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.9.0...decap-cms-widget-markdown@2.9.1) (2020-02-13)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- change getAsset to not return a promise ([#3232](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3232)) ([ab685e8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/ab685e85943d1ac48142f157683bc2126fd6af16))
|
||||
|
||||
# [2.9.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.4...decap-cms-widget-markdown@2.9.0) (2020-02-10)
|
||||
|
||||
### Features
|
||||
|
||||
- field based media/public folders ([#3208](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3208)) ([97bc0c8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/97bc0c8dc489e736f89d748ba832d78400fe4332))
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "chore(release): publish" ([a015d1d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/a015d1d92a4b1c0130c44fcef1c9ecdb157a0f07))
|
||||
|
||||
## [2.8.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.3...decap-cms-widget-markdown@2.8.4) (2020-02-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **locale:** remove hard coded strings ([#3193](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3193)) ([fc91bf8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/fc91bf8781e65ce1dc946363dbb10419a145c66b))
|
||||
|
||||
## [2.8.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.2...decap-cms-widget-markdown@2.8.3) (2020-02-01)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **editor:** merge adjacent text nodes with same marks ([#3173](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3173)) ([b4c5fc7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/b4c5fc77839a7459fd2733f105514a86c8c43c22))
|
||||
|
||||
## [2.8.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.1...decap-cms-widget-markdown@2.8.2) (2020-01-15)
|
||||
|
||||
### Reverts
|
||||
|
||||
- don't force multiline flag for editor component patterns ([#3089](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3089)) ([c4cbae7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/c4cbae77255d1f422fd62258a01007956d512392))
|
||||
|
||||
## [2.8.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.0...decap-cms-widget-markdown@2.8.1) (2020-01-14)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **core:** force multiline flag for editor component patterns ([#3082](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3082)) ([476f450](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/476f45096efa1723936a73f2e2e04d5c7ccd293f))
|
||||
- **widget-markdown:** allow multiline shortcodes ([#3066](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3066)) ([2929909](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/29299097cff0c280d2e97d37fe3b9888a3067554))
|
||||
- **widget-markdown:** ensure remarkToSlate result matches slate schema ([#3085](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3085)) ([fde0c5a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/fde0c5a9a776dc814bbe3a483aa286f46f45d98d))
|
||||
- **widget-markdown:** stop double pasting in raw editor ([#3083](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3083)) ([09564bf](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/09564bf8b64b2e431faf2421576b4010f05d516d))
|
||||
|
||||
# [2.8.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.8.0-beta.0...decap-cms-widget-markdown@2.8.0) (2020-01-07)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** cut/copy selection only in raw mode ([#3024](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/3024)) ([1b755b3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/1b755b3be8e383fc8878a1485bd0ded2fc04025c))
|
||||
- avoid nested select widget z-index conflicts ([#2990](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2990)) ([fe09720](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/fe097202f0220b2eab426848b928258524ba6e72))
|
||||
|
||||
# [2.8.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.7.0...decap-cms-widget-markdown@2.8.0-beta.0) (2019-12-18)
|
||||
|
||||
### Features
|
||||
|
||||
- bundle assets with content ([#2958](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2958)) ([2b41d8a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/2b41d8a838a9c8a6b21cde2ddd16b9288334e298))
|
||||
|
||||
# [2.7.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.7.0-beta.0...decap-cms-widget-markdown@2.7.0) (2019-12-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.7.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.6.1-beta.0...decap-cms-widget-markdown@2.7.0-beta.0) (2019-12-16)
|
||||
|
||||
### Features
|
||||
|
||||
- Code Widget + Markdown Widget Internal Overhaul ([#2828](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2828)) ([18c579d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/18c579d0e9f0ff71ed8c52f5c66f2309259af054))
|
||||
|
||||
## [2.6.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.6.0...decap-cms-widget-markdown@2.6.1-beta.0) (2019-12-02)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** fix carriage return issue ([#2899](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2899)) ([1ff9db0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/1ff9db0915e93dab3f1c96459abf929d40398f85))
|
||||
|
||||
# [2.6.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.5.2...decap-cms-widget-markdown@2.6.0) (2019-11-18)
|
||||
|
||||
### Features
|
||||
|
||||
- **widget-markdown:** add headings dropdown ([#2879](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2879)) ([78face3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/78face334f2dc7c99f5805551c052587e54d5753))
|
||||
|
||||
## [2.5.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.5.1...decap-cms-widget-markdown@2.5.2) (2019-11-18)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.5.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.5.0...decap-cms-widget-markdown@2.5.1) (2019-07-24)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.5.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.5.0-beta.1...decap-cms-widget-markdown@2.5.0) (2019-06-14)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.5.0-beta.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.5.0-beta.0...decap-cms-widget-markdown@2.5.0-beta.1) (2019-05-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **widget-markdown:** ensure correct value on list reorder ([#2298](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2298)) ([60caca0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/60caca0))
|
||||
|
||||
# [2.5.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.2...decap-cms-widget-markdown@2.5.0-beta.0) (2019-04-10)
|
||||
|
||||
### Features
|
||||
|
||||
- **editor-components:** match any characters with shortcodes ([#2268](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2268)) ([14b6292](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/14b6292))
|
||||
|
||||
## [2.4.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.2-beta.0...decap-cms-widget-markdown@2.4.2) (2019-04-10)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.4.2-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.1...decap-cms-widget-markdown@2.4.2-beta.0) (2019-04-05)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.4.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.1-beta.2...decap-cms-widget-markdown@2.4.1) (2019-03-29)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.4.1-beta.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.1-beta.1...decap-cms-widget-markdown@2.4.1-beta.2) (2019-03-28)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
## [2.4.1-beta.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.1-beta.0...decap-cms-widget-markdown@2.4.1-beta.1) (2019-03-26)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- export on decap-cms and maps on esm ([#2244](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2244)) ([6ffd13b](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/6ffd13b))
|
||||
|
||||
## [2.4.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.4.0...decap-cms-widget-markdown@2.4.1-beta.0) (2019-03-25)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- update peer dep versions ([#2234](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2234)) ([7987091](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/7987091))
|
||||
|
||||
# [2.4.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.3.0...decap-cms-widget-markdown@2.4.0) (2019-03-22)
|
||||
|
||||
### Features
|
||||
|
||||
- add ES module builds ([#2215](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2215)) ([d142b32](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/d142b32))
|
||||
|
||||
# [2.3.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.3.0-beta.0...decap-cms-widget-markdown@2.3.0) (2019-03-22)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
# [2.3.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.2.1-beta.0...decap-cms-widget-markdown@2.3.0-beta.0) (2019-03-21)
|
||||
|
||||
### Features
|
||||
|
||||
- provide usable UMD builds for all packages ([#2141](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2141)) ([82cc794](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/82cc794))
|
||||
|
||||
## [2.2.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.2.0...decap-cms-widget-markdown@2.2.1-beta.0) (2019-03-15)
|
||||
|
||||
### Features
|
||||
|
||||
- upgrade to Emotion 10 ([#2166](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2166)) ([ccef446](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/ccef446))
|
||||
|
||||
# [2.2.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.1.1...decap-cms-widget-markdown@2.2.0) (2019-03-08)
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** recover entry after unexpected quit ([#2129](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/2129)) ([686504a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/686504a))
|
||||
|
||||
## [2.1.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.1.0...decap-cms-widget-markdown@2.1.1) (2019-02-08)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **markdown-widget:** handle leading or trailing whitespace ([#1517](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1517)) ([ade03d0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/ade03d0))
|
||||
|
||||
# [2.1.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.10...decap-cms-widget-markdown@2.1.0) (2018-12-11)
|
||||
|
||||
### Features
|
||||
|
||||
- **editor-components:** support title in image component ([#1862](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1862)) ([cbb7762](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/cbb7762))
|
||||
|
||||
## [2.0.10](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.9...decap-cms-widget-markdown@2.0.10) (2018-11-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **decap-cms-widget-markdown:** add missing border radius on toolbar ([#1905](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1905)) ([3772171](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/3772171))
|
||||
|
||||
## [2.0.9](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.8...decap-cms-widget-markdown@2.0.9) (2018-11-12)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **editor-component-image:** fix null on empty markdown image alt ([#1778](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1778)) ([9b72419](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/9b72419))
|
||||
- **editor-components:** fix default value processing ([#1848](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1848)) ([a0cfa1a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/a0cfa1a))
|
||||
|
||||
<a name="2.0.8"></a>
|
||||
|
||||
## [2.0.8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.7...decap-cms-widget-markdown@2.0.8) (2018-09-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- add support for default field values in editor components ([#1616](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/issues/1616)) ([0d01809](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/commit/0d01809))
|
||||
|
||||
<a name="2.0.7"></a>
|
||||
|
||||
## [2.0.7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.6...decap-cms-widget-markdown@2.0.7) (2018-08-27)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
<a name="2.0.6"></a>
|
||||
|
||||
## [2.0.6](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.5...decap-cms-widget-markdown@2.0.6) (2018-08-24)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
<a name="2.0.5"></a>
|
||||
|
||||
## [2.0.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.4...decap-cms-widget-markdown@2.0.5) (2018-08-07)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
<a name="2.0.4"></a>
|
||||
|
||||
## [2.0.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.3...decap-cms-widget-markdown@2.0.4) (2018-08-01)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
<a name="2.0.3"></a>
|
||||
|
||||
## [2.0.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-markdown/compare/decap-cms-widget-markdown@2.0.2...decap-cms-widget-markdown@2.0.3) (2018-07-28)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
|
||||
<a name="2.0.2"></a>
|
||||
|
||||
## 2.0.2 (2018-07-27)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- bug fixes from linters ([#1524](https://github.com/decaporg/decap-cms/issues/1524)) ([6632e5d](https://github.com/decaporg/decap-cms/commit/6632e5d))
|
||||
|
||||
<a name="2.0.1"></a>
|
||||
|
||||
## 2.0.1 (2018-07-26)
|
||||
|
||||
<a name="2.0.0"></a>
|
||||
|
||||
# 2.0.0 (2018-07-26)
|
||||
|
||||
**Note:** Version bump only for package decap-cms-widget-markdown
|
||||
22
node_modules/decap-cms-widget-markdown/LICENSE
generated
vendored
Normal file
22
node_modules/decap-cms-widget-markdown/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2016 Netlify <decap@p-m.si>
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
node_modules/decap-cms-widget-markdown/README.md
generated
vendored
Normal file
9
node_modules/decap-cms-widget-markdown/README.md
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Docs coming soon!
|
||||
|
||||
Decap CMS was converted from a single npm package to a "monorepo" of over 20 packages.
|
||||
We haven't created a README for this package yet, but you can:
|
||||
|
||||
1. Check out the [main readme](https://github.com/decaporg/decap-cms/#readme) or the [documentation
|
||||
site](https://www.decapcms.org) for more info.
|
||||
2. Reach out to the [community chat](https://decapcms.org/chat/) if you need help.
|
||||
3. Help out and [write the readme yourself](https://github.com/decaporg/decap-cms/edit/main/packages/decap-cms-widget-markdown/README.md)!
|
||||
9
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js
generated
vendored
Normal file
9
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
48
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js.LICENSE.txt
generated
vendored
Normal file
48
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js.LICENSE.txt
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
object-assign
|
||||
(c) Sindre Sorhus
|
||||
@license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Determine if an object is a Buffer
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
||||
*
|
||||
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* repeat-string <https://github.com/jonschlinkert/repeat-string>
|
||||
*
|
||||
* Copyright (c) 2014-2015, Jon Schlinkert.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
|
||||
/*! @license DOMPurify 2.4.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.7/LICENSE */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom-server-legacy.browser.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom-server.browser.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
1
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js.map
generated
vendored
Normal file
1
node_modules/decap-cms-widget-markdown/dist/decap-cms-widget-markdown.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
105
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/RawEditor.js
generated
vendored
Normal file
105
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/RawEditor.js
generated
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _slate = require("slate");
|
||||
var _slateReact = require("slate-react");
|
||||
var _slateHistory = require("slate-history");
|
||||
var _styles = require("../styles");
|
||||
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
||||
var _defaultEmptyBlock = _interopRequireDefault(require("./plugins/blocks/defaultEmptyBlock"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
function rawEditorStyles({
|
||||
minimal
|
||||
}) {
|
||||
return `
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
overflow-x: auto;
|
||||
min-height: ${minimal ? 'auto' : _decapCmsUiDefault.lengths.richTextEditorMinHeight};
|
||||
font-family: ${_decapCmsUiDefault.fonts.mono};
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-top: 0;
|
||||
margin-top: -${_styles.editorStyleVars.stickyDistanceBottom};
|
||||
`;
|
||||
}
|
||||
const RawEditorContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "e12tj7710",
|
||||
label: "RawEditorContainer"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "bjn8wh",
|
||||
styles: "position:relative"
|
||||
} : {
|
||||
name: "bjn8wh",
|
||||
styles: "position:relative",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvUmF3RWRpdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCcUMiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL01hcmtkb3duQ29udHJvbC9SYXdFZGl0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGxlbmd0aHMsIGZvbnRzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgY3JlYXRlRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWRpdGFibGUsIFJlYWN0RWRpdG9yLCBTbGF0ZSwgd2l0aFJlYWN0IH0gZnJvbSAnc2xhdGUtcmVhY3QnO1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcblxuaW1wb3J0IHsgZWRpdG9yU3R5bGVWYXJzLCBFZGl0b3JDb250cm9sQmFyIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4vVG9vbGJhcic7XG5pbXBvcnQgZGVmYXVsdEVtcHR5QmxvY2sgZnJvbSAnLi9wbHVnaW5zL2Jsb2Nrcy9kZWZhdWx0RW1wdHlCbG9jayc7XG5cbmZ1bmN0aW9uIHJhd0VkaXRvclN0eWxlcyh7IG1pbmltYWwgfSkge1xuICByZXR1cm4gYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6ICR7bWluaW1hbCA/ICdhdXRvJyA6IGxlbmd0aHMucmljaFRleHRFZGl0b3JNaW5IZWlnaHR9O1xuICBmb250LWZhbWlseTogJHtmb250cy5tb25vfTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3A6IDA7XG4gIG1hcmdpbi10b3A6IC0ke2VkaXRvclN0eWxlVmFycy5zdGlja3lEaXN0YW5jZUJvdHRvbX07XG5gO1xufVxuXG5jb25zdCBSYXdFZGl0b3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuZnVuY3Rpb24gUmF3RWRpdG9yKHByb3BzKSB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBmaWVsZCwgaXNTaG93TW9kZVRvZ2dsZSwgdCwgb25DaGFuZ2UgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGVkaXRvciA9IHVzZU1lbW8oKCkgPT4gd2l0aFJlYWN0KHdpdGhIaXN0b3J5KGNyZWF0ZUVkaXRvcigpKSksIFtdKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKFxuICAgIHByb3BzLnZhbHVlXG4gICAgICA/IHByb3BzLnZhbHVlLnNwbGl0KCdcXG4nKS5tYXAobGluZSA9PiBkZWZhdWx0RW1wdHlCbG9jayhsaW5lKSlcbiAgICAgIDogW2RlZmF1bHRFbXB0eUJsb2NrKCldLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByb3BzLnBlbmRpbmdGb2N1cykge1xuICAgICAgUmVhY3RFZGl0b3IuZm9jdXMoZWRpdG9yKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBmdW5jdGlvbiBoYW5kbGVUb2dnbGVNb2RlKCkge1xuICAgIHByb3BzLm9uTW9kZSgncmljaF90ZXh0Jyk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UodmFsdWUpIHtcbiAgICBvbkNoYW5nZSh2YWx1ZS5tYXAobGluZSA9PiBsaW5lLmNoaWxkcmVuWzBdLnRleHQpLmpvaW4oJ1xcbicpKTtcbiAgICBzZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTbGF0ZSBlZGl0b3I9e2VkaXRvcn0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfT5cbiAgICAgIDxSYXdFZGl0b3JDb250YWluZXI+XG4gICAgICAgIDxFZGl0b3JDb250cm9sQmFyPlxuICAgICAgICAgIDxUb29sYmFyXG4gICAgICAgICAgICBvblRvZ2dsZU1vZGU9e2hhbmRsZVRvZ2dsZU1vZGV9XG4gICAgICAgICAgICBidXR0b25zPXtmaWVsZC5nZXQoJ2J1dHRvbnMnKX1cbiAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICByYXdNb2RlXG4gICAgICAgICAgICBpc1Nob3dNb2RlVG9nZ2xlPXtpc1Nob3dNb2RlVG9nZ2xlfVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0VkaXRvckNvbnRyb2xCYXI+XG4gICAgICAgIDxDbGFzc05hbWVzPlxuICAgICAgICAgIHsoeyBjc3MsIGN4IH0pID0+IChcbiAgICAgICAgICAgIDxFZGl0YWJsZVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBjc3NgXG4gICAgICAgICAgICAgICAgICAke3Jhd0VkaXRvclN0eWxlcyh7IG1pbmltYWw6IGZpZWxkLmdldCgnbWluaW1hbCcpIH0pfVxuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9DbGFzc05hbWVzPlxuICAgICAgPC9SYXdFZGl0b3JDb250YWluZXI+XG4gICAgPC9TbGF0ZT5cbiAgKTtcbn1cblxuUmF3RWRpdG9yLnByb3BUeXBlcyA9IHtcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uTW9kZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBmaWVsZDogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBpc1Nob3dNb2RlVG9nZ2xlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUmF3RWRpdG9yO1xuIl19 */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
function RawEditor(props) {
|
||||
const {
|
||||
className,
|
||||
field,
|
||||
isShowModeToggle,
|
||||
t,
|
||||
onChange
|
||||
} = props;
|
||||
const editor = (0, _react.useMemo)(() => (0, _slateReact.withReact)((0, _slateHistory.withHistory)((0, _slate.createEditor)())), []);
|
||||
const [value, setValue] = (0, _react.useState)(props.value ? props.value.split('\n').map(line => (0, _defaultEmptyBlock.default)(line)) : [(0, _defaultEmptyBlock.default)()]);
|
||||
(0, _react.useEffect)(() => {
|
||||
if (props.pendingFocus) {
|
||||
_slateReact.ReactEditor.focus(editor);
|
||||
}
|
||||
}, []);
|
||||
function handleToggleMode() {
|
||||
props.onMode('rich_text');
|
||||
}
|
||||
function handleChange(value) {
|
||||
onChange(value.map(line => line.children[0].text).join('\n'));
|
||||
setValue(value);
|
||||
}
|
||||
return (0, _react2.jsx)(_slateReact.Slate, {
|
||||
editor: editor,
|
||||
value: value,
|
||||
onChange: handleChange
|
||||
}, (0, _react2.jsx)(RawEditorContainer, null, (0, _react2.jsx)(_styles.EditorControlBar, null, (0, _react2.jsx)(_Toolbar.default, {
|
||||
onToggleMode: handleToggleMode,
|
||||
buttons: field.get('buttons'),
|
||||
disabled: true,
|
||||
rawMode: true,
|
||||
isShowModeToggle: isShowModeToggle,
|
||||
t: t
|
||||
})), (0, _react2.jsx)(_react2.ClassNames, null, ({
|
||||
css,
|
||||
cx
|
||||
}) => (0, _react2.jsx)(_slateReact.Editable, {
|
||||
className: cx(className, css`
|
||||
${rawEditorStyles({
|
||||
minimal: field.get('minimal')
|
||||
})}
|
||||
`),
|
||||
value: value,
|
||||
onChange: handleChange
|
||||
}))));
|
||||
}
|
||||
RawEditor.propTypes = {
|
||||
onChange: _propTypes.default.func.isRequired,
|
||||
onMode: _propTypes.default.func.isRequired,
|
||||
className: _propTypes.default.string.isRequired,
|
||||
value: _propTypes.default.string,
|
||||
field: _reactImmutableProptypes.default.map.isRequired,
|
||||
isShowModeToggle: _propTypes.default.bool.isRequired,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = RawEditor;
|
||||
216
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/Toolbar.js
generated
vendored
Normal file
216
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/Toolbar.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
42
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/ToolbarButton.js
generated
vendored
Normal file
42
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/ToolbarButton.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const StyledToolbarButton = /*#__PURE__*/(0, _base.default)("button", {
|
||||
target: "e1ps9s9m0",
|
||||
label: "StyledToolbarButton"
|
||||
})(_decapCmsUiDefault.buttons.button, ";display:inline-block;padding:6px;border:none;background-color:transparent;font-size:16px;color:", props => props.isActive ? '#1e2532' : 'inherit', ";cursor:pointer;&:disabled{cursor:auto;opacity:0.5;}", _decapCmsUiDefault.Icon, "{display:block;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvVG9vbGJhckJ1dHRvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLeUMiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL01hcmtkb3duQ29udHJvbC9Ub29sYmFyQnV0dG9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBJY29uLCBidXR0b25zIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5jb25zdCBTdHlsZWRUb29sYmFyQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy5pc0FjdGl2ZSA/ICcjMWUyNTMyJyA6ICdpbmhlcml0Jyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICR7SWNvbn0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5gO1xuXG5mdW5jdGlvbiBUb29sYmFyQnV0dG9uKHsgdHlwZSwgbGFiZWwsIGljb24sIG9uQ2xpY2ssIGlzQWN0aXZlLCBkaXNhYmxlZCB9KSB7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2xiYXJCdXR0b25cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIG9uQ2xpY2s9e2UgPT4gb25DbGljayAmJiBvbkNsaWNrKGUsIHR5cGUpfVxuICAgICAgdGl0bGU9e2xhYmVsfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgID5cbiAgICAgIHtpY29uID8gPEljb24gdHlwZT17aWNvbn0gLz4gOiBsYWJlbH1cbiAgICA8L1N0eWxlZFRvb2xiYXJCdXR0b24+XG4gICk7XG59XG5cblRvb2xiYXJCdXR0b24ucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpY29uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgaXNBY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUb29sYmFyQnV0dG9uO1xuIl19 */"));
|
||||
function ToolbarButton({
|
||||
type,
|
||||
label,
|
||||
icon,
|
||||
onClick,
|
||||
isActive,
|
||||
disabled
|
||||
}) {
|
||||
return (0, _react2.jsx)(StyledToolbarButton, {
|
||||
isActive: isActive,
|
||||
onClick: e => onClick && onClick(e, type),
|
||||
title: label,
|
||||
disabled: disabled
|
||||
}, icon ? (0, _react2.jsx)(_decapCmsUiDefault.Icon, {
|
||||
type: icon
|
||||
}) : label);
|
||||
}
|
||||
ToolbarButton.propTypes = {
|
||||
type: _propTypes.default.string,
|
||||
label: _propTypes.default.string.isRequired,
|
||||
icon: _propTypes.default.string,
|
||||
onClick: _propTypes.default.func,
|
||||
isActive: _propTypes.default.bool,
|
||||
disabled: _propTypes.default.bool
|
||||
};
|
||||
var _default = exports.default = ToolbarButton;
|
||||
267
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/VisualEditor.js
generated
vendored
Normal file
267
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/VisualEditor.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
77
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/components/Shortcode.js
generated
vendored
Normal file
77
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/components/Shortcode.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _immutable = require("immutable");
|
||||
var _slateReact = require("slate-react");
|
||||
var _slate = require("slate");
|
||||
var _index = require("../index");
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /* eslint-disable react/prop-types */
|
||||
var _ref = process.env.NODE_ENV === "production" ? {
|
||||
name: "1xfnuhy-Shortcode",
|
||||
styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;"
|
||||
} : {
|
||||
name: "1xfnuhy-Shortcode",
|
||||
styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9TaG9ydGNvZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvTWFya2Rvd25Db250cm9sL2NvbXBvbmVudHMvU2hvcnRjb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCB7IG9taXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IsIHVzZVNsYXRlIH0gZnJvbSAnc2xhdGUtcmVhY3QnO1xuaW1wb3J0IHsgUmFuZ2UsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5cbmltcG9ydCB7IGdldEVkaXRvckNvbnRyb2wsIGdldEVkaXRvckNvbXBvbmVudHMgfSBmcm9tICcuLi9pbmRleCc7XG5cbmZ1bmN0aW9uIFNob3J0Y29kZShwcm9wcykge1xuICBjb25zdCBlZGl0b3IgPSB1c2VTbGF0ZSgpO1xuICBjb25zdCB7IGVsZW1lbnQsIGRhdGFLZXkgPSAnc2hvcnRjb2RlRGF0YScsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgY29uc3QgRWRpdG9yQ29udHJvbCA9IGdldEVkaXRvckNvbnRyb2woKTtcbiAgY29uc3QgcGx1Z2luID0gZ2V0RWRpdG9yQ29tcG9uZW50cygpLmdldChlbGVtZW50LmRhdGEuc2hvcnRjb2RlKTtcbiAgY29uc3QgZmllbGRLZXlzID0gWydpZCcsICdmcm9tQmxvY2snLCAndG9CbG9jaycsICd0b1ByZXZpZXcnLCAncGF0dGVybicsICdpY29uJ107XG5cbiAgY29uc3QgZmllbGQgPSBmcm9tSlMob21pdChwbHVnaW4sIGZpZWxkS2V5cykpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGZyb21KUyhlbGVtZW50LmRhdGFbZGF0YUtleV0pKTtcblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZmllbGROYW1lLCB2YWx1ZSwgbWV0YWRhdGEpIHtcbiAgICBjb25zdCBwYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICAuLi5lbGVtZW50LmRhdGEsXG4gICAgICAgIFtkYXRhS2V5XTogdmFsdWUudG9KUygpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgbmV3UHJvcGVydGllcywge1xuICAgICAgYXQ6IHBhdGgsXG4gICAgfSk7XG4gICAgc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBwYXRoKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBSZWFjdEVkaXRvci5maW5kUGF0aChlZGl0b3IsIGVsZW1lbnQpO1xuICBjb25zdCBpc1NlbGVjdGVkID1cbiAgICBlZGl0b3Iuc2VsZWN0aW9uICYmXG4gICAgcGF0aCAmJlxuICAgIFJhbmdlLmlzUmFuZ2UoZWRpdG9yLnNlbGVjdGlvbikgJiZcbiAgICBSYW5nZS5pbmNsdWRlcyhlZGl0b3Iuc2VsZWN0aW9uLCBwYXRoKTtcblxuICByZXR1cm4gKFxuICAgICFmaWVsZC5pc0VtcHR5KCkgJiYgKFxuICAgICAgPGRpdiBvbkNsaWNrPXtoYW5kbGVGb2N1c30gb25Gb2N1cz17aGFuZGxlRm9jdXN9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgYH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgaXNFZGl0b3JDb21wb25lbnQ9e3RydWV9XG4gICAgICAgICAgb25WYWxpZGF0ZU9iamVjdD17KCkgPT4ge319XG4gICAgICAgICAgaXNOZXdFZGl0b3JDb21wb25lbnQ9e2VsZW1lbnQuZGF0YS5zaG9ydGNvZGVOZXd9XG4gICAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgLz5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaG9ydGNvZGU7XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
};
|
||||
function Shortcode(props) {
|
||||
const editor = (0, _slateReact.useSlate)();
|
||||
const {
|
||||
element,
|
||||
dataKey = 'shortcodeData',
|
||||
children
|
||||
} = props;
|
||||
const EditorControl = (0, _index.getEditorControl)();
|
||||
const plugin = (0, _index.getEditorComponents)().get(element.data.shortcode);
|
||||
const fieldKeys = ['id', 'fromBlock', 'toBlock', 'toPreview', 'pattern', 'icon'];
|
||||
const field = (0, _immutable.fromJS)((0, _omit2.default)(plugin, fieldKeys));
|
||||
const [value, setValue] = (0, _react.useState)((0, _immutable.fromJS)(element.data[dataKey]));
|
||||
function handleChange(fieldName, value, metadata) {
|
||||
const path = _slateReact.ReactEditor.findPath(editor, element);
|
||||
const newProperties = {
|
||||
data: _objectSpread(_objectSpread({}, element.data), {}, {
|
||||
[dataKey]: value.toJS(),
|
||||
metadata
|
||||
})
|
||||
};
|
||||
_slate.Transforms.setNodes(editor, newProperties, {
|
||||
at: path
|
||||
});
|
||||
setValue(value);
|
||||
}
|
||||
function handleFocus() {
|
||||
const path = _slateReact.ReactEditor.findPath(editor, element);
|
||||
_slate.Transforms.select(editor, path);
|
||||
}
|
||||
const path = _slateReact.ReactEditor.findPath(editor, element);
|
||||
const isSelected = editor.selection && path && _slate.Range.isRange(editor.selection) && _slate.Range.includes(editor.selection, path);
|
||||
return !field.isEmpty() && (0, _react2.jsx)("div", {
|
||||
onClick: handleFocus,
|
||||
onFocus: handleFocus
|
||||
}, (0, _react2.jsx)(EditorControl, {
|
||||
css: _ref,
|
||||
value: value,
|
||||
field: field,
|
||||
onChange: handleChange,
|
||||
isEditorComponent: true,
|
||||
onValidateObject: () => {},
|
||||
isNewEditorComponent: element.data.shortcodeNew,
|
||||
isSelected: isSelected
|
||||
}), children);
|
||||
}
|
||||
var _default = exports.default = Shortcode;
|
||||
54
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/components/VoidBlock.js
generated
vendored
Normal file
54
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/components/VoidBlock.js
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _slateReact = require("slate-react");
|
||||
var _slate = require("slate");
|
||||
var _defaultEmptyBlock = _interopRequireDefault(require("../plugins/blocks/defaultEmptyBlock"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable react/prop-types */
|
||||
function InsertionPoint(props) {
|
||||
return (0, _react2.jsx)("div", _extends({
|
||||
css: /*#__PURE__*/(0, _react2.css)("height:32px;cursor:text;position:relative;z-index:", _decapCmsUiDefault.zIndex.zIndex1, ";margin-top:-16px;;label:InsertionPoint;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9Wb2lkQmxvY2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWWMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL01hcmtkb3duQ29udHJvbC9jb21wb25lbnRzL1ZvaWRCbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3Byb3AtdHlwZXMgKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB6SW5kZXggfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5pbXBvcnQgeyBSZWFjdEVkaXRvciwgdXNlU2xhdGUgfSBmcm9tICdzbGF0ZS1yZWFjdCc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuXG5pbXBvcnQgZGVmYXVsdEVtcHR5QmxvY2sgZnJvbSAnLi4vcGx1Z2lucy9ibG9ja3MvZGVmYXVsdEVtcHR5QmxvY2snO1xuXG5mdW5jdGlvbiBJbnNlcnRpb25Qb2ludChwcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgxfTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFZvaWRCbG9jayh7IGF0dHJpYnV0ZXMsIGNoaWxkcmVuLCBlbGVtZW50IH0pIHtcbiAgY29uc3QgZWRpdG9yID0gdXNlU2xhdGUoKTtcbiAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG5cbiAgZnVuY3Rpb24gaW5zZXJ0QXRQYXRoKGF0KSB7XG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGRlZmF1bHRFbXB0eUJsb2NrKCksIHsgc2VsZWN0OiB0cnVlLCBhdCB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVJbnNlcnRCZWZvcmUoKSB7XG4gICAgaW5zZXJ0QXRQYXRoKHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlSW5zZXJ0QWZ0ZXIoKSB7XG4gICAgaW5zZXJ0QXRQYXRoKFsuLi5wYXRoLnNsaWNlKDAsIC0xKSwgcGF0aFtwYXRoLmxlbmd0aCAtIDFdICsgMV0pO1xuICB9XG5cbiAgY29uc3QgaW5zZXJ0QmVmb3JlID0gcGF0aFswXSA9PT0gMDtcbiAgY29uc3QgbmV4dEVsZW1lbnQgPSBlZGl0b3IuY2hpbGRyZW5bcGF0aFswXSArIDFdO1xuICBjb25zdCBpbnNlcnRBZnRlciA9IHBhdGhbMF0gPT09IGVkaXRvci5jaGlsZHJlbi5sZW5ndGggLSAxIHx8IGVkaXRvci5pc1ZvaWQobmV4dEVsZW1lbnQpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiB7Li4uYXR0cmlidXRlc30gb25DbGljaz17aGFuZGxlQ2xpY2t9IGNvbnRlbnRFZGl0YWJsZT17ZmFsc2V9PlxuICAgICAge2luc2VydEJlZm9yZSAmJiA8SW5zZXJ0aW9uUG9pbnQgb25DbGljaz17aGFuZGxlSW5zZXJ0QmVmb3JlfSAvPn1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtpbnNlcnRBZnRlciAmJiA8SW5zZXJ0aW9uUG9pbnQgb25DbGljaz17aGFuZGxlSW5zZXJ0QWZ0ZXJ9IC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBWb2lkQmxvY2s7XG4iXX0= */"))
|
||||
}, props));
|
||||
}
|
||||
function VoidBlock({
|
||||
attributes,
|
||||
children,
|
||||
element
|
||||
}) {
|
||||
const editor = (0, _slateReact.useSlate)();
|
||||
const path = _slateReact.ReactEditor.findPath(editor, element);
|
||||
function insertAtPath(at) {
|
||||
_slate.Transforms.insertNodes(editor, (0, _defaultEmptyBlock.default)(), {
|
||||
select: true,
|
||||
at
|
||||
});
|
||||
}
|
||||
function handleClick(event) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
function handleInsertBefore() {
|
||||
insertAtPath(path);
|
||||
}
|
||||
function handleInsertAfter() {
|
||||
insertAtPath([...path.slice(0, -1), path[path.length - 1] + 1]);
|
||||
}
|
||||
const insertBefore = path[0] === 0;
|
||||
const nextElement = editor.children[path[0] + 1];
|
||||
const insertAfter = path[0] === editor.children.length - 1 || editor.isVoid(nextElement);
|
||||
return (0, _react2.jsx)("div", _extends({}, attributes, {
|
||||
onClick: handleClick,
|
||||
contentEditable: false
|
||||
}), insertBefore && (0, _react2.jsx)(InsertionPoint, {
|
||||
onClick: handleInsertBefore
|
||||
}), children, insertAfter && (0, _react2.jsx)(InsertionPoint, {
|
||||
onClick: handleInsertAfter
|
||||
}));
|
||||
}
|
||||
var _default = exports.default = VoidBlock;
|
||||
129
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/index.js
generated
vendored
Normal file
129
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/index.js
generated
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.getEditorComponents = getEditorComponents;
|
||||
exports.getEditorControl = getEditorControl;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _immutable = require("immutable");
|
||||
var _RawEditor = _interopRequireDefault(require("./RawEditor"));
|
||||
var _VisualEditor = _interopRequireDefault(require("./VisualEditor"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const MODE_STORAGE_KEY = 'cms.md-mode';
|
||||
|
||||
// TODO: passing the editorControl and components like this is horrible, should
|
||||
// be handled through Redux and a separate registry store for instances
|
||||
let editorControl;
|
||||
// eslint-disable-next-line func-style
|
||||
let _getEditorComponents = () => (0, _immutable.Map)();
|
||||
function getEditorControl() {
|
||||
return editorControl;
|
||||
}
|
||||
function getEditorComponents() {
|
||||
return _getEditorComponents();
|
||||
}
|
||||
class MarkdownControl extends _react.default.Component {
|
||||
constructor(props) {
|
||||
var _localStorage$getItem;
|
||||
super(props);
|
||||
_defineProperty(this, "handleMode", mode => {
|
||||
this.setState({
|
||||
mode,
|
||||
pendingFocus: true
|
||||
});
|
||||
localStorage.setItem(MODE_STORAGE_KEY, mode);
|
||||
});
|
||||
_defineProperty(this, "processRef", ref => this.ref = ref);
|
||||
_defineProperty(this, "setFocusReceived", () => {
|
||||
this.setState({
|
||||
pendingFocus: false
|
||||
});
|
||||
});
|
||||
_defineProperty(this, "getAllowedModes", () => this.props.field.get('modes', (0, _immutable.List)(['rich_text', 'raw'])).toArray());
|
||||
editorControl = props.editorControl;
|
||||
const preferredMode = (_localStorage$getItem = localStorage.getItem(MODE_STORAGE_KEY)) !== null && _localStorage$getItem !== void 0 ? _localStorage$getItem : 'rich_text';
|
||||
_getEditorComponents = props.getEditorComponents;
|
||||
this.state = {
|
||||
mode: this.getAllowedModes().indexOf(preferredMode) !== -1 ? preferredMode : this.getAllowedModes()[0],
|
||||
pendingFocus: false
|
||||
};
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
onChange,
|
||||
onAddAsset,
|
||||
getAsset,
|
||||
value,
|
||||
classNameWrapper,
|
||||
field,
|
||||
getEditorComponents,
|
||||
getRemarkPlugins,
|
||||
resolveWidget,
|
||||
t,
|
||||
isDisabled
|
||||
} = this.props;
|
||||
const {
|
||||
mode,
|
||||
pendingFocus
|
||||
} = this.state;
|
||||
const isShowModeToggle = this.getAllowedModes().length > 1;
|
||||
const visualEditor = (0, _react2.jsx)("div", {
|
||||
className: "cms-editor-visual",
|
||||
ref: this.processRef
|
||||
}, (0, _react2.jsx)(_VisualEditor.default, {
|
||||
onChange: onChange,
|
||||
onAddAsset: onAddAsset,
|
||||
isShowModeToggle: isShowModeToggle,
|
||||
onMode: this.handleMode,
|
||||
getAsset: getAsset,
|
||||
className: classNameWrapper,
|
||||
value: value,
|
||||
field: field,
|
||||
getEditorComponents: getEditorComponents,
|
||||
getRemarkPlugins: getRemarkPlugins,
|
||||
resolveWidget: resolveWidget,
|
||||
pendingFocus: pendingFocus && this.setFocusReceived,
|
||||
t: t,
|
||||
isDisabled: isDisabled
|
||||
}));
|
||||
const rawEditor = (0, _react2.jsx)("div", {
|
||||
className: "cms-editor-raw",
|
||||
ref: this.processRef
|
||||
}, (0, _react2.jsx)(_RawEditor.default, {
|
||||
onChange: onChange,
|
||||
onAddAsset: onAddAsset,
|
||||
isShowModeToggle: isShowModeToggle,
|
||||
onMode: this.handleMode,
|
||||
getAsset: getAsset,
|
||||
className: classNameWrapper,
|
||||
value: value,
|
||||
field: field,
|
||||
pendingFocus: pendingFocus && this.setFocusReceived,
|
||||
t: t
|
||||
}));
|
||||
return mode === 'rich_text' ? visualEditor : rawEditor;
|
||||
}
|
||||
}
|
||||
exports.default = MarkdownControl;
|
||||
_defineProperty(MarkdownControl, "propTypes", {
|
||||
onChange: _propTypes.default.func.isRequired,
|
||||
onAddAsset: _propTypes.default.func.isRequired,
|
||||
getAsset: _propTypes.default.func.isRequired,
|
||||
classNameWrapper: _propTypes.default.string.isRequired,
|
||||
editorControl: _propTypes.default.elementType.isRequired,
|
||||
value: _propTypes.default.string,
|
||||
field: _reactImmutableProptypes.default.map.isRequired,
|
||||
getEditorComponents: _propTypes.default.func,
|
||||
t: _propTypes.default.func.isRequired
|
||||
});
|
||||
_defineProperty(MarkdownControl, "defaultProps", {
|
||||
value: ''
|
||||
});
|
||||
33
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js
generated
vendored
Normal file
33
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/BreakToDefaultBlock.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function BreakToDefaultBlock({
|
||||
defaultType
|
||||
}) {
|
||||
return {
|
||||
onKeyDown(event, editor, next) {
|
||||
const {
|
||||
selection,
|
||||
startBlock
|
||||
} = editor.value;
|
||||
const isEnter = (0, _isHotkey.default)('enter', event);
|
||||
if (!isEnter) {
|
||||
return next();
|
||||
}
|
||||
if (selection.isExpanded) {
|
||||
editor.delete();
|
||||
return next();
|
||||
}
|
||||
if (selection.start.isAtEndOfNode(startBlock) && startBlock.type !== defaultType) {
|
||||
return editor.insertBlock(defaultType);
|
||||
}
|
||||
return next();
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = BreakToDefaultBlock;
|
||||
35
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/CloseBlock.js
generated
vendored
Normal file
35
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/CloseBlock.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function CloseBlock({
|
||||
defaultType
|
||||
}) {
|
||||
return {
|
||||
onKeyDown(event, editor, next) {
|
||||
const {
|
||||
selection,
|
||||
startBlock
|
||||
} = editor.value;
|
||||
const isBackspace = (0, _isHotkey.default)('backspace', event);
|
||||
if (!isBackspace) {
|
||||
return next();
|
||||
}
|
||||
if (selection.isExpanded) {
|
||||
return editor.delete();
|
||||
}
|
||||
if (!selection.start.isAtStartOfNode(startBlock) || startBlock.text.length > 0) {
|
||||
return next();
|
||||
}
|
||||
if (startBlock.type !== defaultType) {
|
||||
editor.setBlocks(defaultType);
|
||||
}
|
||||
return next();
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = CloseBlock;
|
||||
187
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js
generated
vendored
Normal file
187
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/CommandsAndQueries.js
generated
vendored
Normal file
@@ -0,0 +1,187 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _castArray2 = _interopRequireDefault(require("lodash/castArray"));
|
||||
var _tail2 = _interopRequireDefault(require("lodash/tail"));
|
||||
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function CommandsAndQueries({
|
||||
defaultType
|
||||
}) {
|
||||
return {
|
||||
queries: {
|
||||
atStartOf(editor, node) {
|
||||
const {
|
||||
selection
|
||||
} = editor.value;
|
||||
return selection.isCollapsed && selection.start.isAtStartOfNode(node);
|
||||
},
|
||||
getAncestor(editor, firstKey, lastKey) {
|
||||
if (firstKey === lastKey) {
|
||||
return editor.value.document.getParent(firstKey);
|
||||
}
|
||||
return editor.value.document.getCommonAncestor(firstKey, lastKey);
|
||||
},
|
||||
getOffset(editor, node) {
|
||||
const parent = editor.value.document.getParent(node.key);
|
||||
return parent.nodes.indexOf(node);
|
||||
},
|
||||
getSelectedChildren(editor, node) {
|
||||
return node.nodes.filter(child => editor.isSelected(child));
|
||||
},
|
||||
getCommonAncestor(editor) {
|
||||
const {
|
||||
startBlock,
|
||||
endBlock,
|
||||
document: doc
|
||||
} = editor.value;
|
||||
return doc.getCommonAncestor(startBlock.key, endBlock.key);
|
||||
},
|
||||
getClosestType(editor, node, type) {
|
||||
const types = (0, _castArray2.default)(type);
|
||||
return editor.value.document.getClosest(node.key, n => types.includes(n.type));
|
||||
},
|
||||
getBlockContainer(editor, node) {
|
||||
const targetTypes = ['bulleted-list', 'numbered-list', 'list-item', 'quote', 'table-cell'];
|
||||
const {
|
||||
startBlock,
|
||||
selection
|
||||
} = editor.value;
|
||||
const target = node ? editor.value.document.getParent(node.key) : selection.isCollapsed && startBlock || editor.getCommonAncestor();
|
||||
if (!target) {
|
||||
return editor.value.document;
|
||||
}
|
||||
if (targetTypes.includes(target.type)) {
|
||||
return target;
|
||||
}
|
||||
return editor.getBlockContainer(target);
|
||||
},
|
||||
isSelected(editor, nodes) {
|
||||
return (0, _castArray2.default)(nodes).every(node => {
|
||||
return editor.value.document.isInRange(node.key, editor.value.selection);
|
||||
});
|
||||
},
|
||||
isFirstChild(editor, node) {
|
||||
return editor.value.document.getParent(node.key).nodes.first().key === node.key;
|
||||
},
|
||||
areSiblings(editor, nodes) {
|
||||
if (!(0, _isArray2.default)(nodes) || nodes.length < 2) {
|
||||
return true;
|
||||
}
|
||||
const parent = editor.value.document.getParent(nodes[0].key);
|
||||
return (0, _tail2.default)(nodes).every(node => {
|
||||
return editor.value.document.getParent(node.key).key === parent.key;
|
||||
});
|
||||
},
|
||||
everyBlock(editor, type) {
|
||||
return editor.value.blocks.every(block => block.type === type);
|
||||
},
|
||||
hasMark(editor, type) {
|
||||
return editor.value.activeMarks.some(mark => mark.type === type);
|
||||
},
|
||||
hasBlock(editor, type) {
|
||||
return editor.value.blocks.some(node => node.type === type);
|
||||
},
|
||||
hasInline(editor, type) {
|
||||
return editor.value.inlines.some(node => node.type === type);
|
||||
},
|
||||
hasQuote(editor, quoteLabel) {
|
||||
const {
|
||||
value
|
||||
} = editor;
|
||||
const {
|
||||
document,
|
||||
blocks
|
||||
} = value;
|
||||
return blocks.some(node => {
|
||||
const {
|
||||
key: descendantNodeKey
|
||||
} = node;
|
||||
/* When focusing a quote block, the actual block that gets the focus is the paragraph block whose parent is a `quote` block.
|
||||
Hence, we need to get its parent and check if its type is `quote`. This parent will always be defined because every block in the editor
|
||||
has a Document object as parent by default.
|
||||
*/
|
||||
const parent = document.getParent(descendantNodeKey);
|
||||
return parent.type === quoteLabel;
|
||||
});
|
||||
},
|
||||
hasListItems(editor, listType) {
|
||||
const {
|
||||
value
|
||||
} = editor;
|
||||
const {
|
||||
document,
|
||||
blocks
|
||||
} = value;
|
||||
return blocks.some(node => {
|
||||
const {
|
||||
key: lowestNodeKey
|
||||
} = node;
|
||||
/* A list block has the following structure:
|
||||
<ol>
|
||||
<li>
|
||||
<p>Coffee</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Tea</p>
|
||||
</li>
|
||||
</ol>
|
||||
*/
|
||||
const parent = document.getParent(lowestNodeKey);
|
||||
const grandparent = document.getParent(parent.key);
|
||||
return parent.type === 'list-item' && (grandparent === null || grandparent === void 0 ? void 0 : grandparent.type) === listType;
|
||||
});
|
||||
}
|
||||
},
|
||||
commands: {
|
||||
toggleBlock(editor, type) {
|
||||
switch (type) {
|
||||
case 'heading-one':
|
||||
case 'heading-two':
|
||||
case 'heading-three':
|
||||
case 'heading-four':
|
||||
case 'heading-five':
|
||||
case 'heading-six':
|
||||
return editor.setBlocks(editor.everyBlock(type) ? defaultType : type);
|
||||
case 'quote':
|
||||
return editor.toggleQuoteBlock();
|
||||
case 'numbered-list':
|
||||
case 'bulleted-list':
|
||||
{
|
||||
return editor.toggleList(type);
|
||||
}
|
||||
}
|
||||
},
|
||||
unwrapBlockChildren(editor, block) {
|
||||
if (!block || block.object !== 'block') {
|
||||
throw Error(`Expected block but received ${block}.`);
|
||||
}
|
||||
const index = editor.value.document.getPath(block.key).last();
|
||||
const parent = editor.value.document.getParent(block.key);
|
||||
editor.withoutNormalizing(() => {
|
||||
block.nodes.forEach((node, idx) => {
|
||||
editor.moveNodeByKey(node.key, parent.key, index + idx);
|
||||
});
|
||||
editor.removeNodeByKey(block.key);
|
||||
});
|
||||
},
|
||||
unwrapNodeToDepth(editor, node, depth) {
|
||||
let currentDepth = 0;
|
||||
editor.withoutNormalizing(() => {
|
||||
while (currentDepth < depth) {
|
||||
editor.unwrapNodeByKey(node.key);
|
||||
currentDepth += 1;
|
||||
}
|
||||
});
|
||||
},
|
||||
unwrapNodeFromAncestor(editor, node, ancestor) {
|
||||
const depth = ancestor.getDepth(node.key);
|
||||
editor.unwrapNodeToDepth(node, depth);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = CommandsAndQueries;
|
||||
48
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/ForceInsert.js
generated
vendored
Normal file
48
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/ForceInsert.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
function ForceInsert({
|
||||
defaultType
|
||||
}) {
|
||||
return {
|
||||
queries: {
|
||||
canInsertBeforeNode(editor, node) {
|
||||
if (!editor.isVoid(node)) {
|
||||
return true;
|
||||
}
|
||||
return !!editor.value.document.getPreviousSibling(node.key);
|
||||
},
|
||||
canInsertAfterNode(editor, node) {
|
||||
if (!editor.isVoid(node)) {
|
||||
return true;
|
||||
}
|
||||
const nextSibling = editor.value.document.getNextSibling(node.key);
|
||||
return nextSibling && !editor.isVoid(nextSibling);
|
||||
}
|
||||
},
|
||||
commands: {
|
||||
forceInsertBeforeNode(editor, node) {
|
||||
const block = {
|
||||
type: defaultType,
|
||||
object: 'block'
|
||||
};
|
||||
const parent = editor.value.document.getParent(node.key);
|
||||
return editor.insertNodeByKey(parent.key, 0, block).moveToStartOfNode(parent).focus();
|
||||
},
|
||||
forceInsertAfterNode(editor, node) {
|
||||
return editor.moveToEndOfNode(node).insertBlock(defaultType).focus();
|
||||
},
|
||||
moveToEndOfDocument(editor) {
|
||||
const lastBlock = editor.value.document.nodes.last();
|
||||
if (editor.isVoid(lastBlock)) {
|
||||
editor.insertBlock(defaultType);
|
||||
}
|
||||
return editor.moveToEndOfNode(lastBlock).focus();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = ForceInsert;
|
||||
33
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/Hotkey.js
generated
vendored
Normal file
33
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/Hotkey.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.HOT_KEY_MAP = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const HOT_KEY_MAP = exports.HOT_KEY_MAP = {
|
||||
bold: 'mod+b',
|
||||
code: 'mod+shift+c',
|
||||
italic: 'mod+i',
|
||||
strikethrough: 'mod+shift+s',
|
||||
'heading-one': 'mod+1',
|
||||
'heading-two': 'mod+2',
|
||||
'heading-three': 'mod+3',
|
||||
'heading-four': 'mod+4',
|
||||
'heading-five': 'mod+5',
|
||||
'heading-six': 'mod+6',
|
||||
link: 'mod+k'
|
||||
};
|
||||
function Hotkey(key, fn) {
|
||||
return {
|
||||
onKeyDown(event, editor, next) {
|
||||
if (!(0, _isHotkey.default)(key, event)) {
|
||||
return next();
|
||||
}
|
||||
event.preventDefault();
|
||||
editor.command(fn);
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = Hotkey;
|
||||
20
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/LineBreak.js
generated
vendored
Normal file
20
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/LineBreak.js
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function LineBreak() {
|
||||
return {
|
||||
onKeyDown(event, editor, next) {
|
||||
const isShiftEnter = (0, _isHotkey.default)('shift+enter', event);
|
||||
if (!isShiftEnter) {
|
||||
return next();
|
||||
}
|
||||
return editor.insertInline('break').insertText('').moveToStartOfNextText();
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = LineBreak;
|
||||
55
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/Link.js
generated
vendored
Normal file
55
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/Link.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
function Link({
|
||||
type
|
||||
}) {
|
||||
return {
|
||||
commands: {
|
||||
toggleLink(editor, getUrl) {
|
||||
const selection = editor.value.selection;
|
||||
const isCollapsed = selection && selection.isCollapsed;
|
||||
if (editor.hasInline(type)) {
|
||||
const inlines = editor.value.inlines.toJSON();
|
||||
const link = inlines.find(item => item.type === type);
|
||||
const url = getUrl(link.data.url);
|
||||
if (url) {
|
||||
// replace the old link
|
||||
return editor.setInlines({
|
||||
data: {
|
||||
url
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// remove url if it was removed by the user
|
||||
return editor.unwrapInline(type);
|
||||
}
|
||||
} else {
|
||||
const url = getUrl();
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
return isCollapsed ? editor.insertInline({
|
||||
type,
|
||||
data: {
|
||||
url
|
||||
},
|
||||
nodes: [{
|
||||
object: 'text',
|
||||
text: url
|
||||
}]
|
||||
}) : editor.wrapInline({
|
||||
type,
|
||||
data: {
|
||||
url
|
||||
}
|
||||
}).moveToEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
var _default = exports.default = Link;
|
||||
15
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js
generated
vendored
Normal file
15
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/defaultEmptyBlock.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
function defaultEmptyBlock(text = '') {
|
||||
return {
|
||||
type: 'paragraph',
|
||||
children: [{
|
||||
text
|
||||
}]
|
||||
};
|
||||
}
|
||||
var _default = exports.default = defaultEmptyBlock;
|
||||
56
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js
generated
vendored
Normal file
56
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDown.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
var _slate = require("slate");
|
||||
var _keyDownEnter = _interopRequireDefault(require("./keyDownEnter"));
|
||||
var _keyDownBackspace = _interopRequireDefault(require("./keyDownBackspace"));
|
||||
var _isCursorInNonDefaultBlock = _interopRequireDefault(require("../locations/isCursorInNonDefaultBlock"));
|
||||
var _toggleBlock = _interopRequireDefault(require("./toggleBlock"));
|
||||
var _isCursorCollapsedAfterSoftBreak = _interopRequireDefault(require("../locations/isCursorCollapsedAfterSoftBreak"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const HEADING_HOTKEYS = {
|
||||
'mod+1': 'heading-one',
|
||||
'mod+2': 'heading-two',
|
||||
'mod+3': 'heading-three',
|
||||
'mod+4': 'heading-four',
|
||||
'mod+5': 'heading-five',
|
||||
'mod+6': 'heading-six'
|
||||
};
|
||||
function keyDown(event, editor) {
|
||||
if (!editor.selection) return;
|
||||
for (const hotkey in HEADING_HOTKEYS) {
|
||||
if ((0, _isHotkey.default)(hotkey, event)) {
|
||||
(0, _toggleBlock.default)(editor, HEADING_HOTKEYS[hotkey]);
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if ((0, _isHotkey.default)('backspace', event) && (0, _isCursorCollapsedAfterSoftBreak.default)(editor)) {
|
||||
const [, path] = _slate.Editor.previous(editor);
|
||||
_slate.Transforms.removeNodes(editor, {
|
||||
at: path
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if (!(0, _isCursorInNonDefaultBlock.default)(editor)) return;
|
||||
if ((0, _isHotkey.default)('enter', event)) {
|
||||
const eventIntercepted = (0, _keyDownEnter.default)(editor);
|
||||
if (eventIntercepted) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if ((0, _isHotkey.default)('backspace', event)) {
|
||||
const eventIntercepted = (0, _keyDownBackspace.default)(editor);
|
||||
if (eventIntercepted) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var _default = exports.default = keyDown;
|
||||
25
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js
generated
vendored
Normal file
25
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDownBackspace.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _unwrapIfCursorAtStart = _interopRequireDefault(require("../transforms/unwrapIfCursorAtStart"));
|
||||
var _isCursorAtStartOfNonEmptyHeading = _interopRequireDefault(require("../locations/isCursorAtStartOfNonEmptyHeading"));
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
var _areCurrentAndPreviousBlocksOfType = _interopRequireDefault(require("../locations/areCurrentAndPreviousBlocksOfType"));
|
||||
var _isCursorAtStartOfBlockType = _interopRequireDefault(require("../locations/isCursorAtStartOfBlockType"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function keyDownBackspace(editor) {
|
||||
if (!editor.selection) return;
|
||||
if ((0, _isCursorAtStartOfNonEmptyHeading.default)(editor)) {
|
||||
return;
|
||||
}
|
||||
if ((0, _isCursorAtStartOfBlockType.default)(editor, 'quote') && (0, _areCurrentAndPreviousBlocksOfType.default)(editor, 'quote')) {
|
||||
_slate.Transforms.mergeNodes(editor, (0, _lowestMatchedAncestor.default)(editor, 'quote'));
|
||||
return true;
|
||||
}
|
||||
return (0, _unwrapIfCursorAtStart.default)(editor, true);
|
||||
}
|
||||
var _default = exports.default = keyDownBackspace;
|
||||
27
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js
generated
vendored
Normal file
27
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/keyDownEnter.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isCursorInBlockType = _interopRequireDefault(require("../locations/isCursorInBlockType"));
|
||||
var _splitIntoParagraph = _interopRequireDefault(require("../transforms/splitIntoParagraph"));
|
||||
var _unwrapIfCursorAtStart = _interopRequireDefault(require("../transforms/unwrapIfCursorAtStart"));
|
||||
var _isCursorAtEndOfParagraph = _interopRequireDefault(require("../locations/isCursorAtEndOfParagraph"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function keyDownEnter(editor) {
|
||||
if (!editor.selection) return;
|
||||
if ((0, _isCursorInBlockType.default)(editor, 'heading', true)) {
|
||||
return handleHeading(editor);
|
||||
}
|
||||
return (0, _unwrapIfCursorAtStart.default)(editor);
|
||||
}
|
||||
function handleHeading(editor) {
|
||||
if ((0, _isCursorAtEndOfParagraph.default)(editor)) {
|
||||
// split into paragraph if cursor is at the end of heading
|
||||
(0, _splitIntoParagraph.default)(editor);
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
var _default = exports.default = keyDownEnter;
|
||||
45
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js
generated
vendored
Normal file
45
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/events/toggleBlock.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _isCursorInBlockType = _interopRequireDefault(require("../locations/isCursorInBlockType"));
|
||||
var _getListTypeAtCursor = _interopRequireDefault(require("../locations/getListTypeAtCursor"));
|
||||
var _wrapListItemsInBlock = _interopRequireDefault(require("../transforms/wrapListItemsInBlock"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function toggleBlock(editor, type) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return;
|
||||
const isHeading = type.startsWith('heading-');
|
||||
const isActive = (0, _isCursorInBlockType.default)(editor, type, isHeading, _slate.Range.isExpanded(selection));
|
||||
const listType = (0, _getListTypeAtCursor.default)(editor);
|
||||
|
||||
// headings do not contain paragraphs so they could be converted, not wrapped/unwrapped
|
||||
if (isHeading) {
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
type: isActive ? 'paragraph' : type
|
||||
});
|
||||
return;
|
||||
}
|
||||
const {
|
||||
focus,
|
||||
anchor
|
||||
} = selection;
|
||||
if (!isActive && listType && focus.path[focus.path.length - 3] != anchor.path[anchor.path.length - 3]) {
|
||||
return (0, _wrapListItemsInBlock.default)(editor, type, listType);
|
||||
}
|
||||
if (!isActive) {
|
||||
return _slate.Transforms.wrapNodes(editor, {
|
||||
type
|
||||
});
|
||||
}
|
||||
_slate.Transforms.unwrapNodes(editor, {
|
||||
match: n => n.type === type
|
||||
});
|
||||
return;
|
||||
}
|
||||
var _default = exports.default = toggleBlock;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/areCurrentAndPreviousBlocksOfType.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function areCurrentAndPreviousBlocksOfType(editor, type) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [current] = _slate.Editor.nodes(editor, (0, _lowestMatchedAncestor.default)(editor, 'block'));
|
||||
const previous = _slate.Editor.previous(editor, (0, _lowestMatchedAncestor.default)(editor, type));
|
||||
return current && previous && current[0].type === previous[0].type;
|
||||
}
|
||||
var _default = exports.default = areCurrentAndPreviousBlocksOfType;
|
||||
15
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js
generated
vendored
Normal file
15
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/getListTypeAtCursor.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getListTypeAtCursor(editor) {
|
||||
const list = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'list'));
|
||||
if (!list) return null;
|
||||
return list[0].type;
|
||||
}
|
||||
var _default = exports.default = getListTypeAtCursor;
|
||||
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAfterSoftBreak.js
generated
vendored
Normal file
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAfterSoftBreak.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorAfterSoftBreak(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [previous] = _slate.Editor.previous(editor);
|
||||
return previous && previous.type == 'break';
|
||||
}
|
||||
var _default = exports.default = isCursorAfterSoftBreak;
|
||||
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js
generated
vendored
Normal file
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtEndOfParagraph.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function isCursorAtEndOfParagraph(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const paragraph = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'paragraph'));
|
||||
return !!paragraph && _slate.Editor.isEnd(editor, editor.selection.focus, paragraph[1]);
|
||||
}
|
||||
var _default = exports.default = isCursorAtEndOfParagraph;
|
||||
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js
generated
vendored
Normal file
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfBlockType.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function isCursorAtStartOfBlockType(editor, type) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const block = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, type));
|
||||
return !!block && _slate.Editor.isStart(editor, editor.selection.focus, block[1]);
|
||||
}
|
||||
var _default = exports.default = isCursorAtStartOfBlockType;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorAtStartOfNonEmptyHeading.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorAtStartOfNonEmptyHeading(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && `${n.type}`.startsWith('heading-'),
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && _slate.Editor.isStart(editor, editor.selection.focus, match[1]) && !_slate.Editor.isEmpty(editor, match[0]);
|
||||
}
|
||||
var _default = exports.default = isCursorAtStartOfNonEmptyHeading;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorCollapsedAfterSoftBreak.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorCollapsedAfterSoftBreak(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
if (_slate.Range.isExpanded(selection)) return false;
|
||||
const previous = _slate.Editor.previous(editor);
|
||||
return previous && previous[0].type == 'break';
|
||||
}
|
||||
var _default = exports.default = isCursorCollapsedAfterSoftBreak;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInBlockType.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorInBlockType(editor, type, ignoreHeadings, ignoreLists) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph' && n.type !== 'list-item' && (ignoreHeadings || !`${n.type}`.startsWith('heading-')) && (!ignoreLists || !`${n.type}`.endsWith('-list')),
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && (match[0].type === type || `${match[0].type}`.startsWith(`${type}-` || `${match[0].type}`.endsWith(`-${type}`)));
|
||||
}
|
||||
var _default = exports.default = isCursorInBlockType;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock copy.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock copy.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorInNonDefaultBlock(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph',
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && !_slate.Editor.isEditor(match[0]);
|
||||
}
|
||||
var _default = exports.default = isCursorInNonDefaultBlock;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/locations/isCursorInNonDefaultBlock.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorInNonDefaultBlock(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph',
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && !_slate.Editor.isEditor(match[0]);
|
||||
}
|
||||
var _default = exports.default = isCursorInNonDefaultBlock;
|
||||
22
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js
generated
vendored
Normal file
22
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/splitIntoParagraph.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function splitIntoParagraph(editor) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.splitNodes(editor, {
|
||||
always: true
|
||||
});
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
type: 'paragraph'
|
||||
});
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
return true;
|
||||
}
|
||||
var _default = exports.default = splitIntoParagraph;
|
||||
43
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js
generated
vendored
Normal file
43
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/unwrapIfCursorAtStart.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function unwrapIfCursorAtStart(editor, mergeWithPrevious = false) {
|
||||
if (editor.selection.anchor.offset !== 0) return false;
|
||||
let [node, path] = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'non-default'));
|
||||
if (path.length == 0) return false;
|
||||
const isHeading = `${node.type}`.startsWith('heading-');
|
||||
if (isHeading) {
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
type: 'paragraph'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
const isBlock = _slate.Editor.isBlock(editor, node);
|
||||
const [parentBlock, parentBlockPath] = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'block'));
|
||||
if (!isBlock) {
|
||||
if (!_slate.Editor.isStart(editor, path, parentBlockPath)) {
|
||||
return false;
|
||||
}
|
||||
[node, path] = [parentBlock, parentBlockPath];
|
||||
}
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.unwrapNodes(editor, {
|
||||
match: n => n.type === node.type,
|
||||
split: true
|
||||
});
|
||||
if (mergeWithPrevious) {
|
||||
_slate.Transforms.mergeNodes(editor);
|
||||
}
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
return true;
|
||||
}
|
||||
var _default = exports.default = unwrapIfCursorAtStart;
|
||||
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js
generated
vendored
Normal file
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/transforms/wrapListItemsInBlock.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function wrapListItemsInBlock(editor, blockType, listType) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type: listType
|
||||
});
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type: blockType
|
||||
}, {
|
||||
match: n => n.type === listType
|
||||
});
|
||||
_slate.Transforms.liftNodes(editor, {
|
||||
match: n => n.type === blockType
|
||||
});
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = wrapListItemsInBlock;
|
||||
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js
generated
vendored
Normal file
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/blocks/withBlocks.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _keyDown = _interopRequireDefault(require("./events/keyDown"));
|
||||
var _toggleBlock = _interopRequireDefault(require("./events/toggleBlock"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function withBlocks(editor) {
|
||||
if (editor.keyDownHandlers === undefined) {
|
||||
editor.keyDownHandlers = [];
|
||||
}
|
||||
editor.keyDownHandlers.push((event, editor) => (0, _keyDown.default)(event, editor));
|
||||
editor.toggleBlock = type => (0, _toggleBlock.default)(editor, type);
|
||||
return editor;
|
||||
}
|
||||
var _default = exports.default = withBlocks;
|
||||
38
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js
generated
vendored
Normal file
38
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/keyDown.js
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
var _toggleMark = _interopRequireDefault(require("./toggleMark"));
|
||||
var _keyDownShiftEnter = _interopRequireDefault(require("./keyDownShiftEnter"));
|
||||
var _toggleLink = _interopRequireDefault(require("./toggleLink"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const MARK_HOTKEYS = {
|
||||
'mod+b': 'bold',
|
||||
'mod+i': 'italic',
|
||||
'mod+u': 'underline',
|
||||
'mod+`': 'code',
|
||||
'mod+shift+s': 'delete',
|
||||
'mod+shift+c': 'code'
|
||||
};
|
||||
function keyDown(event, editor) {
|
||||
if (!editor.selection) return;
|
||||
for (const hotkey in MARK_HOTKEYS) {
|
||||
if ((0, _isHotkey.default)(hotkey, event)) {
|
||||
(0, _toggleMark.default)(editor, MARK_HOTKEYS[hotkey]);
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if ((0, _isHotkey.default)('mod+k', event)) {
|
||||
event.preventDefault();
|
||||
return (0, _toggleLink.default)(editor);
|
||||
}
|
||||
if ((0, _isHotkey.default)('shift+enter', event)) {
|
||||
event.preventDefault();
|
||||
return (0, _keyDownShiftEnter.default)(editor);
|
||||
}
|
||||
}
|
||||
var _default = exports.default = keyDown;
|
||||
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js
generated
vendored
Normal file
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/keyDownShiftEnter.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function keyDownShiftEnter(editor) {
|
||||
if (!editor.selection) return;
|
||||
const focus = {
|
||||
path: [...editor.selection.focus.path.slice(0, -1), editor.selection.focus.path[editor.selection.focus.path.length - 1] + 2],
|
||||
offset: 0
|
||||
};
|
||||
_slate.Transforms.insertNodes(editor, {
|
||||
type: 'break',
|
||||
children: [{
|
||||
text: ''
|
||||
}]
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
_slate.Transforms.select(editor, focus);
|
||||
return false;
|
||||
}
|
||||
var _default = exports.default = keyDownShiftEnter;
|
||||
23
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js
generated
vendored
Normal file
23
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/toggleLink.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _getActiveLink = _interopRequireDefault(require("../selectors/getActiveLink"));
|
||||
var _unwrapLink = _interopRequireDefault(require("../transforms/unwrapLink"));
|
||||
var _wrapLink = _interopRequireDefault(require("../transforms/wrapLink"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function toggleLink(editor, promptText) {
|
||||
var _activeLink$, _activeLink$$data;
|
||||
const activeLink = (0, _getActiveLink.default)(editor);
|
||||
const activeUrl = activeLink ? (_activeLink$ = activeLink[0]) === null || _activeLink$ === void 0 ? void 0 : (_activeLink$$data = _activeLink$.data) === null || _activeLink$$data === void 0 ? void 0 : _activeLink$$data.url : '';
|
||||
const url = window.prompt(promptText, activeUrl);
|
||||
if (url == null) return;
|
||||
if (url === '') {
|
||||
(0, _unwrapLink.default)(editor);
|
||||
return;
|
||||
}
|
||||
(0, _wrapLink.default)(editor, url);
|
||||
}
|
||||
var _default = exports.default = toggleLink;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/events/toggleMark.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _isMarkActive = _interopRequireDefault(require("../locations/isMarkActive"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function toggleMark(editor, format) {
|
||||
if ((0, _isMarkActive.default)(editor, format)) {
|
||||
_slate.Editor.removeMark(editor, format);
|
||||
} else {
|
||||
_slate.Editor.addMark(editor, format, true);
|
||||
}
|
||||
}
|
||||
var _default = exports.default = toggleMark;
|
||||
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js
generated
vendored
Normal file
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/locations/isMarkActive.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isMarkActive(editor, format) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const marks = _slate.Editor.marks(editor);
|
||||
return marks ? marks[format] === true : false;
|
||||
}
|
||||
var _default = exports.default = isMarkActive;
|
||||
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js
generated
vendored
Normal file
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/selectors/getActiveLink.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getActiveLink(editor) {
|
||||
const [link] = _slate.Editor.nodes(editor, (0, _matchLink.default)(editor));
|
||||
return link;
|
||||
}
|
||||
var _default = exports.default = getActiveLink;
|
||||
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js
generated
vendored
Normal file
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/transforms/unwrapLink.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function unwrapLink(editor) {
|
||||
_slate.Transforms.unwrapNodes(editor, (0, _matchLink.default)());
|
||||
}
|
||||
var _default = exports.default = unwrapLink;
|
||||
44
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js
generated
vendored
Normal file
44
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/transforms/wrapLink.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _getActiveLink = _interopRequireDefault(require("../selectors/getActiveLink"));
|
||||
var _matchLink = _interopRequireDefault(require("../../matchers/matchLink"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function wrapLink(editor, url) {
|
||||
if ((0, _getActiveLink.default)(editor)) {
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
data: {
|
||||
url
|
||||
}
|
||||
}, (0, _matchLink.default)());
|
||||
return;
|
||||
}
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
const isCollapsed = selection && _slate.Range.isCollapsed(selection);
|
||||
const link = {
|
||||
type: 'link',
|
||||
data: {
|
||||
url
|
||||
},
|
||||
children: isCollapsed ? [{
|
||||
text: url
|
||||
}] : []
|
||||
};
|
||||
if (isCollapsed) {
|
||||
_slate.Transforms.insertNodes(editor, link);
|
||||
} else {
|
||||
_slate.Transforms.wrapNodes(editor, link, {
|
||||
split: true
|
||||
});
|
||||
_slate.Transforms.collapse(editor, {
|
||||
edge: 'end'
|
||||
});
|
||||
}
|
||||
}
|
||||
var _default = exports.default = wrapLink;
|
||||
22
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/withInlines.js
generated
vendored
Normal file
22
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/inlines/withInlines.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _keyDown = _interopRequireDefault(require("./events/keyDown"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function withInlines(editor) {
|
||||
const {
|
||||
isInline,
|
||||
isVoid
|
||||
} = editor;
|
||||
editor.isInline = element => ['link', 'button', 'break', 'image'].includes(element.type) || isInline(element);
|
||||
editor.isVoid = element => ['break', 'image', 'thematic-break'].includes(element.type) || isVoid(element);
|
||||
if (editor.keyDownHandlers === undefined) {
|
||||
editor.keyDownHandlers = [];
|
||||
}
|
||||
editor.keyDownHandlers.push((event, editor) => (0, _keyDown.default)(event, editor));
|
||||
return editor;
|
||||
}
|
||||
var _default = exports.default = withInlines;
|
||||
37
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js
generated
vendored
Normal file
37
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDown.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
||||
var _keyDownEnter = _interopRequireDefault(require("./keyDownEnter"));
|
||||
var _keyDownTab = _interopRequireDefault(require("./keyDownTab"));
|
||||
var _keyDownShiftTab = _interopRequireDefault(require("./keyDownShiftTab"));
|
||||
var _keyDownBackspace = _interopRequireDefault(require("./keyDownBackspace"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function keyDown(event, editor) {
|
||||
if (!editor.isListItem()) return;
|
||||
if ((0, _isHotkey.default)('enter', event)) {
|
||||
event.preventDefault();
|
||||
(0, _keyDownEnter.default)(editor);
|
||||
return false;
|
||||
}
|
||||
if ((0, _isHotkey.default)('backspace', event)) {
|
||||
const eventIntercepted = (0, _keyDownBackspace.default)(editor);
|
||||
if (eventIntercepted === false) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if ((0, _isHotkey.default)('tab', event)) {
|
||||
event.preventDefault();
|
||||
return (0, _keyDownTab.default)(editor);
|
||||
}
|
||||
if ((0, _isHotkey.default)('shift+tab', event)) {
|
||||
event.preventDefault();
|
||||
return (0, _keyDownShiftTab.default)(editor);
|
||||
}
|
||||
}
|
||||
var _default = exports.default = keyDown;
|
||||
28
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js
generated
vendored
Normal file
28
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownBackspace.js
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _isCursorInListItem = _interopRequireDefault(require("../locations/isCursorInListItem"));
|
||||
var _isSelectionWithinNoninitialListItem = _interopRequireDefault(require("../locations/isSelectionWithinNoninitialListItem"));
|
||||
var _unwrapSelectionFromList = _interopRequireDefault(require("../transforms/unwrapSelectionFromList"));
|
||||
var _mergeWithPreviousListItem = _interopRequireDefault(require("../transforms/mergeWithPreviousListItem"));
|
||||
var _isCursorAtNoninitialParagraphStart = _interopRequireDefault(require("../locations/isCursorAtNoninitialParagraphStart"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function keyDownBackspace(editor) {
|
||||
if (!editor.selection) return;
|
||||
|
||||
// ignore if selection is expanded, cursor is not at the beginning or not immediately in a list item, or cursor is at the beginning of a non-initial paragraph
|
||||
if (!_slate.Range.isCollapsed(editor.selection) || editor.selection.anchor.offset !== 0 || !(0, _isCursorInListItem.default)(editor, true) || (0, _isCursorAtNoninitialParagraphStart.default)(editor)) {
|
||||
return;
|
||||
}
|
||||
if ((0, _isSelectionWithinNoninitialListItem.default)(editor)) {
|
||||
(0, _mergeWithPreviousListItem.default)(editor);
|
||||
} else {
|
||||
(0, _unwrapSelectionFromList.default)(editor);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var _default = exports.default = keyDownBackspace;
|
||||
43
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js
generated
vendored
Normal file
43
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownEnter.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _splitListItem = _interopRequireDefault(require("../transforms/splitListItem"));
|
||||
var _isCursorAtListItemStart = _interopRequireDefault(require("../locations/isCursorAtListItemStart"));
|
||||
var _liftListItem = _interopRequireDefault(require("../transforms/liftListItem"));
|
||||
var _convertParagraphToListItem = _interopRequireDefault(require("../transforms/convertParagraphToListItem"));
|
||||
var _isCursorAtNoninitialParagraphStart = _interopRequireDefault(require("../locations/isCursorAtNoninitialParagraphStart"));
|
||||
var _splitToNestedList = _interopRequireDefault(require("../transforms/splitToNestedList"));
|
||||
var _getListContainedInListItem = _interopRequireDefault(require("../selectors/getListContainedInListItem"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function keyDownEnter(editor) {
|
||||
if (!editor.selection) return;
|
||||
|
||||
// Pressing enter will delete current selection in any case
|
||||
if (_slate.Range.isExpanded(editor.selection)) {
|
||||
_slate.Transforms.delete(editor);
|
||||
}
|
||||
|
||||
// if edge of selection is in the beginning of the first text node in list-item
|
||||
if ((0, _isCursorAtListItemStart.default)(editor)) {
|
||||
return (0, _liftListItem.default)(editor);
|
||||
}
|
||||
|
||||
// if list has a nested list, insert new item to the beginning of the nested list
|
||||
const nestedList = (0, _getListContainedInListItem.default)(editor);
|
||||
if (!!nestedList && `${nestedList[0].type}`.endsWith('-list')) {
|
||||
return (0, _splitToNestedList.default)(editor, nestedList[0].type);
|
||||
}
|
||||
|
||||
// if a paragraph in a list and has previous siblings, convert it to a list item
|
||||
if ((0, _isCursorAtNoninitialParagraphStart.default)(editor)) {
|
||||
return (0, _convertParagraphToListItem.default)(editor);
|
||||
}
|
||||
|
||||
// otherwise create a new list item
|
||||
(0, _splitListItem.default)(editor);
|
||||
}
|
||||
var _default = exports.default = keyDownEnter;
|
||||
31
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js
generated
vendored
Normal file
31
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownShiftTab.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
var _matchedAncestors = _interopRequireDefault(require("../../matchers/matchedAncestors"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function keyDownShiftTab(editor) {
|
||||
if (!editor.selection) return;
|
||||
if (Array.from(_slate.Editor.nodes(editor, (0, _matchedAncestors.default)(editor, 'list'))).length < 2) {
|
||||
return;
|
||||
}
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.liftNodes(editor, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
|
||||
split: true
|
||||
}));
|
||||
_slate.Transforms.liftNodes(editor, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
|
||||
split: true
|
||||
}));
|
||||
});
|
||||
_slate.Editor.normalize(editor);
|
||||
}
|
||||
var _default = exports.default = keyDownShiftTab;
|
||||
56
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js
generated
vendored
Normal file
56
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/keyDownTab.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _isSelectionWithinNoninitialListItem = _interopRequireDefault(require("../locations/isSelectionWithinNoninitialListItem"));
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
var _moveListToListItem = _interopRequireDefault(require("../transforms/moveListToListItem"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function keyDownTab(editor) {
|
||||
if (!editor.selection) return;
|
||||
if (!(0, _isSelectionWithinNoninitialListItem.default)(editor)) return;
|
||||
|
||||
// In a case where one edge of the range is within a nested list item, we need to even the selection to the outer most level
|
||||
const {
|
||||
focus,
|
||||
anchor
|
||||
} = editor.selection;
|
||||
const pathLength = focus.path.length > anchor.path.length ? anchor.path.length : focus.path.length;
|
||||
const at = {
|
||||
anchor: {
|
||||
offset: 0,
|
||||
path: [...anchor.path.slice(0, pathLength - 2), 0, 0]
|
||||
},
|
||||
focus: {
|
||||
offset: 0,
|
||||
path: [...focus.path.slice(0, pathLength - 2), 0, 0]
|
||||
}
|
||||
};
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// wrap selected list items into a new bulleted list
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type: 'bulleted-list'
|
||||
}, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list-item')), {}, {
|
||||
at
|
||||
}));
|
||||
|
||||
// get the new bulleted list position
|
||||
const [, newListPath] = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'list'));
|
||||
|
||||
// get the new parent node (previous list item)
|
||||
const parentNode = _slate.Editor.previous(editor, {
|
||||
at: newListPath
|
||||
});
|
||||
(0, _moveListToListItem.default)(editor, newListPath, parentNode);
|
||||
});
|
||||
_slate.Editor.normalize(editor);
|
||||
}
|
||||
var _default = exports.default = keyDownTab;
|
||||
28
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js
generated
vendored
Normal file
28
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/events/toggleListType.js
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isCursorInListItem = _interopRequireDefault(require("../locations/isCursorInListItem"));
|
||||
var _getLowestAncestorList = _interopRequireDefault(require("../selectors/getLowestAncestorList"));
|
||||
var _wrapSelectionInList = _interopRequireDefault(require("../transforms/wrapSelectionInList"));
|
||||
var _changeListType = _interopRequireDefault(require("../transforms/changeListType"));
|
||||
var _unwrapSelectionFromList = _interopRequireDefault(require("../transforms/unwrapSelectionFromList"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function toggleListType(editor, type) {
|
||||
// list being active means that we are in a paragraph or heading whose parent is a list
|
||||
// if no list is active, wrap selection in a new list of the given type
|
||||
if (!(0, _isCursorInListItem.default)(editor)) {
|
||||
return (0, _wrapSelectionInList.default)(editor, type);
|
||||
}
|
||||
// if a list is active but the type doesn't match, change selection to the given list type
|
||||
const currentList = (0, _getLowestAncestorList.default)(editor);
|
||||
if (currentList && currentList[0].type !== type) {
|
||||
return (0, _changeListType.default)(editor, type);
|
||||
}
|
||||
|
||||
// if a list is active and the type matches, unwrap selection from the list
|
||||
return (0, _unwrapSelectionFromList.default)(editor);
|
||||
}
|
||||
var _default = exports.default = toggleListType;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtListItemStart.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorAtListItemStart(editor) {
|
||||
if (!editor.selection) return false;
|
||||
const {
|
||||
offset,
|
||||
path
|
||||
} = _slate.Range.start(editor.selection);
|
||||
// todo: this will break when there are marks inside list items, use Edior.isStart on first block parent instead (see isCursorAtEndOfParagraph)
|
||||
return offset === 0 && path.length >= 2 && path[path.length - 1] === 0 && path[path.length - 2] === 0;
|
||||
}
|
||||
var _default = exports.default = isCursorAtListItemStart;
|
||||
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js
generated
vendored
Normal file
16
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorAtNoninitialParagraphStart.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorAtNoninitialParagraphStart(editor) {
|
||||
if (!editor.selection) return false;
|
||||
const {
|
||||
offset,
|
||||
path
|
||||
} = _slate.Range.start(editor.selection);
|
||||
return offset == 0 && path.length > 2 && path[path.length - 2] > 0;
|
||||
}
|
||||
var _default = exports.default = isCursorAtNoninitialParagraphStart;
|
||||
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js
generated
vendored
Normal file
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInItemContainingNestedList.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _getListContainedInListItem = _interopRequireDefault(require("../selectors/getListContainedInListItem"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function isCursorInItemContainingNestedList(editor) {
|
||||
const nestedList = (0, _getListContainedInListItem.default)(editor);
|
||||
return !!nestedList && `${nestedList[0].type}`.endsWith('-list');
|
||||
}
|
||||
var _default = exports.default = isCursorInItemContainingNestedList;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isCursorInListItem.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorInListItem(editor, immediate) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph' && (immediate || !`${n.type}`.startsWith('heading-')),
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && match[0].type === 'list-item';
|
||||
}
|
||||
var _default = exports.default = isCursorInListItem;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/locations/isSelectionWithinNoninitialListItem.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isSelectionWithinNoninitialListItem(editor) {
|
||||
if (!editor.selection) return false;
|
||||
const [, path] = _slate.Editor.above(editor, {
|
||||
match: n => n.type === 'list-item',
|
||||
mode: 'lowest',
|
||||
at: _slate.Range.start(editor.selection)
|
||||
});
|
||||
if (path && path.length > 0 && path[path.length - 1] > 0) return true;
|
||||
}
|
||||
var _default = exports.default = isSelectionWithinNoninitialListItem;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getListContainedInListItem.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getListContainedInListItem(editor) {
|
||||
if (!editor.selection) return false;
|
||||
const [, paragraphPath] = _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'paragraph'));
|
||||
return _slate.Editor.next(editor, {
|
||||
at: paragraphPath
|
||||
});
|
||||
}
|
||||
var _default = exports.default = getListContainedInListItem;
|
||||
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js
generated
vendored
Normal file
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorList.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getLowestAncestorList(editor) {
|
||||
if (!editor.selection) return false;
|
||||
return _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'list'));
|
||||
}
|
||||
var _default = exports.default = getLowestAncestorList;
|
||||
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js
generated
vendored
Normal file
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/selectors/getLowestAncestorQuote.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getLowestAncestorQuote(editor) {
|
||||
if (!editor.selection) return false;
|
||||
return _slate.Editor.above(editor, (0, _lowestMatchedAncestor.default)(editor, 'quote'));
|
||||
}
|
||||
var _default = exports.default = getLowestAncestorQuote;
|
||||
23
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js
generated
vendored
Normal file
23
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/changeListType.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function changeListType(editor, type) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// wrap selected list items into new type
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type
|
||||
}, (0, _lowestMatchedAncestor.default)(editor, 'list-item'));
|
||||
// lift the new list of the current list, split if necessary
|
||||
_slate.Transforms.liftNodes(editor, (0, _lowestMatchedAncestor.default)(editor, type));
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = changeListType;
|
||||
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js
generated
vendored
Normal file
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/convertParagraphToListItem.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _liftFirstMatchedParent = _interopRequireDefault(require("./liftFirstMatchedParent"));
|
||||
var _wrapFirstMatchedParent = _interopRequireDefault(require("./wrapFirstMatchedParent"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function convertParagraphToListItem(editor) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// wrap the paragraph in a list item
|
||||
(0, _wrapFirstMatchedParent.default)(editor, 'paragraph', {
|
||||
type: 'list-item'
|
||||
});
|
||||
// lift the new list-item of the current list-item, split if necessary
|
||||
(0, _liftFirstMatchedParent.default)(editor, 'list-item', {
|
||||
split: true
|
||||
});
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = convertParagraphToListItem;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/liftFirstMatchedParent.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function liftFirstMatchedParent(editor, format, options) {
|
||||
_slate.Transforms.liftNodes(editor, _objectSpread({
|
||||
match: n => n.type === format || format === 'paragraph' && `${n.type}`.startsWith('heading'),
|
||||
mode: 'lowest'
|
||||
}, options));
|
||||
}
|
||||
var _default = exports.default = liftFirstMatchedParent;
|
||||
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js
generated
vendored
Normal file
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/liftListItem.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _unwrapFirstMatchedParent = _interopRequireDefault(require("./unwrapFirstMatchedParent"));
|
||||
var _liftFirstMatchedParent = _interopRequireDefault(require("./liftFirstMatchedParent"));
|
||||
var _getLowestAncestorList = _interopRequireDefault(require("../selectors/getLowestAncestorList"));
|
||||
var _getLowestAncestorQuote = _interopRequireDefault(require("../selectors/getLowestAncestorQuote"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function liftListItem(editor) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// lift the paragraph out of the list and split if necessary
|
||||
(0, _liftFirstMatchedParent.default)(editor, 'list-item', {
|
||||
split: true
|
||||
});
|
||||
|
||||
// if list is nested and not wrapped in quote, lift into the parent list, unwrap otherwise
|
||||
const parentList = (0, _getLowestAncestorList.default)(editor);
|
||||
const parentQuote = (0, _getLowestAncestorQuote.default)(editor);
|
||||
if (parentList && !parentQuote || parentList && parentQuote && parentList[1].length > parentQuote[1].length) {
|
||||
(0, _liftFirstMatchedParent.default)(editor, 'list-item', {
|
||||
split: true
|
||||
});
|
||||
} else {
|
||||
// unwrap the paragraph from list-item element
|
||||
(0, _unwrapFirstMatchedParent.default)(editor, 'list-item');
|
||||
}
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = liftListItem;
|
||||
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js
generated
vendored
Normal file
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/mergeWithPreviousListItem.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function mergeWithPreviousListItem(editor) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.mergeNodes(editor, (0, _lowestMatchedAncestor.default)(editor, 'list-item'));
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = mergeWithPreviousListItem;
|
||||
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js
generated
vendored
Normal file
17
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/moveListToListItem.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function moveListToListItem(editor, listPath, targetListItem) {
|
||||
const [targetItem, targetPath] = targetListItem;
|
||||
|
||||
// move the node to the last child position of the parent node
|
||||
_slate.Transforms.moveNodes(editor, {
|
||||
at: listPath,
|
||||
to: [...targetPath, targetItem.children.length]
|
||||
});
|
||||
}
|
||||
var _default = exports.default = moveListToListItem;
|
||||
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js
generated
vendored
Normal file
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/splitListItem.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _liftFirstMatchedParent = _interopRequireDefault(require("./liftFirstMatchedParent"));
|
||||
var _wrapFirstMatchedParent = _interopRequireDefault(require("./wrapFirstMatchedParent"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function splitListItem(editor) {
|
||||
if (!editor.selection) return false;
|
||||
if (_slate.Range.isExpanded(editor.selection)) {
|
||||
_slate.Transforms.delete(editor);
|
||||
}
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// split even if at the end of current text
|
||||
_slate.Transforms.splitNodes(editor, {
|
||||
always: true
|
||||
});
|
||||
// set the new node to paragraph (to avoid splitting headings)
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
type: 'paragraph'
|
||||
});
|
||||
// wrap the paragraph in a list item
|
||||
(0, _wrapFirstMatchedParent.default)(editor, 'paragraph', {
|
||||
type: 'list-item'
|
||||
});
|
||||
// lift new list item out the paragraph
|
||||
(0, _liftFirstMatchedParent.default)(editor, 'list-item');
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = splitListItem;
|
||||
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js
generated
vendored
Normal file
36
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/splitToNestedList.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _wrapFirstMatchedParent = _interopRequireDefault(require("./wrapFirstMatchedParent"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function splitToNestedList(editor, listType) {
|
||||
if (!editor.selection) return false;
|
||||
if (_slate.Range.isExpanded(editor.selection)) {
|
||||
_slate.Transforms.delete(editor);
|
||||
}
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
// split even if at the end of current text
|
||||
_slate.Transforms.splitNodes(editor, {
|
||||
always: true
|
||||
});
|
||||
// set the new node to paragraph (to avoid splitting headings)
|
||||
_slate.Transforms.setNodes(editor, {
|
||||
type: 'paragraph'
|
||||
});
|
||||
// wrap the paragraph in a list item
|
||||
(0, _wrapFirstMatchedParent.default)(editor, 'paragraph', {
|
||||
type: 'list-item'
|
||||
});
|
||||
(0, _wrapFirstMatchedParent.default)(editor, 'list-item', {
|
||||
type: listType
|
||||
});
|
||||
});
|
||||
_slate.Editor.normalize(editor, {
|
||||
force: true
|
||||
});
|
||||
}
|
||||
var _default = exports.default = splitToNestedList;
|
||||
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js
generated
vendored
Normal file
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapFirstMatchedParent.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function unwrapFirstMatchedParent(editor, format) {
|
||||
_slate.Transforms.unwrapNodes(editor, (0, _lowestMatchedAncestor.default)(editor, format));
|
||||
}
|
||||
var _default = exports.default = unwrapFirstMatchedParent;
|
||||
24
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js
generated
vendored
Normal file
24
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/unwrapSelectionFromList.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function unwrapSelectionFromList(editor) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.unwrapNodes(editor, _objectSpread(_objectSpread({}, (0, _lowestMatchedAncestor.default)(editor, 'list')), {}, {
|
||||
split: true
|
||||
}));
|
||||
_slate.Transforms.unwrapNodes(editor, (0, _lowestMatchedAncestor.default)(editor, 'list-item'));
|
||||
});
|
||||
_slate.Editor.normalize(editor);
|
||||
}
|
||||
var _default = exports.default = unwrapSelectionFromList;
|
||||
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js
generated
vendored
Normal file
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/wrapFirstMatchedParent.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function wrapFirstMatchedParent(editor, format, node) {
|
||||
_slate.Transforms.wrapNodes(editor, node, (0, _lowestMatchedAncestor.default)(editor, format));
|
||||
}
|
||||
var _default = exports.default = wrapFirstMatchedParent;
|
||||
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js
generated
vendored
Normal file
26
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/transforms/wrapSelectionInList.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _lowestMatchedAncestor = _interopRequireDefault(require("../../matchers/lowestMatchedAncestor"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function wrapSelectionInList(editor, type) {
|
||||
_slate.Editor.withoutNormalizing(editor, () => {
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type
|
||||
});
|
||||
const listItems = _slate.Editor.nodes(editor, (0, _lowestMatchedAncestor.default)(editor, 'paragraph'));
|
||||
for (const listItem of listItems) {
|
||||
_slate.Transforms.wrapNodes(editor, {
|
||||
type: 'list-item'
|
||||
}, {
|
||||
at: listItem[1]
|
||||
});
|
||||
}
|
||||
});
|
||||
_slate.Editor.normalize(editor);
|
||||
}
|
||||
var _default = exports.default = wrapSelectionInList;
|
||||
66
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/withLists.js
generated
vendored
Normal file
66
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/lists/withLists.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _keyDown = _interopRequireDefault(require("./events/keyDown"));
|
||||
var _moveListToListItem = _interopRequireDefault(require("./transforms/moveListToListItem"));
|
||||
var _toggleListType = _interopRequireDefault(require("./events/toggleListType"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function withLists(editor) {
|
||||
const {
|
||||
normalizeNode
|
||||
} = editor;
|
||||
if (editor.keyDownHandlers === undefined) {
|
||||
editor.keyDownHandlers = [];
|
||||
}
|
||||
editor.keyDownHandlers.push((event, editor) => (0, _keyDown.default)(event, editor));
|
||||
editor.toggleList = type => (0, _toggleListType.default)(editor, type);
|
||||
editor.isListItem = () => {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
at: _slate.Editor.unhangRange(editor, selection),
|
||||
match: n => !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type !== 'paragraph' && !`${n.type}`.startsWith('heading-'),
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && match[0].type === 'list-item';
|
||||
};
|
||||
editor.normalizeNode = entry => {
|
||||
normalizeNode(entry);
|
||||
const [node, path] = entry;
|
||||
let previousType = null;
|
||||
if (_slate.Element.isElement(node) || _slate.Editor.isEditor(node)) {
|
||||
for (const [child, childPath] of _slate.Node.children(editor, path)) {
|
||||
if (`${child.type}`.endsWith('-list') && child.type === previousType) {
|
||||
_slate.Transforms.mergeNodes(editor, {
|
||||
at: childPath
|
||||
});
|
||||
break;
|
||||
}
|
||||
previousType = child.type;
|
||||
}
|
||||
}
|
||||
if (_slate.Element.isElement(node) && `${node.type}`.endsWith('-list')) {
|
||||
const previousNode = _slate.Editor.previous(editor, {
|
||||
at: path
|
||||
});
|
||||
const [parentNode, parentNodePath] = _slate.Editor.parent(editor, path);
|
||||
if (!previousNode && parentNode.type === 'list-item') {
|
||||
const previousListItem = _slate.Editor.previous(editor, {
|
||||
at: parentNodePath
|
||||
});
|
||||
(0, _moveListToListItem.default)(editor, path, previousListItem);
|
||||
_slate.Transforms.removeNodes(editor, {
|
||||
at: parentNodePath
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
return editor;
|
||||
}
|
||||
var _default = exports.default = withLists;
|
||||
12
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js
generated
vendored
Normal file
12
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/lowestMatchedAncestor.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _matchedAncestors = _interopRequireDefault(require("./matchedAncestors"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function lowestMatchedAncestor(editor, format) {
|
||||
return (0, _matchedAncestors.default)(editor, format, 'lowest');
|
||||
}
|
||||
var _default = exports.default = lowestMatchedAncestor;
|
||||
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/matchLink.js
generated
vendored
Normal file
13
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/matchLink.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function matchLink() {
|
||||
return {
|
||||
match: n => !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && n.type === 'link'
|
||||
};
|
||||
}
|
||||
var _default = exports.default = matchLink;
|
||||
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js
generated
vendored
Normal file
14
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/matchers/matchedAncestors.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function matchedAncestors(editor, format, mode) {
|
||||
return {
|
||||
match: n => !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && (n.type === format || format === 'heading' && `${n.type}`.startsWith('heading-') || format === 'paragraph' && `${n.type}`.startsWith('heading-') || format === 'block' && !`${n.type}`.startsWith('heading-') && n.type !== 'paragraph' || format === 'list' && `${n.type}`.endsWith('-list')) || format === 'non-default' && n.type !== 'paragraph',
|
||||
mode
|
||||
};
|
||||
}
|
||||
var _default = exports.default = matchedAncestors;
|
||||
30
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js
generated
vendored
Normal file
30
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/insertShortcode.js
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _isCursorInEmptyParagraph = _interopRequireDefault(require("./locations/isCursorInEmptyParagraph"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function insertShortcode(editor, pluginConfig) {
|
||||
const defaultValues = pluginConfig.fields.toMap().mapKeys((_, field) => field.get('name')).filter(field => field.has('default')).map(field => field.get('default'));
|
||||
const nodeData = {
|
||||
type: 'shortcode',
|
||||
id: pluginConfig.id,
|
||||
data: {
|
||||
shortcode: pluginConfig.id,
|
||||
shortcodeNew: true,
|
||||
shortcodeData: defaultValues.toJS()
|
||||
},
|
||||
children: [{
|
||||
text: ''
|
||||
}]
|
||||
};
|
||||
if ((0, _isCursorInEmptyParagraph.default)(editor)) {
|
||||
_slate.Transforms.setNodes(editor, nodeData);
|
||||
return;
|
||||
}
|
||||
_slate.Transforms.insertNodes(editor, nodeData);
|
||||
}
|
||||
var _default = exports.default = insertShortcode;
|
||||
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js
generated
vendored
Normal file
19
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/locations/isCursorInEmptyParagraph.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
function isCursorInEmptyParagraph(editor) {
|
||||
const {
|
||||
selection
|
||||
} = editor;
|
||||
if (!selection) return false;
|
||||
const [match] = Array.from(_slate.Editor.nodes(editor, {
|
||||
match: n => _slate.Element.isElement(n) && _slate.Editor.isBlock(editor, n) && n.type === 'paragraph',
|
||||
mode: 'lowest'
|
||||
}));
|
||||
return !!match && _slate.Editor.isEmpty(editor, match[0]);
|
||||
}
|
||||
var _default = exports.default = isCursorInEmptyParagraph;
|
||||
29
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js
generated
vendored
Normal file
29
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/shortcodes/withShortcodes.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slate = require("slate");
|
||||
var _defaultEmptyBlock = _interopRequireDefault(require("../blocks/defaultEmptyBlock"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function withShortcodes(editor) {
|
||||
const {
|
||||
isVoid,
|
||||
normalizeNode
|
||||
} = editor;
|
||||
editor.isVoid = element => {
|
||||
return element.type === 'shortcode' ? true : isVoid(element);
|
||||
};
|
||||
|
||||
// Prevent empty editor after deleting shortcode theat was only child
|
||||
editor.normalizeNode = entry => {
|
||||
const [node] = entry;
|
||||
if (_slate.Editor.isEditor(node) && node.children.length == 0) {
|
||||
_slate.Transforms.insertNodes(editor, (0, _defaultEmptyBlock.default)());
|
||||
}
|
||||
normalizeNode(entry);
|
||||
};
|
||||
return editor;
|
||||
}
|
||||
var _default = exports.default = withShortcodes;
|
||||
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/util.js
generated
vendored
Normal file
18
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/plugins/util.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.assertType = assertType;
|
||||
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
||||
var _castArray2 = _interopRequireDefault(require("lodash/castArray"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function assertType(nodes, type) {
|
||||
const nodesArray = (0, _castArray2.default)(nodes);
|
||||
const validate = (0, _isArray2.default)(type) ? node => type.includes(node.type) : node => type === node.type;
|
||||
const invalidNode = nodesArray.find(node => !validate(node));
|
||||
if (invalidNode) {
|
||||
throw Error(`Expected node of type "${type}", received "${invalidNode.type}".`);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
326
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/renderers.js
generated
vendored
Normal file
326
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownControl/renderers.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
46
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownPreview.js
generated
vendored
Normal file
46
node_modules/decap-cms-widget-markdown/dist/esm/MarkdownPreview.js
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _dompurify = _interopRequireDefault(require("dompurify"));
|
||||
var _serializers = require("./serializers");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
class MarkdownPreview extends _react.default.Component {
|
||||
render() {
|
||||
const {
|
||||
value,
|
||||
getAsset,
|
||||
resolveWidget,
|
||||
field,
|
||||
getRemarkPlugins
|
||||
} = this.props;
|
||||
if (value === null) {
|
||||
return null;
|
||||
}
|
||||
const html = (0, _serializers.markdownToHtml)(value, {
|
||||
getAsset,
|
||||
resolveWidget
|
||||
}, getRemarkPlugins === null || getRemarkPlugins === void 0 ? void 0 : getRemarkPlugins());
|
||||
const toRender = field !== null && field !== void 0 && field.get('sanitize_preview', false) ? _dompurify.default.sanitize(html) : html;
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.WidgetPreviewContainer, {
|
||||
dangerouslySetInnerHTML: {
|
||||
__html: toRender
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
_defineProperty(MarkdownPreview, "propTypes", {
|
||||
getAsset: _propTypes.default.func.isRequired,
|
||||
resolveWidget: _propTypes.default.func.isRequired,
|
||||
value: _propTypes.default.string
|
||||
});
|
||||
var _default = exports.default = MarkdownPreview;
|
||||
29
node_modules/decap-cms-widget-markdown/dist/esm/index.js
generated
vendored
Normal file
29
node_modules/decap-cms-widget-markdown/dist/esm/index.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.DecapCmsWidgetMarkdown = void 0;
|
||||
var _MarkdownControl = _interopRequireDefault(require("./MarkdownControl"));
|
||||
var _MarkdownPreview = _interopRequireDefault(require("./MarkdownPreview"));
|
||||
var _schema = _interopRequireDefault(require("./schema"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function Widget(opts = {}) {
|
||||
return _objectSpread({
|
||||
name: 'markdown',
|
||||
controlComponent: _MarkdownControl.default,
|
||||
previewComponent: _MarkdownPreview.default,
|
||||
schema: _schema.default
|
||||
}, opts);
|
||||
}
|
||||
const DecapCmsWidgetMarkdown = exports.DecapCmsWidgetMarkdown = {
|
||||
Widget,
|
||||
controlComponent: _MarkdownControl.default,
|
||||
previewComponent: _MarkdownPreview.default
|
||||
};
|
||||
var _default = exports.default = DecapCmsWidgetMarkdown;
|
||||
151
node_modules/decap-cms-widget-markdown/dist/esm/regexHelper.js
generated
vendored
Normal file
151
node_modules/decap-cms-widget-markdown/dist/esm/regexHelper.js
generated
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.combinePatterns = combinePatterns;
|
||||
exports.joinPatternSegments = joinPatternSegments;
|
||||
exports.replaceWhen = replaceWhen;
|
||||
var _last2 = _interopRequireDefault(require("lodash/last"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* Joins an array of regular expressions into a single expression, without
|
||||
* altering the received expressions.
|
||||
*/
|
||||
function joinPatternSegments(patterns) {
|
||||
return patterns.map(p => p.source).join('');
|
||||
}
|
||||
|
||||
/**
|
||||
* Combines an array of regular expressions into a single expression, wrapping
|
||||
* each in a non-capturing group and interposing alternation characters (|) so
|
||||
* that each expression is executed separately.
|
||||
*/
|
||||
function combinePatterns(patterns) {
|
||||
return patterns.map(p => `(?:${p.source})`).join('|');
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify substrings within a string if they match a (global) pattern. Can be
|
||||
* inverted to only modify non-matches.
|
||||
*
|
||||
* params:
|
||||
* matchPattern - regexp - a regular expression to check for matches
|
||||
* replaceFn - function - a replacement function that receives a matched
|
||||
* substring and returns a replacement substring
|
||||
* text - string - the string to process
|
||||
* invertMatchPattern - boolean - if true, non-matching substrings are modified
|
||||
* instead of matching substrings
|
||||
*/
|
||||
function replaceWhen(matchPattern, replaceFn, text, invertMatchPattern) {
|
||||
/**
|
||||
* Splits the string into an array of objects with the following shape:
|
||||
*
|
||||
* {
|
||||
* index: number - the index of the substring within the string
|
||||
* text: string - the substring
|
||||
* match: boolean - true if the substring matched `matchPattern`
|
||||
* }
|
||||
*
|
||||
* Loops through matches via recursion (`RegExp.exec` tracks the loop
|
||||
* internally).
|
||||
*/
|
||||
function split(exp, text, acc) {
|
||||
/**
|
||||
* Get the next match starting from the end of the last match or start of
|
||||
* string.
|
||||
*/
|
||||
const match = exp.exec(text);
|
||||
const lastEntry = (0, _last2.default)(acc);
|
||||
|
||||
/**
|
||||
* `match` will be null if there are no matches.
|
||||
*/
|
||||
if (!match) return acc;
|
||||
|
||||
/**
|
||||
* If the match is at the beginning of the input string, normalize to a data
|
||||
* object with the `match` flag set to `true`, and add to the accumulator.
|
||||
*/
|
||||
if (match.index === 0) {
|
||||
addSubstring(acc, 0, match[0], true);
|
||||
} else if (!lastEntry) {
|
||||
/**
|
||||
* If there are no entries in the accumulator, convert the substring before
|
||||
* the match to a data object (without the `match` flag set to true) and
|
||||
* push to the accumulator, followed by a data object for the matching
|
||||
* substring.
|
||||
*/
|
||||
addSubstring(acc, 0, match.input.slice(0, match.index));
|
||||
addSubstring(acc, match.index, match[0], true);
|
||||
} else if (match.index === lastEntry.index + lastEntry.text.length) {
|
||||
/**
|
||||
* If the last entry in the accumulator immediately preceded the current
|
||||
* matched substring in the original string, just add the data object for
|
||||
* the matching substring to the accumulator.
|
||||
*/
|
||||
addSubstring(acc, match.index, match[0], true);
|
||||
} else {
|
||||
/**
|
||||
* Convert the substring before the match to a data object (without the
|
||||
* `match` flag set to true), followed by a data object for the matching
|
||||
* substring.
|
||||
*/
|
||||
const nextIndex = lastEntry.index + lastEntry.text.length;
|
||||
const nextText = match.input.slice(nextIndex, match.index);
|
||||
addSubstring(acc, nextIndex, nextText);
|
||||
addSubstring(acc, match.index, match[0], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Continue executing the expression.
|
||||
*/
|
||||
return split(exp, text, acc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory for converting substrings to data objects and adding to an output
|
||||
* array.
|
||||
*/
|
||||
function addSubstring(arr, index, text, match = false) {
|
||||
arr.push({
|
||||
index,
|
||||
text,
|
||||
match
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Split the input string to an array of data objects, each representing a
|
||||
* matching or non-matching string.
|
||||
*/
|
||||
const acc = split(matchPattern, text, []);
|
||||
|
||||
/**
|
||||
* Process the trailing substring after the final match, if one exists.
|
||||
*/
|
||||
const lastEntry = (0, _last2.default)(acc);
|
||||
if (!lastEntry) return replaceFn(text);
|
||||
const nextIndex = lastEntry.index + lastEntry.text.length;
|
||||
if (text.length > nextIndex) {
|
||||
acc.push({
|
||||
index: nextIndex,
|
||||
text: text.slice(nextIndex)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Map the data objects in the accumulator to their string values, modifying
|
||||
* matched strings with the replacement function. Modifies non-matches if
|
||||
* `invertMatchPattern` is truthy.
|
||||
*/
|
||||
const replacedText = acc.map(entry => {
|
||||
const isMatch = invertMatchPattern ? !entry.match : entry.match;
|
||||
return isMatch ? replaceFn(entry.text) : entry.text;
|
||||
});
|
||||
|
||||
/**
|
||||
* Return the joined string.
|
||||
*/
|
||||
return replacedText.join('');
|
||||
}
|
||||
34
node_modules/decap-cms-widget-markdown/dist/esm/schema.js
generated
vendored
Normal file
34
node_modules/decap-cms-widget-markdown/dist/esm/schema.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _default = exports.default = {
|
||||
properties: {
|
||||
minimal: {
|
||||
type: 'boolean'
|
||||
},
|
||||
buttons: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string',
|
||||
enum: ['bold', 'italic', 'code', 'link', 'heading-one', 'heading-two', 'heading-three', 'heading-four', 'heading-five', 'heading-six', 'quote', 'bulleted-list', 'numbered-list']
|
||||
}
|
||||
},
|
||||
editor_components: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
modes: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string',
|
||||
enum: ['raw', 'rich_text']
|
||||
},
|
||||
minItems: 1
|
||||
}
|
||||
}
|
||||
};
|
||||
233
node_modules/decap-cms-widget-markdown/dist/esm/serializers/index.js
generated
vendored
Normal file
233
node_modules/decap-cms-widget-markdown/dist/esm/serializers/index.js
generated
vendored
Normal file
@@ -0,0 +1,233 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.htmlToSlate = htmlToSlate;
|
||||
exports.markdownToHtml = markdownToHtml;
|
||||
exports.markdownToRemark = markdownToRemark;
|
||||
exports.markdownToSlate = markdownToSlate;
|
||||
exports.remarkToMarkdown = remarkToMarkdown;
|
||||
exports.slateToMarkdown = slateToMarkdown;
|
||||
var _trimEnd2 = _interopRequireDefault(require("lodash/trimEnd"));
|
||||
var _unified = _interopRequireDefault(require("unified"));
|
||||
var _unistBuilder = _interopRequireDefault(require("unist-builder"));
|
||||
var _remarkParse = _interopRequireDefault(require("remark-parse"));
|
||||
var _remarkStringify = _interopRequireDefault(require("remark-stringify"));
|
||||
var _remarkRehype = _interopRequireDefault(require("remark-rehype"));
|
||||
var _rehypeStringify = _interopRequireDefault(require("rehype-stringify"));
|
||||
var _rehypeParse = _interopRequireDefault(require("rehype-parse"));
|
||||
var _rehypeRemark = _interopRequireDefault(require("rehype-remark"));
|
||||
var _remarkRehypeShortcodes = _interopRequireDefault(require("./remarkRehypeShortcodes"));
|
||||
var _rehypePaperEmoji = _interopRequireDefault(require("./rehypePaperEmoji"));
|
||||
var _remarkAssertParents = _interopRequireDefault(require("./remarkAssertParents"));
|
||||
var _remarkPaddedLinks = _interopRequireDefault(require("./remarkPaddedLinks"));
|
||||
var _remarkWrapHtml = _interopRequireDefault(require("./remarkWrapHtml"));
|
||||
var _remarkSlate = _interopRequireDefault(require("./remarkSlate"));
|
||||
var _remarkSquashReferences = _interopRequireDefault(require("./remarkSquashReferences"));
|
||||
var _remarkShortcodes = require("./remarkShortcodes");
|
||||
var _remarkEscapeMarkdownEntities = _interopRequireDefault(require("./remarkEscapeMarkdownEntities"));
|
||||
var _remarkStripTrailingBreaks = _interopRequireDefault(require("./remarkStripTrailingBreaks"));
|
||||
var _remarkAllowHtmlEntities = _interopRequireDefault(require("./remarkAllowHtmlEntities"));
|
||||
var _slateRemark = _interopRequireDefault(require("./slateRemark"));
|
||||
var _MarkdownControl = require("../MarkdownControl");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* This module contains all serializers for the Markdown widget.
|
||||
*
|
||||
* The value of a Markdown widget is transformed to various formats during
|
||||
* editing, and these formats are referenced throughout serializer source
|
||||
* documentation. Below is brief glossary of the formats used.
|
||||
*
|
||||
* - Markdown {string}
|
||||
* The stringified Markdown value. The value of the field is persisted
|
||||
* (stored) in this format, and the stringified value is also used when the
|
||||
* editor is in "raw" Markdown mode.
|
||||
*
|
||||
* - MDAST {object}
|
||||
* Also loosely referred to as "Remark". MDAST stands for MarkDown AST
|
||||
* (Abstract Syntax Tree), and is an object representation of a Markdown
|
||||
* document. Underneath, it's a Unist tree with a Markdown-specific schema.
|
||||
* MDAST syntax is a part of the Unified ecosystem, and powers the Remark
|
||||
* processor, so Remark plugins may be used.
|
||||
*
|
||||
* - HAST {object}
|
||||
* Also loosely referred to as "Rehype". HAST, similar to MDAST, is an object
|
||||
* representation of an HTML document. The field value takes this format
|
||||
* temporarily before the document is stringified to HTML.
|
||||
*
|
||||
* - HTML {string}
|
||||
* The field value is stringified to HTML for preview purposes - the HTML value
|
||||
* is never parsed, it is output only.
|
||||
*
|
||||
* - Slate Raw AST {object}
|
||||
* Slate's Raw AST is a very simple and unopinionated object representation of
|
||||
* a document in a Slate editor. We define our own Markdown-specific schema
|
||||
* for serialization to/from Slate's Raw AST and MDAST.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Deserialize a Markdown string to an MDAST.
|
||||
*/
|
||||
function markdownToRemark(markdown, remarkPlugins) {
|
||||
const processor = (0, _unified.default)().use(_remarkParse.default, {
|
||||
fences: true,
|
||||
commonmark: true
|
||||
}).use(markdownToRemarkRemoveTokenizers, {
|
||||
inlineTokenizers: ['url']
|
||||
}).use(_remarkShortcodes.remarkParseShortcodes, {
|
||||
plugins: (0, _MarkdownControl.getEditorComponents)()
|
||||
}).use(_remarkAllowHtmlEntities.default).use(_remarkSquashReferences.default).use(remarkPlugins);
|
||||
|
||||
/**
|
||||
* Parse the Markdown string input to an MDAST.
|
||||
*/
|
||||
const parsed = processor.parse(markdown);
|
||||
|
||||
/**
|
||||
* Further transform the MDAST with plugins.
|
||||
*/
|
||||
const result = processor.runSync(parsed);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove named tokenizers from the parser, effectively deactivating them.
|
||||
*/
|
||||
function markdownToRemarkRemoveTokenizers({
|
||||
inlineTokenizers
|
||||
}) {
|
||||
inlineTokenizers && inlineTokenizers.forEach(tokenizer => {
|
||||
delete this.Parser.prototype.inlineTokenizers[tokenizer];
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize an MDAST to a Markdown string.
|
||||
*/
|
||||
function remarkToMarkdown(obj, remarkPlugins) {
|
||||
/**
|
||||
* Rewrite the remark-stringify text visitor to simply return the text value,
|
||||
* without encoding or escaping any characters. This means we're completely
|
||||
* trusting the markdown that we receive.
|
||||
*/
|
||||
function remarkAllowAllText() {
|
||||
const Compiler = this.Compiler;
|
||||
const visitors = Compiler.prototype.visitors;
|
||||
visitors.text = node => node.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide an empty MDAST if no value is provided.
|
||||
*/
|
||||
const mdast = obj || (0, _unistBuilder.default)('root', [(0, _unistBuilder.default)('paragraph', [(0, _unistBuilder.default)('text', '')])]);
|
||||
const remarkToMarkdownPluginOpts = {
|
||||
commonmark: true,
|
||||
fences: true,
|
||||
listItemIndent: '1',
|
||||
/**
|
||||
* Use asterisk for everything, it's the most versatile. Eventually using
|
||||
* other characters should be an option.
|
||||
*/
|
||||
bullet: '*',
|
||||
emphasis: '*',
|
||||
strong: '*',
|
||||
rule: '-'
|
||||
};
|
||||
const processor = (0, _unified.default)().use({
|
||||
settings: remarkToMarkdownPluginOpts
|
||||
}).use(_remarkEscapeMarkdownEntities.default).use(_remarkStripTrailingBreaks.default).use(_remarkStringify.default).use(remarkAllowAllText).use((0, _remarkShortcodes.createRemarkShortcodeStringifier)({
|
||||
plugins: (0, _MarkdownControl.getEditorComponents)()
|
||||
})).use(remarkPlugins);
|
||||
|
||||
/**
|
||||
* Transform the MDAST with plugins.
|
||||
*/
|
||||
const processedMdast = processor.runSync(mdast);
|
||||
|
||||
/**
|
||||
* Serialize the MDAST to markdown.
|
||||
*/
|
||||
const markdown = processor.stringify(processedMdast).replace(/\r?/g, '');
|
||||
|
||||
/**
|
||||
* Return markdown with trailing whitespace removed.
|
||||
*/
|
||||
return (0, _trimEnd2.default)(markdown);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert Markdown to HTML.
|
||||
*/
|
||||
function markdownToHtml(markdown, {
|
||||
getAsset,
|
||||
resolveWidget,
|
||||
remarkPlugins = []
|
||||
} = {}) {
|
||||
const mdast = markdownToRemark(markdown, remarkPlugins);
|
||||
const hast = (0, _unified.default)().use(_remarkRehypeShortcodes.default, {
|
||||
plugins: (0, _MarkdownControl.getEditorComponents)(),
|
||||
getAsset,
|
||||
resolveWidget
|
||||
}).use(_remarkRehype.default, {
|
||||
allowDangerousHTML: true
|
||||
}).runSync(mdast);
|
||||
const html = (0, _unified.default)().use(_rehypeStringify.default, {
|
||||
allowDangerousHtml: true,
|
||||
allowDangerousCharacters: true,
|
||||
closeSelfClosing: true,
|
||||
entities: {
|
||||
useNamedReferences: true
|
||||
}
|
||||
}).stringify(hast);
|
||||
return html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deserialize an HTML string to Slate's Raw AST. Currently used for HTML
|
||||
* pastes.
|
||||
*/
|
||||
function htmlToSlate(html) {
|
||||
const hast = (0, _unified.default)().use(_rehypeParse.default, {
|
||||
fragment: true
|
||||
}).parse(html);
|
||||
const mdast = (0, _unified.default)().use(_rehypePaperEmoji.default).use(_rehypeRemark.default, {
|
||||
minify: false
|
||||
}).runSync(hast);
|
||||
const slateRaw = (0, _unified.default)().use(_remarkAssertParents.default).use(_remarkPaddedLinks.default).use(_remarkWrapHtml.default).use(_remarkSlate.default).runSync(mdast);
|
||||
return slateRaw;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert Markdown to Slate's Raw AST.
|
||||
*/
|
||||
function markdownToSlate(markdown, {
|
||||
voidCodeBlock,
|
||||
remarkPlugins = []
|
||||
} = {}) {
|
||||
const mdast = markdownToRemark(markdown, remarkPlugins);
|
||||
const slateRaw = (0, _unified.default)().use(_remarkWrapHtml.default).use(_remarkSlate.default, {
|
||||
voidCodeBlock
|
||||
}).runSync(mdast);
|
||||
return slateRaw.children;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a Slate Raw AST to Markdown.
|
||||
*
|
||||
* Requires shortcode plugins to parse shortcode nodes back to text.
|
||||
*
|
||||
* Note that Unified is not utilized for the conversion from Slate's Raw AST to
|
||||
* MDAST. The conversion is manual because Unified can only operate on Unist
|
||||
* trees.
|
||||
*/
|
||||
function slateToMarkdown(raw, {
|
||||
voidCodeBlock,
|
||||
remarkPlugins = []
|
||||
} = {}) {
|
||||
const mdast = (0, _slateRemark.default)(raw, {
|
||||
voidCodeBlock
|
||||
});
|
||||
const markdown = remarkToMarkdown(mdast, remarkPlugins);
|
||||
return markdown;
|
||||
}
|
||||
24
node_modules/decap-cms-widget-markdown/dist/esm/serializers/rehypePaperEmoji.js
generated
vendored
Normal file
24
node_modules/decap-cms-widget-markdown/dist/esm/serializers/rehypePaperEmoji.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = rehypePaperEmoji;
|
||||
/**
|
||||
* Dropbox Paper outputs emoji characters as images, and stores the actual
|
||||
* emoji character in a `data-emoji-ch` attribute on the image. This plugin
|
||||
* replaces the images with the emoji characters.
|
||||
*/
|
||||
function rehypePaperEmoji() {
|
||||
function transform(node) {
|
||||
if (node.tagName === 'img' && node.properties.dataEmojiCh) {
|
||||
return {
|
||||
type: 'text',
|
||||
value: node.properties.dataEmojiCh
|
||||
};
|
||||
}
|
||||
node.children = node.children ? node.children.map(transform) : node.children;
|
||||
return node;
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
55
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkAllowHtmlEntities.js
generated
vendored
Normal file
55
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkAllowHtmlEntities.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkAllowHtmlEntities;
|
||||
function remarkAllowHtmlEntities() {
|
||||
this.Parser.prototype.inlineTokenizers.text = text;
|
||||
|
||||
/**
|
||||
* This is a port of the `remark-parse` text tokenizer, adapted to exclude
|
||||
* HTML entity decoding.
|
||||
*/
|
||||
function text(eat, value, silent) {
|
||||
var self = this;
|
||||
var methods;
|
||||
var tokenizers;
|
||||
var index;
|
||||
var length;
|
||||
var subvalue;
|
||||
var position;
|
||||
var tokenizer;
|
||||
var name;
|
||||
var min;
|
||||
|
||||
/* istanbul ignore if - never used (yet) */
|
||||
if (silent) {
|
||||
return true;
|
||||
}
|
||||
methods = self.inlineMethods;
|
||||
length = methods.length;
|
||||
tokenizers = self.inlineTokenizers;
|
||||
index = -1;
|
||||
min = value.length;
|
||||
while (++index < length) {
|
||||
name = methods[index];
|
||||
if (name === 'text' || !tokenizers[name]) {
|
||||
continue;
|
||||
}
|
||||
tokenizer = tokenizers[name].locator;
|
||||
if (!tokenizer) {
|
||||
eat.file.fail('Missing locator: `' + name + '`');
|
||||
}
|
||||
position = tokenizer.call(self, value, 1);
|
||||
if (position !== -1 && position < min) {
|
||||
min = position;
|
||||
}
|
||||
}
|
||||
subvalue = value.slice(0, min);
|
||||
eat(subvalue)({
|
||||
type: 'text',
|
||||
value: subvalue
|
||||
});
|
||||
}
|
||||
}
|
||||
89
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkAssertParents.js
generated
vendored
Normal file
89
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkAssertParents.js
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkUnwrapInvalidNest;
|
||||
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
||||
var _nth2 = _interopRequireDefault(require("lodash/nth"));
|
||||
var _last2 = _interopRequireDefault(require("lodash/last"));
|
||||
var _concat2 = _interopRequireDefault(require("lodash/concat"));
|
||||
var _unistUtilVisitParents = _interopRequireDefault(require("unist-util-visit-parents"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* remarkUnwrapInvalidNest
|
||||
*
|
||||
* Some MDAST node types can only be nested within specific node types - for
|
||||
* example, a paragraph can't be nested within another paragraph, and a heading
|
||||
* can't be nested in a "strong" type node. This kind of invalid MDAST can be
|
||||
* generated by rehype-remark from invalid HTML.
|
||||
*
|
||||
* This plugin finds instances of invalid nesting, and unwraps the invalidly
|
||||
* nested nodes as far up the parental line as necessary, splitting parent nodes
|
||||
* along the way. The resulting node has no invalidly nested nodes, and all
|
||||
* validly nested nodes retain their ancestry. Nodes that are emptied as a
|
||||
* result of unnesting nodes are removed from the tree.
|
||||
*/
|
||||
function remarkUnwrapInvalidNest() {
|
||||
return transform;
|
||||
function transform(tree) {
|
||||
const invalidNest = findInvalidNest(tree);
|
||||
if (!invalidNest) return tree;
|
||||
splitTreeAtNest(tree, invalidNest);
|
||||
return transform(tree);
|
||||
}
|
||||
|
||||
/**
|
||||
* visitParents uses unist-util-visit-parent to check every node in the
|
||||
* tree while having access to every ancestor of the node. This is ideal
|
||||
* for determining whether a block node has an ancestor that should not
|
||||
* contain a block node. Note that it operates in a mutable fashion.
|
||||
*/
|
||||
function findInvalidNest(tree) {
|
||||
/**
|
||||
* Node types that are considered "blocks".
|
||||
*/
|
||||
const blocks = ['paragraph', 'heading', 'code', 'blockquote', 'list', 'table', 'thematicBreak'];
|
||||
|
||||
/**
|
||||
* Node types that can contain "block" nodes as direct children. We check
|
||||
*/
|
||||
const canContainBlocks = ['root', 'blockquote', 'listItem', 'tableCell'];
|
||||
let invalidNest;
|
||||
(0, _unistUtilVisitParents.default)(tree, (node, parents) => {
|
||||
const parentType = !(0, _isEmpty2.default)(parents) && (0, _last2.default)(parents).type;
|
||||
const isInvalidNest = blocks.includes(node.type) && !canContainBlocks.includes(parentType);
|
||||
if (isInvalidNest) {
|
||||
invalidNest = (0, _concat2.default)(parents, node);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return invalidNest;
|
||||
}
|
||||
function splitTreeAtNest(tree, nest) {
|
||||
const grandparent = (0, _nth2.default)(nest, -3) || tree;
|
||||
const parent = (0, _nth2.default)(nest, -2);
|
||||
const node = (0, _last2.default)(nest);
|
||||
const splitIndex = grandparent.children.indexOf(parent);
|
||||
const splitChildren = grandparent.children;
|
||||
const splitChildIndex = parent.children.indexOf(node);
|
||||
const childrenBefore = parent.children.slice(0, splitChildIndex);
|
||||
const childrenAfter = parent.children.slice(splitChildIndex + 1);
|
||||
const nodeBefore = !(0, _isEmpty2.default)(childrenBefore) && _objectSpread(_objectSpread({}, parent), {}, {
|
||||
children: childrenBefore
|
||||
});
|
||||
const nodeAfter = !(0, _isEmpty2.default)(childrenAfter) && _objectSpread(_objectSpread({}, parent), {}, {
|
||||
children: childrenAfter
|
||||
});
|
||||
const childrenToInsert = [nodeBefore, node, nodeAfter].filter(val => !(0, _isEmpty2.default)(val));
|
||||
const beforeChildren = splitChildren.slice(0, splitIndex);
|
||||
const afterChildren = splitChildren.slice(splitIndex + 1);
|
||||
const newChildren = (0, _concat2.default)(beforeChildren, childrenToInsert, afterChildren);
|
||||
grandparent.children = newChildren;
|
||||
}
|
||||
}
|
||||
271
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkEscapeMarkdownEntities.js
generated
vendored
Normal file
271
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkEscapeMarkdownEntities.js
generated
vendored
Normal file
@@ -0,0 +1,271 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkEscapeMarkdownEntities;
|
||||
var _map2 = _interopRequireDefault(require("lodash/map"));
|
||||
var _partial2 = _interopRequireDefault(require("lodash/partial"));
|
||||
var _flow2 = _interopRequireDefault(require("lodash/flow"));
|
||||
var _has2 = _interopRequireDefault(require("lodash/has"));
|
||||
var _regexHelper = require("../regexHelper");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* Reusable regular expressions segments.
|
||||
*/
|
||||
const patternSegments = {
|
||||
/**
|
||||
* Matches zero or more HTML attributes followed by the tag close bracket,
|
||||
* which may be prepended by zero or more spaces. The attributes can use
|
||||
* single or double quotes and may be prepended by zero or more spaces.
|
||||
*/
|
||||
htmlOpeningTagEnd: /(?: *\w+=(?:(?:"[^"]*")|(?:'[^']*')))* *>/
|
||||
};
|
||||
|
||||
/**
|
||||
* Patterns matching substrings that should not be escaped. Array values must be
|
||||
* joined before use.
|
||||
*/
|
||||
const nonEscapePatterns = {
|
||||
/**
|
||||
* HTML Tags
|
||||
*
|
||||
* Matches HTML opening tags and any attributes. Does not check for contents
|
||||
* between tags or closing tags.
|
||||
*/
|
||||
htmlTags: [
|
||||
/**
|
||||
* Matches the beginning of an HTML tag, excluding preformatted tag types.
|
||||
*/
|
||||
/<(?!pre|style|script)[\w]+/,
|
||||
/**
|
||||
* Matches attributes.
|
||||
*/
|
||||
patternSegments.htmlOpeningTagEnd],
|
||||
/**
|
||||
* Preformatted HTML Blocks
|
||||
*
|
||||
* Matches HTML blocks with preformatted content. The content of these blocks,
|
||||
* including the tags and attributes, should not be escaped at all.
|
||||
*/
|
||||
preformattedHtmlBlocks: [
|
||||
/**
|
||||
* Matches the names of tags known to have preformatted content. The capture
|
||||
* group is reused when matching the closing tag.
|
||||
*
|
||||
* NOTE: this pattern reuses a capture group, and could break if combined with
|
||||
* other expressions using capture groups.
|
||||
*/
|
||||
/<(pre|style|script)/,
|
||||
/**
|
||||
* Matches attributes.
|
||||
*/
|
||||
patternSegments.htmlOpeningTagEnd,
|
||||
/**
|
||||
* Allow zero or more of any character (including line breaks) between the
|
||||
* tags. Match lazily in case of subsequent blocks.
|
||||
*/
|
||||
/(.|[\n\r])*?/,
|
||||
/**
|
||||
* Match closing tag via first capture group.
|
||||
*/
|
||||
/<\/\1>/]
|
||||
};
|
||||
|
||||
/**
|
||||
* Escape patterns
|
||||
*
|
||||
* Each escape pattern matches a markdown entity and captures up to two
|
||||
* groups. These patterns must use one of the following formulas:
|
||||
*
|
||||
* - Single capture group followed by match content - /(...).../
|
||||
* The captured characters should be escaped and the remaining match should
|
||||
* remain unchanged.
|
||||
*
|
||||
* - Two capture groups surrounding matched content - /(...)...(...)/
|
||||
* The captured characters in both groups should be escaped and the matched
|
||||
* characters in between should remain unchanged.
|
||||
*/
|
||||
const escapePatterns = [
|
||||
/**
|
||||
* Emphasis/Bold - Asterisk
|
||||
*
|
||||
* Match strings surrounded by one or more asterisks on both sides.
|
||||
*/
|
||||
/(\*+)[^*]*(\1)/g,
|
||||
/**
|
||||
* Emphasis - Underscore
|
||||
*
|
||||
* Match strings surrounded by a single underscore on both sides followed by
|
||||
* a word boundary. Remark disregards whether a word boundary exists at the
|
||||
* beginning of an emphasis node.
|
||||
*/
|
||||
/(_)[^_]+(_)\b/g,
|
||||
/**
|
||||
* Bold - Underscore
|
||||
*
|
||||
* Match strings surrounded by multiple underscores on both sides. Remark
|
||||
* disregards the absence of word boundaries on either side of a bold node.
|
||||
*/
|
||||
/(_{2,})[^_]*(\1)/g,
|
||||
/**
|
||||
* Strikethrough
|
||||
*
|
||||
* Match strings surrounded by multiple tildes on both sides.
|
||||
*/
|
||||
/(~+)[^~]*(\1)/g,
|
||||
/**
|
||||
* Inline Code
|
||||
*
|
||||
* Match strings surrounded by backticks.
|
||||
*/
|
||||
/(`+)[^`]*(\1)/g,
|
||||
/**
|
||||
* Links and Images
|
||||
*
|
||||
* Match strings surrounded by square brackets, except when the opening
|
||||
* bracket is followed by a caret. This could be improved to specifically
|
||||
* match only the exact syntax of each covered entity, but doing so through
|
||||
* current approach would incur a considerable performance penalty.
|
||||
*/
|
||||
/(\[(?!\^)+)[^\]]*]/g];
|
||||
|
||||
/**
|
||||
* Generate new non-escape expression. The non-escape expression matches
|
||||
* substrings whose contents should not be processed for escaping.
|
||||
*/
|
||||
const joinedNonEscapePatterns = (0, _map2.default)(nonEscapePatterns, pattern => {
|
||||
return new RegExp((0, _regexHelper.joinPatternSegments)(pattern));
|
||||
});
|
||||
const nonEscapePattern = (0, _regexHelper.combinePatterns)(joinedNonEscapePatterns);
|
||||
|
||||
/**
|
||||
* Create chain of successive escape functions for various markdown entities.
|
||||
*/
|
||||
const escapeFunctions = escapePatterns.map(pattern => (0, _partial2.default)(escapeDelimiters, pattern));
|
||||
const escapeAll = (0, _flow2.default)(escapeFunctions);
|
||||
|
||||
/**
|
||||
* Executes both the `escapeCommonChars` and `escapeLeadingChars` functions.
|
||||
*/
|
||||
function escapeAllChars(text) {
|
||||
const partiallyEscapedMarkdown = escapeCommonChars(text);
|
||||
return escapeLeadingChars(partiallyEscapedMarkdown);
|
||||
}
|
||||
|
||||
/**
|
||||
* escapeLeadingChars
|
||||
*
|
||||
* Handles escaping for characters that must be positioned at the beginning of
|
||||
* the string, such as headers and list items.
|
||||
*
|
||||
* Escapes '#', '*', '-', '>', '=', '|', and sequences of 3+ backticks or 4+
|
||||
* spaces when found at the beginning of a string, preceded by zero or more
|
||||
* whitespace characters.
|
||||
*/
|
||||
function escapeLeadingChars(text) {
|
||||
return text.replace(/^\s*([-#*>=|]| {4,}|`{3,})/, '$`\\$1');
|
||||
}
|
||||
|
||||
/**
|
||||
* escapeCommonChars
|
||||
*
|
||||
* Escapes active markdown entities. See escape pattern groups for details on
|
||||
* which entities are replaced.
|
||||
*/
|
||||
function escapeCommonChars(text) {
|
||||
/**
|
||||
* Generate new non-escape expression (must happen at execution time because
|
||||
* we use `RegExp.exec`, which tracks it's own state internally).
|
||||
*/
|
||||
const nonEscapeExpression = new RegExp(nonEscapePattern, 'gm');
|
||||
|
||||
/**
|
||||
* Use `replaceWhen` to escape markdown entities only within substrings that
|
||||
* are eligible for escaping.
|
||||
*/
|
||||
return (0, _regexHelper.replaceWhen)(nonEscapeExpression, escapeAll, text, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* escapeDelimiters
|
||||
*
|
||||
* Executes `String.replace` for a given pattern, but only on the first two
|
||||
* capture groups. Specifically intended for escaping opening (and optionally
|
||||
* closing) markdown entities without escaping the content in between.
|
||||
*/
|
||||
function escapeDelimiters(pattern, text) {
|
||||
return text.replace(pattern, (match, start, end) => {
|
||||
const hasEnd = typeof end === 'string';
|
||||
const matchSliceEnd = hasEnd ? match.length - end.length : match.length;
|
||||
const content = match.slice(start.length, matchSliceEnd);
|
||||
return `${escape(start)}${content}${hasEnd ? escape(end) : ''}`;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* escape
|
||||
*
|
||||
* Simple replacement function for escaping markdown entities. Prepends every
|
||||
* character in the received string with a backslash.
|
||||
*/
|
||||
function escape(delim) {
|
||||
let result = '';
|
||||
for (const char of delim) {
|
||||
result += `\\${char}`;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* A Remark plugin for escaping markdown entities.
|
||||
*
|
||||
* When markdown entities are entered in raw markdown, they don't appear as
|
||||
* characters in the resulting AST; for example, dashes surrounding a piece of
|
||||
* text cause the text to be inserted in a special node type, but the asterisks
|
||||
* themselves aren't present as text. Therefore, we generally don't expect to
|
||||
* encounter markdown characters in text nodes.
|
||||
*
|
||||
* However, the CMS visual editor does not interpret markdown characters, and
|
||||
* users will expect these characters to be represented literally. In that case,
|
||||
* we need to escape them, otherwise they'll be interpreted during
|
||||
* stringification.
|
||||
*/
|
||||
function remarkEscapeMarkdownEntities() {
|
||||
function transform(node, index) {
|
||||
/**
|
||||
* Shortcode nodes will intentionally inject markdown entities in text node
|
||||
* children not be escaped.
|
||||
*/
|
||||
if ((0, _has2.default)(node.data, 'shortcode')) return node;
|
||||
const children = node.children ? {
|
||||
children: node.children.map(transform)
|
||||
} : {};
|
||||
|
||||
/**
|
||||
* Escape characters in text and html nodes only. We store a lot of normal
|
||||
* text in html nodes to keep Remark from escaping html entities.
|
||||
*/
|
||||
if (['text', 'html'].includes(node.type) && node.value) {
|
||||
/**
|
||||
* Escape all characters if this is the first child node, otherwise only
|
||||
* common characters.
|
||||
*/
|
||||
const value = index === 0 ? escapeAllChars(node.value) : escapeCommonChars(node.value);
|
||||
return _objectSpread(_objectSpread({}, node), {}, {
|
||||
value
|
||||
}, children);
|
||||
}
|
||||
|
||||
/**
|
||||
* Always return nodes with recursively mapped children.
|
||||
*/
|
||||
return _objectSpread(_objectSpread({}, node), children);
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
41
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkImagesToText.js
generated
vendored
Normal file
41
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkImagesToText.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkImagesToText;
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* Images must be parsed as shortcodes for asset proxying. This plugin converts
|
||||
* MDAST image nodes back to text to allow shortcode pattern matching. Note that
|
||||
* this transformation only occurs for images that are the sole child of a top
|
||||
* level paragraph - any other image is left alone and treated as an inline
|
||||
* image.
|
||||
*/
|
||||
function remarkImagesToText() {
|
||||
return transform;
|
||||
function transform(node) {
|
||||
const children = node.children.map(child => {
|
||||
if (child.type === 'paragraph' && child.children.length === 1 && child.children[0].type === 'image') {
|
||||
const {
|
||||
alt,
|
||||
url,
|
||||
title
|
||||
} = child.children[0];
|
||||
const value = ``;
|
||||
child.children = [{
|
||||
type: 'text',
|
||||
value
|
||||
}];
|
||||
}
|
||||
return child;
|
||||
});
|
||||
return _objectSpread(_objectSpread({}, node), {}, {
|
||||
children
|
||||
});
|
||||
}
|
||||
}
|
||||
127
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkPaddedLinks.js
generated
vendored
Normal file
127
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkPaddedLinks.js
generated
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkPaddedLinks;
|
||||
var _flatMap2 = _interopRequireDefault(require("lodash/flatMap"));
|
||||
var _trimEnd2 = _interopRequireDefault(require("lodash/trimEnd"));
|
||||
var _trimStart2 = _interopRequireDefault(require("lodash/trimStart"));
|
||||
var _endsWith2 = _interopRequireDefault(require("lodash/endsWith"));
|
||||
var _startsWith2 = _interopRequireDefault(require("lodash/startsWith"));
|
||||
var _findLast2 = _interopRequireDefault(require("lodash/findLast"));
|
||||
var _find2 = _interopRequireDefault(require("lodash/find"));
|
||||
var _unistBuilder = _interopRequireDefault(require("unist-builder"));
|
||||
var _mdastUtilToString = _interopRequireDefault(require("mdast-util-to-string"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* Convert leading and trailing spaces in a link to single spaces outside of the
|
||||
* link. MDASTs derived from pasted Google Docs HTML require this treatment.
|
||||
*
|
||||
* Note that, because we're potentially replacing characters in a link node's
|
||||
* children with character's in a link node's siblings, we have to operate on a
|
||||
* parent (link) node and its children at once, rather than just processing
|
||||
* children one at a time.
|
||||
*/
|
||||
function remarkPaddedLinks() {
|
||||
function transform(node) {
|
||||
/**
|
||||
* Because we're operating on link nodes and their children at once, we can
|
||||
* exit if the current node has no children.
|
||||
*/
|
||||
if (!node.children) return node;
|
||||
|
||||
/**
|
||||
* Process a node's children if any of them are links. If a node is a link
|
||||
* with leading or trailing spaces, we'll get back an array of nodes instead
|
||||
* of a single node, so we use `flatMap` to keep those nodes as siblings
|
||||
* with the other children.
|
||||
*
|
||||
* If performance improvements are found desirable, we could change this to
|
||||
* only pass in the link nodes instead of the entire array of children, but
|
||||
* this seems unlikely to produce a noticeable perf gain.
|
||||
*/
|
||||
const hasLinkChild = node.children.some(child => child.type === 'link');
|
||||
const processedChildren = hasLinkChild ? (0, _flatMap2.default)(node.children, transformChildren) : node.children;
|
||||
|
||||
/**
|
||||
* Run all children through the transform recursively.
|
||||
*/
|
||||
const children = processedChildren.map(transform);
|
||||
return _objectSpread(_objectSpread({}, node), {}, {
|
||||
children
|
||||
});
|
||||
}
|
||||
function transformChildren(node) {
|
||||
if (node.type !== 'link') return node;
|
||||
|
||||
/**
|
||||
* Get the node's complete string value, check for leading and trailing
|
||||
* whitespace, and get nodes from each edge where whitespace is found.
|
||||
*/
|
||||
const text = (0, _mdastUtilToString.default)(node);
|
||||
const leadingWhitespaceNode = (0, _startsWith2.default)(text, ' ') && getEdgeTextChild(node);
|
||||
const trailingWhitespaceNode = (0, _endsWith2.default)(text, ' ') && getEdgeTextChild(node, true);
|
||||
if (!leadingWhitespaceNode && !trailingWhitespaceNode) return node;
|
||||
|
||||
/**
|
||||
* Trim the edge nodes in place. Unified handles everything in a mutable
|
||||
* fashion, so it's often simpler to do the same when working with Unified
|
||||
* ASTs.
|
||||
*/
|
||||
if (leadingWhitespaceNode) {
|
||||
leadingWhitespaceNode.value = (0, _trimStart2.default)(leadingWhitespaceNode.value);
|
||||
}
|
||||
if (trailingWhitespaceNode) {
|
||||
trailingWhitespaceNode.value = (0, _trimEnd2.default)(trailingWhitespaceNode.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an array of nodes. The first and last child will either be `false`
|
||||
* or a text node. We filter out the false values before returning.
|
||||
*/
|
||||
const nodes = [leadingWhitespaceNode && (0, _unistBuilder.default)('text', ' '), node, trailingWhitespaceNode && (0, _unistBuilder.default)('text', ' ')];
|
||||
return nodes.filter(val => val);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first or last non-blank text child of a node, regardless of
|
||||
* nesting. If `end` is truthy, get the last node, otherwise first.
|
||||
*/
|
||||
function getEdgeTextChild(node, end) {
|
||||
/**
|
||||
* This was changed from a ternary to a long form if due to issues with istanbul's instrumentation and babel's code
|
||||
* generation.
|
||||
* TODO: watch https://github.com/istanbuljs/babel-plugin-istanbul/issues/95
|
||||
* when it is resolved then revert to ```const findFn = end ? findLast : find;```
|
||||
*/
|
||||
let findFn;
|
||||
if (end) {
|
||||
findFn = _findLast2.default;
|
||||
} else {
|
||||
findFn = _find2.default;
|
||||
}
|
||||
let edgeChildWithValue;
|
||||
setEdgeChildWithValue(node);
|
||||
return edgeChildWithValue;
|
||||
|
||||
/**
|
||||
* searchChildren checks a node and all of it's children deeply to find a
|
||||
* non-blank text value. When the text node is found, we set it in an outside
|
||||
* variable, as it may be deep in the tree and therefore wouldn't be returned
|
||||
* by `find`/`findLast`.
|
||||
*/
|
||||
function setEdgeChildWithValue(child) {
|
||||
if (!edgeChildWithValue && child.value) {
|
||||
edgeChildWithValue = child;
|
||||
}
|
||||
findFn(child.children, setEdgeChildWithValue);
|
||||
}
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
93
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkRehypeShortcodes.js
generated
vendored
Normal file
93
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkRehypeShortcodes.js
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkToRehypeShortcodes;
|
||||
var _has2 = _interopRequireDefault(require("lodash/has"));
|
||||
var _map2 = _interopRequireDefault(require("lodash/map"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _server = require("react-dom/server");
|
||||
var _unistBuilder = _interopRequireDefault(require("unist-builder"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* This plugin doesn't actually transform Remark (MDAST) nodes to Rehype
|
||||
* (HAST) nodes, but rather, it prepares an MDAST shortcode node for HAST
|
||||
* conversion by replacing the shortcode text with stringified HTML for
|
||||
* previewing the shortcode output.
|
||||
*/
|
||||
function remarkToRehypeShortcodes({
|
||||
plugins,
|
||||
getAsset,
|
||||
resolveWidget
|
||||
}) {
|
||||
return transform;
|
||||
function transform(root) {
|
||||
const transformedChildren = (0, _map2.default)(root.children, processShortcodes);
|
||||
return _objectSpread(_objectSpread({}, root), {}, {
|
||||
children: transformedChildren
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Mapping function to transform nodes that contain shortcodes.
|
||||
*/
|
||||
function processShortcodes(node) {
|
||||
/**
|
||||
* If the node doesn't contain shortcode data, return the original node.
|
||||
*/
|
||||
if (!(0, _has2.default)(node, ['data', 'shortcode'])) return node;
|
||||
|
||||
/**
|
||||
* Get shortcode data from the node, and retrieve the matching plugin by
|
||||
* key.
|
||||
*/
|
||||
const {
|
||||
shortcode,
|
||||
shortcodeData
|
||||
} = node.data;
|
||||
const plugin = plugins.get(shortcode);
|
||||
|
||||
/**
|
||||
* Run the shortcode plugin's `toPreview` method, which will return either
|
||||
* an HTML string or a React component. If a React component is returned,
|
||||
* render it to an HTML string.
|
||||
*/
|
||||
const value = getPreview(plugin, shortcodeData);
|
||||
const valueHtml = typeof value === 'string' ? value : (0, _server.renderToString)(value);
|
||||
|
||||
/**
|
||||
* Return a new 'html' type node containing the shortcode preview markup.
|
||||
*/
|
||||
const textNode = (0, _unistBuilder.default)('html', valueHtml);
|
||||
const children = [textNode];
|
||||
return _objectSpread(_objectSpread({}, node), {}, {
|
||||
children
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the shortcode preview component.
|
||||
*/
|
||||
function getPreview(plugin, shortcodeData) {
|
||||
const {
|
||||
toPreview,
|
||||
widget,
|
||||
fields
|
||||
} = plugin;
|
||||
if (toPreview) {
|
||||
return toPreview(shortcodeData, getAsset, fields);
|
||||
}
|
||||
const preview = resolveWidget(widget);
|
||||
return /*#__PURE__*/_react.default.createElement(preview.preview, {
|
||||
value: shortcodeData,
|
||||
field: plugin,
|
||||
getAsset
|
||||
});
|
||||
}
|
||||
}
|
||||
123
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkShortcodes.js
generated
vendored
Normal file
123
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkShortcodes.js
generated
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.createRemarkShortcodeStringifier = createRemarkShortcodeStringifier;
|
||||
exports.getLinesWithOffsets = getLinesWithOffsets;
|
||||
exports.remarkParseShortcodes = remarkParseShortcodes;
|
||||
function remarkParseShortcodes({
|
||||
plugins
|
||||
}) {
|
||||
const Parser = this.Parser;
|
||||
const tokenizers = Parser.prototype.blockTokenizers;
|
||||
const methods = Parser.prototype.blockMethods;
|
||||
tokenizers.shortcode = createShortcodeTokenizer({
|
||||
plugins
|
||||
});
|
||||
methods.unshift('shortcode');
|
||||
}
|
||||
function getLinesWithOffsets(value) {
|
||||
const SEPARATOR = '\n\n';
|
||||
const splitted = value.split(SEPARATOR);
|
||||
const trimmedLines = splitted.reduce((acc, line) => {
|
||||
const {
|
||||
start: previousLineStart,
|
||||
originalLength: previousLineOriginalLength
|
||||
} = acc[acc.length - 1];
|
||||
return [...acc, {
|
||||
line: line.trimEnd(),
|
||||
start: previousLineStart + previousLineOriginalLength + SEPARATOR.length,
|
||||
originalLength: line.length
|
||||
}];
|
||||
}, [{
|
||||
start: -SEPARATOR.length,
|
||||
originalLength: 0
|
||||
}]).slice(1).map(({
|
||||
line,
|
||||
start
|
||||
}) => ({
|
||||
line,
|
||||
start
|
||||
}));
|
||||
return trimmedLines;
|
||||
}
|
||||
function matchFromLines({
|
||||
trimmedLines,
|
||||
plugin
|
||||
}) {
|
||||
for (const {
|
||||
line,
|
||||
start
|
||||
} of trimmedLines) {
|
||||
const match = line.match(plugin.pattern);
|
||||
if (match) {
|
||||
match.index += start;
|
||||
return match;
|
||||
}
|
||||
}
|
||||
}
|
||||
function createShortcodeTokenizer({
|
||||
plugins
|
||||
}) {
|
||||
return function tokenizeShortcode(eat, value, silent) {
|
||||
// Plugin patterns may rely on `^` and `$` tokens, even if they don't
|
||||
// use the multiline flag. To support this, we fall back to searching
|
||||
// through each line individually, trimming trailing whitespace and
|
||||
// newlines, if we don't initially match on a pattern. We keep track of
|
||||
// the starting position of each line so that we can sort correctly
|
||||
// across the full multiline matches.
|
||||
const trimmedLines = getLinesWithOffsets(value);
|
||||
|
||||
// Attempt to find a regex match for each plugin's pattern, and then
|
||||
// select the first by its occurrence in `value`. This ensures we won't
|
||||
// skip a plugin that occurs later in the plugin registry, but earlier
|
||||
// in the `value`.
|
||||
const [{
|
||||
plugin,
|
||||
match
|
||||
} = {}] = plugins.toArray().map(plugin => ({
|
||||
match: value.match(plugin.pattern) || matchFromLines({
|
||||
trimmedLines,
|
||||
plugin
|
||||
}),
|
||||
plugin
|
||||
})).filter(({
|
||||
match
|
||||
}) => !!match).sort((a, b) => a.match.index - b.match.index);
|
||||
if (match) {
|
||||
if (silent) {
|
||||
return true;
|
||||
}
|
||||
const shortcodeData = plugin.fromBlock(match);
|
||||
try {
|
||||
return eat(match[0])({
|
||||
type: 'shortcode',
|
||||
data: {
|
||||
shortcode: plugin.id,
|
||||
shortcodeData
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn(`Sent invalid data to remark. Plugin: ${plugin.id}. Value: ${match[0]}. Data: ${JSON.stringify(shortcodeData)}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function createRemarkShortcodeStringifier({
|
||||
plugins
|
||||
}) {
|
||||
return function remarkStringifyShortcodes() {
|
||||
const Compiler = this.Compiler;
|
||||
const visitors = Compiler.prototype.visitors;
|
||||
visitors.shortcode = shortcode;
|
||||
function shortcode(node) {
|
||||
const {
|
||||
data
|
||||
} = node;
|
||||
const plugin = plugins.find(plugin => data.shortcode === plugin.id);
|
||||
return plugin.toBlock(data.shortcodeData);
|
||||
}
|
||||
};
|
||||
}
|
||||
527
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkSlate.js
generated
vendored
Normal file
527
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkSlate.js
generated
vendored
Normal file
@@ -0,0 +1,527 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkToSlate;
|
||||
exports.mergeAdjacentTexts = mergeAdjacentTexts;
|
||||
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
||||
var _flatten2 = _interopRequireDefault(require("lodash/flatten"));
|
||||
var _map2 = _interopRequireDefault(require("lodash/map"));
|
||||
var _flatMap2 = _interopRequireDefault(require("lodash/flatMap"));
|
||||
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
||||
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* Map of MDAST node types to Slate node types.
|
||||
*/
|
||||
const typeMap = {
|
||||
root: 'root',
|
||||
paragraph: 'paragraph',
|
||||
blockquote: 'quote',
|
||||
code: 'code-block',
|
||||
listItem: 'list-item',
|
||||
table: 'table',
|
||||
tableRow: 'table-row',
|
||||
tableCell: 'table-cell',
|
||||
thematicBreak: 'thematic-break',
|
||||
link: 'link',
|
||||
image: 'image',
|
||||
shortcode: 'shortcode'
|
||||
};
|
||||
|
||||
/**
|
||||
* Map of MDAST node types to Slate mark types.
|
||||
*/
|
||||
const markMap = {
|
||||
strong: 'bold',
|
||||
emphasis: 'italic',
|
||||
delete: 'delete',
|
||||
inlineCode: 'code'
|
||||
};
|
||||
function isText(node) {
|
||||
return !!node.text;
|
||||
}
|
||||
function isMarksEqual(node1, node2) {
|
||||
return (0, _isEqual2.default)(node1.marks, node2.marks);
|
||||
}
|
||||
function mergeAdjacentTexts(children) {
|
||||
if (children.length <= 0) {
|
||||
return children;
|
||||
}
|
||||
const mergedChildren = [];
|
||||
let isMerging = false;
|
||||
let current;
|
||||
for (let i = 0; i < children.length - 1; i++) {
|
||||
if (!isMerging) {
|
||||
current = children[i];
|
||||
}
|
||||
const next = children[i + 1];
|
||||
if (isText(current) && isText(next) && isMarksEqual(current, next)) {
|
||||
isMerging = true;
|
||||
current = _objectSpread(_objectSpread({}, current), {}, {
|
||||
text: `${current.text}${next.text}`
|
||||
});
|
||||
} else {
|
||||
mergedChildren.push(current);
|
||||
isMerging = false;
|
||||
}
|
||||
}
|
||||
if (isMerging) {
|
||||
mergedChildren.push(current);
|
||||
} else {
|
||||
mergedChildren.push(children[children.length - 1]);
|
||||
}
|
||||
return mergedChildren;
|
||||
}
|
||||
|
||||
/**
|
||||
* A Remark plugin for converting an MDAST to Slate Raw AST. Remark plugins
|
||||
* return a `transformNode` function that receives the MDAST as it's first argument.
|
||||
*/
|
||||
function remarkToSlate({
|
||||
voidCodeBlock
|
||||
} = {}) {
|
||||
return transformNode;
|
||||
function transformNode(node) {
|
||||
/**
|
||||
* Call `transformNode` recursively on child nodes.
|
||||
*
|
||||
* If a node returns a falsey value, filter it out. Some nodes do not
|
||||
* translate from MDAST to Slate, such as definitions for link/image
|
||||
* references or footnotes.
|
||||
*/
|
||||
let children = !['strong', 'emphasis', 'delete'].includes(node.type) && !(0, _isEmpty2.default)(node.children) && (0, _flatMap2.default)(node.children, transformNode).filter(val => val);
|
||||
if (Array.isArray(children)) {
|
||||
// Merge adjacent text nodes with the same marks to conform to slate schema
|
||||
children = mergeAdjacentTexts(children);
|
||||
}
|
||||
|
||||
/**
|
||||
* Run individual nodes through the conversion factory.
|
||||
*/
|
||||
const output = convertNode(node, children || undefined);
|
||||
return output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add nodes to a parent node only if `nodes` is truthy.
|
||||
*/
|
||||
function addNodes(parent, nodes) {
|
||||
return nodes ? _objectSpread(_objectSpread({}, parent), {}, {
|
||||
children: nodes
|
||||
}) : parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Slate Block node.
|
||||
*/
|
||||
function createBlock(type, nodes, props = {}) {
|
||||
if (!(0, _isArray2.default)(nodes)) {
|
||||
props = nodes;
|
||||
nodes = undefined;
|
||||
}
|
||||
|
||||
// Ensure block nodes have at least one text child to conform to slate schema
|
||||
const children = (0, _isEmpty2.default)(nodes) ? [createText('')] : nodes;
|
||||
const node = _objectSpread({
|
||||
type
|
||||
}, props);
|
||||
return addNodes(node, children);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Slate Inline node.
|
||||
*/
|
||||
function createInline(type, props = {}, nodes) {
|
||||
const node = _objectSpread({
|
||||
type
|
||||
}, props);
|
||||
|
||||
// Ensure inline nodes have at least one text child to conform to slate schema
|
||||
const children = (0, _isEmpty2.default)(nodes) ? [createText('')] : nodes;
|
||||
return addNodes(node, children);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Slate Raw text node.
|
||||
*/
|
||||
function createText(node) {
|
||||
const newNode = {};
|
||||
if (typeof node === 'string') {
|
||||
return _objectSpread(_objectSpread({}, newNode), {}, {
|
||||
text: node
|
||||
});
|
||||
}
|
||||
const {
|
||||
text,
|
||||
marks
|
||||
} = node;
|
||||
return normalizeMarks(_objectSpread(_objectSpread({}, newNode), {}, {
|
||||
text,
|
||||
marks
|
||||
}));
|
||||
}
|
||||
function processMarkChild(childNode, marks) {
|
||||
switch (childNode.type) {
|
||||
/**
|
||||
* If a text node is a direct child of the current node, it should be
|
||||
* set aside as a text, and all marks that have been collected in the
|
||||
* `marks` array should apply to that specific text.
|
||||
*/
|
||||
case 'html':
|
||||
case 'text':
|
||||
return _objectSpread(_objectSpread({}, convertNode(childNode)), {}, {
|
||||
marks
|
||||
});
|
||||
|
||||
/**
|
||||
* MDAST inline code nodes don't have children, just a text value, similar
|
||||
* to a text node, so it receives the same treatment as a text node, but we
|
||||
* first add the inline code mark to the marks array.
|
||||
*/
|
||||
case 'inlineCode':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, convertNode(childNode)), {}, {
|
||||
marks: [...marks, {
|
||||
type: 'code'
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Process nested style nodes. The recursive results should be pushed into
|
||||
* the texts array. This way, every MDAST nested text structure becomes a
|
||||
* flat array of texts that can serve as the value of a single Slate Raw
|
||||
* text node.
|
||||
*/
|
||||
case 'strong':
|
||||
case 'emphasis':
|
||||
case 'delete':
|
||||
return processMarkNode(childNode, marks);
|
||||
case 'link':
|
||||
{
|
||||
const nodes = (0, _map2.default)(childNode.children, child => normalizeMarks(processMarkChild(child, marks)));
|
||||
const result = convertNode(childNode, (0, _flatten2.default)(nodes));
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remaining nodes simply need mark data added to them, and to then be
|
||||
* added into the cumulative children array.
|
||||
*/
|
||||
default:
|
||||
return transformNode(_objectSpread(_objectSpread({}, childNode), {}, {
|
||||
data: _objectSpread(_objectSpread({}, childNode.data), {}, {
|
||||
marks
|
||||
})
|
||||
}));
|
||||
}
|
||||
}
|
||||
function processMarkNode(node, parentMarks = []) {
|
||||
/**
|
||||
* Add the current node's mark type to the marks collected from parent
|
||||
* mark nodes, if any.
|
||||
*/
|
||||
const markType = markMap[node.type];
|
||||
const marks = markType ? [...parentMarks.filter(({
|
||||
type
|
||||
}) => type !== markType), {
|
||||
type: markType
|
||||
}] : parentMarks;
|
||||
const children = (0, _flatMap2.default)(node.children, child => normalizeMarks(processMarkChild(child, marks)));
|
||||
return children;
|
||||
}
|
||||
function normalizeMarks(node) {
|
||||
if (node.marks) {
|
||||
node.marks.forEach(mark => {
|
||||
node[mark.type] = true;
|
||||
});
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a single MDAST node to a Slate Raw node. Uses local node factories
|
||||
* that mimic the unist-builder function utilized in the slateRemark
|
||||
* transformer.
|
||||
*/
|
||||
function convertNode(node, nodes) {
|
||||
switch (node.type) {
|
||||
/**
|
||||
* General
|
||||
*
|
||||
* Convert simple cases that only require a type and children, with no
|
||||
* additional properties.
|
||||
*/
|
||||
case 'paragraph':
|
||||
case 'blockquote':
|
||||
case 'tableRow':
|
||||
case 'tableCell':
|
||||
{
|
||||
return createBlock(typeMap[node.type], nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Root element
|
||||
* If the root node is empty, we need to add a paragraph node to it.
|
||||
*/
|
||||
case 'root':
|
||||
{
|
||||
const children = (0, _isEmpty2.default)(nodes) ? [createBlock('paragraph')] : nodes;
|
||||
return createBlock(typeMap[node.type], children);
|
||||
}
|
||||
|
||||
/**
|
||||
* List Items
|
||||
*
|
||||
* Markdown list items can be empty, but a list item in the Slate schema
|
||||
* should at least have an empty paragraph node.
|
||||
*/
|
||||
case 'listItem':
|
||||
{
|
||||
const children = (0, _isEmpty2.default)(nodes) ? [createBlock('paragraph')] : nodes;
|
||||
return createBlock(typeMap[node.type], children);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcodes
|
||||
*
|
||||
* Shortcode nodes are represented as "void" blocks in the Slate AST. They
|
||||
* maintain the same data as MDAST shortcode nodes. Slate void blocks must
|
||||
* contain a blank text node.
|
||||
*/
|
||||
case 'shortcode':
|
||||
{
|
||||
const nodes = [createText('')];
|
||||
const data = _objectSpread(_objectSpread({}, node.data), {}, {
|
||||
id: node.data.shortcode,
|
||||
shortcodeNew: true
|
||||
});
|
||||
return createBlock(typeMap[node.type], nodes, {
|
||||
data
|
||||
});
|
||||
}
|
||||
case 'text':
|
||||
{
|
||||
const text = node.value;
|
||||
return createText(text);
|
||||
}
|
||||
|
||||
/**
|
||||
* HTML
|
||||
*
|
||||
* HTML nodes contain plain text like text nodes, except they only contain
|
||||
* HTML. Our serialization results in non-HTML being placed in HTML nodes
|
||||
* sometimes to ensure that we're never escaping HTML from the rich text
|
||||
* editor. We do not replace line feeds in HTML because the HTML is raw
|
||||
* in the rich text editor, so the writer knows they're writing HTML, and
|
||||
* should expect soft breaks to be visually absent in the rendered HTML.
|
||||
*/
|
||||
case 'html':
|
||||
{
|
||||
return createText(node.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inline Code
|
||||
*
|
||||
* Inline code nodes from an MDAST are represented in our Slate schema as
|
||||
* text nodes with a "code" mark. We manually create the text containing
|
||||
* the inline code value and a "code" mark, and place it in an array for use
|
||||
* as a Slate text node's children array.
|
||||
*/
|
||||
case 'inlineCode':
|
||||
{
|
||||
return createText({
|
||||
text: node.value,
|
||||
code: true,
|
||||
marks: [{
|
||||
type: 'code'
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks
|
||||
*
|
||||
* Marks are typically decorative sub-types that apply to text nodes. In an
|
||||
* MDAST, marks are nodes that can contain other nodes. This nested
|
||||
* hierarchy has to be flattened and split into distinct text nodes with
|
||||
* their own set of marks.
|
||||
*/
|
||||
case 'strong':
|
||||
case 'emphasis':
|
||||
case 'delete':
|
||||
{
|
||||
return processMarkNode(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Headings
|
||||
*
|
||||
* MDAST headings use a single type with a separate "depth" property to
|
||||
* indicate the heading level, while the Slate schema uses a separate node
|
||||
* type for each heading level. Here we get the proper Slate node name based
|
||||
* on the MDAST node depth.
|
||||
*/
|
||||
case 'heading':
|
||||
{
|
||||
const depthMap = {
|
||||
1: 'one',
|
||||
2: 'two',
|
||||
3: 'three',
|
||||
4: 'four',
|
||||
5: 'five',
|
||||
6: 'six'
|
||||
};
|
||||
const slateType = `heading-${depthMap[node.depth]}`;
|
||||
return createBlock(slateType, nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Code Blocks
|
||||
*
|
||||
* MDAST code blocks are a distinct node type with a simple text value. We
|
||||
* convert that value into a nested child text node for Slate. If a void
|
||||
* node is required due to a custom code block handler, the value is
|
||||
* stored in the "code" data property instead. We also carry over the "lang"
|
||||
* data property if it's defined.
|
||||
*/
|
||||
case 'code':
|
||||
{
|
||||
const data = _objectSpread(_objectSpread({
|
||||
lang: node.lang
|
||||
}, voidCodeBlock ? {
|
||||
code: node.value
|
||||
} : {}), {}, {
|
||||
shortcode: 'code-block',
|
||||
shortcodeData: {
|
||||
code: node.value,
|
||||
lang: node.lang
|
||||
}
|
||||
});
|
||||
const text = createText(voidCodeBlock ? '' : node.value);
|
||||
const nodes = [text];
|
||||
const block = createBlock('shortcode', nodes, {
|
||||
data
|
||||
});
|
||||
return block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists
|
||||
*
|
||||
* MDAST has a single list type and an "ordered" property. We derive that
|
||||
* information into the Slate schema's distinct list node types. We also
|
||||
* include the "start" property, which indicates the number an ordered list
|
||||
* starts at, if defined.
|
||||
*/
|
||||
case 'list':
|
||||
{
|
||||
const slateType = node.ordered ? 'numbered-list' : 'bulleted-list';
|
||||
const data = {
|
||||
start: node.start
|
||||
};
|
||||
return createBlock(slateType, nodes, {
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Breaks
|
||||
*
|
||||
* MDAST soft break nodes represent a trailing double space or trailing
|
||||
* slash from a Markdown document. In Slate, these are simply transformed to
|
||||
* line breaks within a text node.
|
||||
*/
|
||||
case 'break':
|
||||
{
|
||||
const {
|
||||
data
|
||||
} = node;
|
||||
return createInline('break', {
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Thematic Breaks
|
||||
*
|
||||
* Thematic breaks are void nodes in the Slate schema.
|
||||
*/
|
||||
case 'thematicBreak':
|
||||
{
|
||||
return createBlock(typeMap[node.type]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Links
|
||||
*
|
||||
* MDAST stores the link attributes directly on the node, while our Slate
|
||||
* schema references them in the data object.
|
||||
*/
|
||||
case 'link':
|
||||
{
|
||||
const {
|
||||
title,
|
||||
url,
|
||||
data
|
||||
} = node;
|
||||
const newData = _objectSpread(_objectSpread({}, data), {}, {
|
||||
title,
|
||||
url
|
||||
});
|
||||
return createInline(typeMap[node.type], {
|
||||
data: newData
|
||||
}, nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Images
|
||||
*
|
||||
* Identical to link nodes except for the lack of child nodes and addition
|
||||
* of alt attribute data MDAST stores the link attributes directly on the
|
||||
* node, while our Slate schema references them in the data object.
|
||||
*/
|
||||
case 'image':
|
||||
{
|
||||
const {
|
||||
title,
|
||||
url,
|
||||
alt,
|
||||
data
|
||||
} = node;
|
||||
const newData = _objectSpread(_objectSpread({}, data), {}, {
|
||||
title,
|
||||
alt,
|
||||
url
|
||||
});
|
||||
return createInline(typeMap[node.type], {
|
||||
data: newData
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Tables
|
||||
*
|
||||
* Tables are parsed separately because they may include an "align"
|
||||
* property, which should be passed to the Slate node.
|
||||
*/
|
||||
case 'table':
|
||||
{
|
||||
const data = {
|
||||
align: node.align
|
||||
};
|
||||
return createBlock(typeMap[node.type], nodes, {
|
||||
data
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
88
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkSquashReferences.js
generated
vendored
Normal file
88
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkSquashReferences.js
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkSquashReferences;
|
||||
var _flatten2 = _interopRequireDefault(require("lodash/flatten"));
|
||||
var _without2 = _interopRequireDefault(require("lodash/without"));
|
||||
var _unistBuilder = _interopRequireDefault(require("unist-builder"));
|
||||
var _mdastUtilDefinitions = _interopRequireDefault(require("mdast-util-definitions"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/**
|
||||
* Raw markdown may contain image references or link references. Because there
|
||||
* is no way to maintain these references within the Slate AST, we convert image
|
||||
* and link references to standard images and links by putting their url's
|
||||
* inline. The definitions are then removed from the document.
|
||||
*
|
||||
* For example, the following markdown:
|
||||
*
|
||||
* ```
|
||||
* ![alpha][bravo]
|
||||
*
|
||||
* [bravo]: http://example.com/example.jpg
|
||||
* ```
|
||||
*
|
||||
* Yields:
|
||||
*
|
||||
* ```
|
||||
* 
|
||||
* ```
|
||||
*
|
||||
*/
|
||||
function remarkSquashReferences() {
|
||||
return getTransform;
|
||||
function getTransform(node) {
|
||||
const getDefinition = (0, _mdastUtilDefinitions.default)(node);
|
||||
return transform.call(null, getDefinition, node);
|
||||
}
|
||||
function transform(getDefinition, node) {
|
||||
/**
|
||||
* Bind the `getDefinition` function to `transform` and recursively map all
|
||||
* nodes.
|
||||
*/
|
||||
const boundTransform = transform.bind(null, getDefinition);
|
||||
const children = node.children ? node.children.map(boundTransform) : node.children;
|
||||
|
||||
/**
|
||||
* Combine reference and definition nodes into standard image and link
|
||||
* nodes.
|
||||
*/
|
||||
if (['imageReference', 'linkReference'].includes(node.type)) {
|
||||
const type = node.type === 'imageReference' ? 'image' : 'link';
|
||||
const definition = getDefinition(node.identifier);
|
||||
if (definition) {
|
||||
const {
|
||||
title,
|
||||
url
|
||||
} = definition;
|
||||
return (0, _unistBuilder.default)(type, {
|
||||
title,
|
||||
url,
|
||||
alt: node.alt
|
||||
}, children);
|
||||
}
|
||||
const pre = (0, _unistBuilder.default)('text', node.type === 'imageReference' ? '![' : '[');
|
||||
const post = (0, _unistBuilder.default)('text', ']');
|
||||
const nodes = children || [(0, _unistBuilder.default)('text', node.alt)];
|
||||
return [pre, ...nodes, post];
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove definition nodes and filter the resulting null values from the
|
||||
* filtered children array.
|
||||
*/
|
||||
if (node.type === 'definition') {
|
||||
return null;
|
||||
}
|
||||
const filteredChildren = (0, _without2.default)(children, null);
|
||||
return _objectSpread(_objectSpread({}, node), {}, {
|
||||
children: (0, _flatten2.default)(filteredChildren)
|
||||
});
|
||||
}
|
||||
}
|
||||
61
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkStripTrailingBreaks.js
generated
vendored
Normal file
61
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkStripTrailingBreaks.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkStripTrailingBreaks;
|
||||
var _mdastUtilToString = _interopRequireDefault(require("mdast-util-to-string"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* Removes break nodes that are at the end of a block.
|
||||
*
|
||||
* When a trailing double space or backslash is encountered at the end of a
|
||||
* markdown block, Remark will interpret the character(s) literally, as only
|
||||
* break entities followed by text qualify as breaks. A manually created MDAST,
|
||||
* however, may have such entities, and users of visual editors shouldn't see
|
||||
* these artifacts in resulting markdown.
|
||||
*/
|
||||
function remarkStripTrailingBreaks() {
|
||||
function transform(node) {
|
||||
if (node.children) {
|
||||
node.children = node.children.map((child, idx, children) => {
|
||||
/**
|
||||
* Only touch break nodes. Convert all subsequent nodes to their text
|
||||
* value and exclude the break node if no non-whitespace characters
|
||||
* are found.
|
||||
*/
|
||||
if (child.type === 'break') {
|
||||
const subsequentNodes = children.slice(idx + 1);
|
||||
|
||||
/**
|
||||
* Create a small MDAST so that mdastToString can process all
|
||||
* siblings as children of one node rather than making multiple
|
||||
* calls.
|
||||
*/
|
||||
const fragment = {
|
||||
type: 'root',
|
||||
children: subsequentNodes
|
||||
};
|
||||
const subsequentText = (0, _mdastUtilToString.default)(fragment);
|
||||
return subsequentText.trim() ? child : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Always return the child if not a break.
|
||||
*/
|
||||
return child;
|
||||
})
|
||||
|
||||
/**
|
||||
* Because some break nodes may be excluded, we filter out the resulting
|
||||
* null values.
|
||||
*/.filter(child => child)
|
||||
|
||||
/**
|
||||
* Recurse through the MDAST by transforming each individual child node.
|
||||
*/.map(transform);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
24
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkWrapHtml.js
generated
vendored
Normal file
24
node_modules/decap-cms-widget-markdown/dist/esm/serializers/remarkWrapHtml.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = remarkWrapHtml;
|
||||
var _unistBuilder = _interopRequireDefault(require("unist-builder"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* Ensure that top level 'html' type nodes are wrapped in paragraphs. Html nodes
|
||||
* are used for text nodes that we don't want Remark or Rehype to parse.
|
||||
*/
|
||||
function remarkWrapHtml() {
|
||||
function transform(tree) {
|
||||
tree.children = tree.children.map(node => {
|
||||
if (node.type === 'html') {
|
||||
return (0, _unistBuilder.default)('paragraph', [node]);
|
||||
}
|
||||
return node;
|
||||
});
|
||||
return tree;
|
||||
}
|
||||
return transform;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user