UNPKG

datocms-plugin-disabled-field

Version:

A simple, no-configuration plugin that allows you to disable a field that you don't want anyone to edit. You can apply this plugin to every type of field.

2 lines (1 loc) 14.5 kB
(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const d of n.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function t(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(o){if(o.ep)return;o.ep=!0;const n=t(o);fetch(o.href,n)}})();function se(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var H={exports:{}},p={},V;function K(){if(V)return p;V=1,Object.defineProperty(p,"__esModule",{value:!0}),p.DATA_CLONE_ERROR=p.MESSAGE=p.REJECTED=p.FULFILLED=p.REPLY=p.CALL=p.HANDSHAKE_REPLY=p.HANDSHAKE=void 0;const r="handshake";p.HANDSHAKE=r;const e="handshake-reply";p.HANDSHAKE_REPLY=e;const t="call";p.CALL=t;const i="reply";p.REPLY=i;const o="fulfilled";p.FULFILLED=o;const n="rejected";p.REJECTED=n;const d="message";p.MESSAGE=d;const u="DataCloneError";return p.DATA_CLONE_ERROR=u,p}var b={},J;function ie(){if(J)return b;J=1,Object.defineProperty(b,"__esModule",{value:!0}),b.ERR_NO_IFRAME_SRC=b.ERR_NOT_IN_IFRAME=b.ERR_CONNECTION_TIMEOUT=b.ERR_CONNECTION_DESTROYED=void 0;const r="ConnectionDestroyed";b.ERR_CONNECTION_DESTROYED=r;const e="ConnectionTimeout";b.ERR_CONNECTION_TIMEOUT=e;const t="NotInIframe";b.ERR_NOT_IN_IFRAME=t;const i="NoIframeSrc";return b.ERR_NO_IFRAME_SRC=i,b}var z={exports:{}},W;function le(){return W||(W=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=()=>{const i=[];let o=!1;return{destroy(){o=!0,i.forEach(n=>{n()})},onDestroy(n){o?n():i.push(n)}}};e.default=t,r.exports=e.default})(z,z.exports)),z.exports}var U={exports:{}},N={},X;function ae(){if(X)return N;X=1,Object.defineProperty(N,"__esModule",{value:!0}),N.deserializeError=N.serializeError=void 0;const r=t=>{let i=t.name,o=t.message,n=t.stack;return{name:i,message:o,stack:n}};N.serializeError=r;const e=t=>{const i=new Error;return Object.keys(t).forEach(o=>i[o]=t[o]),i};return N.deserializeError=e,N}var Q;function ce(){return Q||(Q=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=K(),i=ae(),o=(n,d,u)=>{const l=n.localName,a=n.local,s=n.remote,v=n.originForSending,S=n.originForReceiving;let h=!1;u(`${l}: Connecting call receiver`);const f=E=>{if(E.source!==s||E.data.penpal!==t.CALL)return;if(E.origin!==S){u(`${l} received message from origin ${E.origin} which did not match expected origin ${S}`);return}const O=E.data,C=O.methodName,y=O.args,F=O.id;u(`${l}: Received ${C}() call`);const m=R=>_=>{if(u(`${l}: Sending ${C}() reply`),h){u(`${l}: Unable to send ${C}() reply due to destroyed connection`);return}const g={penpal:t.REPLY,id:F,resolution:R,returnValue:_};R===t.REJECTED&&_ instanceof Error&&(g.returnValue=(0,i.serializeError)(_),g.returnValueIsError=!0);try{s.postMessage(g,v)}catch(L){throw L.name===t.DATA_CLONE_ERROR&&s.postMessage({penpal:t.REPLY,id:F,resolution:t.REJECTED,returnValue:(0,i.serializeError)(L),returnValueIsError:!0},v),L}};new Promise(R=>R(d[C].apply(d,y))).then(m(t.FULFILLED),m(t.REJECTED))};return a.addEventListener(t.MESSAGE,f),()=>{h=!0,a.removeEventListener(t.MESSAGE,f)}};e.default=o,r.exports=e.default})(U,U.exports)),U.exports}var q={exports:{}},j={exports:{}},Z;function fe(){return Z||(Z=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;let t=0;var i=()=>++t;e.default=i,r.exports=e.default})(j,j.exports)),j.exports}var ee;function pe(){return ee||(ee=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=K(),i=ie(),o=d(fe()),n=ae();function d(l){return l&&l.__esModule?l:{default:l}}var u=(l,a,s,v,S)=>{const h=a.localName,f=a.local,E=a.remote,O=a.originForSending,C=a.originForReceiving;let y=!1;S(`${h}: Connecting call sender`);const F=m=>function(){for(var R=arguments.length,_=new Array(R),g=0;g<R;g++)_[g]=arguments[g];S(`${h}: Sending ${m}() call`);let L;try{E.closed&&(L=!0)}catch{L=!0}if(L&&v(),y){const A=new Error(`Unable to send ${m}() call due to destroyed connection`);throw A.code=i.ERR_CONNECTION_DESTROYED,A}return new Promise((A,B)=>{const w=(0,o.default)(),T=c=>{if(c.source!==E||c.data.penpal!==t.REPLY||c.data.id!==w)return;if(c.origin!==C){S(`${h} received message from origin ${c.origin} which did not match expected origin ${C}`);return}S(`${h}: Received ${m}() reply`),f.removeEventListener(t.MESSAGE,T);let D=c.data.returnValue;c.data.returnValueIsError&&(D=(0,n.deserializeError)(D)),(c.data.resolution===t.FULFILLED?A:B)(D)};f.addEventListener(t.MESSAGE,T),E.postMessage({penpal:t.CALL,id:w,methodName:m,args:_},O)})};return s.reduce((m,R)=>(m[R]=F(R),m),l),()=>{y=!0}};e.default=u,r.exports=e.default})(q,q.exports)),q.exports}var Y={exports:{}},re;function Ee(){return re||(re=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=i=>function(){if(i){for(var o=arguments.length,n=new Array(o),d=0;d<o;d++)n[d]=arguments[d];console.log("[Penpal]",...n)}};e.default=t,r.exports=e.default})(Y,Y.exports)),Y.exports}var te;function me(){return te||(te=1,(function(r,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=K(),i=ie(),o=l(le()),n=l(ce()),d=l(pe()),u=l(Ee());function l(s){return s&&s.__esModule?s:{default:s}}var a=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=v.parentOrigin,h=S===void 0?"*":S,f=v.methods,E=f===void 0?{}:f,O=v.timeout,C=v.debug;const y=(0,u.default)(C);if(window===window.top){const A=new Error("connectToParent() must be called within an iframe");throw A.code=i.ERR_NOT_IN_IFRAME,A}const F=(0,o.default)(),m=F.destroy,R=F.onDestroy,_=window,g=_.parent;return{promise:new Promise((A,B)=>{let w;O!==void 0&&(w=setTimeout(()=>{const c=new Error(`Connection to parent timed out after ${O}ms`);c.code=i.ERR_CONNECTION_TIMEOUT,B(c),m()},O));const T=c=>{try{clearTimeout()}catch{return}if(c.source!==g||c.data.penpal!==t.HANDSHAKE_REPLY)return;if(h!=="*"&&h!==c.origin){y(`Child received handshake reply from origin ${c.origin} which did not match expected origin ${h}`);return}y("Child: Received handshake reply"),_.removeEventListener(t.MESSAGE,T);const D={localName:"Child",local:_,remote:g,originForSending:c.origin==="null"?"*":c.origin,originForReceiving:c.origin},$={},de=(0,n.default)(D,E,y);R(de);const ue=(0,d.default)($,D,c.data.methodNames,m,y);R(ue),clearTimeout(w),A($)};_.addEventListener(t.MESSAGE,T),R(()=>{_.removeEventListener(t.MESSAGE,T);const c=new Error("Connection destroyed");c.code=i.ERR_CONNECTION_DESTROYED,B(c)}),y("Child: Sending handshake"),g.postMessage({penpal:t.HANDSHAKE,methodNames:Object.keys(E)},h)}),destroy:m}};e.default=a,r.exports=e.default})(H,H.exports)),H.exports}var ge=me();const ve=se(ge);var M=function(){return M=Object.assign||function(r){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},M.apply(this,arguments)};function ne(r,e){for(var t=M({},r),i=0,o=e;i<o.length;i++){var n=o[i];delete t[n]}return t}function k(r){return function(e,t){if(r){for(var i={},o=0,n=e;o<n.length;o++){var d=n[o],u=t.itemTypes[d.relationships.item_type.data.id];i[d.id]=r(d,M(M({},t),{itemType:u}))}return i}}}function P(r,e){var t=function(i,o,n){if(n.mode===r){var d=Re(o),u=function(l){e(i,M(M(M({},o),l),d))};return u(n),u}};return t.mode=r,t}function x(r,e){var t=function(i,o,n){if(n.mode===r){var d=function(u){e(i,M(M({},o),u))};return d(n),d}};return t.mode=r,t}function he(){for(var r=document.querySelectorAll("body *"),e=0,t=0;t<r.length;t++)e=Math.max(r[t].getBoundingClientRect().bottom,e);return e}var Re=function(r){var e=null,t=function(a){var s=a===void 0?Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.getBoundingClientRect().height,he()):a;s!==e&&(r.setHeight(s),e=s)},i=null,o=null,n=function(){return t()},d=function(){t(),i||(i=new ResizeObserver(n),i.observe(document.documentElement)),o||(o=new MutationObserver(n),o.observe(window.document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},u=function(){i&&(i.disconnect(),i=null),o&&(o.disconnect(),o=null)},l=function(){return!!i};return{updateHeight:t,startAutoResizer:d,stopAutoResizer:u,isAutoResizerActive:l}},_e=P("renderAssetSource",function(r,e){r.renderAssetSource&&r.renderAssetSource(e.assetSourceId,e)}),Se=P("renderConfigScreen",function(r,e){r.renderConfigScreen&&r.renderConfigScreen(e)}),ye=P("renderFieldExtension",function(r,e){r.renderFieldExtension&&r.renderFieldExtension(e.fieldExtensionId,e)}),Oe=x("renderInspector",function(r,e){r.renderInspector&&r.renderInspector(e.inspectorId,e)}),Ce=x("renderInspectorPanel",function(r,e){r.renderInspectorPanel&&r.renderInspectorPanel(e.panelId,e)}),Ie=P("renderItemCollectionOutlet",function(r,e){r.renderItemCollectionOutlet&&r.renderItemCollectionOutlet(e.itemCollectionOutletId,e)}),be=P("renderItemFormOutlet",function(r,e){r.renderItemFormOutlet&&r.renderItemFormOutlet(e.itemFormOutletId,e)}),Fe=x("renderItemFormSidebar",function(r,e){r.renderItemFormSidebar&&r.renderItemFormSidebar(e.sidebarId,e)}),Ae=P("renderItemFormSidebarPanel",function(r,e){r.renderItemFormSidebarPanel&&r.renderItemFormSidebarPanel(e.sidebarPaneId,e)}),Me=P("renderManualFieldExtensionConfigScreen",function(r,e){r.renderManualFieldExtensionConfigScreen&&r.renderManualFieldExtensionConfigScreen(e.fieldExtensionId,e)}),Pe=P("renderModal",function(r,e){r.renderModal&&r.renderModal(e.modalId,e)}),Le=x("renderPage",function(r,e){r.renderPage&&r.renderPage(e.pageId,e)}),Ne=x("renderUploadSidebar",function(r,e){r.renderUploadSidebar&&r.renderUploadSidebar(e.sidebarId,e)}),Te=P("renderUploadSidebarPanel",function(r,e){r.renderUploadSidebarPanel&&r.renderUploadSidebarPanel(e.sidebarPaneId,e)}),I=function(){return I=Object.assign||function(r){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},I.apply(this,arguments)},De=function(r,e,t,i){function o(n){return n instanceof t?n:new t(function(d){d(n)})}return new(t||(t=Promise))(function(n,d){function u(s){try{a(i.next(s))}catch(v){d(v)}}function l(s){try{a(i.throw(s))}catch(v){d(v)}}function a(s){s.done?n(s.value):o(s.value).then(u,l)}a((i=i.apply(r,e||[])).next())})},we=function(r,e){var t={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},i,o,n,d=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return d.next=u(0),d.throw=u(1),d.return=u(2),typeof Symbol=="function"&&(d[Symbol.iterator]=function(){return this}),d;function u(a){return function(s){return l([a,s])}}function l(a){if(i)throw new TypeError("Generator is already executing.");for(;d&&(d=0,a[0]&&(t=0)),t;)try{if(i=1,o&&(n=a[0]&2?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[a[0]&2,n.value]),a[0]){case 0:case 1:n=a;break;case 4:return t.label++,{value:a[1],done:!1};case 5:t.label++,o=a[1],a=[0];continue;case 7:a=t.ops.pop(),t.trys.pop();continue;default:if(n=t.trys,!(n=n.length>0&&n[n.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!n||a[1]>n[0]&&a[1]<n[3])){t.label=a[1];break}if(a[0]===6&&t.label<n[1]){t.label=n[1],n=a;break}if(n&&t.label<n[2]){t.label=n[2],t.ops.push(a);break}n[2]&&t.ops.pop(),t.trys.pop();continue}a=e.call(r,t)}catch(s){a=[6,s],o=0}finally{i=n=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}},oe=function(r,e,t){if(t||arguments.length===2)for(var i=0,o=e.length,n;i<o;i++)(n||!(i in e))&&(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return r.concat(n||Array.prototype.slice.call(e))};function xe(){return De(this,arguments,void 0,function(r){var e,t,i,o,n,d,u,l,a,s,v,S;return r===void 0&&(r={}),we(this,function(h){switch(h.label){case 0:return e=null,t=null,i=I(I({},r),{overrideFieldExtensions:k(r.overrideFieldExtensions),customMarksForStructuredTextField:k(r.customMarksForStructuredTextField),customBlockStylesForStructuredTextField:k(r.customBlockStylesForStructuredTextField)}),o=ve({methods:I(I({sdkVersion:function(){return"0.3.0"},implementedHooks:function(){return Object.fromEntries(Object.keys(r).map(function(f){return[f,!0]}))}},Object.fromEntries(Object.entries(i).filter(function(f){var E=f[0];return!E.startsWith("render")}))),{onChange:function(f){e&&e(f)},callMethodMergingBootCtx:function(f,E,O,C,y){return t?t(f,E,O,C,y):null}})}),[4,o.promise];case 1:return n=h.sent(),[4,n.getSettings()];case 2:for(d=h.sent(),d.mode==="onBoot"&&(u=d,e=function(f){u=f},t=function(f,E,O,C,y){var F;if(f in i)return(F=i)[f].apply(F,oe(oe([],E,!1),[I(I(I(I({},ne(n,["getSettings","setHeight"])),ne(u,["mode","bodyPadding"])),Object.fromEntries(C.map(function(m){return[m,function(){for(var _=[],g=0;g<arguments.length;g++)_[g]=arguments[g];return n.callAdditionalCtxMethod(y,m,_)}]}))),O)],!1))},i.onBoot&&i.onBoot(I(I({},n),u))),l={renderAssetSource:_e,renderConfigScreen:Se,renderFieldExtension:ye,renderItemCollectionOutlet:Ie,renderItemFormOutlet:be,renderItemFormSidebar:Fe,renderItemFormSidebarPanel:Ae,renderManualFieldExtensionConfigScreen:Me,renderModal:Pe,renderPage:Le,renderInspector:Oe,renderInspectorPanel:Ce,renderUploadSidebar:Ne,renderUploadSidebarPanel:Te},a=0,s=Object.values(l);a<s.length;a++)if(v=s[a],S=v(i,n,d),S){e=S;break}return[2]}})})}const G="disableField";xe({async onBoot(r){if(r.plugin.attributes.parameters.migratedFromLegacyPlugin||!r.currentRole.meta.final_permissions.can_edit_schema)return;const e=await r.loadFieldsUsingPlugin(),t=(await Promise.all(e.map(async i=>{const{appearance:o}=i.attributes,n=[];if(o.addons.forEach((d,u)=>{d.field_extension!==G&&n.push({operation:"updateAddon",index:u,newFieldExtensionId:G})}),n.length===0)return!1;await r.updateFieldAppearance(i.id,n)}))).some(i=>i);r.updatePluginParameters({...r.plugin.attributes.parameters,migratedFromLegacyPlugin:!0}),t&&r.notice("Plugin settings upgraded successfully!")},manualFieldExtensions(){return[{id:G,name:"Disabled Field",type:"addon",fieldTypes:"all",initialHeight:0}]},renderFieldExtension(r,e){r===G&&e.disableField(e.fieldPath,!0)}});