!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}([function(e,t){e.exports=__kbnSharedDeps__.ReactQuery},function(e,t,n){e.exports=n(7)(1465)},function(e,t){e.exports=__kbnSharedDeps__.React},function(e,t){e.exports=__kbnSharedDeps__.EmotionReact},function(e,t){e.exports=__kbnSharedDeps__.Rxjs},function(e,t,n){n(6),__kbnBundles__.define("plugin/contentManagement/public",n,8)},function(e,t,n){n.p=window.__kbnPublicPath__.contentManagement},function(e,t){e.exports=__kbnSharedDeps_npm__},function(e,t,n){"use strict";n.r(t),n.d(t,"ContentClientProvider",(function(){return v})),n.d(t,"ContentClient",(function(){return content_client_ContentClient})),n.d(t,"useCreateContentMutation",(function(){return _})),n.d(t,"useUpdateContentMutation",(function(){return b})),n.d(t,"useDeleteContentMutation",(function(){return T})),n.d(t,"useSearchContentQuery",(function(){return C})),n.d(t,"useGetContentQuery",(function(){return f})),n.d(t,"useContentClient",(function(){return g})),n.d(t,"plugin",(function(){return m}));var r=n(1),i=n.n(r),s=n(0);const o=e=>{if("string"==typeof e){if(/^\d+$/.test(e)){const t=parseInt(e,10);return Number.isNaN(t)?{result:!1,value:null}:{result:!0,value:t}}return{result:!1,value:null}}return Number.isInteger(e)?{result:!0,value:e}:{result:!1,value:null}};var u=n(4);const c=(e,t)=>{const n=new s.QueryObserver(e,e.defaultQueryOptions(t));return new u.Observable((e=>{const t=n.subscribe(s.notifyManager.batchCalls((t=>{e.next(t)})));return()=>{t()}}))},l={all:e=>[e],item:(e,t)=>[...l.all(e),t],search:(e,t,n)=>[...l.all(e),"search",t,n]},a=(e,t)=>{var n;const r=t.get(e.contentTypeId);if(!r)throw new Error(`Unknown content type [${e.contentTypeId}]`);const i=null!==(n=e.version)&&void 0!==n?n:r.version.latest,{result:s,value:u}=o(i);if(!s)throw new Error(`Invalid version [${i}]. Must be an integer.`);if(u>r.version.latest)throw new Error(`Invalid version [${i}]. Latest version is [${r.version.latest}]`);return{...e,version:i}};class content_client_ContentClient{constructor(e,t){i()(this,"queryClient",void 0),i()(this,"queryOptionBuilder",void 0),this.crudClientProvider=e,this.contentTypeRegistry=t,this.queryClient=new s.QueryClient({defaultOptions:{queries:{networkMode:"always"}}}),this.queryOptionBuilder=(({crudClientProvider:e,contentTypeRegistry:t})=>({get:n=>{const r=a(n,t);return{queryKey:l.item(r.contentTypeId,r.id),queryFn:()=>e(r.contentTypeId).get(r)}},search:n=>{const r=a(n,t);return{queryKey:l.search(r.contentTypeId,r.query,r.options),queryFn:()=>e(r.contentTypeId).search(r)}}}))({crudClientProvider:this.crudClientProvider,contentTypeRegistry:this.contentTypeRegistry})}get(e){return this.queryClient.fetchQuery(this.queryOptionBuilder.get(e))}get$(e){return c(this.queryClient,this.queryOptionBuilder.get(e))}create(e){return this.crudClientProvider(e.contentTypeId).create(a(e,this.contentTypeRegistry))}update(e){return this.crudClientProvider(e.contentTypeId).update(a(e,this.contentTypeRegistry))}delete(e){return this.crudClientProvider(e.contentTypeId).delete(a(e,this.contentTypeRegistry))}search(e){return this.crudClientProvider(e.contentTypeId).search(a(e,this.contentTypeRegistry))}search$(e){return c(this.queryClient,this.queryOptionBuilder.search(a(e,this.contentTypeRegistry)))}mSearch(e){const t=this.crudClientProvider();if(!t.mSearch)throw new Error("mSearch is not supported by provided crud client");return t.mSearch({...e,contentTypes:e.contentTypes.map((e=>a(e,this.contentTypeRegistry)))})}}var d=n(2),y=n.n(d),p=n(3);const h=y.a.createContext(null),g=()=>{const e=y.a.useContext(h);if(!e)throw new Error("contentClient not found");return e},v=({contentClient:e,children:t})=>Object(p.jsx)(h.Provider,{value:e},Object(p.jsx)(s.QueryClientProvider,{client:e.queryClient},t)),f=(e,t)=>{const n=g();return Object(s.useQuery)({...n.queryOptionBuilder.get(e),...t})},C=(e,t)=>{const n=g();return Object(s.useQuery)({...n.queryOptionBuilder.search(e),...t})},_=()=>{const e=g();return Object(s.useMutation)({mutationFn:t=>e.create(t),onSuccess:(t,n)=>{e.queryClient.invalidateQueries({queryKey:l.all(n.contentTypeId)})}})},b=()=>{const e=g();return Object(s.useMutation)({mutationFn:t=>e.update(t),onSuccess:(t,n)=>{e.queryClient.invalidateQueries({queryKey:l.all(n.contentTypeId)})}})},T=()=>{const e=g();return Object(s.useMutation)({mutationFn:t=>e.delete(t),onSuccess:(t,n)=>{e.queryClient.invalidateQueries({queryKey:l.all(n.contentTypeId)})}})};class ContentType{constructor(e){this.definition=e}get id(){return this.definition.id}get name(){var e;return null!==(e=this.definition.name)&&void 0!==e?e:this.id}get description(){var e;return null!==(e=this.definition.description)&&void 0!==e?e:""}get icon(){var e;return null!==(e=this.definition.icon)&&void 0!==e?e:"questionInCircle"}get crud(){return this.definition.crud}get version(){return this.definition.version}}class registry_ContentTypeRegistry{constructor(){i()(this,"types",new Map)}register(e){var t;if(this.types.has(e.id))throw new Error(`Content type with id "${e.id}" already registered.`);const{result:n,value:r}=o(null===(t=e.version)||void 0===t?void 0:t.latest);var i;if(!n)throw new Error(`Invalid version [${null===(i=e.version)||void 0===i?void 0:i.latest}]. Must be an integer.`);if(r<1)throw new Error("Version must be >= 1");const s=new ContentType({...e,version:{...e.version,latest:r}});return this.types.set(s.id,s),s}get(e){return this.types.get(e)}getAll(){return Array.from(this.types.values())}}class rpc_client_RpcClient{constructor(e){i()(this,"sendMessage",(async(e,t)=>{try{return(await this.http.post(`/api/content_management/rpc/${e}`,{body:JSON.stringify(t)})).result}catch(e){throw console.log(`Content management client error: ${e.body.message}`),e}})),this.http=e}get(e){return this.sendMessage("get",e).then((e=>e.result))}bulkGet(e){return this.sendMessage("bulkGet",e).then((e=>e.result))}create(e){return this.sendMessage("create",e).then((e=>e.result))}update(e){return this.sendMessage("update",e).then((e=>e.result))}delete(e){return this.sendMessage("delete",e).then((e=>e.result))}search(e){return this.sendMessage("search",e).then((e=>e.result))}mSearch(e){return this.sendMessage("mSearch",e).then((e=>e.result))}}class plugin_ContentManagementPlugin{constructor(){i()(this,"contentTypeRegistry",void 0),this.contentTypeRegistry=new registry_ContentTypeRegistry}setup(){return{registry:{register:this.contentTypeRegistry.register.bind(this.contentTypeRegistry)}}}start(e,t){const n=new rpc_client_RpcClient(e.http);return{client:new content_client_ContentClient((e=>{var t,r;return e&&null!==(t=null===(r=this.contentTypeRegistry.get(e))||void 0===r?void 0:r.crud)&&void 0!==t?t:n}),this.contentTypeRegistry),registry:{get:this.contentTypeRegistry.get.bind(this.contentTypeRegistry),getAll:this.contentTypeRegistry.getAll.bind(this.contentTypeRegistry)}}}}function m(){return new plugin_ContentManagementPlugin}}]);