UNPKG

next-slicezone

Version:

A component that maps other components to Prismic slices

2 lines (1 loc) 7.08 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).NextSliceZone={},e.React)}(this,(function(e,t){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=r(t);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,r,n,a,i,o){try{var c=e[i](o),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,a)}function c(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var i=e.apply(t,r);function c(e){o(i,n,a,c,s,"next",e)}function s(e){o(i,n,a,c,s,"throw",e)}c(void 0)}))}}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function u(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=/-(\w)/g;var f=/\B([A-Z])/g;function d(e){return e.replace(f,"-$1").toLowerCase()}var y={pascalize:function(e){return e?(e=e.replace(/_/g,"-").replace(p,((e,t)=>t?t.toUpperCase():"")))[0].toUpperCase()+e.slice(1):""},hyphenate:d,snakelize:function(e){return d(e).replace(/-/g,"_")}},v=e=>{var{title:t,description:r}=e;return n.default.createElement("div",{style:{height:"80vh",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",textAlign:"center"}},n.default.createElement("h2",null,t),n.default.createElement("p",{style:{maxWidth:"320px",fontSize:"16px"}},r))},h={title:"Your SliceZone is empty.",description:"Go to your writing room and start creating content to see it appear here!"},m={title:'Property "slice" not found or not formatted properly',description:"This usually means that data passed as property `slices` is not right. Check your configuuration and logs for more info!"};var g=["uid"],P=["repeat","repeatable","multi"];function b(){return(b=c((function*(e){var{queryType:t,apiParams:r,type:n,client:a}=e,{uid:i}=r,o=u(r,g),c=-1!==P.indexOf(t)?["getByUID",[n,i,o]]:["getSingle",[n,o]];return yield a[c[0]](...c[1])}))).apply(this,arguments)}var w=(e,t)=>{var r;if(e)if(t)t in e.data&&Array.isArray(e.data[t])?r=e.data[t]:console.error("[SliceZone/useGetStaticProps] Cannot find slice zone at specified key `%s`\n\nCheck the document below to make sure you provided the right key:",t,e.data);else{for(var n of["body","slices"])if(n in e.data&&Array.isArray(e.data[n])){r=e.data[n];break}r||console.error('[SliceZone/useGetStaticProps] Cannot find slice zone in document\n\nCheck the document below to make sure your slice zone is here or provide the `slicesKey` option:\n\nuseGetStaticProps({ /* ... */ slicesKey: "mySliceZone" });\n',e.data)}return r||[]},O=e=>{var{client:t,slicesKey:r,type:n="page",getStaticPropsParams:a={},queryType:o="repeat",apiParams:s,uid:l,lang:u,body:p}=e;return l&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "uid" is deprecated, use "apiParams.uid" instead.'),u&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "lang" is deprecated, use "apiParams.lang" instead.'),p&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "body" is deprecated, use "slicesKey" instead.'),function(){var e=c((function*(e){var{preview:c=null,previewData:l={},params:u={}}=e,{ref:f=null}=l,d=s&&"function"==typeof s?s({params:u,previewData:l,preview:c}):s;try{var y=yield function(e){return b.apply(this,arguments)}({queryType:o,apiParams:Object.assign({ref:f},d),type:n,client:t});return i({props:i(i({},y),{},{error:null,preview:c,previewData:l,slices:w(y,r||p)})},a)}catch(e){return"production"!==process.env.NODE_ENV&&console.error("[next-slicezone] ".concat(e.toString())),i({props:{ref:f,error:e.toString(),apiParams:s,slices:[],preview:c,previewData:l}},a)}}));return function(t){return e.apply(this,arguments)}}()};function S(e,t,r){return j.apply(this,arguments)}function j(){return(j=c((function*(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],o=yield e.query('[at(document.type, "'.concat(t,'")]'),i(i({pageSize:100,lang:"*"},r),{},{page:n})),c=a.concat(o.results);return o.results_size+a.length<o.total_results_size?S(e,t,r,n+1,c):[...new Set(c)]}))).apply(this,arguments)}function x(){return(x=c((function*(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return yield S(e,t,r)}))).apply(this,arguments)}var k=e=>{var{type:t="page",formatPath:r=(()=>null),apiParams:n,client:a,getStaticPathsParams:o={fallback:!1},lang:s,params:l,fallback:u}=e;(e=>{null!=e&&console.warn("[next-slicezone] Parameter `fallback` is deprecated. Use getStaticPathsParams.fallback instead.")})(u);var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return(arguments.length>2?arguments[2]:void 0)&&console.warn("[next-slicezone] Parameter `lang` is deprecated. Use `apiParams.lang` instead."),t?(console.warn("[next-slicezone] Parameter `params` is deprecated. Use `apiParams` instead."),t):e}(n,l,s);return function(){var e=c((function*(){return i({paths:(yield function(e,t){return x.apply(this,arguments)}(a,t,p)).reduce(((e,t)=>{var n=r(t);return n?[...e,n]:e}),[]),fallback:u},o)}));return function(){return e.apply(this,arguments)}}()};e.default=function(e){var{slices:t,sliceProps:r={},resolver:a=(()=>null)}=e;return t&&t.length?t.map(((e,t)=>{if(!e||!e.slice_type)return n.default.createElement(v,l({key:"slice-".concat(t+1)},m));var i=y.pascalize(e.slice_type),o=a({sliceName:i,slice:e,i:t}),c=r&&"function"==typeof r?r({sliceName:i,slice:e,i:t}):r;return o?n.default.createElement(o,l({key:"slice-".concat(t+1),slice:e,i:t},c)):(console.error("Could not resolve slice, check that you properly pass a `resolver` property to SliceZone"),null)})):"production"!==process.env.NODE_ENV?n.default.createElement(v,h):null},e.useGetStaticPaths=k,e.useGetStaticProps=O,e.withGetStaticPaths=k,e.withGetStaticProps=O,Object.defineProperty(e,"__esModule",{value:!0})}));