Socket
Socket
Sign inDemoInstall

@sanity/block-content-to-html

Package Overview
Dependencies
Maintainers
7
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sanity/block-content-to-html - npm Package Compare versions

Comparing version 0.1.8 to 0.1.9

12

lib/BlockContentToHtml.js

@@ -29,5 +29,5 @@ 'use strict';

function parseSingle(data, typeHandlers) {
function parseSingle(data, typeHandlers, next, prev) {
if (typeHandlers[data.type]) {
return typeHandlers[data.type](data);
return typeHandlers[data.type](data, next, prev);
}

@@ -63,7 +63,9 @@ throw new Error('Don\'t know how to handle type \'' + data.type + '\'');

if (Array.isArray(base)) {
return base.map(function (single) {
return parseSingle(single, _this.typeHandlers);
return base.map(function (single, index) {
var next = index === 0 && base[index + 1] || null;
var prev = index > 0 && base[index - 1] || null;
return parseSingle(single, _this.typeHandlers, next, prev);
}).join('\n');
}
return parseSingle(base, this.typeHandlers);
return parseSingle(base, this.typeHandlers, null, null);
}

@@ -70,0 +72,0 @@ }]);

@@ -34,13 +34,13 @@ 'use strict';

block: function block(node) {
block: function block(node, next, prev) {
if (customBlockHandler) {
return customBlockHandler(node, typeHandlers.defaultBlock);
return customBlockHandler(node, next, prev, typeHandlers.defaultBlock);
}
return typeHandlers.defaultBlock(node);
return typeHandlers.defaultBlock(node, next, prev);
},
defaultBlock: function defaultBlock(node) {
defaultBlock: function defaultBlock(node, next, prev) {
if (blockHandlers[node.style]) {
node.children = getContent(node.content, typeHandlers);
return blockHandlers[node.style](node);
return blockHandlers[node.style](node, next, prev);
}

@@ -50,6 +50,6 @@ return '<' + node.style + '>' + getContent(node.content, typeHandlers) + '</' + node.style + '>';

list: function list(node) {
list: function list(node, next, prev) {
if (listHandlers[node.itemStyle]) {
node.children = getListItems(node.items, listHandlers, typeHandlers);
return listHandlers[node.itemStyle](node);
return listHandlers[node.itemStyle](node, next, prev);
}

@@ -59,3 +59,3 @@ return '<ul>' + getListItems(node.items, listHandlers, typeHandlers) + '</ul>';

span: function span(node) {
span: function span(node, next, prev) {
var head = '';

@@ -70,3 +70,3 @@ var tail = '';

if (blockTypeHandlers.span) {
return '' + head + blockTypeHandlers.span(node) + tail;
return '' + head + blockTypeHandlers.span(node, next, prev) + tail;
} else if (node.attributes && node.attributes.link) {

@@ -92,3 +92,5 @@ // Deal with the default block editor setup 'link' attribute

var output = '';
content.forEach(function (item) {
content.forEach(function (item, index) {
var next = index === 0 && content[index + 1] || null;
var prev = index > 0 && content[index - 1] || null;
if (typeof item === 'string') {

@@ -98,3 +100,3 @@ output += (0, _escapeHtml2.default)(item).replace(/\n/g, '<br />');

var handler = typeHandlers[item.type] || typeHandlers.text;
output += handler(item);
output += handler(item, next, prev);
}

@@ -107,3 +109,5 @@ });

var output = '';
items.forEach(function (item) {
items.forEach(function (item, index) {
var next = index === 0 && items[index + 1] || null;
var prev = index > 0 && items[index - 1] || null;
if (typeof item === 'string') {

@@ -113,5 +117,4 @@ output += (0, _escapeHtml2.default)(item);

item.attributes = item.attributes || {};
var contentHandler = typeHandlers.span;
item.children = contentHandler(item);
output += listHandlers.listItem(item);
item.children = getContent(item.content, typeHandlers);
output += listHandlers.listItem(item, next, prev);
}

@@ -118,0 +121,0 @@ });

{
"name": "@sanity/block-content-to-html",
"description": "Customizable HTML parser for block editor output",
"version": "0.1.8",
"version": "0.1.9",
"main": "lib/index.js",

@@ -6,0 +6,0 @@ "umd": "umd/index.min.js",

@@ -105,3 +105,3 @@ # block-content-to-html-js

customTypeHandlers: {
author: node => {
author: (node, next, prev) => {
return `<div>${node.attributes.name}</div>`

@@ -118,9 +118,22 @@ }

The ``next`` and ``prev`` arguments are the next and previous processed blocks.
#### Special usecase, registering the ``block`` type here
Normally you don't register the ``block`` type here, which is handled through the ``blockTypeHandlers.textBlock``
option. However, you may register ``block`` here to deal with them on your own, or if you just want to
wrap all ``block`` types in some special markup. You call the second parameter with the node to get the output of the default handler which is set up through the ``blockTypeHandlers.textBlock`` option (see below).
option. However, you may register ``block`` here in order to deal with those types totally on your own, or if you just want to wrap ``block`` types in some special common markup. You call the fourth parameter (function) to get the output of the default handler (which is set up through the ``blockTypeHandlers.textBlock`` option, see below).
The ``next`` and ``prev`` arguments are the next and previous processed blocks.
```js
block: (node, defaultFn) => {
return `<div class="grid 7">${defaultFn(node)}</div>`
block: (node, next, prev, defaultHandler) => {
let html = ''
if (!prev || prev.type !== 'block') {
html += '<div class="grid 7">'
}
html += defaultHandler(node, next, prev)
if (!next || next.type !== 'block') {
html += '</div>'
}
return html
}

@@ -149,6 +162,6 @@ ```

textBlock: {
normal: node => {
normal: (node, next, prev) => {
return `<div class="funky-paragraph">${node.children}</div>`
},
h2: node => {
h2: (node, next, prev) => {
return `<div class="big-heading">${node.children}</div>`

@@ -159,2 +172,4 @@ }

The ``next`` and ``prev`` arguments are the next and previous processed blocks.
* ##### ``listBlock: Object``

@@ -168,9 +183,9 @@ By default lists are rendered with plain ``<ol>``, ``<ul>``and ``<li>`` tags.

listBlock: {
number: node => {
number: (node, next, prev) => {
return `<ol class="article-list">${node.children}</ol>`
},
bullet: node => {
bullet: (node, next, prev) => {
return `<ul class="article-list">${node.children}</ul>`
},
listItem: node => {
listItem: (node, next, prev) => {
return `<li class="article-list-item ${node.style}">${node.children}</li>`

@@ -182,2 +197,6 @@ }

The ``next`` and ``prev`` arguments are the next and previous processed blocks. Except for ``listItem`` where
they are the next and previous listItem.
* ##### ``span: Object``

@@ -189,3 +208,3 @@ Let you tweak how spans within blocks are rendered. By default the spans are

```js
span: node => {
span: (node, next, prev) => {
let result = ''

@@ -209,2 +228,5 @@ if (node.attributes.author) {

The ``next`` and ``prev`` arguments are the next and previous processed spans.
* ##### ``marks: Object``

@@ -211,0 +233,0 @@ Marks are by default mapped 1:1. If the mark is 'em' the output will be ``<em>``.

@@ -13,4 +13,12 @@ /* eslint-disable id-length */

},
block: (node, defaultFn) => {
return `<div class="grid">${defaultFn(node)}</div>`
block: (node, next, prev, defaultHandler) => {
let html = ''
if (!prev || prev.type !== 'block') {
html += '<div class="grid">'
}
html += defaultHandler(node, next, prev)
if (!next || next.type !== 'block') {
html += '</div>'
}
return html
}

@@ -23,6 +31,6 @@ },

listBlock: {
number: node => {
number: (node, next, prev) => {
return `<ol class="foo">${node.children}</ol>`
},
listItem: node => {
listItem: (node, next, prev) => {
return `<li class="item-style-${node.style}">${node.children}</li>`

@@ -32,10 +40,10 @@ }

textBlock: {
normal: node => {
normal: (node, next, prev) => {
return `<p class="foo">${node.children}</p>`
},
h2: node => {
h2: (node, next, prev) => {
return `<div class="big-heading" id="${node.extra}">${node.children}</div>`
}
},
span: node => {
span: (node, next, prev) => {
let result = ''

@@ -214,2 +222,13 @@ if (node.attributes.author) {

test('uses default with plain h1 block with custom adapter when no handler registered for h1', {todo: false}, t => {
const plain = require('./fixtures/plain-text.json')
const h1 = require('./fixtures/h1-text.json')
const custom = require('./fixtures/custom-block.json')
const expected = '<div class="grid"><p class="foo">Normal string of text.<br />Another line</p>'
+ '\n<h1>Such h1 header, much amaze</h1></div>'
+ '\n<div>Test Person</div>'
t.same(myBlockContentToHtml.convert([plain, h1, custom]), expected)
t.end()
})
test('throws an error on custom block type without a registered handler', {todo: false}, t => {

@@ -216,0 +235,0 @@ const input = require('./fixtures/custom-block.json')

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.BlockContentAdapter = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function parseSingle(e,t){if(t[e.type])return t[e.type](e);throw new Error("Don't know how to handle type '"+e.type+"'")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),_blockContentToTree=require("@sanity/block-content-to-tree"),_blockContentToTree2=_interopRequireDefault(_blockContentToTree),_typeHandlers=require("./type-handlers"),_typeHandlers2=_interopRequireDefault(_typeHandlers),_escapeHtml2=require("./escapeHtml"),_escapeHtml3=_interopRequireDefault(_escapeHtml2),blockContentToTree=new _blockContentToTree2.default,BlockContentToHtml=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,e);var n=t.customTypeHandlers||{},r=(0,_typeHandlers2.default)(t.blockTypeHandlers||{},n.block);delete n.block,this.typeHandlers=_extends({},r,n)}return _createClass(e,null,[{key:"escapeHtml",value:function(e){return(0,_escapeHtml3.default)(e)}}]),_createClass(e,[{key:"convert",value:function(e){var t=this,n=blockContentToTree.convert(e);return Array.isArray(n)?n.map(function(e){return parseSingle(e,t.typeHandlers)}).join("\n"):parseSingle(n,this.typeHandlers)}}]),e}();exports.default=BlockContentToHtml;
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function parseSingle(e,t,n,r){if(t[e.type])return t[e.type](e,n,r);throw new Error("Don't know how to handle type '"+e.type+"'")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),_blockContentToTree=require("@sanity/block-content-to-tree"),_blockContentToTree2=_interopRequireDefault(_blockContentToTree),_typeHandlers=require("./type-handlers"),_typeHandlers2=_interopRequireDefault(_typeHandlers),_escapeHtml2=require("./escapeHtml"),_escapeHtml3=_interopRequireDefault(_escapeHtml2),blockContentToTree=new _blockContentToTree2.default,BlockContentToHtml=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,e);var n=t.customTypeHandlers||{},r=(0,_typeHandlers2.default)(t.blockTypeHandlers||{},n.block);delete n.block,this.typeHandlers=_extends({},r,n)}return _createClass(e,null,[{key:"escapeHtml",value:function(e){return(0,_escapeHtml3.default)(e)}}]),_createClass(e,[{key:"convert",value:function(e){var t=this,n=blockContentToTree.convert(e);return Array.isArray(n)?n.map(function(e,r){var l=0===r&&n[r+1]||null,o=r>0&&n[r-1]||null;return parseSingle(e,t.typeHandlers,l,o)}).join("\n"):parseSingle(n,this.typeHandlers,null,null)}}]),e}();exports.default=BlockContentToHtml;
},{"./escapeHtml":2,"./type-handlers":4,"@sanity/block-content-to-tree":7}],2:[function(require,module,exports){

@@ -8,3 +8,3 @@ "use strict";function escapeHTML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/\//g,"&#x2F;")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=escapeHTML;

},{"./BlockContentToHtml.js":1}],4:[function(require,module,exports){
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function getContent(t,e){var n="";return t.forEach(function(t){if("string"==typeof t)n+=(0,_escapeHtml2.default)(t).replace(/\n/g,"<br />");else{var r=e[t.type]||e.text;n+=r(t)}}),n}function getListItems(t,e,n){var r="";return t.forEach(function(t){if("string"==typeof t)r+=(0,_escapeHtml2.default)(t);else{t.attributes=t.attributes||{};var l=n.span;t.children=l(t),r+=e.listItem(t)}}),r}function mapMark(t,e){return e&&void 0!==e[t]?e[t]:t}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};exports.default=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=_extends({normal:function(t){return"<p>"+t.children+"</p>"}},t.textBlock||{},t.customBlock||{}),r=_extends({number:function(t){return"<ol>"+t.children+"\n</ol>"},bullet:function(t){return"<ul>"+t.children+"\n</ul>"},listItem:function(t){return"\n <li>"+t.children+"</li>"}},t.listBlock||{}),l={block:function(t){return e?e(t,l.defaultBlock):l.defaultBlock(t)},defaultBlock:function(t){return n[t.style]?(t.children=getContent(t.content,l),n[t.style](t)):"<"+t.style+">"+getContent(t.content,l)+"</"+t.style+">"},list:function(t){return r[t.itemStyle]?(t.children=getListItems(t.items,r,l),r[t.itemStyle](t)):"<ul>"+getListItems(t.items,r,l)+"</ul>"},span:function(e){var n="",r="";if(e.mark){var i=mapMark(e.mark,t.marks);n+=i?"<"+i+">":"",r=i?"</"+i+">":""}return e.children=getContent(e.content,l),t.span?""+n+t.span(e)+r:(e.attributes&&e.attributes.link&&(n+='<a href="'+e.attributes.link.href+'">',r="</a>"+r),""+n+getContent(e.content,l)+r)}};return l};var _escapeHtml=require("./escapeHtml"),_escapeHtml2=_interopRequireDefault(_escapeHtml);
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function getContent(t,e){var n="";return t.forEach(function(r,l){var u=0===l&&t[l+1]||null,i=l>0&&t[l-1]||null;if("string"==typeof r)n+=(0,_escapeHtml2.default)(r).replace(/\n/g,"<br />");else{var o=e[r.type]||e.text;n+=o(r,u,i)}}),n}function getListItems(t,e,n){var r="";return t.forEach(function(l,u){var i=0===u&&t[u+1]||null,o=u>0&&t[u-1]||null;"string"==typeof l?r+=(0,_escapeHtml2.default)(l):(l.attributes=l.attributes||{},l.children=getContent(l.content,n),r+=e.listItem(l,i,o))}),r}function mapMark(t,e){return e&&void 0!==e[t]?e[t]:t}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};exports.default=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=_extends({normal:function(t){return"<p>"+t.children+"</p>"}},t.textBlock||{},t.customBlock||{}),r=_extends({number:function(t){return"<ol>"+t.children+"\n</ol>"},bullet:function(t){return"<ul>"+t.children+"\n</ul>"},listItem:function(t){return"\n <li>"+t.children+"</li>"}},t.listBlock||{}),l={block:function(t,n,r){return e?e(t,n,r,l.defaultBlock):l.defaultBlock(t,n,r)},defaultBlock:function(t,e,r){return n[t.style]?(t.children=getContent(t.content,l),n[t.style](t,e,r)):"<"+t.style+">"+getContent(t.content,l)+"</"+t.style+">"},list:function(t,e,n){return r[t.itemStyle]?(t.children=getListItems(t.items,r,l),r[t.itemStyle](t,e,n)):"<ul>"+getListItems(t.items,r,l)+"</ul>"},span:function(e,n,r){var u="",i="";if(e.mark){var o=mapMark(e.mark,t.marks);u+=o?"<"+o+">":"",i=o?"</"+o+">":""}return e.children=getContent(e.content,l),t.span?""+u+t.span(e,n,r)+i:(e.attributes&&e.attributes.link&&(u+='<a href="'+e.attributes.link.href+'">',i="</a>"+i),""+u+getContent(e.content,l)+i)}};return l};var _escapeHtml=require("./escapeHtml"),_escapeHtml2=_interopRequireDefault(_escapeHtml);

@@ -11,0 +11,0 @@ },{"./escapeHtml":2}],5:[function(require,module,exports){

@@ -1,1 +0,1 @@

!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.BlockContentAdapter=e()}}(function(){return function e(t,n,r){function o(a,i){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!i&&l)return l(a,!0);if(u)return u(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[a]={exports:{}};t[a][0].call(f.exports,function(e){var n=t[a][1][e];return o(n||e)},f,f.exports,e,t,n,r)}return n[a].exports}for(var u="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(t[e.type])return t[e.type](e);throw new Error("Don't know how to handle type '"+e.type+"'")}Object.defineProperty(n,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=e("@sanity/block-content-to-tree"),c=r(l),f=e("./type-handlers"),s=r(f),p=e("./escapeHtml"),d=r(p),y=new c.default,v=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e);var n=t.customTypeHandlers||{},r=(0,s.default)(t.blockTypeHandlers||{},n.block);delete n.block,this.typeHandlers=a({},r,n)}return i(e,null,[{key:"escapeHtml",value:function(e){return(0,d.default)(e)}}]),i(e,[{key:"convert",value:function(e){var t=this,n=y.convert(e);return Array.isArray(n)?n.map(function(e){return u(e,t.typeHandlers)}).join("\n"):u(n,this.typeHandlers)}}]),e}();n.default=v},{"./escapeHtml":2,"./type-handlers":4,"@sanity/block-content-to-tree":7}],2:[function(e,t,n){"use strict";function r(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/\//g,"&#x2F;")}Object.defineProperty(n,"__esModule",{value:!0}),n.default=r},{}],3:[function(e,t,n){"use strict";var r=e("./BlockContentToHtml.js"),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.exports=o.default},{"./BlockContentToHtml.js":1}],4:[function(e,t,n){"use strict";function r(e,t){var n="";return e.forEach(function(e){if("string"==typeof e)n+=(0,l.default)(e).replace(/\n/g,"<br />");else{var r=t[e.type]||t.text;n+=r(e)}}),n}function o(e,t,n){var r="";return e.forEach(function(e){if("string"==typeof e)r+=(0,l.default)(e);else{e.attributes=e.attributes||{};var o=n.span;e.children=o(e),r+=t.listItem(e)}}),r}function u(e,t){return t&&void 0!==t[e]?t[e]:e}Object.defineProperty(n,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=a({normal:function(e){return"<p>"+e.children+"</p>"}},e.textBlock||{},e.customBlock||{}),i=a({number:function(e){return"<ol>"+e.children+"\n</ol>"},bullet:function(e){return"<ul>"+e.children+"\n</ul>"},listItem:function(e){return"\n <li>"+e.children+"</li>"}},e.listBlock||{}),l={block:function(e){return t?t(e,l.defaultBlock):l.defaultBlock(e)},defaultBlock:function(e){return n[e.style]?(e.children=r(e.content,l),n[e.style](e)):"<"+e.style+">"+r(e.content,l)+"</"+e.style+">"},list:function(e){return i[e.itemStyle]?(e.children=o(e.items,i,l),i[e.itemStyle](e)):"<ul>"+o(e.items,i,l)+"</ul>"},span:function(t){var n="",o="";if(t.mark){var a=u(t.mark,e.marks);n+=a?"<"+a+">":"",o=a?"</"+a+">":""}return t.children=r(t.content,l),e.span?""+n+e.span(t)+o:(t.attributes&&t.attributes.link&&(n+='<a href="'+t.attributes.link.href+'">',o="</a>"+o),""+n+r(t.content,l)+o)}};return l};var i=e("./escapeHtml"),l=function(e){return e&&e.__esModule?e:{default:e}}(i)},{"./escapeHtml":2}],5:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){return t.list(e)}function u(e,t){var n=e._type,r=t[n];if(!r){var o=i({},e);return delete o._type,{type:n,attributes:o}}return r(e)}Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=e("./type-handlers"),c=function(e){return e&&e.__esModule?e:{default:e}}(l),f=e("./type-checkers"),s=function(){function e(){r(this,e),this.typeHandlers=c.default}return a(e,[{key:"convert",value:function(e){var t=this;if(Array.isArray(e)){var n=[],r=[];return e.forEach(function(e,a,i){if((0,f.isList)(e)){if(r.push(e),(i[a+1]||{}).listItem!==e.listItem){var l=Array.from(r);r=[],n.push(o(l,t.typeHandlers))}}else n.push(u(e,t.typeHandlers))}),n}if(!e||!e._type)throw new Error("Input must be an Array or an Object (with a ._type) - got "+e);return u(e,this.typeHandlers)}}]),e}();n.default=s},{"./type-checkers":8,"./type-handlers":9}],6:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t){r(this,e),this.spans=t}return u(e,[{key:"run",value:function(){var e={content:[]},t=[e];return this.spans.forEach(function(e){var n=o({},e);delete n.text,delete n.marks,delete n._type;var r=e.marks.sort(),u=1;if(t.length>1)for(u;u<t.length;u++){var a=t[u].mark;if(!r.includes(a))break;var i=r.indexOf(a);r.splice(i,1)}t=t.slice(0,u);var l=t.slice(-1)[0];r.forEach(function(e){var n={content:[],mark:e,type:"span",attributes:{}};l.content.push(n),t.push(n),l=n}),Object.keys(n).length?l.content.push({type:"span",attributes:n,content:[e.text]}):l.content.push(e.text)}),e.content}}]),e}(),i=function(e){return new a(e).run()};n.default=i},{}],7:[function(e,t,n){"use strict";var r=e("./BlockContentToTree.js"),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.exports=o.default},{"./BlockContentToTree.js":5}],8:[function(e,t,n){"use strict";function r(e){var t=e._type,n=e.listItem;return"block"===t&&!!n}function o(e){return"block"===e._type&&!r(e)}function u(e){return o(e)?"text":r(e)?"list":"custom"}Object.defineProperty(n,"__esModule",{value:!0}),n.isList=r,n.isText=o,n.getInternalBlockType=u},{}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./ContentNester"),o=function(e){return e&&e.__esModule?e:{default:e}}(r),u=function(e){var t={type:"block",style:e.style,content:(0,o.default)(e.spans)};return e.extra&&(t.extra=e.extra),t},a=function(e){return{type:"list",itemStyle:e[0].listItem,items:e.map(function(e){var t={type:"block",style:e.style,content:(0,o.default)(e.spans)};return e.extra&&(t.extra=e.extra),t})}};n.default={block:u,list:a}},{"./ContentNester":6}]},{},[3])(3)});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.BlockContentAdapter=e()}}(function(){return function e(t,n,r){function o(l,a){if(!n[l]){if(!t[l]){var i="function"==typeof require&&require;if(!a&&i)return i(l,!0);if(u)return u(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[l]={exports:{}};t[l][0].call(f.exports,function(e){var n=t[l][1][e];return o(n||e)},f,f.exports,e,t,n,r)}return n[l].exports}for(var u="function"==typeof require&&require,l=0;l<r.length;l++)o(r[l]);return o}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t,n,r){if(t[e.type])return t[e.type](e,n,r);throw new Error("Don't know how to handle type '"+e.type+"'")}Object.defineProperty(n,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=e("@sanity/block-content-to-tree"),c=r(i),f=e("./type-handlers"),s=r(f),p=e("./escapeHtml"),d=r(p),y=new c.default,v=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e);var n=t.customTypeHandlers||{},r=(0,s.default)(t.blockTypeHandlers||{},n.block);delete n.block,this.typeHandlers=l({},r,n)}return a(e,null,[{key:"escapeHtml",value:function(e){return(0,d.default)(e)}}]),a(e,[{key:"convert",value:function(e){var t=this,n=y.convert(e);return Array.isArray(n)?n.map(function(e,r){var o=0===r&&n[r+1]||null,l=r>0&&n[r-1]||null;return u(e,t.typeHandlers,o,l)}).join("\n"):u(n,this.typeHandlers,null,null)}}]),e}();n.default=v},{"./escapeHtml":2,"./type-handlers":4,"@sanity/block-content-to-tree":7}],2:[function(e,t,n){"use strict";function r(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/\//g,"&#x2F;")}Object.defineProperty(n,"__esModule",{value:!0}),n.default=r},{}],3:[function(e,t,n){"use strict";var r=e("./BlockContentToHtml.js"),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.exports=o.default},{"./BlockContentToHtml.js":1}],4:[function(e,t,n){"use strict";function r(e,t){var n="";return e.forEach(function(r,o){var u=0===o&&e[o+1]||null,l=o>0&&e[o-1]||null;if("string"==typeof r)n+=(0,i.default)(r).replace(/\n/g,"<br />");else{var a=t[r.type]||t.text;n+=a(r,u,l)}}),n}function o(e,t,n){var o="";return e.forEach(function(u,l){var a=0===l&&e[l+1]||null,c=l>0&&e[l-1]||null;"string"==typeof u?o+=(0,i.default)(u):(u.attributes=u.attributes||{},u.children=r(u.content,n),o+=t.listItem(u,a,c))}),o}function u(e,t){return t&&void 0!==t[e]?t[e]:e}Object.defineProperty(n,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=l({normal:function(e){return"<p>"+e.children+"</p>"}},e.textBlock||{},e.customBlock||{}),a=l({number:function(e){return"<ol>"+e.children+"\n</ol>"},bullet:function(e){return"<ul>"+e.children+"\n</ul>"},listItem:function(e){return"\n <li>"+e.children+"</li>"}},e.listBlock||{}),i={block:function(e,n,r){return t?t(e,n,r,i.defaultBlock):i.defaultBlock(e,n,r)},defaultBlock:function(e,t,o){return n[e.style]?(e.children=r(e.content,i),n[e.style](e,t,o)):"<"+e.style+">"+r(e.content,i)+"</"+e.style+">"},list:function(e,t,n){return a[e.itemStyle]?(e.children=o(e.items,a,i),a[e.itemStyle](e,t,n)):"<ul>"+o(e.items,a,i)+"</ul>"},span:function(t,n,o){var l="",a="";if(t.mark){var c=u(t.mark,e.marks);l+=c?"<"+c+">":"",a=c?"</"+c+">":""}return t.children=r(t.content,i),e.span?""+l+e.span(t,n,o)+a:(t.attributes&&t.attributes.link&&(l+='<a href="'+t.attributes.link.href+'">',a="</a>"+a),""+l+r(t.content,i)+a)}};return i};var a=e("./escapeHtml"),i=function(e){return e&&e.__esModule?e:{default:e}}(a)},{"./escapeHtml":2}],5:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){return t.list(e)}function u(e,t){var n=e._type,r=t[n];if(!r){var o=a({},e);return delete o._type,{type:n,attributes:o}}return r(e)}Object.defineProperty(n,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=e("./type-handlers"),c=function(e){return e&&e.__esModule?e:{default:e}}(i),f=e("./type-checkers"),s=function(){function e(){r(this,e),this.typeHandlers=c.default}return l(e,[{key:"convert",value:function(e){var t=this;if(Array.isArray(e)){var n=[],r=[];return e.forEach(function(e,l,a){if((0,f.isList)(e)){if(r.push(e),(a[l+1]||{}).listItem!==e.listItem){var i=Array.from(r);r=[],n.push(o(i,t.typeHandlers))}}else n.push(u(e,t.typeHandlers))}),n}if(!e||!e._type)throw new Error("Input must be an Array or an Object (with a ._type) - got "+e);return u(e,this.typeHandlers)}}]),e}();n.default=s},{"./type-checkers":8,"./type-handlers":9}],6:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=function(){function e(t){r(this,e),this.spans=t}return u(e,[{key:"run",value:function(){var e={content:[]},t=[e];return this.spans.forEach(function(e){var n=o({},e);delete n.text,delete n.marks,delete n._type;var r=e.marks.sort(),u=1;if(t.length>1)for(u;u<t.length;u++){var l=t[u].mark;if(!r.includes(l))break;var a=r.indexOf(l);r.splice(a,1)}t=t.slice(0,u);var i=t.slice(-1)[0];r.forEach(function(e){var n={content:[],mark:e,type:"span",attributes:{}};i.content.push(n),t.push(n),i=n}),Object.keys(n).length?i.content.push({type:"span",attributes:n,content:[e.text]}):i.content.push(e.text)}),e.content}}]),e}(),a=function(e){return new l(e).run()};n.default=a},{}],7:[function(e,t,n){"use strict";var r=e("./BlockContentToTree.js"),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.exports=o.default},{"./BlockContentToTree.js":5}],8:[function(e,t,n){"use strict";function r(e){var t=e._type,n=e.listItem;return"block"===t&&!!n}function o(e){return"block"===e._type&&!r(e)}function u(e){return o(e)?"text":r(e)?"list":"custom"}Object.defineProperty(n,"__esModule",{value:!0}),n.isList=r,n.isText=o,n.getInternalBlockType=u},{}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./ContentNester"),o=function(e){return e&&e.__esModule?e:{default:e}}(r),u=function(e){var t={type:"block",style:e.style,content:(0,o.default)(e.spans)};return e.extra&&(t.extra=e.extra),t},l=function(e){return{type:"list",itemStyle:e[0].listItem,items:e.map(function(e){var t={type:"block",style:e.style,content:(0,o.default)(e.spans)};return e.extra&&(t.extra=e.extra),t})}};n.default={block:u,list:l}},{"./ContentNester":6}]},{},[3])(3)});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc