contentful-ui-extensions-sdk 4.15.0 → 4.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cf-extension-api.js +1 -1
- package/dist/editor.d.ts +2 -1
- package/dist/entry.d.ts +2 -2
- package/dist/field-locale.d.ts +6 -4
- package/dist/field.d.ts +2 -2
- package/dist/signal.d.ts +1 -0
- package/dist/types/api.types.d.ts +43 -3
- package/dist/types/field-locale.types.d.ts +24 -6
- package/dist/types/field.types.d.ts +9 -0
- package/package.json +1 -1
package/dist/cf-extension-api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).contentfulExtension={})}(this,(function(e){"use strict";var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},t(e,n)};var n=function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};var r=function(){function e(){this._id=0,this._listeners={}}return e.prototype.dispatch=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var r in this._listeners)(e=this._listeners)[r].apply(e,t)},e.prototype.attach=function(e){var t=this;if("function"!=typeof e)throw new Error("listener function expected");var n=this._id++;return this._listeners[n]=e,function(){return delete t._listeners[n]}},e}(),o=function(e){function n(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.call(this)||this;if(!t.length)throw new Error("Initial value to be memoized expected");return r._memoizedArgs=t,r}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}(n,e),n.prototype.dispatch=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._memoizedArgs=t,e.prototype.dispatch.apply(this,t)},n.prototype.attach=function(t){var n=e.prototype.attach.call(this,t);return t.apply(void 0,this._memoizedArgs),n},n}(r);var i,a=function(){function e(e,t){var n=this;this._messageHandlers={},this._responseHandlers={},this._send=function(e,t){return function(n,r){var o=s.getMessageId();try{t.postMessage({source:e,id:o,method:n,params:r},"*")}catch(e){throw e instanceof DOMException&&"DataCloneError"===e.name&&"openDialog"===n&&console.error("Error: openCurrent[App] parameters could not be parsed. You likely tried to pass functions or DOM elements as a parameter. Tip: Use the App SDK directly within the dialog location.\n\nLearn more about the dialog location: https://ctfl.io/app-sdk-dialog"),e}return o}}(e,t.parent),t.addEventListener("message",(function(e){n._handleMessage(e.data)}))}return e.prototype.call=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o=this._send(e,n);return new Promise((function(e,n){t._responseHandlers[o]={resolve:e,reject:n}}))},e.prototype.send=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this._send(e,t)},e.prototype.addHandler=function(e,t){return e in this._messageHandlers||(this._messageHandlers[e]=new r),this._messageHandlers[e].attach(t)},e.prototype._handleMessage=function(e){if(e.method){var t=e.method,n=e.params,r=this._messageHandlers[t];r&&r.dispatch.apply(r,n)}else{var o=e.id,i=this._responseHandlers[o];if(!i)return;"result"in e?i.resolve(e.result):"error"in e&&i.reject(e.error),delete this._responseHandlers[o]}},e}(),s=(i=0,{getMessageId:function(){return i++}});var l=function(){function e(e,t){var n=this;this.id=t.id,this.locale=t.locale,this.type=t.type,this.required=t.required,this.validations=t.validations,this.items=t.items,this._value=t.value,this._valueSignal=new o(this._value),this._isDisabledSignal=new o(void 0),this._schemaErrorsChangedSignal=new o(void 0),this._channel=e,e.addHandler("valueChanged",(function(e,t,r){e!==n.id||t&&t!==n.locale||(n._value=r,n._valueSignal.dispatch(r))})),e.addHandler("isDisabledChangedForFieldLocale",(function(e,t,r){e===n.id&&t===n.locale&&n._isDisabledSignal.dispatch(r)})),e.addHandler("schemaErrorsChangedForFieldLocale",(function(e,t,r){e===n.id&&t===n.locale&&n._schemaErrorsChangedSignal.dispatch(r)}))}return e.prototype.getValue=function(){return this._value},e.prototype.setValue=function(e){return this._value=e,this._valueSignal.dispatch(e),this._channel.call("setValue",this.id,this.locale,e)},e.prototype.removeValue=function(){return this._value=void 0,this._channel.call("removeValue",this.id,this.locale)},e.prototype.setInvalid=function(e){return this._channel.call("setInvalid",e,this.locale)},e.prototype.onValueChanged=function(e){return this._valueSignal.attach(e)},e.prototype.onIsDisabledChanged=function(e){return this._isDisabledSignal.attach(e)},e.prototype.onSchemaErrorsChanged=function(e){return this._schemaErrorsChangedSignal.attach(e)},e}(),u=function(){function e(e,t,r){this.id=t.id,this.locales=t.locales,this.type=t.type,this.required=t.required,this.validations=t.validations,this.items=t.items,this._defaultLocale=r,this._fieldLocales=t.locales.reduce((function(r,o){var i,a=new l(e,{id:t.id,type:t.type,required:t.required,validations:t.validations,items:t.items,locale:o,value:t.values[o]});return n(n({},r),((i={})[o]=a,i))}),{}),this.assertHasLocale(r)}return e.prototype.getValue=function(e){return this._getFieldLocale(e).getValue()},e.prototype.setValue=function(e,t){return this._getFieldLocale(t).setValue(e)},e.prototype.removeValue=function(e){return this.setValue(void 0,e)},e.prototype.onValueChanged=function(e,t){var n=t||e;return t||(e=""),this._getFieldLocale(e).onValueChanged(n)},e.prototype.onIsDisabledChanged=function(e,t){var n=t||e;return t||(e=""),this._getFieldLocale(e).onIsDisabledChanged(n)},e.prototype._getFieldLocale=function(e){return e=e||this._defaultLocale,this.assertHasLocale(e),this._fieldLocales[e]},e.prototype.getForLocale=function(e){if(!e)throw new Error("getForLocale must be passed a locale");return this._getFieldLocale(e)},e.prototype.assertHasLocale=function(e){if(!this._fieldLocales[e])throw new Error('Unknown locale "'.concat(e,'" for field "').concat(this.id,'"'))},e}();function c(e,t){var n,r=e.document,o=e.MutationObserver,i=e.ResizeObserver,a=!1,s=!1,l=new Set,u=new o((function(e){!function(e){e.forEach((function(e){switch(e.type){case"attributes":if(e.target.nodeType===Node.ELEMENT_NODE){var t=e.target;p(e.type,t)?l.add(t):l.delete(t)}break;case"childList":e.addedNodes.forEach((function(t){if(t.nodeType===Node.ELEMENT_NODE){var n=t;p(e.type,n)&&l.add(n)}})),e.removedNodes.forEach((function(e){var t=e;l.delete(t)}))}}))}(e),a&&d.updateHeight()})),c=new i((function(){d.updateHeight()}));u.observe(r.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0});var d={startAutoResizer:function(e){var t=(void 0===e?{}:e).absoluteElements;if(s=Boolean(t===void 0?false:t),d.updateHeight(),a)return;a=!0,c.observe(r.body)},stopAutoResizer:function(){if(!a)return;a=!1,c.disconnect()},updateHeight:function(e){void 0===e&&(e=null);if(null===e){var o=Math.ceil(r.documentElement.getBoundingClientRect().height);if(s&&l.size){var i=o;l.forEach((function(e){i=Math.max(e.getBoundingClientRect().bottom,i)})),e=i}else e=o}e!==n&&(t.send("setHeight",e),n=e)}};return d;function p(e,t){var n=getComputedStyle(t);return"absolute"===n.position&&("attributes"!==e||"none"!==n.display)}}var d=["getTask","getTasks","createTask","updateTask","deleteTask"];function p(e,t,r,i){var a=t.sys,s=new o(a),l=t.metadata,u=new o(l);e.addHandler("sysChanged",(function(e){a=e,s.dispatch(a)})),e.addHandler("metadataChanged",(function(e){l=e,u.dispatch(l)}));var c={};return d.forEach((function(t){c[t]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.call("callEntryMethod",t,n)}})),n(n(n({getSys:function(){return a},publish:function(t){return e.call("callEntryMethod","publish",[t])},unpublish:function(){return e.call("callEntryMethod","unpublish")},save:function(){return e.call("callEntryMethod","save")},onSysChanged:function(e){return s.attach(e)},fields:r.reduce((function(e,t){return e[t.id]=i(t),e}),{})},l?{metadata:l}:{}),{getMetadata:function(){return l},onMetadataChanged:function(e){return u.attach(e)}}),c)}var f=["getContentType","getEntry","getEntrySnapshots","getAsset","getEditorInterface","getPublishedEntries","getPublishedAssets","getContentTypes","getEntries","getEditorInterfaces","getAssets","createContentType","createEntry","createAsset","updateContentType","updateEntry","updateAsset","deleteContentType","deleteEntry","deleteAsset","publishEntry","publishAsset","unpublishEntry","unpublishAsset","archiveEntry","archiveAsset","unarchiveEntry","unarchiveAsset","createUpload","processAsset","waitUntilAssetProcessed","getUsers","getAllScheduledActions","getEntityScheduledActions","signRequest","createTag","readTags","updateTag","deleteTag","getTeams"];function h(e,t){var n={};return f.forEach((function(t){n[t]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return console.warn("You called ".concat(String(t)," on the Space API. Since version 4.0.0 the Space API and its methods are deprecated, and they will be removed from version 5.0.0 on. We recommend that you use the CMA client instead. See https://www.contentful.com/developers/docs/extensibility/app-framework/sdk/#using-the-contentful-management-library for more details.")),e.call("callSpaceMethod",t,n)}})),n.getCachedContentTypes=function(){return function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([],t,!0)},n}var g=function(e){return"object"!=typeof(t=e)||null===t||Array.isArray(t)?{}:e;var t};function v(e,t){return{openAlert:r.bind(null,"alert"),openConfirm:r.bind(null,"confirm"),openPrompt:r.bind(null,"prompt"),openExtension:o,openCurrentApp:i,openCurrent:function(e){return t.app?i(e):o(n(n({},e),{id:t.extension}))},selectSingleEntry:a.bind(null,"Entry",!1),selectSingleAsset:a.bind(null,"Asset",!1),selectMultipleEntries:a.bind(null,"Entry",!0),selectMultipleAssets:a.bind(null,"Asset",!0)};function r(t,n){return e.call("openDialog",t,g(n))}function o(r){var o=g(r);if((o=n(n({},o),{id:o.id||t.extension})).id)return e.call("openDialog","extension",o);throw new Error("Extension ID not provided.")}function i(r){if(r=g(r),t.app){var o=n(n({},r),{id:t.app});return e.call("openDialog","app",o)}throw new Error("Not in the app context.")}function a(t,n,r){return(r=g(r)).entityType=t,r.multiple=n,e.call("openDialog","entitySelector",r)}}function y(e,t){var n=new o([void 0]),r=new o([void 0]);return e.addHandler("localeSettingsChanged",(function(e){n.dispatch(e)})),e.addHandler("showDisabledFieldsChanged",(function(e){r.dispatch(e)})),{editorInterface:t,onLocaleSettingsChanged:function(e){return n.attach(e)},onShowDisabledFieldsChanged:function(e){return r.attach(e)}}}function m(e,t){var o=new r;return e.addHandler("navigateSlideIn",(function(e){o.dispatch(e)})),{openEntry:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Entry",id:t}))},openNewEntry:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Entry",id:null,contentTypeId:t}))},openBulkEditor:function(t,r){return e.call("navigateToBulkEditor",n({entryId:t},r))},openAsset:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Asset",id:t}))},openNewAsset:function(t){return e.call("navigateToContentEntity",n(n({},t),{entityType:"Asset",id:null}))},openPageExtension:function(r){return e.call("navigateToPage",n({type:"extension",id:t.extension},r))},openCurrentAppPage:function(r){return e.call("navigateToPage",n({type:"app",id:t.app},r))},openAppConfig:function(){return e.call("navigateToAppConfig")},openEntriesList:function(){return e.call("navigateToSpaceEnvRoute",{route:"entries"})},openAssetsList:function(){return e.call("navigateToSpaceEnvRoute",{route:"assets"})},onSlideInNavigation:function(e){return o.attach(e)}}}var E="preInstall",_="postInstall",A=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},C=function(e){return"function"==typeof e},T=function(e){return console.error(e),Promise.resolve(!1)},b=function(e,t,n){if(!C(e))return Promise.resolve(t);var r;try{r=void 0===n?e():e(n)}catch(e){return T(e)}var o,i=r;return A(o=i)&&C(o.then)||(i=Promise.resolve(i)),i.then((function(e){return e instanceof Error?Promise.reject(e):!1!==e&&(A(e)?e:t)}),T).catch(T)};function w(e){var t,n=((t={}).preInstall=null,t.postInstall=null,t),r=function(e,t){if(!C(t))throw new Error("Handler must be a function.");n[e]=t};return e.addHandler("appHook",(function(t){var r=t.stage,o=t.installationRequestId,i=t.err;return r===E?b(n[r],{}).then((function(t){return e.send("appHookResult",{stage:r,installationRequestId:o,result:t})})):r===_?b(n[r],void 0,i||null).then((function(){return e.send("appHookResult",{stage:r,installationRequestId:o})})):Promise.resolve()})),{setReady:function(){return e.call("callAppMethod","setReady")},isInstalled:function(){return e.call("callAppMethod","isInstalled")},getParameters:function(){return e.call("callAppMethod","getParameters")},getCurrentState:function(){return e.call("callAppMethod","getCurrentState")},onConfigure:function(e){r(E,e)},onConfigurationCompleted:function(e){r(_,e)}}}var I,L={LOCATION_ENTRY_FIELD:"entry-field",LOCATION_ENTRY_FIELD_SIDEBAR:"entry-field-sidebar",LOCATION_ENTRY_SIDEBAR:"entry-sidebar",LOCATION_DIALOG:"dialog",LOCATION_ENTRY_EDITOR:"entry-editor",LOCATION_PAGE:"page",LOCATION_APP_CONFIG:"app-config",LOCATION_HOME:"home"},O=function(e){return function(t){return e.call("CMAAdapterCall",t)}};function S(e){return{makeRequest:O(e)}}var N=[H,P,function(e,t){var n=t.field;if(!n)throw new Error('FieldAPI called for location without "field" property defined.');return{field:new l(e,n)}},R,M],D=((I={})[L.LOCATION_ENTRY_FIELD]=N,I[L.LOCATION_ENTRY_FIELD_SIDEBAR]=N,I[L.LOCATION_ENTRY_SIDEBAR]=[H,P,R,M],I[L.LOCATION_ENTRY_EDITOR]=[H,P,R],I[L.LOCATION_DIALOG]=[H,function(e){return{close:function(t){return e.send("closeDialog",t)}}},M],I[L.LOCATION_PAGE]=[H],I[L.LOCATION_HOME]=[H],I[L.LOCATION_APP_CONFIG]=[H,function(e){return{app:w(e)}}],I);function H(e,t){var n=t.user,r=t.parameters,o=t.locales,i=t.ids,a=t.initialContentTypes,s=t.location||L.LOCATION_ENTRY_FIELD;return{cmaAdapter:S(e),location:{is:function(e){return s===e}},user:n,parameters:r,locales:{available:o.available,default:o.default,names:o.names,fallbacks:o.fallbacks,optional:o.optional,direction:o.direction},space:h(e,a),dialogs:v(e,i),navigator:m(e,i),notifier:{success:function(t){return e.send("notify",{type:"success",message:t})},error:function(t){return e.send("notify",{type:"error",message:t})},warning:function(t){return e.send("notify",{type:"warning",message:t})}},ids:i,access:{can:function(t,n,r){return e.call("checkAccess",t,n,r)},canEditAppConfig:function(){return e.call("checkAppConfigAccess")}}}}function M(e,t,n){return{window:c(n,e)}}function R(e,t){return{editor:y(e,t.editorInterface)}}function P(e,t){var n=t.locales,r=t.contentType,o=t.entry,i=t.fieldInfo;return{contentType:r,entry:p(e,o,i,(function(t){return new u(e,t,n.default)}))}}var F=function(e,t){if(void 0===e.window||void 0===e.document)return function(){};var n,r,o=((n={promise:null,resolve:null,isFulfilled:!1}).promise=new Promise((function(e){n.resolve=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];n.isFulfilled=!0,e.apply(void 0,t)}})),n);return o.promise.then((function(t){var n=t[0],r=e.document;r.addEventListener("focus",(function(){return n.send("setActive",!0)}),!0),r.addEventListener("blur",(function(){return n.send("setActive",!1)}),!0)})),function(e,t){!function(e,t){function n(r){var o=r.data;"connect"===o.method&&(e.removeEventListener("message",n),t.apply(void 0,o.params))}e.addEventListener("message",n)}(e,(function(n,r){var o=new a(n.id,e);t(o,n,r)}))}(e,(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.resolve(e)})),function(n,i){var a=void 0===i?{supressIframeWarning:!1}:i,l=a.makeCustomApi;a.supressIframeWarning||function(e){e.self===e.top&&console.error("Cannot use App SDK outside of Contenful:\n\nIn order for the App SDK to function correctly, your app needs to be run in an iframe in the Contentful Web App, Compose or Launch.\n\nLearn more about local development with the App SDK here:\nhttps://www.contentful.com/developers/docs/extensibility/ui-extensions/faq/#how-can-i-develop-with-the-ui-extension-sdk-locally")}(e),r||(r=o.promise.then((function(n){var r,o=n[0],i=n[1],a=n[2],s=t(o,i,e);return"function"==typeof l&&(r=l(o,i)),a.forEach((function(e){o._handleMessage(e)})),[s,r]})),o.isFulfilled||function(e){var t=s.getMessageId();e.parent.postMessage({id:t,method:"init",params:[]},"*")}(e)),r.then((function(e){var t=e[0],r=e[1];return n(t,r)}))}}(globalThis,(function(e,t,r){return(D[t.location]||N).reduce((function(o,i){return n(n({},o),i(e,t,r))}),{})}));e.init=F,e.locations=L,Object.defineProperty(e,"__esModule",{value:!0})})),globalThis.contentfulApp=globalThis.contentfulExtension;
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).contentfulExtension={})}(this,(function(e){"use strict";var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},t(e,n)};var n=function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function r(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))}function o(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var i=function(){function e(){this._id=0,this._listeners={}}return e.prototype.dispatch=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var r in this._listeners)(e=this._listeners)[r].apply(e,t)},e.prototype.attach=function(e){var t=this;if("function"!=typeof e)throw new Error("listener function expected");var n=this._id++;return this._listeners[n]=e,function(){return delete t._listeners[n]}},e}(),a=function(e){function n(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.call(this)||this;if(!t.length)throw new Error("Initial value to be memoized expected");return r._memoizedArgs=t,r}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}(n,e),n.prototype.dispatch=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._memoizedArgs=t,e.prototype.dispatch.apply(this,t)},n.prototype.attach=function(t){var n=e.prototype.attach.call(this,t);return t.apply(void 0,this._memoizedArgs),n},n.prototype.getMemoizedArgs=function(){return this._memoizedArgs},n}(i);var s,l=function(){function e(e,t){var n=this;this._messageHandlers={},this._responseHandlers={},this._send=function(e,t){return function(n,r){var o=u.getMessageId();try{t.postMessage({source:e,id:o,method:n,params:r},"*")}catch(e){throw e instanceof DOMException&&"DataCloneError"===e.name&&"openDialog"===n&&console.error("Error: openCurrent[App] parameters could not be parsed. You likely tried to pass functions or DOM elements as a parameter. Tip: Use the App SDK directly within the dialog location.\n\nLearn more about the dialog location: https://ctfl.io/app-sdk-dialog"),e}return o}}(e,t.parent),t.addEventListener("message",(function(e){n._handleMessage(e.data)}))}return e.prototype.call=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o=this._send(e,n);return new Promise((function(e,n){t._responseHandlers[o]={resolve:e,reject:n}}))},e.prototype.send=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this._send(e,t)},e.prototype.addHandler=function(e,t){return e in this._messageHandlers||(this._messageHandlers[e]=new i),this._messageHandlers[e].attach(t)},e.prototype._handleMessage=function(e){if(e.method){var t=e.method,n=e.params,r=this._messageHandlers[t];r&&r.dispatch.apply(r,n)}else{var o=e.id,i=this._responseHandlers[o];if(!i)return;"result"in e?i.resolve(e.result):"error"in e&&i.reject(e.error),delete this._responseHandlers[o]}},e}(),u=(s=0,{getMessageId:function(){return s++}});var c=function(){function e(e,t){var n=this;this.id=t.id,this.locale=t.locale,this.type=t.type,this.required=t.required,this.validations=t.validations,this.items=t.items,this._value=t.value,this._valueSignal=new a(this._value),this._isDisabledSignal=new a(t.isDisabled),this._schemaErrorsChangedSignal=new a(t.schemaErrors),this._channel=e,e.addHandler("valueChanged",(function(e,t,r){e!==n.id||t&&t!==n.locale||(n._value=r,n._valueSignal.dispatch(r))})),e.addHandler("isDisabledChangedForFieldLocale",(function(e,t,r){e===n.id&&t===n.locale&&n._isDisabledSignal.dispatch(r)})),e.addHandler("schemaErrorsChangedForFieldLocale",(function(e,t,r){e===n.id&&t===n.locale&&n._schemaErrorsChangedSignal.dispatch(r)}))}return e.prototype.getValue=function(){return this._value},e.prototype.setValue=function(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return this._value=e,this._valueSignal.dispatch(e),[4,this._channel.call("setValue",this.id,this.locale,e)];case 1:return[2,t.sent()]}}))}))},e.prototype.removeValue=function(){return r(this,void 0,void 0,(function(){return o(this,(function(e){switch(e.label){case 0:return this._value=void 0,[4,this._channel.call("removeValue",this.id,this.locale)];case 1:return e.sent(),[2]}}))}))},e.prototype.setInvalid=function(e){return this._channel.call("setInvalid",e,this.locale)},e.prototype.onValueChanged=function(e){return this._valueSignal.attach(e)},e.prototype.getIsDisabled=function(){return this._isDisabledSignal.getMemoizedArgs()[0]},e.prototype.onIsDisabledChanged=function(e){return this._isDisabledSignal.attach(e)},e.prototype.getSchemaErrors=function(){return this._schemaErrorsChangedSignal.getMemoizedArgs()[0]},e.prototype.onSchemaErrorsChanged=function(e){return this._schemaErrorsChangedSignal.attach(e)},e}(),d=function(){function e(e,t,r){this.id=t.id,this.locales=t.locales,this.type=t.type,this.required=t.required,this.validations=t.validations,this.items=t.items,this._defaultLocale=r,this._fieldLocales=t.locales.reduce((function(r,o){var i,a=new c(e,{id:t.id,type:t.type,required:t.required,validations:t.validations,items:t.items,locale:o,value:t.values[o],isDisabled:t.isDisabled[o],schemaErrors:t.schemaErrors[o]});return n(n({},r),((i={})[o]=a,i))}),{}),this.assertHasLocale(r)}return e.prototype.getValue=function(e){return this._getFieldLocale(e).getValue()},e.prototype.setValue=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,this._getFieldLocale(t).setValue(e)];case 1:return[2,n.sent()]}}))}))},e.prototype.removeValue=function(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,this.setValue(void 0,e)];case 1:return t.sent(),[2]}}))}))},e.prototype.onValueChanged=function(e,t){var n=t||e;return t||(e=""),this._getFieldLocale(e).onValueChanged(n)},e.prototype.onIsDisabledChanged=function(e,t){var n=t||e;return t||(e=""),this._getFieldLocale(e).onIsDisabledChanged(n)},e.prototype._getFieldLocale=function(e){return e=e||this._defaultLocale,this.assertHasLocale(e),this._fieldLocales[e]},e.prototype.getForLocale=function(e){if(!e)throw new Error("getForLocale must be passed a locale");return this._getFieldLocale(e)},e.prototype.assertHasLocale=function(e){if(!this._fieldLocales[e])throw new Error('Unknown locale "'.concat(e,'" for field "').concat(this.id,'"'))},e}();function p(e,t){var n,r=e.document,o=e.MutationObserver,i=e.ResizeObserver,a=!1,s=!1,l=new Set,u=new o((function(e){!function(e){e.forEach((function(e){switch(e.type){case"attributes":if(e.target.nodeType===Node.ELEMENT_NODE){var t=e.target;p(e.type,t)?l.add(t):l.delete(t)}break;case"childList":e.addedNodes.forEach((function(t){if(t.nodeType===Node.ELEMENT_NODE){var n=t;p(e.type,n)&&l.add(n)}})),e.removedNodes.forEach((function(e){var t=e;l.delete(t)}))}}))}(e),a&&d.updateHeight()})),c=new i((function(){d.updateHeight()}));u.observe(r.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0});var d={startAutoResizer:function(e){var t=(void 0===e?{}:e).absoluteElements;if(s=Boolean(t===void 0?false:t),d.updateHeight(),a)return;a=!0,c.observe(r.body)},stopAutoResizer:function(){if(!a)return;a=!1,c.disconnect()},updateHeight:function(e){void 0===e&&(e=null);if(null===e){var o=Math.ceil(r.documentElement.getBoundingClientRect().height);if(s&&l.size){var i=o;l.forEach((function(e){i=Math.max(e.getBoundingClientRect().bottom,i)})),e=i}else e=o}e!==n&&(t.send("setHeight",e),n=e)}};return d;function p(e,t){var n=getComputedStyle(t);return"absolute"===n.position&&("attributes"!==e||"none"!==n.display)}}var f=["getTask","getTasks","createTask","updateTask","deleteTask"];function h(e,t,r,o){var i=t.sys,s=new a(i),l=t.metadata,u=new a(l);e.addHandler("sysChanged",(function(e){i=e,s.dispatch(i)})),e.addHandler("metadataChanged",(function(e){l=e,u.dispatch(l)}));var c={};return f.forEach((function(t){c[t]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return e.call("callEntryMethod",t,n)}})),n(n(n({getSys:function(){return i},publish:function(t){return e.call("callEntryMethod","publish",[t])},unpublish:function(){return e.call("callEntryMethod","unpublish")},save:function(){return e.call("callEntryMethod","save")},onSysChanged:function(e){return s.attach(e)},fields:r.reduce((function(e,t){return e[t.id]=o(t),e}),{})},l?{metadata:l}:{}),{getMetadata:function(){return l},onMetadataChanged:function(e){return u.attach(e)}}),c)}var g=["getContentType","getEntry","getEntrySnapshots","getAsset","getEditorInterface","getPublishedEntries","getPublishedAssets","getContentTypes","getEntries","getEditorInterfaces","getAssets","createContentType","createEntry","createAsset","updateContentType","updateEntry","updateAsset","deleteContentType","deleteEntry","deleteAsset","publishEntry","publishAsset","unpublishEntry","unpublishAsset","archiveEntry","archiveAsset","unarchiveEntry","unarchiveAsset","createUpload","processAsset","waitUntilAssetProcessed","getUsers","getAllScheduledActions","getEntityScheduledActions","signRequest","createTag","readTags","updateTag","deleteTag","getTeams"];function v(e,t){var n={};return g.forEach((function(t){n[t]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return console.warn("You called ".concat(String(t)," on the Space API. Since version 4.0.0 the Space API and its methods are deprecated, and they will be removed from version 5.0.0 on. We recommend that you use the CMA client instead. See https://www.contentful.com/developers/docs/extensibility/app-framework/sdk/#using-the-contentful-management-library for more details.")),e.call("callSpaceMethod",t,n)}})),n.getCachedContentTypes=function(){return function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([],t,!0)},n}var y=function(e){return"object"!=typeof(t=e)||null===t||Array.isArray(t)?{}:e;var t};function m(e,t){return{openAlert:r.bind(null,"alert"),openConfirm:r.bind(null,"confirm"),openPrompt:r.bind(null,"prompt"),openExtension:o,openCurrentApp:i,openCurrent:function(e){return t.app?i(e):o(n(n({},e),{id:t.extension}))},selectSingleEntry:a.bind(null,"Entry",!1),selectSingleAsset:a.bind(null,"Asset",!1),selectMultipleEntries:a.bind(null,"Entry",!0),selectMultipleAssets:a.bind(null,"Asset",!0)};function r(t,n){return e.call("openDialog",t,y(n))}function o(r){var o=y(r);if((o=n(n({},o),{id:o.id||t.extension})).id)return e.call("openDialog","extension",o);throw new Error("Extension ID not provided.")}function i(r){if(r=y(r),t.app){var o=n(n({},r),{id:t.app});return e.call("openDialog","app",o)}throw new Error("Not in the app context.")}function a(t,n,r){return(r=y(r)).entityType=t,r.multiple=n,e.call("openDialog","entitySelector",r)}}function E(e,t,n){var r=new a(n.localeSettings),o=new a(n.showHiddenFields);return e.addHandler("localeSettingsChanged",(function(e){r.dispatch(e)})),e.addHandler("showHiddenFieldsChanged",(function(e){o.dispatch(e)})),{editorInterface:t,getLocaleSettings:function(){return r.getMemoizedArgs()[0]},onLocaleSettingsChanged:function(e){return r.attach(e)},onShowDisabledFieldsChanged:function(e){return o.attach(e)},getShowHiddenFields:function(){return o.getMemoizedArgs()[0]},onShowHiddenFieldsChanged:function(e){return o.attach(e)}}}function _(e,t){var r=new i;return e.addHandler("navigateSlideIn",(function(e){r.dispatch(e)})),{openEntry:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Entry",id:t}))},openNewEntry:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Entry",id:null,contentTypeId:t}))},openBulkEditor:function(t,r){return e.call("navigateToBulkEditor",n({entryId:t},r))},openAsset:function(t,r){return e.call("navigateToContentEntity",n(n({},r),{entityType:"Asset",id:t}))},openNewAsset:function(t){return e.call("navigateToContentEntity",n(n({},t),{entityType:"Asset",id:null}))},openPageExtension:function(r){return e.call("navigateToPage",n({type:"extension",id:t.extension},r))},openCurrentAppPage:function(r){return e.call("navigateToPage",n({type:"app",id:t.app},r))},openAppConfig:function(){return e.call("navigateToAppConfig")},openEntriesList:function(){return e.call("navigateToSpaceEnvRoute",{route:"entries"})},openAssetsList:function(){return e.call("navigateToSpaceEnvRoute",{route:"assets"})},onSlideInNavigation:function(e){return r.attach(e)}}}var A="preInstall",b="postInstall",w=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},C=function(e){return"function"==typeof e},T=function(e){return console.error(e),Promise.resolve(!1)},I=function(e,t,n){if(!C(e))return Promise.resolve(t);var r;try{r=void 0===n?e():e(n)}catch(e){return T(e)}var o,i=r;return w(o=i)&&C(o.then)||(i=Promise.resolve(i)),i.then((function(e){return e instanceof Error?Promise.reject(e):!1!==e&&(w(e)?e:t)}),T).catch(T)};function L(e){var t,n=((t={}).preInstall=null,t.postInstall=null,t),r=function(e,t){if(!C(t))throw new Error("Handler must be a function.");n[e]=t};return e.addHandler("appHook",(function(t){var r=t.stage,o=t.installationRequestId,i=t.err;return r===A?I(n[r],{}).then((function(t){return e.send("appHookResult",{stage:r,installationRequestId:o,result:t})})):r===b?I(n[r],void 0,i||null).then((function(){return e.send("appHookResult",{stage:r,installationRequestId:o})})):Promise.resolve()})),{setReady:function(){return e.call("callAppMethod","setReady")},isInstalled:function(){return e.call("callAppMethod","isInstalled")},getParameters:function(){return e.call("callAppMethod","getParameters")},getCurrentState:function(){return e.call("callAppMethod","getCurrentState")},onConfigure:function(e){r(A,e)},onConfigurationCompleted:function(e){r(b,e)}}}var O,S={LOCATION_ENTRY_FIELD:"entry-field",LOCATION_ENTRY_FIELD_SIDEBAR:"entry-field-sidebar",LOCATION_ENTRY_SIDEBAR:"entry-sidebar",LOCATION_DIALOG:"dialog",LOCATION_ENTRY_EDITOR:"entry-editor",LOCATION_PAGE:"page",LOCATION_APP_CONFIG:"app-config",LOCATION_HOME:"home"},D=function(e){return function(t){return e.call("CMAAdapterCall",t)}};function N(e){return{makeRequest:D(e)}}var M=[P,F,function(e,t){var n=t.field;if(!n)throw new Error('FieldAPI called for location without "field" property defined.');return{field:new c(e,n)}},x,R],H=((O={})[S.LOCATION_ENTRY_FIELD]=M,O[S.LOCATION_ENTRY_FIELD_SIDEBAR]=M,O[S.LOCATION_ENTRY_SIDEBAR]=[P,F,x,R],O[S.LOCATION_ENTRY_EDITOR]=[P,F,x],O[S.LOCATION_DIALOG]=[P,function(e){return{close:function(t){return e.send("closeDialog",t)}}},R],O[S.LOCATION_PAGE]=[P],O[S.LOCATION_HOME]=[P],O[S.LOCATION_APP_CONFIG]=[P,function(e){return{app:L(e)}}],O);function P(e,t){var n=t.user,r=t.parameters,o=t.locales,i=t.ids,a=t.initialContentTypes,s=t.location||S.LOCATION_ENTRY_FIELD;return{cmaAdapter:N(e),location:{is:function(e){return s===e}},user:n,parameters:r,locales:{available:o.available,default:o.default,names:o.names,fallbacks:o.fallbacks,optional:o.optional,direction:o.direction},space:v(e,a),dialogs:m(e,i),navigator:_(e,i),notifier:{success:function(t){return e.send("notify",{type:"success",message:t})},error:function(t){return e.send("notify",{type:"error",message:t})},warning:function(t){return e.send("notify",{type:"warning",message:t})}},ids:i,access:{can:function(t,n,r){return e.call("checkAccess",t,n,r)},canEditAppConfig:function(){return e.call("checkAppConfigAccess")}}}}function R(e,t,n){return{window:p(n,e)}}function x(e,t){return{editor:E(e,t.editorInterface,t.editor)}}function F(e,t){var n=t.locales,r=t.contentType,o=t.entry,i=t.fieldInfo;return{contentType:r,entry:h(e,o,i,(function(t){return new d(e,t,n.default)}))}}var k=function(e,t){if(void 0===e.window||void 0===e.document)return function(){};var n,r,o=((n={promise:null,resolve:null,isFulfilled:!1}).promise=new Promise((function(e){n.resolve=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];n.isFulfilled=!0,e.apply(void 0,t)}})),n);return o.promise.then((function(t){var n=t[0],r=e.document;r.addEventListener("focus",(function(){return n.send("setActive",!0)}),!0),r.addEventListener("blur",(function(){return n.send("setActive",!1)}),!0)})),function(e,t){!function(e,t){function n(r){var o=r.data;"connect"===o.method&&(e.removeEventListener("message",n),t.apply(void 0,o.params))}e.addEventListener("message",n)}(e,(function(n,r){var o=new l(n.id,e);t(o,n,r)}))}(e,(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o.resolve(e)})),function(n,i){var a=void 0===i?{supressIframeWarning:!1}:i,s=a.makeCustomApi;a.supressIframeWarning||function(e){e.self===e.top&&console.error("Cannot use App SDK outside of Contenful:\n\nIn order for the App SDK to function correctly, your app needs to be run in an iframe in the Contentful Web App, Compose or Launch.\n\nLearn more about local development with the App SDK here:\nhttps://www.contentful.com/developers/docs/extensibility/ui-extensions/faq/#how-can-i-develop-with-the-ui-extension-sdk-locally")}(e),r||(r=o.promise.then((function(n){var r,o=n[0],i=n[1],a=n[2],l=t(o,i,e);return"function"==typeof s&&(r=s(o,i)),a.forEach((function(e){o._handleMessage(e)})),[l,r]})),o.isFulfilled||function(e){var t=u.getMessageId();e.parent.postMessage({id:t,method:"init",params:[]},"*")}(e)),r.then((function(e){var t=e[0],r=e[1];return n(t,r)}))}}(globalThis,(function(e,t,r){return(H[t.location]||M).reduce((function(o,i){return n(n({},o),i(e,t,r))}),{})}));e.init=k,e.locations=S,Object.defineProperty(e,"__esModule",{value:!0})})),globalThis.contentfulApp=globalThis.contentfulExtension;
|
package/dist/editor.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { EditorInterface, SharedEditorSDK } from './types';
|
|
2
2
|
import { Channel } from './channel';
|
|
3
|
-
|
|
3
|
+
import { ConnectMessage } from './types/api.types';
|
|
4
|
+
export default function createEditor(channel: Channel, editorInterface: EditorInterface, editorData: Exclude<ConnectMessage['editor'], undefined>): SharedEditorSDK['editor'];
|
package/dist/entry.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Channel } from './channel';
|
|
2
|
-
import { EntryAPI, EntryFieldInfo } from './types';
|
|
3
|
-
export default function createEntry(channel: Channel, entryData: any, fieldInfo: EntryFieldInfo[], createEntryField:
|
|
2
|
+
import { EntryAPI, EntryFieldAPI, EntryFieldInfo } from './types';
|
|
3
|
+
export default function createEntry(channel: Channel, entryData: any, fieldInfo: EntryFieldInfo[], createEntryField: (info: EntryFieldInfo) => EntryFieldAPI): EntryAPI;
|
package/dist/field-locale.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Channel } from './channel';
|
|
2
|
-
import { FieldAPI, FieldInfo, Items } from './types';
|
|
2
|
+
import { FieldAPI, FieldInfo, Items, SerializedJSONValue } from './types';
|
|
3
3
|
import { ValidationError } from './types/validation-error';
|
|
4
4
|
export default class FieldLocale implements FieldAPI {
|
|
5
5
|
id: string;
|
|
@@ -15,10 +15,12 @@ export default class FieldLocale implements FieldAPI {
|
|
|
15
15
|
private _channel;
|
|
16
16
|
constructor(channel: Channel, info: FieldInfo);
|
|
17
17
|
getValue(): any;
|
|
18
|
-
setValue(value: any):
|
|
19
|
-
removeValue():
|
|
20
|
-
setInvalid(isInvalid: boolean):
|
|
18
|
+
setValue(value: any): Promise<SerializedJSONValue | undefined>;
|
|
19
|
+
removeValue(): Promise<void>;
|
|
20
|
+
setInvalid(isInvalid: boolean): Promise<unknown>;
|
|
21
21
|
onValueChanged(handler: (value: any) => any): () => boolean;
|
|
22
|
+
getIsDisabled(): boolean;
|
|
22
23
|
onIsDisabledChanged(handler: (isDisabled: boolean) => any): () => boolean;
|
|
24
|
+
getSchemaErrors(): ValidationError[];
|
|
23
25
|
onSchemaErrorsChanged(handler: (errors: ValidationError[]) => void): () => boolean;
|
|
24
26
|
}
|
package/dist/field.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export default class Field implements EntryFieldAPI {
|
|
|
12
12
|
items?: Items;
|
|
13
13
|
constructor(channel: Channel, info: EntryFieldInfo, defaultLocale: string);
|
|
14
14
|
getValue(locale?: string): any;
|
|
15
|
-
setValue(value: any, locale?: string):
|
|
16
|
-
removeValue(locale?: string):
|
|
15
|
+
setValue(value: any, locale?: string): Promise<import("./types").SerializedJSONValue | undefined>;
|
|
16
|
+
removeValue(locale?: string): Promise<void>;
|
|
17
17
|
onValueChanged(locale: string | ((value: any) => void), handler?: (value: any) => void): () => boolean;
|
|
18
18
|
onIsDisabledChanged(locale: string | ((isDisabled: boolean) => void), handler?: (isDisabled: boolean) => void): () => boolean;
|
|
19
19
|
private _getFieldLocale;
|
package/dist/signal.d.ts
CHANGED
|
@@ -99,12 +99,48 @@ export interface EditorLocaleSettings {
|
|
|
99
99
|
export interface SharedEditorSDK {
|
|
100
100
|
editor: {
|
|
101
101
|
editorInterface: EditorInterface;
|
|
102
|
+
/**
|
|
103
|
+
* Returns the current locale settings
|
|
104
|
+
*
|
|
105
|
+
* The locale setting can change. To always work with the latest settings, use `onLocaleSettingsChanged`.
|
|
106
|
+
*/
|
|
107
|
+
getLocaleSettings(): EditorLocaleSettings;
|
|
108
|
+
/**
|
|
109
|
+
* Subscribes to changes of the editor's locale settings
|
|
110
|
+
*
|
|
111
|
+
* @param callback Function that is called every time the locale settings change. Called immidiately with the current setting.
|
|
112
|
+
* @returns Function to unsubscribe. `callback` won't be called anymore.
|
|
113
|
+
*/
|
|
102
114
|
onLocaleSettingsChanged: (callback: (localeSettings: EditorLocaleSettings) => void) => () => void;
|
|
103
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Subscribes to changes of whether or not disabled fields are displayed
|
|
117
|
+
*
|
|
118
|
+
* @param callback Function that is called every time the setting whether or not disabled fields are displayed changes. Called immediately with the current state.
|
|
119
|
+
* @returns Function to unsubscribe. `callback` won't be called anymore.
|
|
120
|
+
* @deprecated Use {@link onShowHiddenFieldsChanged} instead
|
|
121
|
+
*/
|
|
122
|
+
onShowDisabledFieldsChanged: (callback: (showDisabledFields: boolean) => void) => () => void;
|
|
123
|
+
/**
|
|
124
|
+
* Returns whether or not hidden fields are displayed
|
|
125
|
+
*
|
|
126
|
+
* This setting can change. To always work with the latest settings, use `onShowHiddenFieldsChanged`.
|
|
127
|
+
*/
|
|
128
|
+
getShowHiddenFields(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Subscribes to changes of whether or not hidden fields are displayed
|
|
131
|
+
*
|
|
132
|
+
* @param callback Function that is called every time the setting whether or not hidden fields are displayed changes. Called immediately with the current state.
|
|
133
|
+
* @returns Function to unsubscribe. `callback` won't be called anymore.
|
|
134
|
+
*/
|
|
135
|
+
onShowHiddenFieldsChanged: (callback: (showHiddenFields: boolean) => void) => () => void;
|
|
104
136
|
};
|
|
105
|
-
/**
|
|
137
|
+
/**
|
|
138
|
+
* Allows to read and update the value of any field of the current entry and to get the entry's metadata
|
|
139
|
+
*/
|
|
106
140
|
entry: EntryAPI;
|
|
107
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Information about the content type of the entry.
|
|
143
|
+
*/
|
|
108
144
|
contentType: ContentTypeAPI;
|
|
109
145
|
}
|
|
110
146
|
export type CrudAction = 'create' | 'read' | 'update' | 'delete';
|
|
@@ -213,6 +249,10 @@ export interface ConnectMessage {
|
|
|
213
249
|
ids: IdsAPI;
|
|
214
250
|
contentType: ContentTypeAPI;
|
|
215
251
|
editorInterface?: EditorInterface;
|
|
252
|
+
editor?: {
|
|
253
|
+
localeSettings: EditorLocaleSettings;
|
|
254
|
+
showHiddenFields: boolean;
|
|
255
|
+
};
|
|
216
256
|
entry: {
|
|
217
257
|
sys: EntrySys;
|
|
218
258
|
metadata?: Metadata;
|
|
@@ -26,12 +26,30 @@ export interface FieldAPI {
|
|
|
26
26
|
* the returned function can be called to remove the handler function
|
|
27
27
|
**/
|
|
28
28
|
onValueChanged: (callback: (value: any) => void) => () => void;
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Returns whether the current field is disabled
|
|
31
|
+
*
|
|
32
|
+
* The disabled state can change. To always work with the latest state, use `onIsDisabledChanged`.
|
|
33
|
+
*/
|
|
34
|
+
getIsDisabled(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Subscribes to changes to this field's disabled state
|
|
37
|
+
*
|
|
38
|
+
* @param callback Function that is called every time this field's disabled state changes. Called immidiately with the current state.
|
|
39
|
+
* @returns Function to unsubscribe. `callback` won't be called anymore.
|
|
40
|
+
*/
|
|
32
41
|
onIsDisabledChanged: (callback: (isDisabled: boolean) => void) => () => void;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Returns the field's validation errors
|
|
44
|
+
*
|
|
45
|
+
* The schema errors can change. To always work with the latest errors, use `onSchemaErrorsChanged`.
|
|
46
|
+
*/
|
|
47
|
+
getSchemaErrors(): ValidationError[];
|
|
48
|
+
/**
|
|
49
|
+
* Subscribes to schema errors
|
|
50
|
+
*
|
|
51
|
+
* @param callback Function that is called every time the schema errors change. Called immediately with the current errors.
|
|
52
|
+
* @returns Function to unsubscribe. `callback` won't be called anymore.
|
|
53
|
+
*/
|
|
36
54
|
onSchemaErrorsChanged: (callback: (errors: ValidationError[]) => void) => () => void;
|
|
37
55
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Items, SerializedJSONValue } from './utils';
|
|
2
2
|
import { FieldAPI } from './field-locale.types';
|
|
3
3
|
import { ContentTypeFieldValidation } from './entities';
|
|
4
|
+
import { ValidationError } from './validation-error';
|
|
4
5
|
export interface FieldInfo {
|
|
5
6
|
id: string;
|
|
6
7
|
locale: string;
|
|
@@ -9,6 +10,8 @@ export interface FieldInfo {
|
|
|
9
10
|
validations: ContentTypeFieldValidation[];
|
|
10
11
|
items?: Items;
|
|
11
12
|
value: any;
|
|
13
|
+
isDisabled: boolean;
|
|
14
|
+
schemaErrors: ValidationError[];
|
|
12
15
|
}
|
|
13
16
|
export interface EntryFieldInfo {
|
|
14
17
|
id: string;
|
|
@@ -20,6 +23,12 @@ export interface EntryFieldInfo {
|
|
|
20
23
|
values: {
|
|
21
24
|
[locale: string]: any;
|
|
22
25
|
};
|
|
26
|
+
isDisabled: {
|
|
27
|
+
[locale: string]: boolean;
|
|
28
|
+
};
|
|
29
|
+
schemaErrors: {
|
|
30
|
+
[locale: string]: ValidationError[];
|
|
31
|
+
};
|
|
23
32
|
}
|
|
24
33
|
export interface EntryFieldAPI {
|
|
25
34
|
/** The ID of a field is defined in an entry's content type. */
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"contentful-ui-extensions-sdk","description":"A JavaScript library to develop custom apps for Contentful","version":"4.
|
|
1
|
+
{"name":"contentful-ui-extensions-sdk","description":"A JavaScript library to develop custom apps for Contentful","version":"4.16.0","author":"Contentful GmbH","license":"MIT","sideEffects":true,"repository":{"url":"https://github.com/contentful/ui-extensions-sdk.git","type":"git"},"homepage":"https://www.contentful.com/developers/docs/extensibility/app-framework/sdk/","main":"dist/cf-extension-api.js","types":"dist/index.d.ts","files":["dist/cf-extension-api.js","dist/cf-extension-api.js.map","dist/cf-extension.css","dist/**/*.d.ts"],"scripts":{"test":"ts-mocha -p tsconfig.test.json 'test/unit/*.[jt]s' --reporter mocha-multi-reporters --reporter-options configFile=mocha.unit-reporters.json","lint":"eslint '{lib,test}/**/*.{t,j}s'","lint:fix":"npm run lint -- --fix","build":"npm run check-types && rollup -c --compact","build:debug":"npm run build -- --sourcemap","prepublishOnly":"npm run build","size":"echo \"Gzipped, estimate: $(gzip -9 -c dist/cf-extension-api.js | wc -c) bytes\"","semantic-release":"semantic-release","publish-all":"node ./scripts/publish.js","verify":"node ./scripts/verify.js","check-types":"tsc --noEmit -m commonjs","prepare":"husky install","lint-staged":"lint-staged"},"devDependencies":{"@semantic-release/changelog":"6.0.2","@semantic-release/exec":"6.0.3","@semantic-release/git":"10.0.1","@testing-library/dom":"8.20.0","@types/chai-as-promised":"7.1.5","@types/cross-spawn":"6.0.2","@types/fs-extra":"11.0.1","@types/jsdom":"21.1.0","@types/mocha":"10.0.1","@types/nanoid":"3.0.0","@types/sinon":"^10.0.0","@types/sinon-chai":"^3.2.5","@typescript-eslint/eslint-plugin":"4.33.0","@typescript-eslint/parser":"4.33.0","babel-eslint":"10.1.0","chai":"4.3.7","chai-as-promised":"7.1.1","contentful-management":"10.29.1","cross-spawn":"7.0.3","eslint":"7.32.0","eslint-config-prettier":"8.6.0","eslint-config-standard":"16.0.3","eslint-plugin-import":"2.27.5","eslint-plugin-node":"11.1.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-promise":"6.1.1","eslint-plugin-react":"7.32.2","eslint-plugin-standard":"5.0.0","fs-extra":"11.1.0","husky":"8.0.3","jsdom":"21.1.0","lint-staged":"13.1.1","mocha":"10.2.0","mocha-junit-reporter":"2.2.0","mocha-multi-reporters":"1.5.1","mochawesome":"7.1.3","mochawesome-merge":"4.2.2","mochawesome-report-generator":"6.2.0","prettier":"2.8.4","rollup":"2.79.1","rollup-plugin-terser":"7.0.2","rollup-plugin-typescript2":"0.34.1","semantic-release":"19.0.5","sinon":"15.0.1","sinon-chai":"3.7.0","ts-mocha":"10.0.0","tslib":"2.5.0","typescript":"4.9.5"},"lint-staged":{"*.ts":["prettier --write","eslint --fix","git add"],"*.md":["prettier --write","git add"]},"release":{"branches":["master",{"name":"canary","channel":"canary","prerelease":"alpha"}],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/changelog",["@semantic-release/npm",{"npmPublish":false}],["@semantic-release/exec",{"verifyConditionsCmd":"node ./scripts/verify.js","publishCmd":"npm run publish-all"}],["@semantic-release/git",{"message":"chore: ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}","assets":["CHANGELOG.md","package.json","package-lock.json"]}],"@semantic-release/github"]},"peerDependencies":{"contentful-management":">=7.30.0"}}
|