@sanity/block-content-to-html
Advanced tools
Comparing version 0.1.8 to 0.1.9
@@ -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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
71588
1079
293